很多人被问过TCP的三握四挥,今天来做一个总结
一、三次握手
首先来看一张图
最初,客户机A与服务器B的TCP进程都处于 CLOSED 状态。
然后由服务器B先创建TCB(传输控制块),进入到 LISTEN 状态,准备随时响应客户请求
下面开始三握:
- 第一次握手
A的TCP进程创建TCB(传输控制块),然后向B发出连接请求报文段。段首部中的 同步位SYN=1,同时选择一个初始序列号seq=x;(SYN报文段不能携带数据,但需要消耗一个序列号)这时客户端A进入到 SYN-SENT(同步已发送)状态。
- 第二次握手
B收到连接请求报文段,如果同意建立连接,则向A发送确认。在确认报文段中 同步位SYN=1、确认位ACK=1、确认号ack=x+1(对接收的序列号seq=x的报文段进行确认,并期望接收的下一个报文段的序号seq=x+1