Networking IP数据包在接收方具有尾部,但在发送方不具有尾部 我有一个简单的C++代码,它构建Syn包并用原始套接字发送它。 我为此分配了54个字节(以太网14个字节)
发送方的Wireshark显示54个字节,但接收方的Wireshark显示60个字节。6个字节作为尾部添加到数据包的末尾 如果我和scapy一起发送数据包,也会发生同样的情况。(发送方54,接收方60)Networking IP数据包在接收方具有尾部,但在发送方不具有尾部 我有一个简单的C++代码,它构建Syn包并用原始套接字发送它。 我为此分配了54个字节(以太网14个字节),networking,tcp,ip,wireshark,Networking,Tcp,Ip,Wireshark,发送方的Wireshark显示54个字节,但接收方的Wireshark显示60个字节。6个字节作为尾部添加到数据包的末尾 如果我和scapy一起发送数据包,也会发生同样的情况。(发送方54,接收方60) 请给出建议?以太网不能发送小于64字节的帧,其中60字节是有效负载,4字节是校验和(FCS)。FCS被硬件剥离,软件从未见过。这就是为什么应用程序只能看到60个字节 因此,您看到添加的额外字节会被硬件添加,对此您无能为力。拖车应该是全零 Wireshark在他们的wiki上有关于这方面的好信息:
请给出建议?以太网不能发送小于64字节的帧,其中60字节是有效负载,4字节是校验和(FCS)。FCS被硬件剥离,软件从未见过。这就是为什么应用程序只能看到60个字节 因此,您看到添加的额外字节会被硬件添加,对此您无能为力。拖车应该是全零
Wireshark在他们的wiki上有关于这方面的好信息:正如@Gille提到的,由于以太网的限制,额外的数据被填充。但IP有一个“长度”字段,它会告诉您有多少数据包是真实的有效负载,有多少是填充。您的代码(以及任何适当的代码)必须能够处理填充,这就是“长度”字段的作用
假设您正在使用IPv4,请查看以下内容:。我说的是“总长度”字段。但我得到的是60个字节,不正确,4个字节的FCS被硬件剥离。