说说 TCP 报文首部的格式?

让我们来看一下 TCP 报文首部的格式:

  • 16位源端口号:指示该报文段来自哪个源端口号。它标识了发送端的应用程序或进程。
  • 16位目标端口号:指示该报文段要传送给哪个目标端口号。它表示了接收端的应用程序或进程。
  • 32位序列号:用于对每个传输方向上的字节流进行编号。它标识了报文段中数据部分的第一个字节的序列号。
  • 32位确认号:作为对另一方发送的 TCP 报文段的响应。它的值等于收到的 TCP 报文段的序列号加1。
  • 4位首部长度:表示 TCP 首部的长度,以 32 位字(4 字节)为单位。由于 4 位最大能表示 15,因此 TCP 首部的最大长度是 60 字节。
  • 6位标志位:包含多个标志位,用于指示 TCP 报文段的不同属性。其中常用的标志位有:URG(紧急指针是否有效)、ACK(确认号是否有效)、PSH(缓冲区是否填满)、RST(重新建立连接请求)、SYN(建立连接请求)、FIN(关闭连接请求)。
  • 16位窗口大小:表示 TCP 流量控制的一种机制。该值告知对方本端的 TCP 接收缓冲区还能容纳多少字节的数据,从而控制发送端的发送速率。
  • 16位校验和:由发送端计算并填充,用于检验 TCP 报文段在传输过程中是否发生了损坏。校验和不仅涵盖了 TCP 首部,还包括了数据部分,这是 TCP 可靠传输的一个重要保证。
  • 16位紧急指针:指示紧急数据的位置,是一个正的偏移量。它与序列号字段的值相加,表示紧急数据的最后一个字节的序列号。紧急指针用于发送端向接收端传递紧急数据的方式。

标签: java, Java面试题, Java问题合集, Java编程, Java问题精选, Java常见问题, 计算机网络, 计算机网络面试题