计网 - Ep4 - 传输层 - 易错题整理丨学习记录

198 阅读4分钟

计网 - 传输层 - 易错题整理

题目来源:王道考研参考书(故章节序号也是按照此书来的)

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滑动窗口协议中,发送方滑动窗口的大小规定了发送方最多能够传送的分组数目,只有窗口滑动了,才能往后继续发送;

分组重传的最大值也是发送方能够发送数据的最大值,所以说,重传分组的数量最多也不能超过滑动窗口的大小。

拥塞窗口是发送端根据网络拥塞情况而确定的窗口值。


本文未完待续,随时更新