美文网首页
二层转发基础

二层转发基础

作者: D_w | 来源:发表于2022-09-06 15:16 被阅读0次

所谓的“交换”或“转发”,只是在不同场景使用的词,都是指通信的过程,都是指信息数据的传递。在嵌套互联的网络世界,需要很多专有的设备把网络连接起来,其中实现二层交换的设备,我们称之为二层交换机(Switch),也简称为交换机;实现三层转发的设备,我们称之为路由器(Router)。

1.交换机

二层交换中的二层,是指OSI七层模型中的第二层,即数据链路层(也称为MAC层)。广义的二层交换机,不只包含以太网交换机,还可能会其它二层网络技术(例如光通信、ATM技术等等)。通常,我们将二层的数据单元,称为帧(frame)。
交换机通过多个端口,实现连接在其不同端口上的多个网络或多台设备之间的数据通信。交换机的工作基本原理是,将进入端口的每一个数据,自动进行分析,再确定将该数据转发到对应的端口出去。

交换机与路由器的区别

交换机与路由器的区别,主要就是二层与三层通信的区别。交换机在分析进入端口的数据时,只会分析到二层的数据帧头(控制信息)。我们知道,完成通信的过程,寻找地址是很关键的,通信就是要把信息送到正确的地址。交换机在进行数据转发时,是通过二层地址(又被称为物理地址,即我们常说的MAC地址)来寻址的,无需理会第三层的数据。即交换机在决策数据转发到哪个端口时,主要是看该数据的MAC地址。交换机主要在局域内使用
而路由器在进行数据转发时,是通过第三层的数据帧头来寻址,第三层地址又称为网络地址(即我们熟悉的TCP/IP里的的IP地址)。即路由器在决策数据转发到哪个端口时,主要是看该数据的IP地址。路由器主要在跨局域网时使用。

2、二层交换过程

(1)三种转发模式

数据的转发分有三种模式:单播(unicast)、组播(multicast)和广播(broadcast),分别对应不同的使用场景。单播,是指一对一的数据通信,这是网络通信中最常用的模式,要求知道对端的确切地址。组播是一对多的数据通信,一份数据会发给多个设备,也常称为多播。组播的常用场景为IPTV,多个人同时看电视,只需要发送一份数据,转发给多个人就可以实现。广播是一对所有,一份数据会发给网络内的所有设备,通常用于通知类的场景,也常用于无法正常寻址的情况。例如,想在车站想跟现场某个人说话,但是你不知道他在哪,你可以提高嗓门,保证每个人都能听到,自然你想对话的那个人也听到了。但是,广播的数据会消耗不必要的带宽(跟别人无关的话没必要让别人听到),最重要的是这是非常不安全的(有些悄悄话还是一对一说比较好吧)。所以,通常广播是用来获取单播用的地址的,即你提高嗓门找到对方之后,就可以跟他一对一说话了。

(2)MAC地址

前面提到,在二层网络中是以MAC地址来寻址转发的。以太网的MAC地址共有48bit(6个字节),写法上通常以16进制表示,不同字节之间以“-”或“:”连接,例如30-E1-71-83-E5-01或30:E1:71:83:E5:01。其中,前3个字节表示网卡厂商的OUI,是网卡(或网络设备)厂商向IEEE申请的,后3个字节由相应的厂商进行管控。MAC地址直接烧录在网卡上,不随使用场景的变化而变化(因此也称为物理地址),目的是保证网卡的MAC地址是全球唯一的。但是在软件上,很多网卡驱动都提供了修改MAC地址的功能。对于Windows系统,使用命令ipconfig -all可以查询你的MAC地址。

(3)主机端对数据的处理

主机端发送数据,是从上层往下层加上头部信息,再把数据转发出去的,这也称为数据封装。在主机端(可以先简单理解为电脑),第三层数据中使用的是网络地址(IP地址),第二层接收到三层数据后,一个很重要的步骤就是根据对端的三层地址,找到对端的二层地址,即用到ARP协议。

ARP协议非常简单,只有一问一答的报文交互。二层转发是在局域网内进行的,即二层数据一定是发给局域网内的某个设备,所以ARP过程也是在局域网内完成,即无需三层的IP地址。ARP请求是使用广播模式(因为不知道对端的地址),主要是在说“谁的IP地址是xxxx,告诉我,我在xxxxxxx”。相应的设备收到ARP请求后,发现是在询问自己,设备会使用单播方式进行应答(因为从ARP请求中已知道来者的MAC地址),说“我的IP地址是xxxx”。其它不相关的设备,则不作响应。另外,设备在发送ARP请求的时候,带上自己的IP地址和MAC地址,这样对端就可以直接建立IP和MAC地址对应关系,无需再发一次ARP请求,提高效率。
所以,通过ARP请求和应答,就完成了通信两端的IP地址和MAC关系表(也称为arp表)的建立,就可以进行二层的封装,把数据从网卡发送出去。但是,由于保存arp表需要存储空间,因此arp表是有条目限制的。为了保证在有限空间持续更新arp表,arp条目会根据一定的策略被删除(例如,一段时间不使用,说明没有该MAC的通信需求了,就会被删除),这个过程称为arp老化。

(4)数据在交换机中的转发过程

二层数据再经网卡最底层发送出去后,传入到交换机。交换机要做的事很简单,就是确定进来的数据从哪个(或哪几个)端口出去,并进行转发。数据进入交换机后,会解析出二层的数据,包含源MAC地址、目的MAC地址、以及以太网的控制信息。交换机使用MAC与端口号对应关系表进行数据转发,如下图所示。该对应关系表,一般是自动生成的,这过程称为地址学习。一般地,一个MAC只会对应一个端口号(MAC是设备全球唯一的,同一网卡不会同时接到两个端口)。而一个端口下,可能会连接很多个设备,即一个端口对应多个MAC地址(多个交换机级连的场景)。

  1. 在刚开机的时候,该表是空的。当第一帧数据进入到交换机时,由于MAC与端口对应表查找不到目的MAC的信息,所以交换机会将此数据转发给所有的端口号,保证信息不丢失(宁可多传,不可漏传)。这个过程称为UL(unlearn)广播。这是交换机的一个策略。

  2. 每一帧数据从端口进入时,交换机会检查该数据的源MAC地址,即判断来者何人,这样就知道了相应MAC与端口号的对应关系了,把它记录在MAC与端口对应关系表里,完成一个条目的学习。之后的每一帧数据都会经历这样一个地址学习的过程,慢慢对应关系表就越来越全,就无需再进行UL广播。

  3. 当一帧数据的目的MAC为广播地址,即FF-FF-FF-FF-FF-FF,交换机会将该数据转发给所有的端口。如果将交换机的两个端口直连起来(即形成环路),那么广播数据会从一个端口转发出去,再从另一个端口进来,继续广播,如此反复,广播数据不断增加,即出现了广播风暴。这样会导致交换机瘫痪,无法正常转发数据。所以在连接网络时,切忌形成环路,否则会导致整个局域网瘫痪。

  4. 当一帧数据的目的MAC为组播地址,该数据的转发要加上组播管理的对应关系表进行转发。组播管理这一功能并不是所有交换机都支持的,所以在选购时要根据业务需要进行选择。

相关文章

  • 二层转发基础

    所谓的“交换”或“转发”,只是在不同场景使用的词,都是指通信的过程,都是指信息数据的传递。在嵌套互联的网络世界,需...

  • 三层转发基础

    三层转发是发生在osi模型中的ip层,与二层转发的区别在于1.数据转发依靠的关键字不同,二层转发主要依靠MAC地址...

  • VLAN间路由技术

    数据流的分析基础 二层交换机使用的意义 以太网内部局域网的组建,端口密度大(缺点是端口类型少) 基于芯片的转发 工...

  • Ospf 路由选路的问题

    在传统网络中分析网络功能,通常从控制平面和数据转发平面同时入手。在传统网络控制平面中,二层是生成树协议,转发依据...

  • 交换机二层转发心得

    有一个很生动的比喻:交换机就像一个机场候车室。候车室里的电子指示航班信息就像MAC表。大量乘客(数据帧)从各个不同...

  • 二层、三层转发流程

  • 【HCIP】组播-IGMP Snooping

    二层组播数据转发 组播数据会在二层进行泛洪,造成1、网络资源浪费2、存在安全问题 我们看上边的这个图片,B是组G2...

  • LAN交换机自学习算法

    LAN交换机自学习算法 提示 第二层交完全忽略帧的数据部分协议,仅根据第二层以太网的MAC地址做出转发决策。 MA...

  • 路由器与交换机的区别

    工作层次不同: 交换机主要工作在数据链路层(第二层) 路由器工作在网络层(第三层)。 转发依据不同: 交换机转发所...

  • 二层交换机(数据链路层)

    交换机的特性1、二层交换机与网桥相比2、具有多个交换端口3、数据转发效率更高:第一次地址学习的时候是广播,转发是是...

网友评论

      本文标题:二层转发基础

      本文链接:https://www.haomeiwen.com/subject/zjiinrtx.html