[英]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.