5.8 TCP的运输连接管理
5.8 TCP的运输连接管理
- TCP是面向连接的协议,它基于运输连接来传送TCP报文段。
- TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。
- TCP运输连接有以下三个阶段:
- 建立TCP连接
- 数据传送
- 释放TCP连接
- TCP的运输连接管理就是使运输连接的建立和释放都能正常地进行。
1. TCP的连接建立(三次握手)
TCP的连接建立要解决以下三个问题:
- 使TCP双方能够确知对方的存在
- 使TCP双方能够协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)
- 使TCP双方能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。
三次握手建立连接的过程
也就是使用三个TCP报文建立连接
- 传输控制块
- TCP连接表
- 指向发送和接收缓存的指针
- 指向重传队列的指针
- 当前的发送和接收序号
- 传输控制块
两报文建立连接会发生以下问题
注意 (1)TCP的标准规定,SYN=1的报文段不能携带数据,但要消耗掉一个序号。 (2)TCP的标准规定,普通的确认报文段如果不携带数据,则不消耗序号。
2. TCP的连接释放(四次挥手)
四报文挥手过程
若不等待2MSL则有可能发生以下情况
最后一个确认报文丢失,导致服务器进程陷入最后确定状态,无法进入关闭状态
- 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的运输连接管理/