03-数据链路层

03-数据链路层

3.1 数据链路层概述

链路(Link)就是从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换结点
数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层以帧为单位传输和处理数据

使用点对点信道的数据链路层的三个重要问题
封装成帧
差错检测
可靠传输
尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输

使用广播信道的数据链路层
共享式以太网的媒体接入控制协议CSMA/CD
802.11局域网的媒体接入控制协议CSMA/CA

数据链路层的互连设备
网桥和交换机的工作原理
集线器(物理层互连设备)与交换机的区别

3.2 封装成帧

封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧

  • 帧头和帧尾中包含有重要的控制信息
  • 帧头和帧尾的作用之一就是帧定界

透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样

  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输
  • 面向比特的物理链路使用比特填充的方法实现透明传输

为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)

3.3 差错检测

  • 实际的通信链路都不是理想的,比特在传输过程中肯定会产生差错:1可能会变成0,而0可能也会变成1,这称为比特差错
  • 在一段时间内传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)
  • 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一

奇偶校验

  • 在待发送的数据后面添加一位奇偶校验位,使整个数据(包括所添加的校验位在内)中的“1”的个数为奇数(奇校验)或偶数(偶校验)
  • 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
  • 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)

循环冗余校验CRC(Cyclic Redundancy Check)

  • 收发双方约定好一个生成多项式G(x)
  • 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输
  • 接收方通过生成多项式来计算收到的数据是否产生了误码

计算余数:

  1. 构造被除数:待发送信息后面添加生成多项式最高次数个0
  2. 构造除数:生成多项式各项系数构成的比特串
  3. 做除法(异或)
  4. 检查余数:余数的位数应与生成多项式最高次数相同,如果位数不够,则在余数前补0来凑足位数

判断是否误码:

  1. 构造被除数:接收到的信息就是被除数
  2. 构造除数:生成多项式各项系数构成的比特串
  3. 做除法(异或)
  4. 检查余数:余数为0,可认为传输过程无误码;余数不为0,可认为传输过程产生误码
  • 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
  • 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用
  • 循环冗余校验(CRC)有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
  • 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到的差错的帧,这取决于数据链路层向上提供的是可靠传输服务还是不可靠传输服务。

3.4 可靠传输

3.4.1 可靠传输的基本概念

  • 使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)
  • 数据链路层向上提供的服务类型
    不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做
    可靠传输服务: 想办法实现发送端发送什么,接收端就收到什么
  • 一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理
  • 无限链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务
  • 比特差错只是传输差错中的一种
  • 从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复
  • 分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层
  • 可靠传输服务并不仅局限于数据链路层,其他层均可实现可靠传输
  • 可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求

3.4.2 可靠传输的实现机制--停止-等待协议(Stop and Wait,SW)

  • 接收端检测到数据分组有误时,将其丢弃并等待发送方的超时重传,但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组
  • 为了让接收方能够判断锁收到的数据的那组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等特性,只有一个比特编号就够了,即编号0和1
  • 为了让发送方能够判断所收到的ACK分组是否是重复的,则需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号
  • 超时计时器设置的重传时间应仔细选择,一般可将重传时间宣威略大于"从发送方到接收方的平均往返时间"
    在数据链路层点对点的往返时间比较确定,重传时间比较好设定
    然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易

信道利用率
U=T_D/(T_D+RTT+T_A)
T_D:发送方发送数据分组所耗费的发送时延
RTT:收发双方之间的往返时间
T_A:接收方发送确认分组所耗费的发送时延

  • 当往返时延RTT远大于数据帧发送时延T_D时(例如使用卫星链路),信道利用率非常低
  • 若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低
  • 为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退N帧协议GBN和选择重传协议SR

3.4.3 可靠传输的实现机制--回退N帧协议(Go-back-N, GBN)

发送方:

  • 发送窗口尺寸W_T的取值范围是1< W_T <= 2^n-1
    其中,n是构成分组序号的比特数量
    W_T=1 停止-等待协议
    W_T>=2^n-1 接收方无法分辨新、旧数据分组
  • 发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去
  • 发送方只有收到多个重复确认时,可在重传计时器超时前尽早开始重传,由具体实现决定
  • 发送方发送窗口内某个已发送的数据分组产生超时重发时,其后续再发送窗口内且已发送的数据分组也必须全部重传,这就是回退N帧协议名称的由来

接收方:

  • 接收方的接收窗口尺寸W_R的取值范围是W_R=1,因此接收方只能按序接收数据分组
  • 接收方只接收序号落在接收窗口内且无误码的数据分组,并且将接受窗口向前滑动一个位置,与此同时给发送方发回响应的确认分组,为了减少开销,接收方不一定每收到一个按序到达且无误码的数据分组就给发送方发回一个确认分组
    而是可以在连续收到好几个按序到达且无误码的数据分组后(由具体实现决定),才针对最后一个数据分组发送确认分组,这称为累积确认
    或者可以在自己有数据分组要发送时才对之前按序接收且无误码的数据分组进行捎带确认
  • 接收方收到未按序到达的数据分组,除丢弃外,还要对最近按序接收的数据分组进行确认

总结:

  • 回退N帧协议在流水线传输基础上利用发送窗口来限制发送发连续发送数据分组的数量,是一种连续ARQ协议
  • 在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议
  • 由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高

3.4.4 可靠传输的实现机制--选择重传协议

发送方:

  • 发送窗口尺寸W_T的取值范围是1< W_T <= 2^(n-1)
    其中,n是构成分组序号的比特数量
    W_T=1 停止-等待协议
    W_T>=2^(n-1) 接收方无法分辨新、旧数据分组
  • 发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去
  • 发送方只有按序收到对已发送数据分组的确认时,发送窗口才能向前相应滑动;若未收到按序到达的确认分组时,对其进行记录,已防止其相应数据分组的超时重发,但发送窗口不能向前滑动

接收方:

  • 接收方的接收窗口尺寸W_R的取值范围是1< W_R <= W_T
    W_R=1 停止-等待协议
    W_R>W_T 无意义
  • 接收方可接收未按序到达但没有误码并且序号落在接收窗口内的数据分组
    为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认
  • 接收方只有在按序接收数据分组后,接收窗口才能向前相应滑动

3.5 点对点协议PPP

  • 点对点PPP协议(point-to-point protocal)是目前使用最广泛的点对点数据链路层协议
  • PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成
    对各种协议数据报的封装方法(封装成帧)
    链路控制协议LCP 用于建立、配置以及测试数据链路的连接
    一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议

帧格式
帧的首部 F|A|C|P
帧的数据部分
帧的尾部 FCS|F

标志(Flag)字段:PPP帧的定界符,取值为0x7E
地址(Address)字段:取值为0xFF, 预留(目前没有什么作用)
控制(Control)字段:取值为0x03, 预留(目前没有什么作用)
协议(Protocol)字段:指明帧的数据部分送交哪个协议处理
取值0x0021表示:帧的数据部分为IP数据报
取值0xC021表示:帧的数据部分为LCP分组
取值0x8021表示:帧的数据部分为NCP数组

  • PPP帧的透明传输
    面向字节的异步链路使用字节填充法(插入转义字符)
    面向比特的同步链路使用比特填充法(零比特填充)
  • PPP协议的工作状态

3.6 媒体接入技术

3.6.1 媒体接入控制的基本概念

  • 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)

媒体接入控制分为静态划分信道和动态划分信道

静态划分信道:
频分多址
时分多址
码分多址
预先固定分配好信道,这类方法非常不灵活,对于突发性数据传输信道利用率会很低
通常在无线网络的物理层中使用,而不是在数据链路层中使用

动态接入控制分为受控接入和随机接入
受控接入
集中控制
有一个主站以循环方式轮询每个站点有无数据发送,只有被轮询到的站点才能发送数据,最大缺点是存在单点故障问题。
分散控制
各站点是平等的,并连接成一个环形网络。令牌(一个特殊的控制帧)沿环逐站传递,接收到令牌的站点才有权发送数据,并在发送完数据后将令牌传递给下一个站点
随机接入
所有站点通过竞争,随机地在信道上发送数据。如果恰巧有两个或更多的站点在同一时刻发送数据,则信号在共享媒体上就要产生碰撞(即发生了冲突)。使得这些站点的发送都失败。因此,这类协议要解决的关键问题是如何尽量避免冲突及在发生冲突后如何尽快回复通信。著名的共享式以太网采用的就是随机接入。

随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术

3.6.2 媒体接入控制-静态划分信道

信道复用
复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽

频分复用(FDM):频分复用的所有用户同时占用不同的频带资源并行同行
时分复用(TDM):时分复用的所有用户在不同的时间占用同样的频带带宽
波分复用(WDM):波分复用是光的频分复用
码分复用(CDM): 码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)
此课程不严格区分复用与多址的概念,可简单理解如下:
复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分
多址(更加确切的应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播和电视广播就是这样)
某种程度上,FDMA\TDMA\CDMA可以看做是FDM\TDM\CDM的应用

码分复用CDM是另一种共享信道的方法。实际上由于该技术主要用于多址接入,人们更常用的吗,京瓷是码分多址CDMA(Code Division Multipul Access)
与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信
由于个用户使用经过特殊挑选的不同码型,因此各用户之间不同造成干扰
CDM最初是用于军事通信的,因为这种系统所发送的信号又很强的抗干扰能力,其频谱类似于白噪声,不易与被敌人发现
随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中

在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip)。通常m的值是64或128,为了简单起见,在后续的距离中,我们假设m为8
使用CDMA的每一个站被指派一个唯一的m bit码片序列(Chip Sequence)
一个站如果要发送比特1,则发送它自己的m bit码片序列
一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码
码片序列的挑选原则如下:
1. 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列
2. 分配给每个站的麻片序列必须正交(规格化内积为0)
令向量S表示站S的码片序列,令向量T表示其他任何站的码片序列,两个不同站S和T的码片序列正交,就是向量S和T的规格化内积为0: S·T=0 S·S=1 S·T返=0 S·S返=1

3.6.3 随机接入(CSMA/CD协议)

媒体接入控制:
静态划分信道
动态接入控制

动态接入控制:
受控接入:包含集中控制和分散控制
随机接入

总线局域网使用的协议:
载波监听多址接入/碰撞检测 CSMA/CD(Carrier Sense Multiple Access/Collision Detection)

  • CSMA/CD协议的工作原理
    多点接入MA:多个主机连接在一条总线上,竞争使用总线
    载波监听CS:发送帧前先检测总线,若总线空闲96比特时间,则立即发送;若总线忙,则持续监测总线直到总线空闲96比特后再重新发送
    碰撞检测CD: 边发送边检测碰撞,若检测到碰撞,则立即停止发送, 退避一段时间后再重新发送
    上述过程可比喻为: 先听后说,边说边听;一旦冲突,立即停说;等待时机,重新再说

  • 使用CSMA/CD协议的以太网争用期(碰撞窗口)
    发送帧的主机最多经过以太网端到端往返传播时延2t这么长时间,就可检测待本次传输是否发生了烹煮那个, 2t称为争用期;
    经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
    以太网规定2t的取值为512比特时间(即发送512比特所耗费的时间),对于10Mbps的以太网,2t为51.2微秒

  • 使用CSMA/CD协议的以太网最小帧长和最大帧长
    最小帧长=争用期*信道带宽(数据发送速率),对于10Mbps的传统以太网,其争用期为51.2微秒,因此最小帧长为512b,即64字节
    以太网的最小帧长确保了主机在帧发送完成前就检测到该帧的发送过程中是否遭遇了碰撞。如果检测到碰撞,则停止发送帧的剩余部分,退避一段随机时间后,重新发送该帧
    为了防止主机长时间占用总线,以太网的帧也不能太长,以太网V2的MAC帧最大长度为1518字节(1500字节数据在和,18字节首尾字段);插入VLAN标记的802.1Q帧最大长度为1522字节(1500字节数据在和,22字节首尾字段)

  • CSMA/CD协议使用的截断二进制指数退避算法
    随机退避时间=争用期2t*随机数r, 其中r 从离散的整数集合{0,1,...,(2^k-1)}中随机取出一个,k=Min[重传次数,10];
    当重传达16次仍不能成功时,这表明同时打算发送数据的主机太多以至于连续发生碰撞,则丢弃该帧并向高层报告

  • 以太网的信道利用率
    S_max = 1/(1+a) 参数a的值尽量小,以提高信道利用率
    a=t/(T0) 以太网端到端的距离受到限制,以太网帧的长度T0应尽量长些

3.6.4 随机接入(CSMA/CA协议)

无线局域网使用的协议
载波监听多址接入/碰撞避免 CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)
802.11无线局域网在MAC层使用CSMA/CA协议,以尽量减小碰撞发送的概率。不能使用CSMA/CD协议的原因是在无线局域网中无法实现碰撞检测。在使用CSMA/CA协议的同时,还使用停止-等待协议来实现可靠传输
为了尽可能地避免各种可能的碰撞,CSMA/CA协议采用了一种不同于CSMA/CD协议的退避算法。当要发送帧的站点检测到信从忙转换为空闲时,都要执行退避算法
802.11标准规定,所有的站在完成发送后,必须再等待一段帧间间隔时间测能发送下一帧。帧间间隔的长短却局域该站要发送的帧的优先级
在802.11无线局域网的MAC帧首部中有一个持续期西段,用来填入在本帧结束后还要占用信道多久时间,其他站点通过该字段可实现虚拟载波监听
802.11标准允许要发送数据的站点对信道进行预约,即在发送数据帧之前先发送请求发送RTS帧。在收到相应允许发送CTS帧后,就可以发送数据帧

3.7 MAC地址、IP地址以及ARP协议

MAC地址:数据链路层
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址
在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Medeia Access Control), 因此这类地址被称为MAC地址;

  • MAC地址一般被固化在网卡上(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址
  • MAC地址有时也被称为物理地址,请注意:这并不意味着MAC地址属于网络体系结构中的物理层
    一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口。综上所属,严格来说,MAC地址是对网络上个接口的唯一标识,而不是对网络上各设备的唯一标识。

IP地址:网络层
IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息:

  • 网络编号:标识因特网上数以百万计的网络
  • 主机编号:表示统一网络上不同主机(或路由器)
    很显然,之前介绍的MAC地址不具备区分不同网络的功能
  • 如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)
  • 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用
    数据包转发过程中IP地址与MAC地址的变化情况
  • 源IP地址和目的IP地址保持不变
  • 源MAC地址和目的MAC地址逐个链路(或逐个网络)改变

地址解析协议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(Gratuitous ARP)”)
ARP没有安全验证机制,存在ARP欺骗(攻击)问题

3.8 集线器与交换机的区别

集线器HUB
早期以太网的互联设备
工作在OSI体系结构的物理层
对接收到的信号进行放大、转发
使用集线器作为互连设备的以太网仍然属于共享总线式以太网。集线器互联起来的所有主机共享总线带宽,属于同一个碰撞域和广播域

交换机SWITCH
目前以太网中使用最广泛的互联设备
工作在OSI体系结构的数据链路层(也包括物理层)
根据MAC地址对帧进行转发
使用交换机作为互连设备的以太网,称为交换式以太网。交换机可以根据MAC地址过滤帧,即隔离碰撞域。
交换机的每个接口是一个独立的碰撞域
交换机隔离碰撞域但不隔离广播域(VLAN除外)

工作在数据链路层的交换机在传输效率上远远超过工作在物理层的集线器,价格也不贵,这就使得集线器被市场淘汰了

3.9 以太网交换机自学习和转发帧的流程

以太网交换机工作在数据链路层(也包括物理层)
以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧
以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的,随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表
以太网交换机自学习和转发帧的流程:

  1. 收到帧后进行登记。登记的内容为帧的源MAC地址及进入交换机的接口号
  2. 根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况:
    明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播,多播,广播)
    盲目转发:交换机不知道应当从哪个端口转发帧,只能将其通过除进入交换机的接口外的其他所有接口转发(也成为泛洪)
    明确丢弃:交换机知道不应该转发该帧,将其丢弃。
    帧交换表中的每条记录都有自己的有效时间,到期删除。原因如下:
    交换机的接口改接了另一台主机
    主机更换了网卡

3.10 以太网交换机的生成树协议STP

如何提高以太网的可靠性?
添加冗余链路可以提高以太网的可靠性
但是,冗余链路也会带来负面效应--形成网络环路
网络环路会带来以下问题:
广播风暴:大量消耗网络资源,使得网络无法正常转发其他数据帧
主机收到重复的广播帧:大量消耗主机资源
交换机的帧交换表震荡(漂移)
以太网交换机使用生成树协议STP(Spanning Tree Protocol), 可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。
不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树形的(无逻辑环路)
最终生成的树形逻辑拓扑要确保连通整个网络
当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算

3.11 虚拟局域网VLAN

概述

  1. 以太网交换机工作在数据链路层(也包括物理层)
  2. 使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域
  3. 随着交换式以太网规模的扩大,广播域相应扩大
  4. 巨大的广播域会带来很多弊端:广播风暴 难以管理和维护 存在潜在的安全问题
  5. 网络中会频繁出现广播信息(TCP/IP协议栈中很多协议都会使用广播,例如ARP、RIP、DHCP等)
  6. 分割广播域的方法:使用路由器可以隔离广播域,但路由器成本较高,虚拟局域网VLAN技术应运而生
  7. 虚拟局域网VLAN(virtual local area network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求

虚拟局域网VLAN的实现机制

IEEE 802.1Q帧(也称 Dot One Q帧)对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记

VLAN标记的最后12比特称为VLAN标识符VID,它唯一地标志了以太网帧属于哪一个VLAN
VID的取值范围是04095(02^12-1)
0和4095都不用来表示VLAN,因此用于表示VLAN的VID的有效取值范围是1~4094
802.1Q帧是由交换机来处理的,而不是用户主机来处理的
当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧,简称“打标签”
当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧,简称“去标签”
交换机的端口类型:Access Trunk Hybrid

Access
连接用户计算机
只能属于一个VLAN
PVID与端口所属VLAN的ID相同,默认值为1
接收处理方法:一般只接收未打标签的普通以太网帧,并给其打标签

发送处理方法:若帧中的VID等于端口PVID,则去掉标签并转发;否则丢弃

Trunk
交换机之间或交换机与路由器之间的连接
可以属于多个VLAN
用户可以设置PVID,默认为1
接收处理方法:接收已打标签的帧;接收未打标签的帧,根据端口的PVID值给打标签

发送处理方法:帧中VID等于端口PVID,去掉标签再转发;帧中VID不等于端口PVID,直接转发

Hybrid
交换机之间,交换机与路由器、交换机与用户计算机之间的连接
可以属于多个VLAN
用户可以设置PVID,默认为1
接收处理方法:接收已打标签的帧;接收未打标签的帧,根据端口的PVID的值给帧打标签
发送处理方法:查看数据帧中的VID是否在端口的“去标签”列表中:如果存在,则去掉标签再转发,如果不存在则直接转发

posted @ 2024-03-10 18:08  Oh,mydream!  阅读(7)  评论(0编辑  收藏  举报