linux – tcpdump在捕获期间截断到UDP数据包中有用数据的1472字
发布时间:2020-12-14 02:30:17 所属栏目:Linux 来源:网络整理
导读:我正在编写一个与网络一起工作的应用程序.为了进行一些测试,我需要重现前一天的流程.但与此同时,不允许停止当前工作的听众.我也无法重写现有程序以保存传入流.为了解决我的任务,我决定使用tcpdump. 我使用以下命令在目标计算机上运行tcpdump: tcpdump -w ca
我正在编写一个与网络一起工作的应用程序.为了进行一些测试,我需要重现前一天的流程.但与此同时,不允许停止当前工作的听众.我也无法重写现有程序以保存传入流.为了解决我的任务,我决定使用tcpdump.
我使用以下命令在目标计算机上运行tcpdump: tcpdump -w capture.cap -n "dst host host.domain.com and port 5555" 当我用tcpick或scapy读取capture.cap时.我可以看到所有超过1472字节的有用数据被截断为长度为1472.但是在标题中它仍然写入了数据包的原始长度. 有没有办法转储完整的UDP包? 解决方法
如果IP数据包大于发送数据包的网络链路的MTU,则IP会将其分段为适合网络的IP数据包;这是由IP层完成的,而不是UDP层.
以太网的MTU通常为1500字节(最大以太网数据包大小为1518,其中包括14字节的报头,1500字节的有效负载和4字节的FCS).如果没有选项,则IPv4标头为20个字节,UDP标头为8个字节,因此最大UDP有效负载大小为1500-28 = 1472. 因此,IP将数据包拆分为两个或多个片段,并在接收机器上重新组装它们. 有关tcpdump未捕获除第一个片段以外的任何片段的原因的讨论,请参阅相关问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |