ETHERNET数据包格式( IP & UDP & ICMP & ARP )

ETHERNET数据包格式

一、ETHERNET 数据包的协议类型 TYPE 的值为 0x0800:IP协议,即:ETHERTYPE_IP,
    该值在 /usr/include/net/ethernet.h中有定义。ETHERNET 数据包的格式又细分
    为如下几种情况:

(1) IP 报头中的协议号码为 IPPROTO_TCP,其值为 6 。ETHERNET 数据包的格式如下:

|<------------ Ethernet Header ---------->|
    -------------------------------------------------------------------------
    |DST MAC ADDR |SRC MAC ADDR |    TYPE     |   IP PACKET  |  TCP PACKET  |
    -------------------------------------------------------------------------
    |<- 6 bytes ->|<- 6 bytes ->|<- 2 bytes ->|<- 20 bytes ->|<- 20 bytes ->|

如下例所示:

00 00 21 cd a8 48 00 0a 98 1f 0a 8a 08 00 45 00
    -- -- -- -- -- -- -- -- -- -- -- -- -- --

00 28 38 13 40 00 7e 06 85 48 a6 6f e5 87 a6 6f
                         --       -- -- -- -- -- --

e5 0d 04 3a 01 95 bc 5d 5a 8b 25 69 20 82 50 11
    -- -- -- -- -- --

41 87 cc 34 00 00 00 00 00 00 00 00 00 00 00 00
    -- --

其中作如下说明:

00 00 --- 08 00         : ETHERNET PACKET,共 14 个字节

00 00 21 cd a8 48 : 接收方的 MAC 地址,6 个字节
          00 0a 98 1f 0a 8a : 发送方的 MAC 地址,6 个字节
          08 00             : 协议类型,2 个字节,
                              0x0800:IP协议,该值在/usr/include/net/ethernet.h
                                              中有定义,其值为:ETHERTYPE_IP

45 00 --- e5 0d         : IP PACKET ,共 20 个字节

06                : 协议类型,1 是 ICMP,6 是 TCP,17 是 UDP
          a6 6f e5 87       : 发送方 IP 地址,4 个字节,十进制:166.111.229.135
          a6 6f e5 0d       : 接收方 IP 地址,4 个字节,十进制:166.111.229.13

04 3a --- 00 00         : TCP PACKET,共 20 个字节

04 3a             : 发送方的端口号,2 个字节,其十进制表示为:1082
          01 95             : 接收方的端口号,2 个字节,其十进制表示为:405
          41 87             : TCP PACKET 的窗口大小

(2) IP 报头中的协议号码为 IPPROTO_UDP,其值为 17 。ETHERNET 数据包的格式如下:

|<------------ Ethernet Header ---------->|
    ------------------------------------------------------------------------
    |DST MAC ADDR |SRC MAC ADDR |    TYPE     |   IP PACKET  | UDP PACKET  |
    ------------------------------------------------------------------------
    |<- 6 bytes ->|<- 6 bytes ->|<- 2 bytes ->|<- 20 bytes ->|<- 8 bytes ->|

如下例所示:

ff ff ff ff ff ff 00 80 c8 f7 0b 99 08 00 45 00
    -- -- -- -- -- -- -- -- -- -- -- -- -- --

00 4e 0b 46 00 00 80 11 24 ff c0 a8 44 0a c0 a8
                         --

44 ff 00 89 00 89 00 3a fa 63 80 37 01 10 00 01
          -- -- -- -- -- -- -- --

00 00 00 00 00 00 20 45 4e 46 44 45 49 45 50 45

4e 45 46 43 41 43 41 43 41 43 41 43 41 43 41 43

41 43 41 43 41 42 4c 00 00 20 00 01

其中作如下说明:

ETHERNET PACKET、IP PACKET 的报头格式同 (1) ,
                        其中:第二行的 11 表示 IPPROTO_UDP 协议。

00 89 --- fa 63         : UDP PACKET,共 8 个字节

00 89             : 发送方的端口号,2 个字节,其十进制表示为:137
          00 89             : 接收方的端口号,2 个字节,其十进制表示为:137
          00 3a             : UDP 包长度,其十进制表示为:58
          fa 63             : UDP 检查和

(3) IP 报头中的协议号码为 IPPROTO_ICMP,其值为 1 。ETHERNET数据包的格式如下:

|<------------ Ethernet Header ---------->|
    -------------------------------------------------------------------------
    |DST MAC ADDR |SRC MAC ADDR |    TYPE     |   IP PACKET  | ICMP PACKET |
    -------------------------------------------------------------------------
    |<- 6 bytes ->|<- 6 bytes ->|<- 2 bytes ->|<- 20 bytes ->|<- 8 bytes ->|

如下例所示:

00 0a 98 1f 0a 8a 00 00 21 cd a8 48 08 00 45 00

00 54 00 00 40 00 40 01 d0 97 a6 6f f9 0d ca 70
                         --

00 24 08 00 bc 04 1b 21 00 01 c3 e6 2b 41 3b ae
          -- -- -- -- -- -- -- --

0b 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15

16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25

26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35

36 37

其中作如下说明:

ETHERNET PACKET、IP PACKET 的报头格式同 (1) ,
                        其中:第二行的 01 表示 IPPROTO_ICMP 协议。

08 00 --- 00 01         : ICMP PACKET,共 8 个字节

08                : ICMP_TYPE,1 个字节。
          00                : ICMP_CODE,1 个字节。
          bc 04             : ICMP 检查和
          1b 21             : ICMP 标识
          00 01             : ICMP 数据包序列号

二、ETHERNET 数据包的协议类型 TYPE 的值为 0x0806:ARP协议,即:ETHERTYPE_ARP,
    该值在 /usr/include/net/ethernet.h中有定义。ETHERNET 数据包的格式如下:

|<------------ Ethernet Header ---------->|
    ------------------------------------------------------------
    |DST MAC ADDR |SRC MAC ADDR |    TYPE     | ARP 协议数据包 |
    ------------------------------------------------------------
    |<- 6 bytes ->|<- 6 bytes ->|<- 2 bytes ->|<-- 28 bytes -->|

如下例所示:

ff ff ff ff ff ff 00 0a 98 1f 0a 8a 08 06 00 01
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

08 00 06 04 00 01 00 0a 98 1f 0a 8a a6 6f e5 01
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

00 00 00 00 00 00 a6 6f e5 58 00 00 00 00 00 00
    -- -- -- -- -- -- -- -- -- --

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

其中作如下说明:

ff ff --- 08 06         : ETHERNET PACKET,共 14 个字节

ff ff ff ff ff ff : 接收方的 MAC 地址,6 个字节
          00 0a 98 1f 0a 8a : 发送方的 MAC 地址,6 个字节
          08 06             : 协议类型,2 个字节,
                              0x0806:ARP协议,在/usr/include/net/ethernet.h
                                             中有定义,其值为:ETHERTYPE_ARP

00 01 --- f9 58         : ARP PACKET ,共 28 个字节

00 01             : 硬件地址格式,2 个字节
          08 00             : 协议地址格式,2 个字节
          06                : 硬件地址长度,1 个字节
          04                : 协议地址长度,1 个字节
          00 01             : 可选项,2 个字节,0x0001:ARPOP_REQUEST,
                                              0x0002:ARPOP_REPLY
                              该值在 /usr/include/net/if_arp.h中有定义
          00 0a 98 1f 0a 8a : 发送方的 MAC 地址,6 个字节
          a6 6f e5 01       : 发送方的 IP 地址, 4 个字节,十进制:166.111.229.1
          00 00 00 00 00 00 : 接收方的 MAC 地址,6 个字节
          a6 6f e5 58       : 接收方的 IP 地址, 4 个字节,十进制:166.111.229.88

 

ETHERNET数据包格式( IP & UDP & ICMP & ARP )的更多相关文章

  1. TCP/IP, UDP, ICMP, ARP协议族简介--纯图慎点

    ISO/OSI的网络模型架构 TCP/IP参考模型的层次结果 以太网头部结构 以太网属于数据链路层, 属于最基本的协议结构 IP协议 IP协议为TCP, UDP, ICMP提供最基本的数据传输通路 I ...

  2. [转帖]IP /TCP协议及握手过程和数据包格式中级详解

    IP /TCP协议及握手过程和数据包格式中级详解 https://www.toutiao.com/a6665292902458982926/ 写的挺好的 其实 一直没闹明白 网络好 广播地址 还有 网 ...

  3. [na]ip数据包格式

    IP Datagram Structure 字段名 解释 版本 IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6. 首部长度 IP报头的长度.固定部分的长度(20字节)和可变部分的长 ...

  4. IP数据包格式

    IP数据包格式 0 4 8 16 31 |4位版本 | 4位首部长度 | 8位服务类型 | 16位总长度(字节数)| |16位标识 | 3位标志 | 13位片偏移 | |8位生存时间| 8位协议 | ...

  5. 以太网数据包、IP包、TCP/UDP 包的结构(转)

    源:以太网数据包.IP包.TCP/UDP 包的结构 版本号(Version):长度4比特.标识目前采用的IP协议的版本号.一般的值为0100(IPv4),0110(IPv6). IP包头长度(Head ...

  6. 网络:W5500 UDP数据包格式注意事项

     1. 主题 使用W5500测试UDP功能,发现收到的数据包和wireshark抓包的数据不同. 原来W5500接收寄存器的数据包并不是网络上的数据流,而是经过内部处理后展现出来的. 对于这个问题目前 ...

  7. IM通信协议逆向分析、Wireshark自定义数据包格式解析插件编程学习

    相关学习资料 http://hi.baidu.com/hucyuansheng/item/bf2bfddefd1ee70ad68ed04d http://en.wikipedia.org/wiki/I ...

  8. GPS数据包格式及数据包解析

    GPS数据包解析 GPS数据包解析 目的 GPS数据类型及格式 数据格式 数据解释 解析代码 结构体定义 GPRMC解析函数 GPGGA解析函数 测试样例输出 gps数据包格式 gps数据解析 车联网 ...

  9. H264的RTP负载打包的数据包格式,分组,分片

    H264的RTP负载打包的数据包格式,分组,分片 1.    RTP数据包格式 RTP报文头格式(见RFC3550 Page12): 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 ...

随机推荐

  1. 【iOS功能实现】之利用UIDocumentInteractionController打开和预览文档

    iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller.此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件.而且,从4.2开始, ...

  2. 数据挖掘系列(4)使用weka做关联规则挖掘

    前面几篇介绍了关联规则的一些基本概念和两个基本算法,但实际在商业应用中,写算法反而比较少,理解数据,把握数据,利用工具才是重要的,前面的基础篇是对算法的理解,这篇将介绍开源利用数据挖掘工具weka进行 ...

  3. 使用OneNote的COM组件,实现OCR功能。

    背景 在业务系统开发的过程中,很多情况下会去识别图片中的相关信息,并且把信息录入到系统中.现在希望通过自动化的方式录入,就有了以下的工作.在对比了几个OCR软件在中文识别方面的准确率后,决定使用微软的 ...

  4. Ztree异步加载自动展开节点

    在Ztree的官网Demo中,有自动展开的例子,是通过设置节点属性open:true来实现自动展开的,但是在异步加载中,这个属性设置为true也不会自动展开,因为open:true是指在有子节点的情况 ...

  5. DDD 领域驱动设计-看我如何应对业务需求变化?

    tks: http://www.cnblogs.com/xishuai/p/3972802.html

  6. [C#]Hosting Process (vshost.exe)

    写在前面 最近在群里,有朋友问起这个vshost.exe进程到底是什么?当时确实不知道是个什么东东,给人的感觉是,经常看到它,就是在启动一个项目的时候,经常看到它,就是没细研究它是啥玩意儿.既然遇到了 ...

  7. JavaScript基础---语言基础(1)

    写在前面: 通过四篇博客把JS基础中的基础整理一下,方便自己查阅,这些内容对于实际项目开发中也许并不会在意,但是作为JS的语言基础,自觉还是应该熟悉.在完成这三篇博客(JavaScript基础---语 ...

  8. Javascript基础系列之(二)变量

    javascript 中变量通过var关键字(variable)来声明的. var school = "beijingyizhong" 也可以通过var 关键字给变量多个值. va ...

  9. mysqld参数配置

    这个文件超级大, 查了一下, 大概的作用如下 是储存的格式INNODB类型数据状态下,ibdata用来储存文件的数据而库名的文件夹里面的那些表文件只是结构而已 由于mysql4.1默认试innodb, ...

  10. NABCD模型进行竞争性需求分析

    确定项目:教室管理系统 负责人:李凤娇,高德建 选择比努力更重要.一个项目成功自然离不开组员们的努力.但是,光努力是不够的.还需要用户有需求,能快速实现. 这些东西,看似很虚,却能让我们少走不少弯路. ...