ETHERNET数据包格式( IP & UDP & ICMP & ARP )
ETHERNET数据包格式( IP & UDP & ICMP & ARP )
ETHERNET数据包格式
该值在 /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 )的更多相关文章
- TCP/IP, UDP, ICMP, ARP协议族简介--纯图慎点
ISO/OSI的网络模型架构 TCP/IP参考模型的层次结果 以太网头部结构 以太网属于数据链路层, 属于最基本的协议结构 IP协议 IP协议为TCP, UDP, ICMP提供最基本的数据传输通路 I ...
- [转帖]IP /TCP协议及握手过程和数据包格式中级详解
IP /TCP协议及握手过程和数据包格式中级详解 https://www.toutiao.com/a6665292902458982926/ 写的挺好的 其实 一直没闹明白 网络好 广播地址 还有 网 ...
- [na]ip数据包格式
IP Datagram Structure 字段名 解释 版本 IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6. 首部长度 IP报头的长度.固定部分的长度(20字节)和可变部分的长 ...
- IP数据包格式
IP数据包格式 0 4 8 16 31 |4位版本 | 4位首部长度 | 8位服务类型 | 16位总长度(字节数)| |16位标识 | 3位标志 | 13位片偏移 | |8位生存时间| 8位协议 | ...
- 以太网数据包、IP包、TCP/UDP 包的结构(转)
源:以太网数据包.IP包.TCP/UDP 包的结构 版本号(Version):长度4比特.标识目前采用的IP协议的版本号.一般的值为0100(IPv4),0110(IPv6). IP包头长度(Head ...
- 网络:W5500 UDP数据包格式注意事项
1. 主题 使用W5500测试UDP功能,发现收到的数据包和wireshark抓包的数据不同. 原来W5500接收寄存器的数据包并不是网络上的数据流,而是经过内部处理后展现出来的. 对于这个问题目前 ...
- IM通信协议逆向分析、Wireshark自定义数据包格式解析插件编程学习
相关学习资料 http://hi.baidu.com/hucyuansheng/item/bf2bfddefd1ee70ad68ed04d http://en.wikipedia.org/wiki/I ...
- GPS数据包格式及数据包解析
GPS数据包解析 GPS数据包解析 目的 GPS数据类型及格式 数据格式 数据解释 解析代码 结构体定义 GPRMC解析函数 GPGGA解析函数 测试样例输出 gps数据包格式 gps数据解析 车联网 ...
- 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 ...
随机推荐
- 2016北京PHP39期 ThinkPHP Discuz Dedecms 微信开发视频教程
2016北京PHP39期 ThinkPHP Discuz Dedecms 微信开发视频教程 所有项目均带有软件,笔记,视频,源码 日期 课程(空内容代表放假) 2015/7/10 星期五 开学典礼 ...
- 执行mount命令时找不到介质或者mount:no medium found的解决办法
使用vmware时,在虚拟机设置里,设置CD/DVD为系统镜像,挂载时,有时会有找不到介质或者no medium found之类的提示. 根本原因是iso镜像并没有加载到虚拟机系统内. 解决办法: 首 ...
- Linux第八次学习笔记
系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 输入操作是从I/O设备拷贝数据到主存. I/O→主存 输出操作是从主存拷贝数据到I/O设备. 主存→I/O Unix I/O ...
- 20145215《Java程序设计》第10周学习总结
20145215<Java程序设计>第十周学习总结 教材学习内容总结 网络编程 网络概述 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定 ...
- 闭包拾遗 & 垃圾回收机制
闭包拾遗 之前写了篇<闭包初窥>,谈了一些我对闭包的浅显认识,在前文基础上,补充并且更新些对于闭包的认识. 还是之前的那个经典的例子,来补充些经典的解释. function outerFn ...
- [C++基础]一个比较常用的配置文件/初始化文件读取程序
在编程中,我们经常会遇到一些配置文件或初始化文件.这些文件通常后缀名为.ini或者.conf,可以直接用记事本打开.里面会存储一些程序参数,在程序中直接读取使用.例如,计算机与服务器通信,服务器的ip ...
- Java并发编程-CopyOnWriteArrayList
CopyOnWriteArrayList原理 首先每次写操作,都将数组copy一份,并赋值给arrays 读操作读不加锁 写操作加锁 ReentrantLock 因为每次写都要copy数组,这是一项繁 ...
- 最新微信小程序(应用号)视频教程,实战教程
1.1课程介绍,定个小目标 http://v.youku.com/v_show/id_XMTc2NzIwNDk1Ng==.html 1.2开发文档简读,了解全貌 ht ...
- Bootstrap系列 -- 37. 基础导航样式
Bootstrap框架中制作导航条主要通过“.nav”样式.默认的“.nav”样式不提供默认的导航样式,必须附加另外一个样式才会有效,比如“nav-tabs”.“nav-pills”之类.比如右侧代码 ...
- Boostrap(2)
网页布局 1.网格布局 网格布局就是把网页分为许多小格子,看起来像table,然后在每个小格子中放我们的内容.当然,我们也可以指定一片区域使用网格系统.网格布局主要是应用在移动设备上的,使用方法如下: ...