linux – tcpdump在捕获期间截断到UDP数据包中有用数据的1472字节

linux – tcpdump在捕获期间截断到UDP数据包中有用数据的1472字节,第1张

概述我正在编写一个与网络一起工作的应用程序.为了进行一些测试,我需要重现前一天的流程.但与此同时,不允许停止当前工作的听众.我也无法重写现有程序以保存传入流.为了解决我的任务,我决定使用tcpdump. 我使用以下命令在目标计算机上运行tcpdump: tcpdump -w capture.cap -n "dst host host.domain.com and port 5555" 当我用tcpic 我正在编写一个与网络一起工作的应用程序.为了进行一些测试,我需要重现前一天的流程.但与此同时,不允许停止当前工作的听众.我也无法重写现有程序以保存传入流.为了解决我的任务,我决定使用tcpdump.

我使用以下命令在目标计算机上运行tcpdump:

tcpdump -w capture.cap -n "dst host host.domain.com and port 5555"

当我用tcpick或scapy读取capture.cap时.我可以看到所有超过1472字节的有用数据截断为长度为1472.但是在标题中它仍然写入了数据包的原始长度.
我可以判断,UDP数据包分裂为几个然后再连接.但是tcpdump可能会过滤掉所有没有标头的软件包(应该只出现在第一个数据包中)

有没有办法转储完整的UDP包?

解决方法 如果IP数据包大于发送数据包的网络链路的MTU,则IP会将其分段为适合网络的IP数据包;这是由IP层完成的,而不是UDP层.

以太网的MTU通常为1500字节(最大以太网数据包大小为1518,其中包括14字节的报头,1500字节的有效负载和4字节的FCS).如果没有选项,则IPv4标头为20个字节,UDP标头为8个字节,因此最大UDP有效负载大小为1500-28 = 1472.

因此,IP将数据包拆分为两个或多个片段,并在接收机器上重新组装它们.

有关tcpdump未捕获除第一个片段以外的任何片段的原因的讨论,请参阅相关问题.

总结

以上是内存溢出为你收集整理的linux – tcpdump在捕获期间截断到UDP数据包中有用数据的1472字节全部内容,希望文章能够帮你解决linux – tcpdump在捕获期间截断到UDP数据包中有用数据的1472字节所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/1034086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存