簡體   English   中英

在TCP數據包結構中計算有效負載

[英]Calculating payload in a tcp packet structure

當我想分割一個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標頭包含IP標頭和有效負載大小的長度。 IP標頭還包含IP標頭大小字段,該字段等於32位字的數量

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

不知所措,您忘記將iphdrlen乘以4的偏移量

TCP格式給出了TCP標頭中每個字段的含義,包括諸如數據包數據的起始位置和數據包數據長度之類的詳細信息。

請注意,TCP數據包標題中的項目對每個字段均使用“網絡順序”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM