TCP协议的核心是可靠的数据传输,而保证传输是可靠的那就要求客户端和服务端双方都具备正常的收发功能。
基于此,第一次握手的时候,当服务端接收到这个SYN请求时,表明客户端要进行TCP连接,同步序列号seq=x,那么从服务端的角度来看:
1、客户端的发送能力是正常的;
服务端接收到请求后,那么也要告诉客户端,自己的收发功能也是正常的,同时也想知道客户端的接收能力是否是正常的,于是有了第二次握手:同步序列号seq=y,同步确认ack=x+1。
当客户端接收到这个请求的时候,从客户端的角度来说:
2、接收到了seq=y,证明服务端的发送能力是正常的;
3、接收到了ack=x+1,证明服务端确确实实可靠地拿到了自己发送的请求seq=x,并且在这个基础上处理后返回给自己,服务端的接收能力是正常的;
第三次握手自然就是客户端拿到了服务端给的seq=y,并加工成ack=y+1返回给服务端,从服务端的角度来说:
4、接收到了ack=y+1,证明客户端的接收能力是正常的。
根据以上4点,才可以确认双方具备可靠数据传输的能力。
标签:seq,ack,握手,TCP,三次,接收,服务端,客户端 From: https://www.cnblogs.com/linkup/p/18428194