Ethernet、VLAN、QinQ
以太网帧格式:

各字段解释:
DMAC:目的MAC地址,该字段确定帧的接收者。
SMAC:源MAC地址,该字段标识发送帧的工作站。
Type:上层协议类型(0x0800:IP;0x0808:ARP;0x8100:VLAN;)
Data:数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段。如果填入该字段的信息少于46字节,该字段的其余部分也必须进行填充。数据字段的最大长度为1500字节。
CRC:用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)。

VLAN帧格式:

各字段解释:
Destination address:目的MAC地址。
Source address:源MAC地址。
Type:表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
PRI:表示帧的优先级,取值范围为0~7,值越大优先级越高。用于当阻塞时,优先发送优先级高的数据包。如果设置用户优先级,但是没有VLANID,则VLANID必须设置为0x000。
CFI:用于区分以太网帧、FDDI帧和令牌环网帧。在以太网中,CFI的值为0。
VID:表示该帧所属的VLAN。
Length/Type:指后续数据的字节长度,但不包括CRC检验码。
Data:数据。
CRC:帧检验序列。
帧示例

深入理解:
1、data数据为什么是46~1500个字节?
以太网帧的最小长度64byte是由CSMA/CD限制所致
通过比较,选择1518(6+6+2+1500+4)个字节的帧长度,有效传输效率最高。
2、CRC如何校验帧?
在要发送的帧后面附加一个校验码,生成一个新帧发送给接收端。(当然,这个附加的校验码不是随意的,它要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除。)到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。(因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就已经能整除了)),所以结果应该是没有余数。如果有余数,则表明该帧在传输过程中出现了差错。
ps:
模2除法:二进制下的除法,异或,即相同为0,不相同为1。
CSMA/CD:带冲突检测的载波监听访问,其工作原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。
QinQ帧格式:

重要字段解释:
ETYPE:长度为2字节,表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
对于内层VLAN tag,该值设置为0x8100;对于外层VLAN tag,有下列几种类型
- 0x8100:思科、华为路由器使用
- 0x88A8:Extreme Networks switches使用
- 0x9100:Juniper路由器使用
- 0x9200:Several路由器使用
帧示例

Ethernet、VLAN、QinQ的更多相关文章
- #centos7 设置bond、bridge、vlan
#centos7 设置bond.bridge.vlan #centos7 设置bond.bridge.vlan # CentOS7中 nmcli命令由NetworkManager提供 # 可以用于设置 ...
- 网络工程知识(二)VLAN的基础和配置:802.1q帧;Access、Trunk、Hybrid接口工作模式过程与配置;VLANIF的小实验
介绍-VLAN VLAN(Virtual Local Area Network)即虚拟局域网,工作在数据链路层. 交换机将通过:接口.MAC.基于子网.协议划分(IPv4和IPv6).基于策略的方式划 ...
- 交换机VLAN、 TRUNK 、VTP 配置
交换机VLAN. TRUNK .VTP 配置 1. 配置 CISCO 二层交换机的IP 地址(catalyst 2950 为例) SW1(config)#int vlan 1 //进入管理接口inte ...
- 网络叠加模式VLAN、VxLAN、GRE
什么是叠加网络 1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装. 2.叠加网络就是使用这种所谓"包内之包"的技术安全地将一个网络隐藏在另一个 网络中 ...
- openstack网络基础:网络叠加模式VLAN、VxLAN、GRE
什么是叠加网络1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装.2.叠加网络就是使用这种所谓“包内之包”的技术安全地将一个网络隐藏在另一个 网络中,然后将网络区段进行迁移 ...
- NAT转换、VLAN与Trunk(特典:ACL初步)
一.NAT(网络地址转换) 即公有地址转换为私有地址 私有地址段(非公网地址,即公网不识别) A 10.0.0.0 10.255.255.255 B 17 ...
- [CISCO] VLAN、TRUNK 和 VTP 简介
VLAN.TRUNK 和 VTP 简介 VLAN 如图,虚拟局域网 VLAN ( Virtual LAN ) 是交换机端口的逻辑组合. VLAN 工作在 OSI 的第 2 层(数据链路层),一个 VL ...
- 利用三层交换机实现VLAN间路由(计算机网络中速率、带宽、吞吐量的概念)
1.速率 速率是指计算机网络中的主机在数字信道上,单位时间内从一端传送到另一端的数据量,即数据传输率,也称数据率或比特率.比特(bit)是数据量的最小单位,s(秒)是时间的最小单位.所以速率单位为bi ...
- VLAN、Trunk,以太通道及DHCP
VLAN.Trunk,以太通道及DHCP 案例1:Vlan的划分 案例2:配置trunk中继链路 案例3:以太通道配置 案例4:DHCP服务配置 1 案例1:Vlan的划分 1.1 问题 VLAN(虚 ...
随机推荐
- openwrt的编译系统在哪里对程序进行开机自动启动配置
答:在include/rootfs.mk里的宏prepare_rootfs中进行的
- Maven的继承和聚合
Maven的继承和聚合子项目的pom文件里通过<parent>节点来继承父项目 <parent> <groupId>com.tykj</groupId> ...
- django框架搭建web服务
一.工具 环境:windows 7 python 2.7.7 下载地址:https://www.python.org/downloads/release/python-2713/ ps:这 ...
- CALL_AND_RETRY_LAST Allocation failed node打包报错
全局安装increase-memory-limit: npm install -g increase-memory-limit 进入工程目录,执行: increase-memory-limit
- Dive into Spring framework -- 了解基本原理(一)
在继续我们的分析之前,推荐各位静心来读一下<<Expert_OneOne_J2EE_Design_and_Development>> 第四章, 正如spring BeanFac ...
- C和C#两种方式实现邮件的简单发送
内容为通过两种方式发送邮件--1.C语言发送邮件 2.C#发送邮件 一,C语言进行邮件的发送 C语言发送邮件的步骤的简单解析: 1.创建TCP连接 socket() 2.连接到邮箱服务器 ...
- logback MDC 使用
有时候想在logback日志中打印请求IP.流水号这些信息,可以通过MDC(Mapped Diagnostic Contexts)实现: MDC.put("requestNo", ...
- lessc的安装
win+R,cmd打开命令面板,输入cnpm install -g less,如图,然后就可以通过lessc -v查询lessc的版本,出现版本号证明安装成功
- Office.资料
1.JAVA+JS如何在HTML页面上显示WORD文档内容?ActiveX只能兼容IE不考虑!_百度知道.html(https://zhidao.baidu.com/question/74594982 ...
- MySQL Order By Rand()效率分析
最近研究了一下MYSQL的随机抽取实现方法.举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() L ...