17一起做网站包包,影楼后期修图培训学校,南京做网站哪家好,搜索网站 模板目录 前言相关名词解释应用层协议——HTTP传输层协议socketTCP帧头格式三次握手、四次挥手 UDPTCP的socket实现 参考博文 前言
刚碰到网络编程#xff0c;会出现一堆协议、概念、这层次那技术的#xff0c;头都大了#xff0c;还是得总结总结……
相关名词解释
✨✨网络… 目录 前言相关名词解释应用层协议——HTTP传输层协议socketTCP帧头格式三次握手、四次挥手 UDPTCP的socket实现 参考博文 前言
刚碰到网络编程会出现一堆协议、概念、这层次那技术的头都大了还是得总结总结……
相关名词解释
✨✨网络模型 为了使多种设备能通过网络通信和解决不同设备在网络互联中的兼容性问题国际标准化组织制定了开放式系统互联通信参考模型OSI但在实际应用上采用的是TCP/IP这种四层模型。 应用层处理并打包数据传输层在网络中的两个节点之间提供可靠的数据传输服务网络层负责数据包从源到目的地的路由选择 协议 互联网的本质就是一系列的网络协议处于互联网上的两台计算机如果要实现通信就需要遵守这些协议比如网线的接口类型寻址方式数据如何发送等一系列协议。 网络通信是一个比较复杂的事情需求场景复杂了实现功能也会比较复杂。实际应用中是把这个大协议拆分成小协议(每个协议负责一部分功能)将某些协议功能类似的小协议进一步的分类(“分层”)。✨以太网 以太网Ethernet是一种局域网Local Area Network, LAN技术以太网技术本身包括了物理层和数据链路层的规范这些规范定义了如何在局域网中传输数据帧。✨✨✨IP地址 IP地址Internet Protocol Address是互联网协议地址的简称是用于在互联网上标识和定位设备的唯一数字标签。IP地址由32位IPv4或128位IPv6的二进制数组成通常用点分十进制表示IPv4或冒号分隔的十六进制表示IPv6。✨✨✨端口号 端口号的主要作用是表示一台计算机中的特定进程所提供的服务即用来区分一个主机上的不同程序,因此也被称为程序地址。✨MAC地址 MAC地址全称为媒体访问控制地址Media Access Control Address是一种用于网络通信的唯一标识符。MAC地址通常由12位十六进制数字组成分为6个字节每个字节由两个十六进制数字表示例如00-1A-2B-3C-4D-5E。MAC地址具有全球唯一性每个网络设备在生产时都会被分配一个唯一的MAC地址。这种唯一性确保了在网络中不会出现地址冲突从而保证了网络通信的顺畅。MAC地址通常被烧录在网络设备的硬件上如网卡、路由器、交换机等。 MAC地址与IP地址相互配合共同完成网络通信。IP地址用于在互联网上标识设备的位置而MAC地址则用于在局域网内标识设备。当数据在局域网内传输时主要依赖MAC地址进行寻址而当数据需要跨越不同网络时IP地址则起到了关键作用。通过ARP地址解析协议可以将IP地址解析为MAC地址从而实现不同网络之间的通信。
应用层协议——HTTP
这是基于TCP/IP 的应用层协议后面单独写一篇博文总结。 这里根据上图的封装过程详细分析一下数据在各层的叫法 链路层——数据帧frame网络层——数据包packet传输层——数据报(TCP叫segment/UDP叫datagram每层数据封装好包含了将要发送的完整的数据信息后就是报文 传输层协议
socket
套接字socket是一个抽象层应用程序可以通过它发送或接收数据可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中并与网络中的其他应用程序进行通信。通过使用 Socket可以在不同计算机之间建立连接并进行数据的传输和交换。 Socket 可以用于实现各种网络应用例如
客户端-服务器通信通过 Socket客户端可以与服务器建立连接并发送请求服务器接收请求并返回响应。网络聊天和即时通讯通过 Socket可以在多个用户之间实现实时的文字、音频或视频通信。文件传输在不同计算机之间传输文件。远程控制在远程计算机上执行指令或操作。P2P点对点通信Socket 提供了直接的点对点通信接口允许两个或多个计算机直接进行数据交换。
TCP
TCPTransmission Control Protocol传输控制协议是一种面向连接的协议这意味着在数据传输开始之前必须在发送端和接收端之间建立一个连接。
可靠传输TCP提供可靠的数据传输服务确保数据包正确无误地到达目的地。如果数据包在传输过程中丢失或损坏TCP会重新发送数据包直到接收端正确接收到所有数据。数据顺序TCP保证数据包的顺序即使在网络中传输的路径不同接收端也能按照发送端的顺序接收数据。流量控制和拥塞控制TCP通过滑动窗口机制实现流量控制并通过拥塞控制算法如慢启动、拥塞避免、快速重传和快速恢复来避免网络拥塞。全双工通信TCP支持全双工通信即数据可以在两个方向上同时传输。
帧头格式 ACK:确认接受标志位ACK1为确认接受到SYN:建立连接时的同步标志位SYN1/ACK0表是A请求与B建立连接若B报文中SYN1/ACK1表示B同意和A建立连接FIN:请求断开连接标志位seq:传输报文中的数据部分的每一个字节都有它的编号建立连接时的为初始随机序号ISNack:响应端收到信息并准备接受的下一个数据的序号上一数据末尾序号1 ❗️❗️❗️在建立连接和正常通信两个阶段seq的计算方法不同具体参考博客——【转载】TCP的seq和ack号计算方法
三次握手、四次挥手
三次握手 例子描述A给B寄东西B的看到消息要回复A收到了如果B的回复A的没看到的话会继续问B到底收到没有A收到B的消息后再嘱咐B一些东西细节这样这个过程就建立完了 握手的过程实际上是在通知对方自己的初始化序号ISN也就是上图中的x和y。x和y会被当作之后传输数据的一个依据以保证TCP报文在传输过程中不会混乱。 四次挥手 描述 1.客户端主动请求关闭通信连接 2.服务端收到请求并确认之后一段时间仍会发送未发送完的数据 3.数据全发完后服务端请求可以关闭连接了 4.客户端收到并确认 处于TIME_WAIT状态的主动断开方在等待完成2MSLMaximum Segment Lifetime指的是一个TCP报文片段在网络中最大的存活时间具体来说2MSL对应于一次消息的来回一个发送和一个回复所需的最大时间的时间后才真正关闭连接通道避免因网络不可靠的被动断开方发送FINACK报文后其主动方的ACK响应报文丢失的情况这时候的被动断开方处于LAST-ACK状态的由于收不到ACK确认被动方一直不能正常的进入CLOSED状态。 UDP
UDPUser Datagram Protocol用户数据报协议用户数据报协议是一种无连接的协议不需要在发送端和接收端之间建立连接可以直接发送数据。
不保证可靠性UDP不保证数据的可靠传输如果数据包在传输过程中丢失或损坏UDP不会重新发送数据包。无数据顺序UDP不保证数据包的顺序接收端可能以不同于发送端的顺序接收数据。无流量控制和拥塞控制UDP没有流量控制和拥塞控制机制因此它不适合需要这些机制的应用。半双工或简单全双工通信UDP通常支持半双工通信但也可以支持全双工通信。开销较小UDP不需要建立连接和维护连接状态因此它的开销比TCP小适用于对实时性要求高的应用如视频会议、在线游戏等。
TCP的socket实现 注:这部分的代码涉及IO流还没学先不贴了 参考博文
【通信协议】帧、数据报、数据包的区别和联系 一文带你了解socket网络编程以及详解过程和原理 Socket的详细介绍 TCP网络编程中connect()、listen()和accept()三者之间的关系 一文讲透TCP/IP协议 | 图解秒懂史上最全 详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”