三次握手
- 第一次
SYN=1是连接请求的报文
seq = x 序号是x,表示自己数据的序号是x - 第二次
SYN=1是连接请求的报文
seq = y 序号是y,表示自己数据的序号是y
ACK = 1 表示确认号生效
ack = x+1 表示期望接受数据的序号是x+1 -
第三次
seq = x+1 序号是x+1,表示自己数据的序号是x+1
ACK = 1 表示确认号生效
ack = y+1 表示期望接受数据的序号是y+1
发送方和接收方状态不同
发送方在第二次握手之后就进入建立连接的状态
接收方在第三次握手之后进入建立连接的状态
为什么发送方要发出第三个确认报文呢?
主要原因:已经失效的连接请求报文传送到对方,引起错误
四次挥手
等待计时器
等待2msl的时间
msl: 最长报文段寿命 建议设置2分钟
- 确保发送方的ACK可以到达接收方
- 2msl时间内没有收到,则接收方会重发
- 确认所有的报文都已经过期