在IPv4标头中排除选项字段,在20个字节的标头之后,数据如下。该数据可以是TCP数据包,也可以是UDP等。
现在给出一个IPv4数据包(带有标头和数据),如何找出数据中存在哪种类型的传输层数据包(TCP / UDP /等)?实际上我正在解析IPv4数据包,所以我需要理解这一点。
答案 0 :(得分:3)
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
答案 1 :(得分:0)