Network programming 在IPv4数据包中查找数据类型

Network programming 在IPv4数据包中查找数据类型,network-programming,ipv4,Network Programming,Ipv4,不包括IPv4标头中的选项字段,在标头的20字节之后,数据如下。该数据可能是TCP数据包或UDP等 现在给出一个带有报头和数据的IPv4数据包,如何找出数据中存在哪种类型的传输层数据包TCP/UDP/等?实际上,我正在解析IPv4数据包,所以我需要了解这一点。深度数据包检查?为此任务发布一些开放源代码:。深度数据包检查?为此任务发布一些开放源代码:。IPv4标头的协议字段(请参阅RFC791)将告诉您: 0 1 2

不包括IPv4标头中的选项字段,在标头的20字节之后,数据如下。该数据可能是TCP数据包或UDP等


现在给出一个带有报头和数据的IPv4数据包,如何找出数据中存在哪种类型的传输层数据包TCP/UDP/等?实际上,我正在解析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分配,如下所示:

一些协议编号示例如下:

1  ICMP
6  TCP
17 UDP

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分配,如下所示:

一些协议编号示例如下:

1  ICMP
6  TCP
17 UDP

实际上我刚刚发现,在IPv4的头中,有一个字段叫做protocol。其中,指定了协议。总之,我了解了一个新的库。事实上,我刚刚发现,在IPv4的头中,有一个名为protocol的字段。其中,指定了协议。无论如何,我认识了一个新图书馆。