本经验是本人结合自己的经验和学习经历进行编写的,适用于socket编程的新手!
TCP的连接建立――工具/原料计算机TCP的连接建立――方法/步骤
TCP的连接建立 1、
TCP的连接建立
TCP是面向连接的协议,TCP连接经过3次握手
(1)服务器必须准备好接收来自客户端的连接请求,通过socket,bind和listem 函数来实现。客户通过调用connect 函数进行主动打开,这引起客户端发送一个SYN分节到服务器端。
注解:服务器调用socket,bind和listem 函数,使其进入listen状态
客户通过调用connect 函数进行主动打开,这引起客户端发送一个SYN分节到服务器端,其状态为SYN_SEND状态
TCP的连接建立 2、
(2)服务器收到客户端发来的SYN分节之后,必须发送ACK对其进行确认,同时发送-个自己的SYN分节给客户端,表示接受客户端建立连接的请求
注解:服务端:当收到SYN分节,并且发送ACK和SYN的时候,它的状态转变为SYN_RECV状态。
客户端:当收到服务端的ACK之后,其状态变为ESTABLISHED
TCP的连接建立 3、
(3)客户端发送ACK确认服务端的SYN,连接建立成功。
注解:当服务端收到客户端的ACK时候,就转为数据状态ESTABLISHED
直观一点可以参照一下下面的图片:
TCP的连接建立――注意事项客户端connect函数牵扯到客户端两种状态的改变 :SYN_SEND ESTABLISHED服务端acceptt函数牵扯到客户端两种状态的改变 :SYN_RECVESTABLISHED