《计算机网络:自顶向下方法》学习笔记——第六章:链路层

两种截然不同类型的链路层信道

  • 广播信道:这种信道用于连接有线局域网、卫星网和混合光纤同轴电缆接入网中的多台主机。
  • 点对点通信链路:这在诸如长距离链路连接的两台路由器之间,或用户办公室计算机与它们所连接的邻近以太网交换机之间等场合经常能够发现。

6.1 链路层概述

一些有用的术语:

  • 节点:运行链路层协议(即第2层)协议的任何设备
  • 链路:沿着通信路径连接相邻节点的通信信道
  • 在通过特定的链路时,传输节点将数据报封装在链路层帧中,并将该帧传送到链路中

数据报(分组)在不同的链路上以不同的链路协议传送:

  • 第一跳链路:以太网
  • 中间链路:帧中继链路
  • 最后一跳802.11

不同的链路协议提供不同的服务

传输类比:

去旅游社从上海到广州旅游,可分为以下几步

  1. 坐汽车到上海机场
  2. 从上海坐飞机到南京
  3. 从南京坐高铁到广州

其中人可以比作数据报,每个交通段可以比作一条通信链路,每个交通模式可以看成一个链路层协议,然后具体的路径是由路由选择算法算出来的

6.1.1 链路层提供的服务

任一链路层的基本服务都是将数据报通过单一通信链路从一个节点移动到相邻节点,链路层协议能够提供的可能服务包括:

  • 成帧
    • 将数据报封装在帧中,加上帧头、帧尾部
  • 链路接入媒体访问控制(MAC)协议规定了帧在链路上传输的规则。
    • 如果采用的是共享性介质,信道接入获得信道访问权
    • 在帧头部使用“MAC”(物理)地址来标示源和目的
  • 可靠交付
    • 低差错链路上很少使用 (光纤,一些双绞线)
      • 出错率低,没有必要在每一个帧中做差错控制的工作,协议复杂
      • 在本层放弃可靠控制的工作,在网络层或者是传输层做可靠控制的工作,或者根本就不做可靠控制的工作
    • 高差错链路上需要进行可靠的数据传送(无线链路)
      • 出错率高,如果在链路层不做差错控制工作,漏出去的错误比较高;到了上层如果需要可靠控制的数据传输代价会很大
  • 差错检测
    • 差错由信号衰减和噪声引起
    • 接收方检测出的错误: 通知发送端进行重传或丢弃帧
  • 差错纠正:
    • 接收端检查和纠正bit错误,不通过重传来纠正错误
  • 流量控制
    • 使得相邻的发送和接收方节点的速度匹配
  • 半双工和全双工:
    • 半双工:链路可以双向传输,但一次只有一个方向

6.1.2 链路层在何处实现

链路层的主体部分是在网络适配器中实现的,网络适配器有时也称为网络接口卡

位于网络适配器核心的是链路层控制器,该控制器通常是一个实现了许多链路层服务(成 帧、链路接入、差错检测等)的专用芯片

链路层是硬件和软件的结合体,即此处是协议栈中软件与硬件交接的地方

适配器通信:

发送方:

  • 在帧中封装数据报
  • 加上差错控制编码,实现RDT和流量控制功能等

接收方:

  • 检查有无出错,执行rdt和流量控制功能等
  • 解封装数据报,将至交给上层

6.2 差错检测和纠正技术

比特级差错检测和纠正:对从一个节点发送到另一个物理上连接的邻近节点的链路层帧中的比特损伤进行检测和纠正,它们通常是链路层提供的两种服务

  • EDC=差错检测和纠正位(冗余位)
  • D=数据由差错检测保护,可以包含头部字段

发送节点:使用差错检测和纠正比特(EDC)来增强数据D。

接收方:只收到D’和EDC’的情况下,确定D’是否和初始的D相同

但错误检测不是100%可靠的

  • 协议会漏检一些错误,但是很少
  • 更长的EDC字段可以得到更好的检测和纠正效果

6.2.1 奇偶校验

1.单bit奇偶校验检测单个bit级错误

在这里插入图片描述

要发送的信息有d比特

  • 偶校验方案:选择校验比特的值,使得这d+1比特(初始信息加上一个校验比特)中1的总数是偶数,是偶数则校验位为0
  • 奇校验方案:选择校验比特的值,使得这d+1比特(初始信息加上一个校验比特)中1的总数是奇数

接收方:方只需要数一数接收的d+1比特中1的数目即可

2.二维奇偶校验: 检测和纠正单个bit错误

D中的d个比特被划分为i行j列。对每行和每列计算奇偶值。产生的i+j+1奇偶比特构成了链路层帧的差错检测比特

如果出现了单个比特差错,改变的列和行的校验值都将会岀现差错。因此可以索引错误位置并纠正错误

例:

在这里插入图片描述

其中位于(2, 2)的值为1的比特损坏了,变成了0,该差错就是一个在接收方可检测并可纠正的差错

但是如果是邻近的一个正方形的四个比特位都发生错误,最后检验的结果仍然是正确的,这种队友错误就检验不出来

接收方检测和纠正差错的能力被称为前向纠错

  • 减少所需的发送方重发的次数
  • 允许在接收方立即纠正差错
  • 避免了不得不等待的往返时延

6.2.2 检验和方法

检验和:检测在传输报文段时的错误(如位翻转),(注:仅仅用在传输层)

  • 发送方
    • 将报文段看成16-bit整数
    • 报文段的校验和: 求和 (1的补码和)
    • 发送方将checksum的值放在‘UDP校验和’字段
  • 接收方:
    • 计算接收到的报文段的校验和
    • 检查是否与携带校验和字段值一致:
      • 不一致:检出错误
      • 一致:没有检出错误,但可能还是有错误

有更简单的检查方法:全部加起来看是不是1

6.2.3 循环冗余检测

准备知识:

1.模二运算

加法不进位,减法不借位,加法和减法是相同的,而且这两种操作等价于操作数的按位异或(XOR),例如

在这里插入图片描述

2.位串的两种表示

位串表示:1011

多项式表示: 1 ∗ x 3 + 0 ∗ x 2 + 1 ∗ x 1 + 1 ∗ x 0 1*x^3+0*x^2+1*x^1+1*x^0 1x3+0x2+1x1+1x0

3.生成多项式

假设约定生成r次方的多项式,则总共有r+1比特

比如G=x3+1

其表示的位串就是1001,总共4比特

CRC(循环冗余校验)

  • 发送方和接收方首先必须协商r位CRC附加位R
  • <D,R> 正好被G整除 (modulo 2)
  • 接收方知道 G, 将 <D,R>除以 G。如果非0余数: 检查出错误
  • 能检出所有少于r+1位的突发错误

在这里插入图片描述

对于书上的例子,可以这么理解:

d比特是数据D,加入了r比特的附加位R,说明数据D的全部比特在原来的基础上全部向右移了r位,根据算法得原数据D变成了D*2r。然后再加上冗余位R,可以直接用XOR异或来表示加法,所以发送方发送的数据用数学公式表示为:
D ⋅ 2 r X O R R D·2^r\quad XOR \quad R D2rXORR
关键问题是如何计算R,首先要求R使得对于n有:
D ⋅ 2 r X O R R = n G D·2^r\quad XOR \quad R =nG D2rXORR=nG
也就是要选择R使得G能够除以D·2r XOR R而没有余数,对上面式子两边异或R,得:
D ⋅ 2 r = n G X O R R D·2^r =nG\quad XOR \quad R D2r=nGXORR
用G来除D·2r,余数值刚好是R。换句话说,我们可以这样计算R:
R = r e m a i n d e r D ⋅ 2 r G R=remainder \frac{D·2^r}{G} R=remainderGD2r
例:

对于书上的例子,D=101110, d=6, G=1001和r=3

发送方首先将D右移r=3位,即

在这里插入图片描述

然后再除以G,使用模二运算:

在这里插入图片描述

算出来的R为011,发送方就发送D·2r+R即101110011,接收方要除以G,看看能否被整除

CRC性能分析

  • 能够检查出所有的1bit错误
  • 能够检查出所有的双bits的错误
  • 能够检查出所有长度 =r或者<r 位的错误
  • 出现长度为r+1的突发错误,检查不出的概率是1/2r-1
  • 出现长度大于r+1的突发错误,检查不出的概率1/2r

6.3 多路访问链路和协议

两种类型的链路(一个子网内部链路连接形式):

  • 点对点
    • 拨号访问的PPP
    • 以太网交换机和主机之间的点对点链路
  • 广播 (共享线路或媒体)
    • 传统以太网
    • HFC上行链路
    • 802.11无线局域网

多路访问问题:如何协调多个发送和接收节点对一个共享广播信道的访问

**多路访问协议:**节点通过这些协议来规范它们在共享的广播信道上的传输行为

所有的节点都能够传输帧,所以多个节点可能会同时传输帧。所有节点同时接到多个帧,传输的帧在所有的接收方处碰撞

理想的多路访问协议:

给定:R bps的广播信道

特性:

  • 当一个节点要发送时,该节点具有R bps的吞吐量
  • 当M个节点要发送,每个可以以R/M的平均速率发送
  • 协议是分散的;这就是说不会因某主节点故障而使整个系统崩溃
  • 协议是简单

3类多路协议:

  • 信道划分

    • 把信道划分成小片(时间、频率、编码)
    • 分配片给每个节点专用
  • 随机访问

    • 信道不划分,允许冲突
    • 冲突后恢复
  • 依次轮流

    • 节点依次轮流

    • 但是有很多数据传输的节点可以获得较长的信道使用权

6.3.1 信道划分协议

1.时分多路复用(TDM)

假设一个支持N个节点的信道且信道的传输速率为R bps。TDM将时间划分为时间帧,并进一步划分每个时间帧为N个时隙。把每个时隙分配给N个节点中的一个,在循环的TDM帧中指派给它的时隙内传输分组比特。每个节点在每个帧时间内得到了专用的传输速率R/N bps

在这里插入图片描述

例:一个简单的4个节点的TDM例子。

缺点:

  • 节点被限制于R/N bps的平均速率,即使当它是唯一有分组要发送的节点时
  • 节点必须总是等待它在传输序列中的轮次

2.频分多路复用(FDM)

将R bps信道划分为不同的频段(每个频段具有R/N带宽),并把每个频率分配给N个节点中的一个。FDM在单个较大的R bps信道中创建了N个较小的R/N bps信道

在这里插入图片描述

优点:避免了碰撞,在N个节点之间公平地划分了带宽

缺点:限制一个节点只能使用R/N的带宽,即使当它是唯一一个有分组要发送的节点时

3.码分多路访问(CDMA)

CDMA对每个节点分配一种不同的编码。然后每个节点用它唯一的编码来对它发送的数据进行编码。

不同的节点能够同时传输,并且它们各自相应的接收方仍能正确接收发送方编码的数据比特。

3种方法的类比:

  • TDM:不同的人在不同的时刻讲话
  • FDM:不同的组在不同的小房间里通信
  • CDMA:不同的人使用不同的语言讲话

6.3.2 随机接入协议

在随机接入协议中,一个传输节点总是以信道的全部速率(即R bps)进行发送

当有碰撞时,涉及碰撞的每个节点反复地重发它的帧(也就是分组),到该帧无碰撞地通过为止

当一个节点经历一次碰撞时,它在重发该帧之前等待一个随机时延。因为每个碰撞的节点是独立地选择随机时延,所以可能有些节点之一所选择的时延充分小于其他碰撞节点的时延,并因此能够无碰撞地将它的帧在信道中发出

1.时隙 ALOHA

假设

  • 所有帧是等长
  • 时间被划分成相等的时隙L/R,每个时隙可发送一帧
  • 节点只在时隙开始时发送帧
  • 节点在时钟上是同步的
  • 如果两个或多个节点在一个时隙传输,所有的站点都能检测到冲突

运行:令p是一个概率

  • 当节点获取新的帧,在下一个时隙传输
  • 传输时没有检测到冲突,成功传输(节点能够在下一时隙发送新帧)
  • 检测时如果检测到冲突,失败(节点在每一个随后的时隙以概率p重传帧直到成功)

优点

  • 节点可以以信道带宽全速连续传输
  • 高度分布:仅需要节点之间在时隙上的同步
  • 简单

缺点

  • 存在冲突,浪费时隙
  • 即使有帧要发送,仍然有可能存在空闲的时隙
  • 如果节点检测冲突的时间<帧传输的时间,必须传完
  • 需要时钟上同步

**效率:**当有大量的活跃节点且每个节点总有大量的帧要发送时,长期运行中成功时隙的份额

例:

在这里插入图片描述

  • 假设N个节点,每个节点都有很多帧要发送, 在每个时隙中的传输概率是p
  • 一个节点成功传输概率是p(1-p)N-1
  • 任何一个节点的成功概率是= Np(1-p)N-1

N个节点的最大效率:

  • 求出使f§=Np(1-p)N-1最大的p*
  • N为无穷大时的极限为1/e=0.37(求导取极限)

最好情况:信道利用率37%

2.ALOHA

是非时隙、完全分散的协议。无须节点间在时间上同步。

当有帧需要传输:马上传输

冲突的概率增加:

在这里插入图片描述

  • 帧在t0发送,和其它在[t0-1, t0+1]区间内开始发送的帧冲突
  • 和当前帧冲突的区间(其他帧在此区间开始传输)增大了一倍

纯ALOHA的效率:

P(指定节点成功)=P(节点传输)·P(其它节点在[t0-1,t0]不传)·P(其它节点在[t0,t0 +1不传] = p·(1-p)N-1·(1-p)N-1=p·(1-p)2(N-1)

N趋向无穷大,p=1/(2e)=17.5%

3.载波侦听多路访问(CSMA)

规则:

  • 载波侦听:一个节点在传输前先听信道。如果侦听到信道空闲,传送整个帧
  • 碰撞检测:当一个传输节点在传输时一直在侦听此信道。如果侦听到信道忙,推迟传送

人类类比:不要打断别人正在进行的说话!

冲突仍然可能发生:由传播延迟造成:两个节点可能侦听不到正在进行的传输

在这里插入图片描述

  • 在时刻t0,节点B侦听到信道是空闲的,开始向两侧传播
  • 时刻t1,由于B没有到达D,因此D开始传播
  • 一段时间后B,D冲突,B的传输开始在D干扰D的传输

整个冲突帧的传输时间都被浪费了,是无效的传输(红黄区域)

注意:传播延迟(距离)决定了冲突的概率

4.具有碰撞检测的载波侦听多路访问(CSMA/CD)

与CSMA不同之处:当某节点执行碰撞检测时,一旦它检测到碰撞将立即停止传输

在多路访问协议中加入碰撞检测,通过不传输一个无用的、损坏的帧,将有助于改善协议的性能

在这里插入图片描述

对信道的浪费减少了

以太网CSMA/CD算法:

  1. 适配器从网络层获取数据报,创建帧,放入帧适配器缓存中
  2. 发送前适配器侦听信道,如果空闲开始传送帧,如果忙碌则等到空闲再发送
  3. 传输过程中检测冲突
  4. 没有冲突则成功发送该帧。检测到冲突则放弃,之后尝试重发
  5. 如果发送方适配器检测到冲突,除放弃外,还发送一个Jam信号,所有听到冲突的适配 器也是如此,即让所有站点都知道冲突
  6. 如果放弃,适配器进入指数退避状态。在第m次失败后,适配器随机选择一个{0,1,2,n,2n-1}中选择一个K值,等待K·512比特时间,然后转到步骤2 ,即二进制指数后 退算法

指数退避:

目标:适配器试图适应当前负载,在一个变化的碰撞窗口中随机选择时间点尝试重发

  • 首次碰撞:在{0,1}选择K;延迟K*512比特时间
  • 第2次碰撞:在{0,1,2,3}选择K
  • 第10次碰撞:在{0,1,2,3,……,1023}选择K

5.CSMA/CD 效率

定义:当有大量的活跃节点, 且每个节点有大量的帧要发送时,帧在信道中无碰撞地传输的那部分时间在长期运行时间中所占的份额

  • 令ddrop表示信号能量在任意两个适配器之间传播所需的最大时间。
  • 令dtrans表示传输一个最大长度的以太网帧的时间

近似式为:
效率 = 1 1 + 5 d d r o p / d t r a n s 效率=\frac{1}{1+5d_{drop}/d_{trans}} 效率=1+5ddrop/dtrans1

  • 当ddrop接近0时,效率接近1。即传播时延是0,碰撞的节点将立即中止而不会浪费信道
  • dtrans变得很大时,效率也 接近于1。因为当一个帧取得了信道时,它将占有信道很长时间;因此信道在大多数时间都会有效地工作

CSMA/CD比ALOHA有更好的性能,而且简单,廉价,分布式

6.3.3 轮流协议

轮流协议:

  • 轮询协议
    • 节点之一要被指定为主节点
    • 主节点以循环的方式轮询每个节点
    • 先向节点1发送一个报文,告诉它(节点1)能够传输的帧的最多数量
    • 在节点1传输了某些帧后,主节点告诉节点2它(节点2)能够传输的帧的最多数量

优点:消除了困扰随机接入协议的碰撞和空时隙

缺点:该协议引入了轮询时延。如果主节点有故障,整个信道都变得不可操作

  • 令牌传递协议
    • 一个称为令牌的小的特殊帧在节点之间以某种固定的次序进行交换
    • 当一个节点收到令牌时,仅当它有一些帧要发送时,它才持有这个令牌
    • 否则,它立即向下一个节点转发该令牌

优点:令牌传递是分散的,并有很高的效率

缺点:一个节点的故障可能会使整个信道崩溃。如果一个节点偶然忘记了释放令牌,则必须调用某些恢复步骤使令牌返回到循环中来

小结:

多点接入问题:对于一个共享型介质,各个节点如何协调对它的访问和使用?

  • 信道划分:按时间、频率或者编码
    • TDMA、FDMA、CDMA
  • 随机访问 (动态)
    • ALOHA, S-ALOHA, CSMA, CSMA/CD
    • 载波侦听: 在有些介质上很容易 (wire:有线介质), 但在有些介质上比较困难 (wireless:无线)
    • CSMA/CD :802.3 Ethernet网中使用
    • CSMA/CA :802.11WLAN中使用
  • 依次轮流协议
    • 集中:由一个中心节点轮询;分布:通过令牌控制
    • 蓝牙、FDDI、令牌环

6.3.4 DOCSIS:用于电缆因特网接入的链路层协议

数据经电缆服务接口规范(DOCSIS)定义了电缆数据网络体系结构及其协议

  • 多个40Mbps 下行(广播)信道,FDM
    • 下行:通过FDM分成若干信道,互联网、数字电视等
    • 互联网信道:只有1个CMTS在其上传输
  • 多个30Mbps 上行的信道,FDM
    • 多路访问:所有用户使用;接着TDM分成微时隙
    • 部分时隙:分配;部分时隙:竞争;

在这里插入图片描述

  • 采用FDM进行信道的划分:若干上行、下行信道
  • 下行信道:
    • 在下行MAP帧中:CMTS告诉各节点微时隙分配方案,分配给各站点的上行微时隙
    • 另外:头端传输下行数据(给各个用户)
  • TDM上行信道:
    • 采用TDM的方式将上行信道分成若干微时隙:MAP指定
    • 站点采用分配给它的微时隙上行数据传输:分配
    • 在特殊的上行微时隙中,各站点请求上行**微时隙:**竞争
      • 各站点对于该时隙的使用是随机访问的
      • 一旦碰撞(请求不成功,结果是:在下行的MAP中没有为它分配,则二进制退避)选择时隙上传输

6.4 交换局域网

6.4.1 链路层寻址和ARP

1.MAC地址

并不是主机或路由器具有链路层地址,而是它们的适配器(即网络接口)具有链路层地址

链路层地址有各种不同的称呼:LAN地址物理地址MAC地址

  • MAC地址长度为6字节,共有248个可能的MAC地址,地址的每个字节被表示为一对十六进制数

  • 没有两块适配器具有相同的地址

  • 适配器的MAC地址具有扁平结构,而且不论适配器到哪里用都不会变化

当某适配器要向某些目的适配器发送一个帧时,发送适配器将目的适配器的MAC地址插入到该帧中,并将该帧发送到局域网上

  • 当适配器接收到一个帧时,将检查该帧中的目的MAC地址是否与它自己的MAC地址匹配
  • 如果匹配,该适配器提取出封装的数据报,并将该数据报沿协议栈向上传递
  • 如果不匹配,该适配器丢弃该帧,而不会向上传递该网络层数据报

有时某发送适配器的确要让局域网上所有其他适配器来接收并处理它打算发送的帧。发送适配器在该帧的目的地址字段中插入一个特殊的MAC广播地址:是48个连续的1组成的字符串(即以十六进制表示法表示的FF- FF- FF- FF- FF - FF)

IP地址和MAC地址的作用不同

  • IP地址是分层
  • 一个子网所有站点网络号一致,路由聚集,减少路由表
    • 需要一个网络中的站点地址网络号一致,如果捆绑需要定制网卡非常麻烦
  • 希望网络层地址是配置的;IP地址完成网络到网络的交付
  • mac地址是一个平面
    • 网卡在生产时不知道被用于哪个网络,因此给网卡一个唯一的标示,用于区分一个网络内部不同的网卡即可
    • 可以完成一个物理网络内部的节点到节点的数据交付

网络地址和mac地址分离

  • 分离好处

    • 网卡坏了,ip不变,可以捆绑到另外一个网卡的mac上
    • 物理网络还可以除IP之外支持其他网络层协议, 链路协议为任意上层网络协议, 如IPX等
  • 捆绑的问题

    • 如果仅仅使用IP地址,不用mac地址,那么它仅支持IP协议
    • 每次上电都要重新写入网卡IP地址;
    • 另外一个选择就是不使用任何地址;不用MAC地址,则每到来一个帧都要上传到IP层次,由它判断是不是需要接受,干扰一次

2.地址解析协议

地址解析协议(ARP):转换网络层地址(例如,因特网的IP地址)和链路层地址(即MAC地址)

问题是:已知B的IP地址,如何确定B的MAC地址?

  • 每台主机或路由器在其内存中具有一个ARP表,包含IP地址到MAC地址的映射关系
  • TTL时间是指地址映射失效的时间
  • 典型是20min

如果ARP表中当前没有该目的主机的表项,又该怎么办

  • A广播包含B的IP地址的ARP查询包
  • B接收到ARP包,回复A自己的MAC地址
    • 帧发送给A
    • 用A的MAC地址(单播)
  • A在自己的ARP表中,缓存IP-to-MAC地址映射关系 ,直到信息超时
  • 发送A的IP数据报,该帧的目的MAC就是B的MAC地址

把ARP看成是跨越链路层和网络层边界两边的协议

3.发送数据报到子网以外

发送数据报:由A通过R到B,假设A知道B的IP地址

  • 在R上有两个ARP表,分别对应两个子网
  • 在源主机的路由表中,发现到目标主机的下一跳时111.111.111.110
  • 在源主机的ARP表中,发现其MAC地址是E6-E9-00-17-BB-4B

编址:

  • A创建数据报,源IP地址:A;目标IP地址:B
  • A创建一个链路层的帧,目标MAC地址是R,该帧包含A到B的IP数据报
  • 帧从A发送到R,帧被R接收到,从中提取出IP分组,交给上层IP协议实体
  • R转发数据报,数据报源IP地址为A,目标IP地址为B
  • R创建一个链路层的帧,目标MAC地址为B,帧中包含A到B的IP数据报

6.4.2 以太网

1.以太网帧结构

  • 数据字段(46 ~ 1500字节):这个字段承载了IP数据报。以太网的最大传输单元 (MTU)是1500字节
    • 如果IP数据报超过了1500字节,数据报分片
    • 如果IP数据报小于46字节,填充到46字节
  • 目的地址(6字节):这个字段包含目的适配器的MAC地址
  • 源地址(6字节):包含了传输该帧到局域网上的适配器的MAC地址
  • 类型字段(2字节):类型字段允许以太网复用多种网络层协议
  • CRC (4字节):使得接收适配器检测帧中是否引入了差错
  • 前同步码(8字节):以太网帧以一个8字节的前同步码字段开始。
    • 前7字节的值都是1010101,用于“唤醒”接收适配器,并且将它们的时钟和发送方的时钟同步
    • 最后一个字节是10101011,的最后两个比特(第一个出现的两个连续的1)警告接收适配器, “重要的内容”就要到来了

以太网:无连接、不可靠的服务

  • 无连接:帧传输前,发送方和接收方之间没有握手
  • 不可靠:接收方适配器不发送ACKs或NAKs给发送方
    • 递交给网络层的数据报流可能有间隙

2.以太网技术

很多不同的以太网标准

  • 相同的MAC协议(介质访问控制)和帧结构
  • 不同的速率:2 Mbps、10 Mbps 、100 Mbps 、1Gbps 、10G bps
  • 不同的物理层标准
  • 不同的物理层媒介:光纤,同轴电缆和双绞线

6.4.3 链路层交换机

交换机的任务是接收入链路层帧并将它们转发到出链路

到交换机自身对子网中的主机和路由器是透明的

**1.交换机转发和过滤 **

过滤:决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能

转发:决定一个帧应该被导向哪个接口,并把该帧移动到那些接口的交换机功能

交换机的过滤和转发借助于交换机表完成,表项包含

  • 一个MAC地址
  • 通向该MAC地址的交换机接口
  • 表项放置在表中的时间

过滤和转发工作过程:

假定目的地址为DD-DD-DD-DD-DD-DD的帧从交换机接口x到达,索引表可能的情况如下:

  • 表中没有对于DD-DD-DD-DD-DD-DD的表项。交换机广播该帧
  • 表中有一个表项将DD-DD-DD-DD-DD-DD与接口x联系起来。无须将该帧转发到任何其他接口,交换机通过丢弃该帧执行过滤功能即可
  • 表中有一个表项将DD-DD-DD-DD-DD-DD与接口y≠x联系起来。交换机通过将该帧放到接口y前面的输出缓存完成转发功能

假设一个帧从接口1到达交换机。交换机检查它的表并且发现其目的地是在与接口1相连的局域网网段上网。这意味着该帧已经在包含目的地的局域网网段广播过了。因此该交换机过滤(即丢弃)了该帧。现在假设有同样目的地址的帧从接口2到达。交换机再次检查它的表并且发现其目的地址在接口1的方向上;因此它向接口1前面的输出缓存转发该帧

2.自学习

交换机的表是自动、动态和自治地建立的,即没有来自网络管理员或来自配置协议的任何干预,即自学习的,通过以下方式实现:

  1. 交换机表初始为空
  2. 对于在每个接口接收到的每个入帧,该交换机在其表中存储:1)在该帧源地址字段中的MAC地址。2)该帧到达的接口。3)当前时间。记录了发送节点所在的局域网网段
  3. 如果在一段时间(称为老化期)后,交换机没有接收到以该地址作为源地址的帧,就在表中删除这个地址

交换机是即插即用设备, 因为它们不需要网络管理员或用户的干预

3.链路层交换机的性质

  • 消除碰撞:在使用交换机(不使用集线器)构建的局域网中,没有因碰撞而浪费的带宽
  • 异质的链路:交换机将链路彼此隔离,因此局域网中的不同链路能够以不同的速率运行并且能够在不同的媒体上运行
  • 管理:除了提供强化的安全,交换机也易于进行网络管理

4.交换机和路由器比较

  • 都是存储转发设备,但层次不同
    • 交换机:链路层设备(检查链路层头部)
    • 路由器:网络层设备(检查网络层的头部)
  • 都有转发表:
    • 交换机:维护交换表,按照MAC地址转发
      • 执行过滤、自学习和生成树算法
      • 即插即用;二层设备,速率高
      • 执行生成树算法,限制广播帧的转发
      • ARP表项随着站点数量增多而增多
    • 路由器:维护路由表,执行路由算法
      • 路由算法能够避免环路,无需执行生成树算法,可以以各种拓扑构建网络
      • 对广播分组做限制
      • 不是即插即用的,配置网络地址(子网前缀)
      • 三层设备,速率低

6.4.4 虚拟局域网

现代机构的局域网常常是配置为等级结构的,每个工作组(部门)有自己的交换局域网,经过一个交换机等级结构与其他工作组的交换局域网互联,但有以下缺点:

  • 缺乏流量隔离
  • 交换机的无效使用
  • 管理用户

支持虚拟局域网VLAN的交换机允许经一个单一的物理局域网基础设施定义多个虚拟局域网

在一个VLAN内的主机彼此通信,仿佛它们(并且没有其他主机)与交换机连接

基于端口的VLAN:

  • 交换机的端口(接口)由网络管理员划分为组
  • 每个组构成一个VLAN,在每个VLAN中的端口形成一个广播域

物理上一个交换机,虚拟成多个局域网

端口 2 ~8属于电气工程系(EE) VLAN,而端口 9 ~ 15属于计算机科学系(CS)VLAN (端口1和16未分配)。交换机端口8的用户加入计算机科学系时,网络操作员只需重新配置VLAN软件,使得端口8与CS VLAN相关联即可

来自电子工程系的流量怎样才能发送到计算机科学系呢?

  • 将VLAN交换机的一个端口(如上图端口1)与一台外部的路由器相连,并且将该端口配置为属于EE VLAN和CS VLAN

连接具有两个VLAN的两台VLAN交换机呢?

在这里插入图片描述

  • 在每台交换机上定义一个属于CS VALN的端口(对EE VLAN也类似处理),并且如图a所示将这两个端口彼此互联起来
  • VLAN干线连接:如图b中,每台交换机上的一个特殊端口(左侧交换机上的端口16, 右侧交换机上的端口 1)被配置为干线端口,以互联这两台VLAN交换机

一个交换机怎样知道到达干线端口的帧属于某个特定的VLAN呢?

一种扩展的以太网帧格式——802.1Q

VLAN标签:

  • 2字节的标签协议标识符(TPID)字段(具有固定的十六进制值81-00)
  • 2字节的标签控制信息字段(包含一个12比特的VLAN标识符字段)
  • 3比特优先权字段(具有类似于IP数据报TOS字段的目的)组成

猜你喜欢

转载自blog.csdn.net/qq_51684393/article/details/129648039