5分钟读懂tcp/ip协议三次握手、四次挥手
TCP协议报文结构
- **ACK:**确认控制字段。1:确认号有效;0:忽略确认号段。
- **SYN:**请求建立连接控制字段
- **FIN:**控制字段,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。
TCP三次握手过程(面试)
1) 第一次握手:
发送请求建立连接控制字段SYN=1, 发送序号seq=x(随机生成,所以用x代替)。
2) 第二次握手:
发送请求建立连接控制字段SYN=1, 同时还会发送确认控制字段ACK=1
发送序号seq=y, 还会发送确认序号ack=x+1(对上一个数据序号信息进行确认)
3) 第三次握手:
发送确认控制字段ACK=1,确认序号ack=y+1
TCP四次挥手过程:
1) 第一次挥手:
发送控制字段FIN=1请求断开连接,序列号seq=x
2) 第二次挥手:
发送确认控制字段ACK=1,确认号ack=x+1
3) 第三次挥手:
发送控制字段FIN=1请求断开连接,序列号seq=y
4) 第四次挥手:
发送确认控制字段ACK=1,确认号ack=y+1
*三次挥手也会存在: 当主动方不合理断开连接时,被动方把ACK,FIN合并发送。