恰逢需要实现一个简单的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抄了个服务端,多线程的,但是可能存在内存泄漏

 

posted on 2015-04-02 23:44  Gemmeg  阅读(2406)  评论(0编辑  收藏  举报