<返回更多

二层转发原理

2019-11-07    
加入收藏

1 二层转发基础

这里的二层指的是计算机网络七层模型中的二层,从第一层到第7层分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。还有一种说法是4层(或者是5层)网络模型,分别是数据链路层、网络层、运输层和应用层,如果按照5层的说法还要加上物理层。这里的二层指的是数据链路层。

二层转发原理

 

1.1 以太网基础

以太网冲突检测

CSMA/CD:载波侦听与冲突检测,主机在发送数据包时,先检测线路是否被其他主机占用,确保发送数据包时线路是空闲的;发现冲突就停止发送,延迟一个随机时间之后再继续发送。

mac地址

MAC地址也就是物理地址,大小为48位,6个字节,前24位是厂商代码,后24位为序号,比如H3C厂商代码为00-0f-e2。

以太帧格式

二层转发原理

 

前两个字段分别是目的地址源地址字段。第3个字段是2字节的类型字段,用来标识上一层是什么协议(0x800:IP协议,0x0806:ARP协议等)。第4个字段是数据字段,长度在46-1500字节之间。最后一个字段是CRC检验字段,存放4字节的帧检测序列FCS。校验范围是目的地址、源地址、类型、数据字段。

MAC帧长度最小为64字节,数据字段最小为46字节,如果不够,则自动加0填充。

MAC帧格式中,其首部并没有帧长度字段,那么MAC层怎么知道接收到的以太网帧中取出多少字节数据交付上一层协议呢?我们知道,以太网帧使用的曼切斯特编码,这种编码的一个重要特点就是:在曼切斯特编码的每一个码元(不管码元是1还是0)的正中间有一次电压转换(从高到低或从低到高)。当发送方把一个以太网帧发送完毕后,就不再发送其他码元了,一次,发送发网络适配器接口上电压也就不再变化,这样接收方就很容易找到以太网的结束位置。

802.3帧格式

二层转发原理

 

以太帧和802.3帧如何区别

802.3定义的有效长度值与以太网的有效类型无一相同,这样就可以区分了。

MAC最小长度为什么是64字节

以太网采用CSMA/DA冲突检测算法,一个主机发送一个数据包后最多经过一个征用时间就会知道该数据包是否收到了碰撞,以太网以51.2us作为征用时间,对于10M以太网,在征用时间时间内可以发送512 bit数据,也就是64字节。这64字节出去以太帧首部以及检验和字段的长度共16字节,也就剩下46字节,也就是以太帧数据域的最小长度了。

冲突域和广播域

一般来说,广播网络定义了第三层网络,如IP子网等,VLAN简单来说就是一个广播域。

HUB设备

HUB设备也就是咱们常说的集线器,HUB对所有连接的LAN制作信号的中继,也就是当信号衰减时,再重新修正信号重新发送。连接在集线器上的所有设备构成了一个冲突域和广播域,这样在主机数目比较多时就会产生冲突泛滥和广播严重问题。

二层转发原理

 

2 二层转发原理

二层转发流程

  1. 提取数据报的源MAC地址,查询MAC转发表(也就是L2FDB),如果找到就直接发送到对应端口。
  2. 对于表中不包含的地址,通过广播发送,也就是发送到所有端口。
  3. 使用地址自动学习(根据源MAC地址学习)和老化机制(定时机制)来维护MAC转发表的信息,二层转发一般不会更改数据包内容。
二层转发原理

 

引入VLAN

虽然交换机解决了冲突域的问题,但是还是存在广播域问题,这里就应用到了VLAN,也就是在二层交换机上引入VLAN机制。

二层转发原理

 

VLAN机制可以使处在相同VLAN下的主机任意通信(二层交换),不同VLAN主机通信完全隔离,如需通信需通过三层交换,阻断广播包,减小广播域,提供了网络安全性。VLAN简单来说就是一个广播域,可以跨越多个物理设备构成一个VLAN,这样网络构建和维护更加方便。

VLAN的划分方法可以根据交换机端口来划分,根据MAC地址来划分,根据网络层(IP地址、IP子网)来划分,根据IP组播划分等。

VLAN协议格式

二层转发原理

 

VLAN端口

VLAN基于端口划分可以分为种类端口类型:access、trunk、hybird。

Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时:Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。

VLAN下交换机接口出入数据处理过程

1)Acess端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)

2)Acess端口发报文:将报文的VLAN信息剥离,直接发送出去

3)trunk端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃

4)trunk端口发报文:比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送

5)hybrid端口收报文:收到一个报文,判断是否有VLAN信息,如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入;如果可以则转发,否则丢弃(此时端口上的untag配置是不用考虑的,untag配置只对发送报文时起作用)

6)hybrid端口发报文:1.判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag, 哪些VLAN是tag);2.如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送

3 VLAN下的二层转发流程

支持VLAN的交换机,MAC地址学习方式分为2中:独立式(IVL)和共享式(SVL),对应的L2FDB表项内容有VLAN ID、MAC地址和所在端口。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>