上次在论坛上看到一篇好文章,出自西门子专家天团冯学卫专家关于“如何将TCP理论知识应用到实际的项目,并解决实际项目的问题”。跟大家分享一下,建议关注收藏,需要的时候可以借鉴一下。
这个案例涉及到了TCP协议的工作原理,我们知道应用层的数据需要借助TCP传输层协议传输时,需要在通信的伙伴之间建立TCP的连接,这也是经常被称为“三次握手”,如下图所示:
三次握手的过程中,标志位和序列号按如下图方式被设置:
第一次握手:客户端发送标志位SYN=1, 发送序列号seq =x(这里x是客户端操作系统初始化的一个序列号)包到服务器,并进入SYN_SENT状态,等待服务器确认;
第二次握手:服务器收到SYN包,并会确认客户的SYN 请求,
服务器会发送一个标志位SYN=1 和ACK=1,确认序列号 ack=x+1(x是刚从客户端中接收到的发送序列号,通过x+1服务器确认收到了客户端SYN请求包),发送序列号 seq=y(这里y是服务器操作系统初始化的一个序列号)包到客户端,此时服务器进入SYN_RECV状态&#x