关于TCP的三次握手,分为三个步骤。
下图是抓包工具显示出来的,方便理解。
1.(见第一行)客户端发送数据包给服务器,此时状态为【SYN】,相当于是客户端给服务器打招呼,SYN只有在双方初次打招呼时才会出现。
2.(见第二行)服务器收到客户端发来的数据包,服务器给客户端回一个数据包,此时状态为【SYN】【ACK】,这里的SYN表示的是第一次服务器与客户端打招呼,ACK是确认的意思,表示收到上一次请求,意思是我已经收到了你的第一次打招呼,所以有这个状态。
3.(见第三行)客户端收到服务器发来得数据包,并再次发数据包给服务器表示收到你的回复,此时状态为【ACK】,这里没有SYN,因为双方已经打过一次招呼了,故此时这有ACK这个状态。这里为止TCP三次握手就结束了。
第一步骤的seq=0表示源端序列号为0,第二步骤的seq=0,ack=1表示目标端的序列号也为0,ack为1是从第一步骤的seq+1得来的,它确认的是第一步骤的seq=0收到,还有就是表示下一次发过来的序列号是1.第三步骤的seq为1,ack=1,它是表示确认收到第二步骤。由第二步骤的seq+1得来。