5.8 TCP的运输连接管理

5.8 TCP的运输连接管理

  • TCP是面向连接的协议,它基于运输连接来传送TCP报文段。
  • TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。
  • TCP运输连接有以下三个阶段:
    • 建立TCP连接
    • 数据传送
    • 释放TCP连接
  • TCP的运输连接管理就是使运输连接的建立和释放都能正常地进行。

1. TCP的连接建立(三次握手)

TCP的连接建立要解决以下三个问题:

  1. 使TCP双方能够确知对方的存在
  2. 使TCP双方能够协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)
  3. 使TCP双方能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。
  1. 三次握手建立连接的过程

    也就是使用三个TCP报文建立连接

    • 传输控制块
      • TCP连接表
      • 指向发送和接收缓存的指针
      • 指向重传队列的指针
      • 当前的发送和接收序号
    image-20230718175005023
  2. 两报文建立连接会发生以下问题 image-20230718175045894

  3. 注意 (1)TCP的标准规定,SYN=1的报文段不能携带数据,但要消耗掉一个序号。 (2)TCP的标准规定,普通的确认报文段如果不携带数据,则不消耗序号。

2. TCP的连接释放(四次挥手)

  1. 四报文挥手过程 image-20230718182458129

  2. 若不等待2MSL则有可能发生以下情况

    最后一个确认报文丢失,导致服务器进程陷入最后确定状态,无法进入关闭状态

    image-20230718182524772

  • TCP服务器进程每收到一次TCP客户进程的数据,就重新设置并启动保活计时器(2小时定时)
  • 若保活计时器定时周期内未收到TCP客户进程发来的数据,则当保活计时器到时后,TCP服务器进程就向TP客户进程发送一个探测报文段,以后则每隔75秒钟发送一次。若一连发送10个探测报文段后仍无TCP客户进程的响应,TCP服务器进程就认为TCP客户进程所在主机出了故障,接着就关闭这个连接。

5.8 TCP的运输连接管理
http://binbo-zappy.github.io/2024/11/18/计算机网络/5-8-TCP的运输连接管理/
作者
Binbo
发布于
2024年11月18日
许可协议