以太网 以太网帧格式与IP报文分片
2.1.0 以太网 以太网帧格式与IP报文分片
一、以太网数据帧信息简介
以太网有两种类型的数据帧,一种是Ethernet_II另一种是IEEE802.3。
两者并没有明确的规定两种类型的使用场景,通常都是由协议/应用程序的开发者定义的。
通过观察发现:
- 应用程序产生的包大多为Ethernet_II
- 部分网络协议工作时产生的包为IEEE802.3(如:STP产生的BPDU)
DMAC字段(目标的MAC地址)
SMAC字段(发送者的MAC地址)
Type字段(描述Data中的封装的报文类型)常见类型:ARP[0x0806]
、IP[0x0800]
、VLAN[0x8100]
Data字段(用户数据,其中还包含IP报头、TCP/UDP报头)
其中的封装可以看作以下的抽象描述:【 Data数据 】
【 IP报头【Data数据】 】
【 IP报头【TCP报头【用户数据】】 】
FCS字段(以太网校验字段,校验方法为循环冗余检验)
二、以太网数据帧长度
以太网数据帧及封装
以太网帧最短帧长度为64Byte(字节)、最长1518Byte,当超过1518Byte之后的数据帧就需要进行一个分片处理。
以太网帧所占用的长度为:DMAC+SMAC+Type+FCS=18Byte
。
已知最短帧长为64Byte,减去以太网18Byte之后就说明Date字段封装内容最短需要有46Byte。
46Byte中还包含着IP报头与TCP或UDP报头:
- 46Byte减去IP报头的20Byte=
26Byte
- 当内部封装TCP时:26Byte减去TCP报头20Byte=
6Byte
- 当内部封装UDP时:26Byte减去UDP报头8Byte=
18Byte
得出的结果大小,也就是实际用户数据的最小长度。
三、数据填充
如果不满足最短帧长会怎样?
以太网帧中的Data字段会自行填充0,直到满足最短帧长。
疑惑:理论上说以太网帧不满足最小帧长,Data字段会填充0,但在终端所发送的包中并没有体现出来。
以下是抓包用户发送的ICMP数据包结果,可以看了总帧长为45Byte(并没有将FCS字段长度计算在内),用户实际长度为3Byte,完全不符合最小帧长度的要求。
网络设备这边,则是能够正常的进行填充,实现数据帧满足最小帧长要求
网络设备这边可以看到帧长度为60Byte(加上FCS字段4byte就满足了最小64Byte帧长了)
如何计算填充多少字节?
64Byte-18Byte(以太网帧长度)-20Byte(IP报头)-8Byte(ICMP属于UDP报文占8Byte)-3Byte(实际发送长度)=64-18-20-8-3 =15Byte
四、数据分片
以太网帧最短帧长度为64Byte(字节)、最长1518Byte,当超过1518Byte之后的数据帧就需要进行一个分片处理。
为什么数据包需要分片呢?
因为有MTU(最大传输单元)限制,网络设备限制最大传输的MTU大小为1500Byte(此处的1500Byte指的是以太网中Data字段大小限制在1500Byte内)
,超过MTU值的数据包就需要进行分片,将数据包分成小于/等于MTU值大小的数据分片,到了目的地再组装起来。
换名话讲,当以太网帧长度大于1518Byte就需要进行分片。
如果数据包大小大于1518Byte,我强制不分片会怎样?
会禁止发送该不正常的数据包。
以太网 以太网帧格式与IP报文分片相关推荐
- 以太网帧分析与IP报文结构分析(一)
一.实验目的 深入理解Ethernet II帧结构.深入理解IP 报文结构和工作原理,掌握使用Wireshark分析俘获的踪迹文件的基本技能. 二.实验要求 1.实验前应熟悉Wireshark软件的使 ...
- iptables与IP报文分片浅析
背景 192.168.0.11(iperf 服务端) 192.168.0.10(iperf 接收端) 系统因会发送大于MTU的UDP组播包,且用户基于都是基于UDP带端口的组播,但是由于UDP分片 ...
- 网络层——IP协议(IP协议报头IP报文的分片与组装)
1 IP协议报头 各字段解释: 版本号:占4位,指IP协议的版本,有IPv4和IPv6两种,对于IPv4协议该字段就是4 首部长度:占4位,指IP协议的报头长度,范围在20-60字节 区分服务:占8位 ...
- IP报文发送过程和原理
文章目录 1.IP的概念 1.1IP,主机与路由器 1.2IP与TCP的对比 2.IP报头 2.1IP报头格式 2.2各部分作用 2.3IPv4与IPv6 2.4一跳 2.5 8位生存时间 2.6 分 ...
- 以太网数据包、IP包、TCP/UDP 包的结构(转)
源:以太网数据包.IP包.TCP/UDP 包的结构 版本号(Version):长度4比特.标识目前采用的IP协议的版本号.一般的值为0100(IPv4),0110(IPv6). IP包头长度(Head ...
- 计算机网络基础 IP头部报文;IP的分片;
IP头部报文: 第一行: version - 版本:占4比特: IP协议的版本,目前的IP协议版本号为4: Header length - 头部长度:占4比特: 固定部分的长度(20字节)和可变部分的 ...
- 网络知识入门,什么是以太网包,TCP/IP包,MAC头部,IP头部以及TCP头部(六)
目录 一.以太网包 二.协议栈中IP模块的工作方式 1.TCP委托IP模块 2.IP模块的工作方式 三.mac头部 四.何为以太网 1.以太网的定义 2.如何收发以太网包 3.以太网接收网络包详细 4 ...
- [计算机通信网络]以太网的帧格式详解
目录 一.前言 二.以太网的帧格式 Preamble(前导码): SFD(帧开始定界符): Destination Address,Source Address: Type/Len(类型/长度): D ...
- 【Socket网络编程】7.以太网数据包、IP数据包、UDP数据包
以太网数据包.ip数据包.udp数据包 搭配这篇博文服用,效果更好:数据封装 和 数据拆封:https://blog.csdn.net/u011754972/article/details/11794 ...
最新文章
- QT的QGLFunctions类的使用
- java文件下载controller_Java Spring MVC 上传下载文件配置及controller方法详解
- 再见 Typora,这款 Markdown 编辑器开源又免费!
- ReviewForJob——二叉堆优先队列的实现(三种堆节点类型——int + struct HeapNode + struct HeapNode*)
- 【牛客 - 315C】排列(思维,贪心,同优则立证明法)
- android AVB2.0(六)Super动态分区介绍
- Python 输入一些数,统计最大值及其出现的频率,求一个数的全部质因数
- java arraylist length,在Java中调整ArrayList的大小时,无法理解溢出的可能性
- Gitlab-API各状态码解释
- https 带端口_基于scapy模块的8种端口扫描
- android 360 悬浮窗,悬浮窗的实现(如360悬浮窗效果)
- Thinkpad T400 Fan error报错非风扇问题解决一例
- 微信公众号网页登录开发测试步骤详解
- DTM、DEM与DSM的区别及其他
- 20145222何志威《网络对抗》- Web安全基础实践
- H5制作视频网页的架构
- 赠书 | 第一次送书,送排名第一的书!
- ie8兼容性视图灰色修复_IE8兼容性视图怎么关闭 IE8兼容性视图设置关闭方法
- 初探 MacBook Pro 刘海屏
- 仿QQ好友列表,QListWidget!
热门文章
- 视频转码工具 HDcinematics Convert 汉化版
- 数据结构通过链表实现班级同学通讯录
- 细说linux挂载---转自ubuntu论坛 adagio
- 浅聊下Spring Task定时器的Cron表达式
- EnCase Computer Forensics, includes DVD: The Official EnCE: EnCase Certified Examiner Study Guide
- matlab图像处理 背景字迹消除
- 智慧农业解决方案-智慧农业电子科技威海
- 概率论与数理统计之条件概率乘法公式
- 老吕架构-2021年文章精选
- 关于java maven 项目debug运行时,项目报sourse not found问题