TCP/IP三次握手

三次握手
服务器端的 accept 才会返回。
一般情况下服务器端在调用完 socket,bind listen 后会调用 accept 并阻塞等待客户端发起连接
l   第一次握手 :客户端调用 connect 时,触发了连接请求,源主机发送一个同步标志位( SYN )置 1 TCP 数据段。此段中同时标明初始序号( Initial Sequence Number ISN , 假设 ISN J 。向服务器发送了 SYN(ISN=J) 包,这时 connect 进入阻塞状态,等待服务器确认。
l   第二次握手 :服务器监听到连接请求,即收到 SYN(ISN=J) 包,目标主机发回确认数据段,此段中确认标志位( ACK )置 1 ,确认序号字段 (acknowledgement number )+1 (即表明前一个数据段已收到并且没有错误)。同时同步标志位( SYN )同样被置 1 ,而且标明初始序号 ISN K ,开始第二次握手。该阶段发生在 accept 函数内,该函数接收请求向客户端发送确认 ACK(ISN=J+1) ,同时发送一个 SYN (ISN=K) ,即 SYN+ACK 包,然后等待客户端确认。
l   第三次握手 :客户端收到服务器的 SYN(ISN=K) ACK(ISN=J+1) 之后,即对 SYN(ISN=K) 进行确认,发送 ACK(ISN=K+1) ;服务器收到 ACK(ISN=K+1) 时,至此三次握手完毕,连接建立。
 

猜你喜欢

转载自blog.csdn.net/qq_16093323/article/details/79497717