计网 - 传输层 - 易错题整理
题目来源:王道考研参考书(故章节序号也是按照此书来的)
5.1 传输层概述
通信子网,负责数据通信,是点到点的,包括:
- 网络层
- 数据链路层
- 物理层
资源子网,是OSI参考模型的上三层,包括:
- 应用层
- 表示层
- 会话层
OSI参考模型是7层的;TCP/IP参考模型是5层的。
传输层的端到端,也就是进程到进程。
套接字=IP+端口号,可以唯一确定进程,端口号只具有本地意义,TCP和UDP的端口号互不干扰;
- 0~1023:熟知端口号
- 1024~49151:登记端口号
- 49152~65535:客户端端口号
TCP和IP的首部都是20B的。
5.2 UDP协议
UDP首部
UDP首部中的长度字段,记录UDP数据报的长度(包括首部和数据部分),以Byte为单位,最小是8(仅有首部)。
UDP首部中的校验和字段,检测UDP数据报在传输中是否有错,有错就丢弃,该字段是可选字段,当源主机不想计算校验和时置零。
UDP数据报首部长度是固定的8B。
注意:UDP数据报长度 != UDP数据报首部长度
UDP伪首部与校验和
UDP的伪首部只是在计算校验和时临时添加的,不计入UDP的长度,也不会被发送。
伪首部的长度是12B。
伪首部包括源IP和目的IP,这是IP分组报头的一部分。
UDP校验和对伪首部、UDP首部以及应用层数据进行校验。
UDP校验和的计算方法是二进制反码运算求和再取反。
UDP的校验和不是必须的,如果不使用就置零,如果校验和的计算结果恰好为0则置一。
UDP数据报比IP数据报多提供了端口功能服务,虽然它们都是数据报协议,但是IP数据报只能找到目的主机而无法找到目的进程,而由于UDP提供端口功能以及复用和分用功能,所以可以找到进程。
在UDP中,接收端通过校验发现数据有差错,就直接丢弃该数据报,仅此而已。
客户端/服务器模式,和,远程调用,都是可以使用UDP的,但是远程登录不行。
传输层分用的定义是:接收方的传输层剥去报文首部后,能够把这些数据正确交付到目的进程。
- 源端口号在需要对方回信时选用,否则可以置零。
- 目的端口号在终点交付报文时使用。
UDP有差错校验,只是不保障可靠数据传输
5.3 TCP协议
TCP中端口号80标识Web服务器端的HTTP进程;
客户端访问Web服务器的HTTP进程的端口号由客户端的操作系统动态分配。
TCP不支持广播,它提供的是一对一全双工可靠的字节流服务。
目的IP地址是IP数据报中的内容;
TCP报文段中有序列号字段。
TCP的伪首部和UDP的伪首部都包括IP分组首部的一部分;
IP首部中有一个协议字段,用于指明上层协议是TCP还是UDP,17是UDP,6是TCP。
滑动窗口进行流量控制,TCP在接收端用ACK加上接收方允许接收数据范围的最大值发送给对方,然后,发送方就会把这个最大值当作发送窗口值,这表明了发送端在未收到确认之前,可以发送的最大字节数。
虽然TCP是面向字节的,对每个字节进行编号,但是并不是接收到的每个字节都要发回确认,而是在发送一个报文段的字节后,才会发回去一个确认,所以说,本质上TCP还是采用的对报文段的确认机制。
TCP发送窗口的大小=min[接收端窗口,拥塞窗口]
TCP滑动窗口协议中,发送方滑动窗口的大小规定了发送方最多能够传送的分组数目,只有窗口滑动了,才能往后继续发送;
分组重传的最大值也是发送方能够发送数据的最大值,所以说,重传分组的数量最多也不能超过滑动窗口的大小。
拥塞窗口是发送端根据网络拥塞情况而确定的窗口值。
本文未完待续,随时更新