1.TCP连接的建立和终止
1)三路握手
- 客户端发送一个SYN(同步)分解,告诉服务器客户将在连接中发送的数据的初始序列号。
- 服务器发送确认客户的SYN(ACK),同时自己也得发送一个SYN分节,它含有服务器将在同一连接中发送的数据的初始序列号。
- 客户端发送确认服务器的SYN(ACK)
2)TCP连接终止-四路挥手
- 主动端发送FIN分节
- 被动端接受,并由TCP发送ACK
- 一段时间后,被动端发送FIN分节
- 主动段接受并发送ACK
3)TCP状态转换图
4)观察分组
说明:客户端、服务端的MSS可以不同。
2.TIME_WAIT状态
MSL(最长分节生命期)
该状态有两个存在的理由:
1)可靠地实现TCP全双工连接的终止
执行主动关闭的那一端处于TIME_WAIT状态:因为可能不得不重传最终那个ACK。
2)允许老的重复分节在网络中消逝
假设在12.106.32.254的1500端口和206.168.112.219的21端口之间有一个TCP连接。关闭这个连接,过一段时间后在相同的IP地址和端口之间建立另一个连接。
TCP必须防止来自某个连接的老的重复分组在该连接已终止后再现,从而被误解成属于同一连接的某个新的化身的分组。