TCP/IP三次握手
2018-03-09 15:04
218 查看
三次握手服务器端的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)时,至此三次握手完毕,连接建立。
一般情况下服务器端在调用完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)时,至此三次握手完毕,连接建立。
相关文章推荐
- TCP/IP三次握手与四次挥手(转)
- tcp/ip三次握手、四次挥手
- 服务器和客户机通过TCP/IP三次握手建立一个连接
- TCP/IP连接为什么要三次握手,而不是两次
- TCP/IP 三次握手,温故知新
- TCP/IP的三次握手和四次分手以及超时机制
- TCP/IP三次握手
- TCP/IP的三次握手连接和四次握手关闭【问题:为什么建立连接协议是三次握手,而关闭连接却是四次握手?】
- TCP/IP 三次握手
- TCP/IP三次握手四次挥手详解
- TCP/IP三次握手详解
- TCP/IP三次握手
- TCP/IP三次握手和四次挥手
- TCP/IP建链三次握手和断开链接四次握手(转载)
- (转载)TCP/IP的三次握手与四次挥手
- TCP/IP三次握手四次挥手
- TCP/IP 连接三次握手与释放四次握手
- TCP/IP 三次握手
- 图解 TCP IP 协议:三次握手、四次挥手
- tcp/ip三次握手与四次握手