先讲理论
我们知道TCP建立连接需要采用3次握手,如下图所示(该图来自TCP/IP协议族第4版)(这幅图作者可能有个笔误,下面会讲):
可以看到三次握手之前服务器端有个被动打开,这应该是服务器的准备过程,使它能够接受客户端的TCP连接。
下面开始三次握手的过程。
在上图中首先客户端发送一个SYN报文作为同步序号(synchronization)来确保客户端和服务器端的通信按次序传输,同时有一个序号seq(在TCP连接中传送的字节流中的每一个字节都按顺序编号,SYN报文段虽然不携带任何数据,不过还是会消耗一个序号)。
服务器端收到这个报文后返回一个SYN+ACK报文,其中SYN是服务器用来同步它的初始序号的,ACK(acknowledgement)告诉客户端它收到了客户端发来的SY