参考文章
http://www.cnblogs.com/Jessy/p/3535612.html
http://blog.csdn.net/whuslei/article/details/6667471/
利用wireshark软件可以很清晰地理解tcp建立和释放的过程。
我们用TCP/UDP Socket调试工具 来模拟tcp的发送。
两台电脑,一台作为客户端,ip为192.168.1.100
另一台作为服务器,ip为192.168.134.248
服务器的监听端口设为8101,开始监听。
在客户端机器上打开wireshark软件,开启监听,并且规则设置成 tcp.port==8101 点击Apply应用,这样软件就能帮我们过滤掉很多不关心的内容,只剩下相应的8101端口的tcp包。
点击客户端的tcp工具的连接按钮,发现wireshark监控界面,出现三条记录,即三次握手。
简单分析下:
1)1.100向134.248发起请求,标志位SYN置1,Seq=0
2)134.248向1.100发送确认信息,标志位SYN和ACK置1,Seq=0,Ack=1(0+1)
3) 1.100想134.248发送消息,标志位ACK置1,Seq=1 Ack=1
结合这张图看
用客户端发送几条数据
对应的包
1)客户端发送“1212” 发送的长度为4, 标志位PSH置1,ACK置1,Seq=1,Ack=1,客户端窗口大小win=64240
2)服务器收到,发送确认信息,标志位ACK置1,Seq=1,ACK=5(1+4-1+1),告诉客户端,服务器的窗口大小为64240(数据以消化)
3)客户端再次发送“12”
4)服务器收到,发送确认信息,消息未消化,缓存窗口大小为64238(64240-2)
结合这张图
客户端点击断开连接