16 套路篇 | 如何分析常见的TCP问题?
该思维导图由 AI 生成,仅供参考
在 Linux 上检查网络的常用工具
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何分析常见的TCP问题,包括使用常用的网络分析工具和技巧。作者首先介绍了在Linux上检查网络的常用工具,如dstat、ss、netstat和nstat等命令,并详细讲解了它们的使用方法和注意事项。此外,作者还强调了tcpdump在网络问题分析中的重要性,以及推荐了轻量级追踪方式TCP Tracepoints。文章还总结了TCP问题分析的惯用套路,包括避免使用netstat命令、考虑使用tcpdump抓包以及了解并尝试使用TCP Tracepoints。最后,作者提出了课后作业问题,引发读者思考和讨论。整体而言,本文通过介绍常用的网络分析工具和技巧,帮助读者了解如何快速分析和解决TCP相关的网络问题。
《Linux 内核技术实战课》,新⼈⾸单¥59
全部留言(4)
- 最新
- 精选
- 邵亚方置顶课后作业答案: - 请问 tcpdump 在解析内核缓冲区里的数据时,为什么使用 PACKET_MMAP 这种方式?你了解这种方式吗?这样做的好处是什么? 评论区有同学已经回答的很好了, “PACKET_MMAP减少了系统调用,不用recvmsg就可以读取到捕获的报文,相比原始套接字+recvfrom的方式,减少了一次拷贝和一次系统调用。”2020-10-1111
- 那时刻请问老师Wireshark和tcpdump在实现原理上,是否也是监控网卡以内的行为?
作者回复: wireshark跟tcpdump原理是一致的,都是在网卡软中断里抓包的,自然就无法抓取网卡里的错误,所以通常情况下都需要在两端同时抓包来比较。理解工具的原理要比会用工具更加重要。
2020-09-245 - stackWarn1.感谢作者的总结,请教下ss命令或者读proc文件会进行加锁吗?如果会是否影响性能。proc下的meminfo会 2.bpf的性能好和tcpdump的性能差,如何理解。是否 3.后续会出实际的tracepoint或者stap之类的实际案件排查吗?
作者回复: 1.会有锁,而且可能还会关中断,这可能会引起业务网络抖动,我们后面课程里有这方面的案例。 2. ebpf通常情况下性能损耗要小一些,因为他在内核里会进行处理,省去了很多无谓的流程开销,或者说它更有针对性,针对某个特定点来追踪,那么这个点之外的逻辑就不会受影响;而tcpdump一是处理流程长,更耗时,二是它不具有针对性,分析面广,这就导致它的开销大。 3. 这类案例的分析会更偏内核实现,比如借助tracepoint来观察内存申请细节,从tracepoint可以观察到gfp_nofs为什么会引起compact fail,然而这类案例对应用开发者或者运维人员太难了,因为很少有人知道gfs_nofs是什么,甚至很多内核开发者都不清楚. 所以这个课程里我会有意的忽略这些内核实现细节,降低内核的门槛,让更多的人更容易了解内核。不过在加餐篇里会有这方面的一些案例,因为我们这门课还是有内核开发者来看的。
2020-09-2423 - stackWarnPACKET_MMAP减少了系统调用,不用recvmsg就可以读取到捕获的报文,相比原始套接字+recvfrom的方式,减少了一次拷贝和一次系统调用。2020-09-2419