Qin darkstone
TCP协议

TCP协议

TCP协议

  • 注意TCP协议面向字节流

    • (0-99为100B,1-100为100B)

    • 看好序号的开始和结束,序号也会占一个字节,序号为0就是一个字节,0-9就是十个字节。

  • 注意序号与确认号的关系,

    • 序号+数据的有效载荷就等于确认号,确认号是上一个TCP报文的最后一个序号+1
    • 确认号是无差错时对面下一次要发送的序号。
  • TCP链接的释放(四次挥手)

    • 第一个RTT,客户提出释放连接,由客户向服务器发送报文段(客户FIN置1)(进入FIN-WAIT1 终止等待1状态);服务器进行确认(进入CLOSE-WAIT 关闭等待状态),确认数据到达后,客户机进入FIN-WAIT2 终止等待2状态。
    • 第二个RTT,服务器在等待无数据发送后,服务器向客户发送链接释放报文段(服务器FIN置1)(进入LAST-ACK 最后确认状态),客户收到报文段后,给服务器发送确认报文段,进入TIME-WAIT状态,等待两个MSL(最长报文段寿命)后,客户进入CLOSED链接关闭状态。服务器在收到客户发出的确认报文段后进入CLOSED链接关闭状态。
  • 在通信时ACK都为1,三次握手时SYN都为1

  • 拥塞窗口最初为1。

    • 即第一轮传输RTT时,传输的报文段长度为1。在第一轮RTT结束即收到确认后(第二轮RTT开始时),拥塞窗口值为2(慢开始算法),第二轮传输长度为2,第三轮传输为4……

      • 可知,例如在经历3个RTT后,第三个RTT传输时的拥塞窗口值为4,第三个RTT确认后(结束时)也是第四个RTT开始时,拥塞窗口值为8,第四轮传输值最大为8。
    • 网络拥塞后,阈值降低为拥塞时拥塞窗口值的二分之一,注意拥塞时一个RTT,拥塞后在下一个RTT开始时降为1开始(慢开始)或从阈值开始(快恢复)。

Author:Qin darkstone
Link:https://qindarkstone.github.io/2023/08/18/408/计算机网络/传输层/传输层—TCP协议/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可