恰逢须要实现一个简单的web服务器,在调试中发现使用chrome访问的时候,彷佛会发出3个包裹,只有一个有效,其余两个不知道是干啥的,因而准备用wireshark抓包html
期间了解到ping使用icmp协议,抓包中发现,无论是TCP/IP仍是ICMP,都没有本身发给本身的包python
无奈用google一搜寻,才发现web
相似发给127.0.0.1的包,是发给回环设备的,wireshark并不能抓到, 参见 https://wiki.wireshark.org/CaptureSetup/Loopbackchrome
须要使用rawcap这款工具浏览器
管理员权限打开CMD,而后跑这款工具就好了,抓的包再用wireshark分析就好了服务器
顺便继续下此次抓包游戏~(第一次吧)多线程
服务端跑起来后,用chrome访问,发现老是会出现多个REQUEST,不禁得疑惑了,多出的REQUEST是在握手吗,仍是浏览器做祟?工具
使用rawcap抓包oop
wireshark 分析ui
结合服务端输出,第一张图是没有"数据传输"的链接,第二张是"成功的链接",里面有HTTP协议传输的报文
参考这篇文章:http://blog.chinaunix.net/uid-9112803-id-3212041.html,还须要参考TCP链接的断开
我先是对第二张图进行了分析,在开头发现了TCP链接创建的三次握手,irdmi=8000 端口
在结尾也发现了TCP链接断开的迹象,可是不像网上看到博文同样,分别发送了一次带FIN的TCP报文
图一也发现了TCP链接的创建,断开,只是中间少了HTTP报文的传输
由此推断是浏览器发出了屡次TCP握手,多是减小由于数据受损带来TCP链接受损而须要从新请求浪费的时间
虽然对TCP链接没有深入的认识,但仍是勉强分析完成了任务,用python抄了个服务端,多线程的,可是可能存在内存泄漏