排除IPv4標頭中的選項字段後,數據在20個字節的標頭之後。該數據可能是TCP數據包或UDP等。查找IPv4數據包中的數據類型
現在給出了一個IPv4數據包(帶有頭和數據),如何找出數據中存在哪種類型的傳輸層數據包(TCP/UDP/etc。)?其實我解析一個IPv4數據包,所以我需要了解這一點。
排除IPv4標頭中的選項字段後,數據在20個字節的標頭之後。該數據可能是TCP數據包或UDP等。查找IPv4數據包中的數據類型
現在給出了一個IPv4數據包(帶有頭和數據),如何找出數據中存在哪種類型的傳輸層數據包(TCP/UDP/etc。)?其實我解析一個IPv4數據包,所以我需要了解這一點。
IPv4報頭的協議字段(參見RFC791)會告訴你:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
協議號由IANA分配的,在這裏列出:
http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
一些示例協議號碼是:
1 ICMP
6 TCP
17 UDP
其實我剛剛發現,在h IPv4的eader,有一個稱爲協議的字段。在那裏,協議被指定。無論如何,我知道一個新的圖書館。 – avd