工欲善其事,必先利其器–网络抓包-创新互联

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、分析,甚至可以用来转发,重传等等,抓包可使用的场景很多,排错、验证、测试、核对等,我就举几个例子来说明吧。

创新互联是一家集网站建设,西和企业网站建设,西和品牌网站建设,网站定制,西和网站建设报价,网络营销,网络优化,西和网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

场景一、在一台存储上启用了SNMP服务,随后想通过验证UDP161/162的侦听状态来确认服务是否确实启动了。

详情:最简单的方式就是用进入存储的OS运行类似netstat –anop查看UDP端口状态,还有些同学会条件反射的说telnet一下呗或者用nmap的工具做端口扫描,但是最后发现结果是Open | Filtered,这又有什么意思?除非找到这些工具的使用说明,否则无法明白其输出的意思。但有的时候就是没有太多参考文档,比如netstat显示的UDP端口状态列都是空的,没有任何状态,这代表什么呢?其实网络抓包可以帮助我们。你可以在telnet的同时抓包,结果会发现telnet发起了TCP SYN包,立刻就被对端给Reset掉了,所以用telnet的提议是错误的,用TCP去验证一个UDP端口是否在侦听,显然是南辕北辙了。同样,做nmap扫描的同时抓包,你会发现原来UDP使用ICMP返回消息来判断端口状态。如果端口关闭,那么对端会返回port unreachable,如果没有任何ICMP返回呢?那就说明中间存在包过滤逻辑,这也是为什么nmap扫描显示open | filtered,nmap也无法确认端口状态,因为没有任何ICMP消息返回。所以,nmap的扫描结果不能判断端口状态,必须采取其它手段。不过这不是这个场景的重点,我们的重点是可以通过抓包看到应用程序的行为。

总结:判断端口状态的方式很多,但你是否采用了正确的方式,完全可以通过抓包来判断,它会告诉你一个应用程序的行为,帮助你发现原因。

场景二、发现应用程序与服务器之间的通信很慢。

详情:为什么拿这个场景来说,因为抓包和对TCP的分析在这个场景里几乎就直接问题原因所在了。通过分析TCP分段,我们发现了traffic pattern的变化,延迟由正常的几个ms逐渐转变为了十几个ms,并在之后的流量中看到了Window Full以及最终的ZeroWindow消息。对TCP熟悉的同学立马能够判断出接收端存在处理能力的问题,导致无法及时清理TCP接收缓存,使得队列长度越来越长,根据Little Law和Utilization Law,响应时间会呈指数上升,这也为什么我们会观察到响应时间的变化。还有同学提问中间的交换机/路由器是否有可能发生这样的过载?当然是肯定的,但我们这个场景里不是这个问题,为什么?因为我们抓包没有看到任何重传。

总结:抓包在这个case帮你排除了看起来最有可能是网络问题的问题,TCP的行为非常清晰的指出了问题所在。

最后,给到大家一些建议:

  • 网络包在大部分时候能够告诉你真相,所以用好它很有价值。

  • 网络包告诉你发生了什么,但不会告诉你为什么发生,理解协议行为和分析是你的任务。

  • 不要只看文档,尝试抓一下包,因为真相可能和文档是不同的。

  • 面对海量数据包,需要训练你的眼睛和大脑来过滤消息

  • TCP其实是老好人,不要总是责怪它。理解它,分析它,你会发现错误大部分时候是在别的地方。

  • 新一代数据中心网络十分复杂,用好工具,会帮你解决很多难题。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站题目:工欲善其事,必先利其器–网络抓包-创新互联
分享路径:http://scyanting.com/article/cegede.html