首页 > 数码专栏 > 正文

简述TCP连接建立的过程

数码专栏 时间:2024-06-16 09:02:08

简述tcp连接建立的三个阶段 

TCP连接建立的三个阶段如下:

1. LISTEN:服务器创建fd并执行bind()、listen()监听这个fd,等待客户端的连接请求。

2. SYN-SENT:客户端调用connect函数向服务器发送syn包,进入SYN-SENT状态,等待服务器的确认。

3. SYN-RECEIVED:服务器收到客户端的syn包后,向客户端发送ack包,确认收到了客户端的syn包,同时发送一个syn包。客户端收到服务器发送的ack包后,进行回复,发送ack包。这个过程被称为三次握手。完成后,客户端和服务器都进入建立状态。

需要注意的是,三次握手过程中,服务器会将客户端的信息(五元组)存入到半链接队列(syn队列)中,当收到客户端的ack包后,将其移动到全链接队列(accept队列)中,等待accept函数将其取出并分配一个fd。这个节点就是tcp的控制块,也是tcb,它一直到调用close函数才会销毁。

郑重声明:图文由自媒体作者发布,我们尊重原作版权,但因数量庞大无法逐一核实,图片与文字所有方如有疑问可与我们联系,核实后我们将予以删除。