以太网交换

Posted tmjblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以太网交换相关的知识,希望对你有一定的参考价值。

以太网是当今局域网LAN采用的最常用的通信协议标准。

12.1 网络层次

以太网与物理层和数据链路层有关。

物理层不是指具体的物理设备,也不是指信号传输的物理媒体,而是指在物理媒体之上为上一层(数据链路层)提供一个传输原始比特流的物理连接,它规定了以太网的基本物理属性,传输单位为bit。

数据链路层为网络层提供服务,其中最基本服务就是将原设备转发过来的数据可靠地传输到相邻节点地目的设备。为针对物理层的不同工作模式(半双工和全双工),将数据链路层又分为两层:

  • LLC(逻辑链路控制子层)

    只存在于IEEE802.3,在MAC之上,作用是指明上层协议,定义了三种操作类型:

    • 无连接的数据包传输服务

      目前的以太网实现就是这种服务。

    • 面向连接的可靠的数据传输服务

      预先建立连接再传输数据,数据在传输过程中可靠性得到保证。

    • 无连接的带确认的数据传输服务。

      该类型的数据传输服务不需要建立连接,但它在数据的传输中增加了确认机制,使可靠性大大增加。

  • MAC(媒体接入控制子层)

    • 主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。

    • 分为两种,半双工MAC和全双工MAC,都集成在网卡上,初始化时自动协商,根据协商结果自动决定运行模式。

    • 有全球唯一的MAC地址,共48bit,通常表示为12位的十六进制数,前六位为制造商号,后六位由厂家自己分配。

12.3 线缆标准

  • 10兆
名称 电缆 最长有效距离
10BASE-5 粗同轴电缆 500m
10BASE-2 细同轴电缆 200m
10BASE-T 双绞线 100m
10BASE-F 光纤 2000m
  • 100兆(快速以太网)
名称 线缆 最长有效距离
100Base-T4 四对三类双绞线 100m
100Base-TX 两对五类双绞线 100m
100Base-FX 单模光纤或多模光纤 2000m
  • 千兆以太网
名称 线缆 最长有效距离
1000Base-LX 多模光纤和单模光纤 316m
1000Base-SX 多模光纤 316m
1000Base-TX 超5类双绞线或6类双绞线 100m
  • 万兆以太网
名称 线缆 有效传输距离
10GBASE-T CAT-6A或CAT-7 100m
10GBase-LR 单模光纤 10km
10GBase-SR 多模光纤 几百米

12.3 冲突域和广播域

  • 冲突域

同一介质上的多个节点共享链路的带宽,争用链路的使用权,这样就会发生冲突,一个节点发出的报文(不论是单播、组播、广播),其余节点都可以接收到。这种连接在同一导线上所有的节点的集合就是冲突域。

  • 广播域

一个节点发送一个广播报文(目的MAC地址为全1,即FFFF-FFFF-FFFF的报文),其余节点都能收到的节点的集合就是广播域。

12.4 CSMA/CD

带冲突检测的载波侦听多址访问,使被连接的计算机和设备必须采用一种半双工的方式来访问物理线路,

  • CS:载波侦听

    在发送数据之前进行侦听,以确保线路空闲,减少冲突的机会。

  • MA:多址访问

    每个站点发送的数据,可以同时被多个站点接收。

  • CD:冲突检测

    由于两个站点同时发送信号,信号叠加后,会使线路上电压的摆动值超过正常值一倍。据此可判断冲突的产生。

    边发送边检测,发现冲突就停止发送,然后延迟一个随机时间之后继续发送。

简要过程:先听后发,边发边听,冲突停发,随机延迟后重发

二层交换设备工作在数据链路层,基于MAC地址转发数据包,设备的不同接口的发送和接收数据独立,各接口属于不同的冲突域(多个节点共享介质环境,争用链路的使用权),因此可以隔离冲突域。

12.5 以太网的工作模式

以太网的物理层存在半双工和全双工。

  • 半双工
    • 同一时刻只能接收或发送数据。
    • 采用CSMA/CD机制
    • 有最大传输距离的限制

典型举例:HUB(集线器)

  • 全双工

L2交换机取代了HUB组建了以太网之后,以太网从共享式转变为交换式,全双工代替了半双工,传输效率大大增加,并且从根本上解决了冲突问题,告别CSMA/CD。

  • 同一时刻可以接收和发送数据
  • 最大吞吐量可达双倍速率
  • 消除了半双工的物理距离机制

典型举例:当前的网卡、二层设备、三层设备都支持全双工。

现在的工程师往往会将switch叫做HUB,因为switch替代了HUB的作用,但是两者还是有着较大区别:

  • HUB工作在物理层,switch工作在
  • 连接HUB的设备共享带宽,连接switch的设备带宽独立
  • HUB不能隔离冲突域,switch可以隔离冲突域

12.6 二层交换原理

二层交换设备主要工作在OSI参考模型的数据链路层,对于数据包的转发建立在MAC地址的基础上,各接口属于不同的冲突域,接口独立收发数据,不必担心流量大小对于数据发送冲突的影响。

二层交换设备通过MAC表进行转发,基本流程如下:

  1. 二层交换设备收到以太网帧之后,将其源MAC与接收接口的对应关系写入MAC表,如果表中已有相同表项则刷新该表项的老化时间,老化时间内未得到刷新的表项将被删除。
  2. 判断目的MAC地址的地址类型:
    • 如果是广播地址,则向除入接口外的所有接口转发。
    • 如果不是,则查找MAC表,找到匹配项就向表项所示的对应接口转发,如果查找失败,则向除入接口外的所有接口转发。

二层设备虽然可以隔离冲突域,但无法隔离广播域,网络中的主机一旦增多,广播会消耗大量带宽。当然,我们可以通过路由器来隔离广播域,但是路由器的成本较高并且转发性能很低,基于这种情况,便有了VLAN技术。

12.7 VLAN技术

虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术,每个VLAN是一个广播域,而VLAN间不能直接互通,对广播域进行了隔离。

12.7.1 tag

VLAN比传统以太网帧加了4字节的VLAN标签(tag)。

在一个VLAN交换网络中,以太网帧主要有以下两种形式:

  • 有标记帧(Tagged帧):加入了4字节VLAN标签的帧。
  • 无标记帧(Untagged帧):原始的、未加入4字节VLAN标签的帧。

常用设备中:

  • 用户主机、服务器、Hub、傻瓜交换机只能收发Untagged帧。
  • 交换机、路由器和AC既能收发Tagged帧,也能收发Untagged帧。
  • 语音终端、AP等设备可以收发一个VLAN的Tagged帧或Untagged帧。

为了提高处理效率,交换机内部处理的数据帧一律都是Tagged帧。

12.7.2 链路类型

  • 接入链路:连接终端设备的链路,只能传输一个VLAN的Untagged数据帧。
  • 干道链路:交换机互连或交换机连路由器的链路,能传输多个不同VLAN的tagged数据帧

12.7.3 接口类型

  • Access接口:交换机上用来连接用户主机的接口,它只能连接接入链路(Access Link)。
  • Trunk接口:交换机上用来和其他交换机连接的接口,它只能连接干道链路(Trunk Link)。
  • Hybrid接口,是交换机上既可以连接用户主机,又可以连接其他交换机的接口。Hybrid接口既可以连接接入链路又可以连接干道链路。
  • QinQ接口:一般用于私网与公网之间的连接,是一项用于扩展VLAN空间的技术,在原来私网tag上再加一个公网tag,从而支持4096x4096个VLAN。可以使私网VLAN穿透公网。

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

12.7.4 PVID

PVID又称缺省VLAN。

前面提到交换机处理的数据帧都带Tag,当交换机收到Untagged帧时,就会给此数据帧添加等于PVID的tag。

每个接口都有缺省VLAN,默认都为VLAN1

  • 对于Access接口,缺省VLAN就是它允许通过的VLAN,修改允许通过的VLAN即可更改
  • 对于Trunk和Hybrid接口,一个接口可以允许多个VLAN通过,但都只有一个缺省VLAN,修改允许通过的VLAN不会更改接口的缺省VLAN。

12.7.5 tag处理

接口类型 对接收不带Tag的报文处理 对接收带Tag的报文处理 发送帧处理过程
Access接口 接收该报文,并打上缺省的VLAN ID。 当VLAN ID与缺省VLAN ID相同时,接收该报文。当VLAN ID与缺省VLAN ID不同时,丢弃该报文。 先剥离帧的PVID Tag,然后再发送。
Trunk接口 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里时,接收该报文。打上缺省的VLAN ID,当缺省VLAN ID不在允许通过的VLAN ID列表里时,丢弃该报文。 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。 当VLAN ID与缺省VLAN ID相同,且是该接口允许通过的VLAN ID时,去掉Tag,发送该报文。当VLAN ID与缺省VLAN ID不同,且是该接口允许通过的VLAN ID时,保持原有Tag,发送该报文。
Hybrid接口 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里时,接收该报文。打上缺省的VLAN ID,当缺省VLAN ID不在允许通过的VLAN ID列表里时,丢弃该报文。 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。 当VLAN ID是该接口允许通过的VLAN ID时,发送该报文。可以通过命令设置发送时是否携带Tag。

12.7.6 划分VLAN

基于接口划分VLAN:根据交换机接口分配VLAN ID。配置简单,可以用于各种场景。

基于MAC划分VLAN: 根据报文的源MAC地址分配VLAN ID。经常用在用户位置变化,不需要重新配置VLAN的场景。

基于子网划分VLAN: 根据报文的源IP地址分配VLAN ID。一般用于对同一网段的用户,进行统一管理的场景。

基于协议划分VLAN: 根据报文的协议类型分配VLAN ID。适用于对具有相同应用或服务的用户,进行统一管理的场景。

基于匹配策略划分VLAN:根据指定的策略(譬如匹配报文的源MAC、源IP和端口)分配VLAN ID。适用于对安全性要求比较高的场景。

12.7.7 LNP(DTP)

链路类型协商协议LNP用来动态协商以太网接口的链路类型,默认开启。

  • 为Access接口的情况下,默认加入VLAN1。
  • 为Trunk接口的情况下,默认加入VLAN1~4094。

Negotiation-desirable:主动发送LNP报文。

Negotiation-auto:不会主动发送LNP报文

技术图片

如果协商失败,接口的类型为Access。

12.7.8 VCMP(VTP)

VLAN集中管理协议,大型网络中往往有大量的VLAN信息需要配置和维护,可通过VCMP实现只在一台交换机上操作,自动同步到指定范围内的交换机,一般和LNP联用。

VCMP定义了四种角色:

  • server

    管理者,server上的配置会在指定管理域内传播

  • Client

    被管理者,Client上配置被server发送的信息覆盖

  • Transparent

    不被管理者,Transparent上配置的信息不受影响,转发VCMP报文,不属于任何管理域

  • Slient

    边缘者,Slient上配置的信息不受影响,不转发VCMP报文,不属于任何管理域。

12.7.9 单臂路由

又叫子接口,路由器的物理接口可以被划为多个子接口,每个子接口对应一个VLAN的网关,从而实现VLAN间的互通。

以上是关于以太网交换的主要内容,如果未能解决你的问题,请参考以下文章

Smart200与200PLC转以太网无需编程实现以太网数据交换

配置以太网通道,(路由器,交换机,三层交换机)

计算机网络湖科大微课堂笔记 p36-37 集线器与交换机的区别以太网交换机自学习和转发帧的流程

[转帖]以太网交换机的市场情况

基于龙芯+国产FPGA 的VPX以太网交换板设计

国产工业以太网交换机现状