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