您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

二层转发原理

时间:2019-11-07 08:57:15  来源:  作者:

1 二层转发基础

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

二层转发原理

 

1.1 以太网基础

以太网冲突检测

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

mac地址

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

  • 单播地址:第一个字节最低位为0,如 00-0f-e2-00-00-06
  • 多播地址:第一个字节最低位为1,如 01-0f-e2-00-00-06
  • 广播地址:48位全为1,如ff-ff-ff-ff-ff-ff

以太帧格式

二层转发原理

 

前两个字段分别是目的地址源地址字段。第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协议格式

二层转发原理

 

  • TPID:协议标志,通常是0x8100
  • Priority:优先级
  • CFI:规范指示为,总设为0
  • VLAN ID:VLAN号

VLAN端口

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

  • Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口
  • Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口
  • Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机

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地址和所在端口。

  • 根据目的地址查MAC转发表(L2FDB)处理转发
  • -独立式:根据VLAN ID查找转发表,找出相同VLAN ID的转发表项范围,在这些表项中找出MAC地址相匹配的出端口。
  • -共享式:根据目的地址查转发表,找到对应的出接口,判断出接口的VLAN ID和报文中的VLAN ID是否一致,若匹配则通过该端口转发报文,否则丢弃。
  • 对于转发表中不包含的地址,通过广播方式转发
  • -独立式:查找不到目的MAC,则在该VLAN下的所有端口进行广播
  • -分享式:查找不到目的MAC,然后判断报文中的VLAN ID和端口的VLAN ID是否匹配,若匹配则在该VLAN中广播,否则丢弃。
  • MAC转发表的源地址学习
  • -独立式:以源MAC地址和VLAN创建表项,故存在MAC地址相同,VLAN ID不同的表项。
  • -共享式:以源MAC地址创建表项,若MAC转发表中存在MAC地址相同的表项,则覆盖原有表项。


Tags:二层转发   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
很多初级网工兄弟在跳槽找工作面试的时候通常遇到过这种题,考官会说麻烦简述下以下场景的过程,一台交换机接两个主机PC-A和PC-B,PC-A和PC-B在同一个VLAN下,并且两个PC配置相同段...【详细内容】
2020-05-17  Tags: 二层转发  点击:(104)  评论:(0)  加入收藏
1 二层转发基础这里的二层指的是计算机网络七层模型中的二层,从第一层到第7层分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。还有一种说法是4层(或者是...【详细内容】
2019-11-07  Tags: 二层转发  点击:(94)  评论:(0)  加入收藏
▌简易百科推荐
以京训钉开发平台接口文档为例,使用HttpClient类请求调用其接口,对数据进行增删改查等操作。 文档地址: https://www.yuque.com/bjjnts/jxd/bo1oszusing System;using System.C...【详细内容】
2021-12-28  Wednes    Tags:HttpClient   点击:(1)  评论:(0)  加入收藏
阿里云与爱快路由安装组网教程一、开通好阿里云轻量服务器之后在服务器运维-远程连接处进行远程 二、进入控制台后在root权限下根据需要安装的固件位数复制下面命令。32位:wg...【详细内容】
2021-12-28  ikuai    Tags:组网   点击:(1)  评论:(0)  加入收藏
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(5)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(3)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(35)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(10)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(22)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(31)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条