计算机网络学习记录 | 第四篇:用户数据报协议(UDP)首部和传输控制协议(TCP)首部
用户数据报协议(User Datagram Protocol,UDP)
Internet传输层协议,提供无连接、不可靠、数据报尽力传输服务
特点
1.应用进程容易控制发送什么数据以及何时发送,会出现分组的丢失和重复
2.无需建立连接
3.无连接状态
4.首部开销小,只有8个字节
首部结构
1.UDP首部四个字段:每个字段长度都是2个字节,一共8个字节
源端口号和目的端口号:UDP实现复用和分解
长度:指示UDP报文字段汇总的字节数(首部和数据的总和)
校验和:接收方用来检测数据报是否存在差错
2.应用数据:用来存放应用层传输的数据
校验和
提供一个差错检测的功能。用于检测UDP报文段从源到目的地传输过程中,其中数据是否发生改变。
1.UDP检验和计算规则
1.1 所有参数参(伪首部【只在计算校验和时存在,不参数数据传输】、UDP首部、应用数据)与运算的内容按16位对称求
1.1.1 伪首部结构
1.2 求和过程中如果遇到溢出都被回卷(即进位与和的最低位在相加)
1.3 最后得到的和取反码,就是UDP的检验和,填入UDP数据包首部的检验和字段
传输控制协议(Transmission Control Protocol,TCP)
Interner传输层协议。提供面向连接、可靠、有序、字节流传输服务
特点
1.应用进程先建立连接
2.每一条TCP间接只有两个端点
3.可靠交付:无差错、不丢失、不重复、按序到达
4.全双工通讯
5.面向字节流(流:字节序列。应用程序和TCP的交付是一个个数据块,TCP把他们看成是无结构字节流)
首部结构(20-60字节)
1. 源端口号、目的端口号:占16位,复用和分解上层应用的数据
2. 序号、确认序号:占32位
2.1 序号:对每个应用层数据的每个字节进行编号
2.2 确认序号:期望从对方接收数据的字节序号,即该序号对应的字节尚未收到
3. 首部长度:指出TCP段的首部长度,以4字节为计算单位。比如这里是5的话,那么该首部长度位5*4=20字节
4. URG、ACK、PSH、RST、SYN、FIN:各占1位,标志位字段,取值0或者1
4.1 URG:等于1时,紧急指针有效,优先传输
4.1 ACK:等于1时,确认需要字段有效;等于0时,确认序号字段无效
4.1 PSH:等于1时,尽快将报文段中的数据交付接收应用进程,不要等缓存满了再交付
4.1 RST:等于1时,TCP连接出现严重差错,释放连接,在重新建立TCP连接
4.1 SYN:等于1时,该TCP报文段是一个建立连接请求控制段或者同意建立连接的确认段
4.1 FIN:等于1时,TCP报文段的发送端数据已经发送完毕,请求释放连接
5. 接收窗口大小:占16位。向对方通告我方接收窗口的大小
6. 校验和:占16位(计算方式和UDP计算方式一样)
7. 紧急指针:占16为。当URG=1时,才有效。
8. 选项(可变长度):最短字节为0,最长为60字节