gpt4 book ai didi

计算 tcp 数据包结构中的有效负载

转载 作者:行者123 更新时间:2023-11-30 14:43:40 27 4
gpt4 key购买 nike

当我想分割一个 tcp 数据包并分别打印每个部分(eth/ip/tcp/payload)时,如何计算有效负载的结尾?

PrintData(Buffer, iphdrlen);
PrintData(Buffer + iphdrlen, tcpheader->data_offset*4);
PrintData(Buffer + iphdrlen + tcpheader->data_offset*4, ??? );

我试过了

PrintData( Buffer + iphdrlen + tcpheader->data_offset*4, ( Size - tcpheader->data_offset*4 - iphdr->ip_header_len*4 ) );

但是所有数据包都被截断了。我要在这里传递哪个值?

问候

最佳答案

IP header 包含 IP header 和负载大小的长度。 IP header 还包含 IP header 大小字段等于 32 位字的数量:

PrintData(Buffer + (iphdrlen * 4) + tcpheader->data_offset * 4, iplen - (iphdrlen * 4 + tcpheader->data_offset * 4));

据我了解,您忘记将偏移量中的 iphdrlen 乘以 4

关于计算 tcp 数据包结构中的有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53806105/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com