数据链路层
1.概述
- 链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点
- 数据链路是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路
- 数据链路层以帧为单位传输和处理数据。
数据链路层的三个重要问题
- 封装成帧
将数据链路层给网络层交付的协议数据单元添加帧头和帧尾的操作称为封装成帧
- 差错检测
帧在传输过程中遭遇干扰后可能会出现误码,也就是比特0可能变成比特1。这可以通过检错码来发现,发送方在发送帧之间,基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾。
- 可靠传输
尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输。
使用广播信道的数据链路层
- 共享式以太网的媒体介入控制协议CSMD/CD
- 802.11局域网的媒体介入控制协议CSMA/CA
数据链路层的互连设备
- 网桥和交换机的工作原理
- 集线器(物理层互连设备)与交换机的区别
2.封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
- 帧头和帧尾中包含有重要的控制信息
- 帧头和帧尾的作用之一就是帧定界
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
- 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。
- 面向比特的物理链路使用比特填充的方法实现透明传输。
为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。
3.差错检测
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
3.1 奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)。
如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码。
如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)。
3.2 循环冗余校验CRC
- 收发双方约定好一个生成多项式G(x)
- 发送方基于待发送的数据和生成多项式计算出差错检错码(冗余码),将其添加到待传输数据的后面一起传输
- 接收方通过生成多项式来计算收到的数据是否产生了误码
检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。
4.可靠传输
4.1 可靠传输的基本概念
使用差错检测技术,接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。
数据链路层向上层提供的服务类型
- 不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做
- 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。
一般情况下,有线链路的误码率比较低,为了减少开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
无线链路易受干扰,误码率较高,因此要求数据链路层必须向上层提供可靠传输服务。
比特差错只是传输差错的一种。
从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复。
分组丢失、分组失序和分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。
可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。
4.2 可靠传输的实现机制
4.2.1 停止-等待协议SW
- 确认与否认
发送方每发送完一个分组后,就停止发送下一个数据分组,等待来自接收方的确认分组或否认分组。若收到确认分组,则可继续发送下一个分组;若收到否认分组,则重发之前发送的那个数据分组。
- 超时重传
接收方收不到数据分组,就不会发送ACK或者NAK。如果不采取其他措施,发送方就会一直处于等待接收方ACK或NAK的状态。
为解决该问题,可以在发送方发送完一个数据分组时,启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫做超时重传。
一般可将重传时间宣威略大于“从发送方到接收方的平均往返时间”
- 确认丢失
为避免分组重复这种传输错误,必须给每个分组带上序号。
对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同就可以了,因此用一个比特来编号就够了。
- 确认迟到
在下图这种情况中,接收方的ACK信号会被发送方误认为是对DATA1的ACK信号,所以应该对确认分组也进行编号,就可以避免发送方对这种情况的误判。
数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号
- 停止-等待协议的信道利用率
4.2.2 回退N帧协议GBN
回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。
在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议。
由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高。
回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组。
一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管他们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。
4.2.3 选择重传协议SR
为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WR不应再等于1(而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。
选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累计确认,而需要对每个正确接收到的数据分组进行逐一确认。
发送方的发送窗口尺寸WT必须满足:1<WT≤2^(n-1),其中n是构成分组序号的比特数量
- 若WT = 1:与停止-等待协议相同
- 若WT > 2^(n-1):造成接收方无法分辨新、旧数据分组的问题
接收方的接收窗口尺寸WR必须满足:1<WR≤WT
- 若WR = 1:与回退N帧协议相同
- 若WR > WT,没有意义
5.点对点协议PPP
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。
PPP协议为在点对点链路传输中各种协议数据报提供了一个标准方法,主要由一下三部分构成:
- 对各种协议数据报的封装方法(封装成帧)
- 链路控制协议LSP:用于建立、配置以及测试数据链路的连接
- 一套网络控制协议NCPs:其中的每个协议支持不同的网络层协议
5.1 帧格式
标志(Flag)字段:PPP帧的定界符,取值为0x7E
地址(Address)字段:取值为0xFF,预留(目前没有什么作用)
控制(Control)字段:取值为0x03,预留(目前没有什么作用)
协议(Protocal)字段:指明帧的数据部分送交哪个协议处理
取值0x0021表示:帧的数据部分为IP数据报
取值0xC021表示:帧的数据部分为LCP分组
取值0x8021表示:帧的数据部分为NCP分组
5.2 透明传输
如果在帧的数据部分出现了标志字段:
- 面向字节的异步链路:采用字节填充法,即插入转义字符
发送方的处理:
-
出现的每一个7E(PPP帧定界符)字节转变成2字节序列(7D,5E)
-
出现的每一个7D(转义字符)字节转变成2字节序列(7D,5D)
-
出现的每一个ASCII码控制字符(数值小于0x20的字符),则在该字符前面插入一个7D字节,同时将该字符的编码加上0x20
- 面向比特的同步链路:采用比特填充法,即插入比特0
发送方的处理:
对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0
5.3 差错检测
接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层向上不提供可靠传输服务。
5.4 工作状态
6.媒体接入控制
6.1 媒体接入控制的基本概念
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。
6.2 静态划分信道
信道复用
- 复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
- 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。
常见的信道复用技术:
- 频分复用FDM
- 时分复用TDM
- 波分复用WDM
- 码分复用CDM
码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA
同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA和时分多址TDMA
复用与多址的概念可以简单理解如下:
-
复用是将单一媒体的频带资源划分成很多个子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
-
多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)
在CDMA中,每个比特时间再划分为m个短的间隔,称为码片(Chip)。通常m的值是64或128。为了简单起见,在后续的举例中,我们假设m为8
使用CDMA的每一个站被指派一个唯一的m bit码片序列
- 一个站如果要发送比特1,则发送它自己的m bit码片序列
- 一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码
例:指派给CDMA系统中某个站点的码片序列为00011011
发送比特1:发送自己的码片序列00011011
发送比特0:发送自己的码片序列的二进制反码11100100
码片序列的挑选原则如下:
- 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列。
- 分配给每个站的码片序列必须相互正交(规格化内积为0)
6.3 随机接入-CSMA/CD协议
载波监听多址接入/碰撞检测 CSMA/CD
- 多址接入MA
多个站连接在一条总线上,竞争使用总线
- 载波监听CS
每个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧(“先听后说”)
若检测到总线空闲96比特时间,则发送这个帧;
若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧
- 碰撞检测CD
每一个正在发送帧的站边发送边检测碰撞(“边说边听”)
一旦发现总线上出现碰撞,则立刻停止发送,退避一段随机时间后再次发送(“一旦冲突,立即停说,等待时机,重新再说”)
以太网还采取一种叫做强化碰撞的措施。这就是当发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要再继续发送32比特或48比特的人为干扰信号,以便有足够多的碰撞信号使所有站点都能检测出碰撞
6.3.1 最小帧长
-
以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期)
- 如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于54字节
-
以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞
-
如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞
-
如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧
-
6.3.2 最大帧长
6.3.3 截断二进制指数退避算法
-
若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因为减小发生碰撞的概率,有利于整个系统的稳定
-
当重传达16次仍不能成功时,表明同时打算发送帧的主机太多,以至于连续碰撞,则丢弃该帧,并向高层报告
6.3.4 信道利用率
考虑以下这种理想情况:
- 各主机发送帧都不会产生碰撞
- 总线一旦空闲就有某个主机立即发送帧
- 发送一帧占用总线的时间为T0+τ,而帧本身的发送时间是T0
极限信道利用率S(max)= T0/(T0+τ)
6.3.5 帧发送流程
6.3.6 帧接收流程
6.4 CSMA/CA协议
载波监听多址接入/碰撞避免 CSMA/CA
-
在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
-
在无线局域网中,不能使用碰撞检测CD,原因如下:
-
由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件要求非常高。
-
即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。
-
6.4.1 802.11无线局域网
802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。
由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了**数据链路层确认机制(停止-等待协议)**来保证数据被正确接收。
802.11的MAC层标准定义了两种不同的媒体接入控制方式:
- 分布式协调功能DCF。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。
- 点协调功能PCF。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用。
帧间间隔
802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间才能发送帧,这段时间称为帧间间隔IFS
帧间间隔的长短取决于该站点要发送的帧的类型。
- 高优先级帧需要等待的时间较短,因此可优先获得发送权
- 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因为低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
常用的两种帧间间隔如下:
- 短帧间间隔SIFS(28μs),是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
- DCF帧间间隔DIFS,它比短帧间间隔SIFS要长的多,在DCF方式中用来发送数据帧和管理帧。
6.4.2 工作原理
- 源站为什么在检测到信道空闲后还要再等待一段时间DIFS?
考虑到可能有其他站的高优先级帧要发送。若有,就要让高优先级帧先发送。
- 目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?
SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内,一个站点应当能够从发送方式切换到接收方式。
- 信道由忙转为空闲且经过DIFS时间后,还要退避一段随机时间才能使用信道?
防止多个站点同时发送数据而产生碰撞。
当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即发送的数据帧,则不使用退避算法。
以下情况必须使用退避算法:
- 在发送数据帧之前检测到信道处于忙状态时
- 在每一次重传一个数据帧时
- 在每一个成功发送后要连续发送下一帧时(这是为了避免一个站点长时间占用信道)
CSMA/CA协议的信道预约和虚拟载波监听
为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。
- 源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS,它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间
- 若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS,它也包括这次通信所需的持续时间
- 源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧
- 若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK
7.MAC地址、IP地址以及ARP协议
- MAC地址是以太网的MAC子层所使用的地址(数据链路层)
- IP地址是TCP/IP体系结构网际层所使用的地址(网际层)
- ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址(网际层)
7.1 MAC地址
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址。
在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址。
- MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址
- MAC地址有时也被称为物理地址。
一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
- 单播MAC地址:00-0C-CF-B8-4A-82
- 广播MAC地址:FF-FF-FF-FF-FF-FF
- 多播MAC地址:07-E0-12-F6-2A-D8 07为0000 0111,结尾为1,即首字节不能被2整除
7.2 IP地址
IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息:
- 网络编号:标识因特网上数以百万计的网络
- 主机编号:标识同一网络上不同主机(或路由器各接口)
很显然,MAC地址不具备区分不同网络的功能。
- 如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)。
- 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。
- 数据包转发过程中源IP地址和目的IP地址保持不变
- 数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变
7.3 地址解析协议ARP
- 源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,若找到了,则可以封装MAC帧进行发送;若找不到,则发送ARP请求(封装在广播MAC帧中)
- 目的主机收到ARP请求后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应(封装在单播MAC帧中),ARP响应中包含目的主机的IP地址和MAC地址
- 源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机
- ARP的作用范围:逐段链路或逐个网络使用
- 除ARP请求和响应外,ARP还有其他类型的报文(例如用于检查IP地址冲突的“无故ARP、免费ARP”)
- ARP没有安全验证机制,存在ARP欺骗(攻击)问题
8.集线器与交换机的区别
8.1 集线器
- 早期的总线型以太网
使用细同轴电缆
- 使用双绞线和集线器HUB的星型以太网
- 使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议
- 集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测)
- 集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作。
- 使用集线器HUB在物理层扩大以太网
8.2 交换机
- 以太网交换机通常都有多个接口。每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式。
- 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信,无碰撞(不使用CSMA/CD协议)。
- 以太网交换机一般都具有多种速率的接口,例如:10Mb/s、100Mb/s、1Gb/s、10Gb/s接口的多种组合。
- 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
- 以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的。
对比交换机和集线器
9.以太网交换机自学习和转发帧的流程
- 以太网交换机工作在数据链路层(也包括物理层)
- 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧
- 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
每条记录都有自己的有效时间,到期自动删除。这是因为MAC地址与交换机接口的对应关系并不是永久性的。
10.以太网交换机的生成树协议STP
- 如何提高以太网的可靠性
- 添加冗余链路可以提高以太网的可靠性
冗余链路的负面效应:形成网络环路
网络环路会带来以下问题:
- 广播风暴
大量消耗网络资源,使得网络无法正常转发其他数据帧
- 主机收到重复的广播帧
大量消耗主机资源
- 交换机的帧交换表震荡(飘逸)
以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。
- 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路)
- 最终生成的树型逻辑拓扑要确保连通整个网络
- 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算
11.虚拟局域网VLAN
11.1 虚拟局域网VLAN概述
-
以太网交换机工作在数据链路层(也包括物理层)
-
使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一广播域
-
随着交换式以太网规模的扩大,广播域相应扩大
-
巨大的广播域会带来很多弊端
- 广播风暴
- 难以管理和维护
- 潜在的安全问题
-
分割广播域的方法
- 使用路由器可以隔离广播域
- 使用路由器可以隔离广播域
路由器成本较高,因此虚拟局域网VLAN技术应运而生
虚拟局域网VLAN是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求
11.2 虚拟局域网VLAN的实现机制
11.2.1 IEEE 802.1Q帧
IEEE 802.1Q帧(也称Dot One Q帧)对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记
VLAN标记的最后12比特称为VLAN标识符VID,它唯一地标志了以太网帧属于哪一个VLAN
- VID的取值范围是0-4095(0-2^12-1)
- 0和4095都不用来表示VLAN,因此用于表示VLAN的VID的有效取值范围是1-4094
802.1Q帧是由交换机来处理的,而不是用户主机来处理的
- 当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧,简称“打标签”
- 当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧,简称“去标签”
11.2.2 交换机的端口类型
端口类型:
- Access
Access端口一般用于连接用户计算机
Access端口只能属于一个VLAN
Access端口的PVID值与端口所属VLAN的ID相同(默认为1)
Access端口接收处理方法:一般只接收“未打标签”的普通以太网MAC帧。根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。
Access端口发送处理方法:若帧中的VID与端口的PVID相等,则“去标签”并转发该帧,否则不转发
- Trunk
Trunk端口一般用于交换机之间或交换机与路由器之间的互联
Trunk端口可以属于多个VLAN
用户可以设置Trunk端口的PVID值。默认情况下,Trunk端口的PVID值为1
Trunk端口发送处理方法:对VID等于PVID的帧,“去标签”再转发;对VID不等于PVDI的帧,直接转发
Trunk端口接收处理方法:接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”;接收已“打标签”的帧
- Hybrid
交换机之间、交换机与路由器、交换机与用户计算机之间的连接
可以属于多个VLAN
用户可以设置PVID,默认为1
接收处理方法:接收已打标签的帧;接收未打标签的帧,根据端口的PVID给帧打标签
发送处理方法:查看数据帧中的VID是否在端口的“去标签”列表中,如果存在,则去标签再转发;如果不存在,则直接转发
交换机各端口的缺省VLAN ID
- 在思科交换机上称为Native VLAN,即本征VLAN
- 在华为交换机上称为Port VLAN ID,即端口VLAN ID,简记为PVID