计算机网络:P3.2-数据链路层(中)

本系列文章为湖南科技大学高军老师的计算机网络微课堂学习笔记,前面的系列文章链接如下:
计算机网络:P1-概述
计算机网络:P2-物理层
计算机网络:P3.1-数据链路层(上)


五、点对点协议PPP

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。

思考:一般的因特网用户是如何接入到因特网的呢?

通常都是要通过连接到某个因特网服务提供者ISP,如移动、联通、电信才能接入到因特网。这些ISP已经从因特网管理机构申请到了一批IP地址。用户计算机只获取到ISP所分配的合法IP地址后,才能成为因特网上的主机。用户计算机与ISP进行通信时,所使用的数据链路层协议通常就是PPP协议。
在这里插入图片描述
需要说明的是:
在1999年公布的在以太网上运行的PPP协议,即PPP over Ethernet,简称为PPPoE。它使得ISP可以通过DSL、电路调制解调器、以太网等宽带接入技术,以以太网接口的形式为用户提供接入服务。另外,点对点协议PPP也广泛应用于广域网路由器之间的专用线路。
在这里插入图片描述


PPP的组成

PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
①对各种协议数据报的封装方法(封装成帧):从网络体系结构来看,PPP是数据链路层的协议,它将上层交付下来的协议数据单元封装成PPP帧。
②链路控制协议LCP:链路控制协议LCP用于建立、配置以及测试数据链路的连接。如TCP/IP中的IP、Novell NetWare网络操作系统中的IPX、Apple公司的AppleTalk。
③一套网络控制协议NCPs ----> 其中的每一个协议支持不同的网络层协议,使得PPP协议能够在多种类型的点对点链路上运行,例如面向字节的异步链路、面向比特的同步链路。
在这里插入图片描述


PPP的帧格式

帧首部由4个字段构成,帧尾部由2个字段构成。各字段的长度以及帧的数据部分的最大长度如图所示
在这里插入图片描述
标志(Flag)字段:PPP帧的定界符,取值为0x7E
地址(Address)字段:取值为0xFF,预留(目前没有什么作用)
控制(Control)字段:取值为0x03,预留(目前没有什么作用)
协议(Protocol)字段:指明帧的数据部分送交哪个协议处理
----取值0x0021表示:帧的数据部分为IP数据报
----取值0xC021表示:帧的数据部分为LCP分组
----取值0x8021表示:帧的数据部分为NCP分组
在这里插入图片描述
帧检验序列(Frame Check Sequence)字段:CRC计算出的校验位,用于检查PPP帧是否出现误码


透明传输

我们来看看PPP协议是如何解泱透明传输问题的。当PPP帧的数据部分出现帧首和帧尾中的标志字段F(取值为0X7E(01111110))时,如果不采取措施,则会造成接收方对PPP帧是否结束的误判。PPP协议实现透明传输的方法取决于所使用的链路类型。
面向字节的异步链路: 使用字节填充法,即插入转义字符。
发送方的处理:
①出现的每一个7E(PPP帧的定界符)字节转变成2字节序列(7D,5E),这相当于在字节前插入了转义字节7D,并将7E字节减去十六进制的20。
②出现的每一个7D(转义字符)字节转变成2字节序列(7D,5D)
③出现的每一个ASCII码控制字符(数值小于0x20的字符),则在该字符前面插入一个7D字节,同时将该字符的编码加上0x20。
接收方的处理:进行反变换即可恢复出原来的帧的数据部分。
在这里插入图片描述
面向比特的同步链路: 使用比特填充法,即插入比特0。
发送方的处理:
对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0。
在这里插入图片描述
接收方的处理:
对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的1个比特0删除。


PPP的差错检测

PPP帧的尾部包含有1个两字节的帧检验序列FCS字段,使用循外冗余校验CRC来计算该字段的取值,采用的生成多项式如下所示: C R C − C C I T T = X 16 + X 12 + X 5 + 1 CRC-CCITT=X^{16}+X^{12}+X^5+1 CRCCCITT=X16+X12+X5+1。接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧。反之,就丢弃这个帧。使用PPP的数据链路层向上不提供可靠传输服务。
在这里插入图片描述


工作状态

①以拨号接入为例,PPP链路的开始和结束状态都是静止状态,这时并不存在物理层的连接。
②当检测到调制解调器的载波信号,并建立物理层连接后,PPP就入链路的建立状态。
③这时,链路控制协议LCP开始协商一些配置选项。若协商成功则进入鉴别状态,若协商失败则退回到静止状态。所协商的配置选项包括最大帧长、鉴别协议等。可以不使用鉴别,也可以使用口令鉴别协议PAP或挑战握手鉴别协议CHAP。
④若通信双方无需鉴别或鉴别身份成功,则进入网络状态。若鉴别失败,则进入终止状态。
⑤进入网络状态后,进行NCP配置。配置完成后,就进入打开状态。PPP链路的两端互相交换网络层特定的NCP分组来进行NCP配置。如果在PPP链路上运行的是IP协议,则使用IP控制协议IPCP来对PPP链路的每一端配置IP模块(如分配lP地址)。只要链路处于打开状态,就可以进行数据通信。
⑥当出现故障或链路的一端发出中止请求时,就进入中止状态。
⑦当载波停止后则回到静止状态。
在这里插入图片描述


小测验

1、PPP提供的功能有
A. 一种成帧方法
B. 链路控制协议LCP
C. 网络控制协议NCP
D. 选项A,B和C都是
答案:D

2、PPP中的LCP帧起到的作用是
A. 在“建立”状态阶段协商数据链路协议的配置选项
B. 配置网络层协议
C. 检查数据链路层的错误,并通知错误信息
D. 安全控制,保护通信双方的数据安全
答案:A

3、为实现透明传输(注:默认为异步线路),PPP使用的填充方法是
A. 比特填充
B. 字符填充
C. 对字符数据使用字符填充,对非字符数据使用比特填充
D. 对字符数据使用比特填充,对非字符数据使用字符填充
答案:B


六、媒体接入控制MAC

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

共享信道的问题

如图所示,多台主机连接在一根同轴电缆上,它们共享这个传输媒体,形成了一个总线型的局域网。各主机竟争使用总线,随机地在信道上发送数据。如果恰巧有两个或更多的站点在同一时刻发送数据,那么信号在共享媒体上就要产生碰撞,使得这些站点的发送都失败。例如主机C和D同一时刻发送数据。
在这里插入图片描述


媒体接入控制的概念与分类

共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control),其分类如下:
在这里插入图片描述
对于静态划分信道,预先固定分配好信道,这类方法非常不灵活,对于突发性数据传输信道利用率会很低。通常在无线网络的物理层中使用,而不是在数据链路层中使用。
集中控制的多点轮询协议中,有一个主站以循环方式轮询每个站点有无数据发送,只有被轮询到的站点才能发送数据。最大缺点是存在单点故障问题。
分散监制的令牌传递协议中,各站点是平等的,并连接成一个环形网络。令牌(一个特殊的控制帧)沿环逐站传递。接收到令牌的站点才有权发送数据,并在发送完数据后将令牌传递给下一个站点。采用令牌传递协议的典型网络有IEEE 802.5令牌环网、IEEE 802.4令牌总线网、光纤分布式数据接口FDDl。这些网络由于市场竞争已逐步退出了历史舞台。
随机接入中,所有站点通过竞争随机地在信道上发送数据。如果恰巧有两个或更多的站点在同一时刻发送数据,则信号在共享媒体上就要产生碰撞(即发生了冲突)。使得这些站点的发送都失败。因此,这类协议要解决的关键问题是如何尽量避免冲突及在发生冲突后如何尽快恢复通信。著名的共享式以太网采用的就是随机接入。
:随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网。但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。


6.2 媒体接入控制 — 静态划分信道

复用

复用(Multiplexing)是通信技术中的一个重要概念,复用就是通过一条物理线路同时传输多路用户的信号。当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。如下图所示,在发送发加上复用器,在接收端加上分用器,即可实现信道复用。
在这里插入图片描述


频分复用FDM

将传输频带的资源划分成多个子频带,形成多个子信道,各子信道之间需要留出隔离频带,以免造成子信道间的平扰。当多路信号输入一个多路复用器时,这个复用器将每一路信号调制到不同频率的载波上。接收端由相应的分用器通过滤波将各路信号分开,将合成的复用信号恢复成原始的多路信号。很显然,频分复用的所有用户同时占用不同的频带资源并行通信。
在这里插入图片描述

时分复用TDM

时分复用技术将传输线路的带宽资源按时隙轮流分配给不同的用户,每对用户只在所分配的时隙里使用线路传输数据。时分复用技术将时间划分成了一段段等长的时分复用帧。每一个时分复用的用户在每一个时分复用帧中占用固定序号的时隙。如图所示,每一个用户所占用的时隙是周期性出现的,其周期就是时分复用帧的长度。很显然,时分复用的所有用户在不同的时间占用同样的频带宽度。
在这里插入图片描述

波分复用

波分复用其实就是光的频分复用。如图所示,这是8路传输速率均为2.5Gbit/s的光载波,其波长均为1310nm。经过光调制后,分别将波长变换到1550~1561.2nm,每个光载波相隔1.6nm。这8个波长很接近的光载波经过光复用器(合波器)后就在一根光纤中传输,因此传输速率就达到了8×2.5Gbi/s=20Gb/s。光信号传输一段距离后会衰减,因此衰减了的光信号必须进行放大才能继续传输。对于掺铒光纤放大器,两个光纤放大器之间的光缆线路长度可达120km。光复用器和光分用器之间可以放入4个掺铒光纤放大器,使得光复用器和光分用器之间的无光电转换的距离可达600km。
在这里插入图片描述

码分复用CDM

复用与多址
码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TDMA(Time Division Multiple Access)。在本课程中,我们不严格区分复用与多址的概念。可简单理解如下:
①复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
②多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。
③某种程度上,FDMA、TDMA、CDMA可以分别看成是FDM、TDM、CDM的应用。
CDM的特点
与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信。由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。
CDMA的原理
在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip)。通常m的值是64128。为了简单起见,在后续的举例中,我们假设m8
使用CDMA的每一个站被指派一个唯一的m bit码片序列(Chip Sequence)。一个站如果要发送比特1,则发送它自己的m bit码片序列。一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码
【举例】
指派给CDMA系统中某个站点的码片序列为00011011
----发送比特1:发送自己的码片序列00011011
----发送比特0:发送自己的码片序列的二进制反码11100100
----为了方便,我们按惯例将码片序列中的0写为-1,将1写为+1,则该站点的码片序列是(-1 -1 -1+1+1-1 +1 +1)。这种通信方式称为直接序列扩频DSSS
码片序列的挑选原则
①分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列。
②分配给每个站的码片序列必须相互正交(规格化内积为0)。令向量 S S S 表示站S的码片序列,令向量 T T T 表示其他任何站的码片序列。两个不同站S和T的码片序列正交,就是向量 S S S T T T 的规格化内积为 0 0 0
在这里插入图片描述


练习

假设给站S分配的码片序列为01011101,给站T分配的码片序列为10111000,这样的分配正确吗?
解析:
①检查码片序列是否各不相同: S S S T T T 不同,满足第一条原则
②检查码片序列是否相互正交:根据题意可知,用向量 S S S 表示站S的码片序列 ( − 1 + 1 − 1 + 1 + 1 + 1 − 1 + 1 ) (-1+1-1+1+1+1-1+1) (1+11+1+1+11+1),用向量 T T T 表示站T的码片序列 ( + 1 − 1 + 1 + 1 + 1 − 1 − 1 − 1 ) (+1-1+1+1+1-1-1-1) (+11+1+1+1111)
在这里插入图片描述
可以看出规格化内积不为0,吉各个序列不相互正交,所以分配不正确。


应用举例

假设ABCD是码分多址系统中的4个站点。A站发送比特 1 1 1,也就是发送自己所分配到的码片序列。为了简单起见,我们用向量 A A A 来表示A站的码片序列。B站发送比特 0 0 0,也就是发送自己所分配到的码片序列的二进制反码,我们用 B ˉ \bar B Bˉ 来表示B站的码片序列的二递制反码。C站没有发送数据。D站接收到A站和B站所发送信号的叠加信号。假设所有站所发送的码片序列都是同步的,接收站D知道其他各站所特有的码片序列。
在这里插入图片描述
接收站D对所接收到的叠加信号进行判断:
①要判断A站是否发送数据,发送的是比特 0 0 0 还是比特 1 1 1。可将收到的叠加信号的码片向量与A站自身的码片向量进行规格化内积运算。
( A + B ˉ ) ⋅ A = A ⋅ A + B ˉ ⋅ A = 1 + 0 = 1 (A+ \bar B)\cdot A=A\cdot A+\bar B\cdot A=1+0=1 (A+Bˉ)A=AA+BˉA=1+0=1
可以计算出结果为1,被判断方发送了比特1
②同理,要判断B站,可将收到的叠加信号的码片向量与B站自身的码片向量进行规格化内积运算。可以计算出结果为-1,被判断方发送了比特0
( A + B ˉ ) ⋅ B = A ⋅ B + B ˉ ⋅ B = 0 + ( − 1 ) = − 1 (A+ \bar B)\cdot B=A\cdot B+\bar B\cdot B=0+(-1)=-1 (A+Bˉ)B=AB+BˉB=0+(1)=1
可以计算出结果为-1,被判断方发送了比特0
③同理,要判断C站,可将收到的叠加信号的码片向量与C站自身的码片向量进行规格化内积运算。可以计算出结果为0,被判断方未发送
( A + B ˉ ) ⋅ C = A ⋅ C + B ˉ ⋅ C = 0 + 0 = 0 (A+ \bar B)\cdot C=A\cdot C+\bar B\cdot C=0+0=0 (A+Bˉ)C=AC+BˉC=0+0=0
可以计算出结果为0,被判断方没发送数据


练习

共有4个站进行CDMA通信,这4个站的码片序列分别为:
A: (-1 -1 -1 +1 +1 -1 +1 +1)
B: (-1 -1 +1 -1 +1 +1 +1 -1)
C: (-1 +1 -1 +1 +1 +1 -1 -1)
D: (-1 +1 -1 -1 -1 -1 +1 -1)
现收到码片序列(-1 +1 -3 +1 -1 -3 +1 +1),问是哪些站发送了数据?发送的是比特1还是0?
解析: 用收到的码片序列分别与各站的码片序列进行求内积运算。若计算结果为数值1,则被判断的站发送了比特1。若计算结果为数值-1,则被判断的站发送了比特0。若计算结果为数值0,则被判断的站未发送数据。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


例题

【2014年题37】站点A、B、C通过CDMA共享链路,A、B、C的码片序列(chipping sequence)分别是(1,1,1,1)、(1,-1,1,-1)和(1,1,-1,-1)。若C从链路上收到的序列是(2,0,2,0,0,-2,0,-2,0,2,0,2),则C收到A发送的数据是 (B)
A. 000
B. 101
C. 110
D. 111
解析: 由于题目所给各站的码片序列为4位,因此将站点C收到的序列分成三部分,每部分也由4位组成:(2,0,2,0)、(0,-2,0,-2)、(0,2,0,2)
将站点A的码片序列(1,1,1,1)分别与上述三个部分进行内积运算,根据结果可判断出A发送的数据
在这里插入图片描述


小测验

1、将物理信道的总频带分割成若干子信道,每个子信道传输一路信号,这种信道复用技术是
A. 码分复用
B. 频分复用
C. 时分复用
D. 码分多址
答案:B

2、A、B、C三个站点采用CDMA技术进行通信,A、B要向C发送数据,设A的码片序列为+1,-1,-1,+1,+1,+1,+1,-1。则B可以选用的码片序列为
A. -1,-1,-1,+1,-1,+1,+1,+1
B. -1,+1,-1,-1,-1,+1,+1,+1
C. -1,+1,-1,+1,-1,+1,-1,+1
D. -1,+1,-1,+1,-1,+1,+1,+1
答案:D


6.3 媒体接入控制 — 随机接入(CSMA/CD协议)

面临问题

如图所示,多个主机连接到一根总线上,各主机随机发送帧。当两个或多个主机同时发送帧时,代表帧的信号就会产生碰撞或成为冲突。又或者当某个主机正在使用总线发送帧的过程中,另一台主机也要发送帧,这同样也会产生碰撞。很显然,如何协调总线上各主机的工作,尽量避免产生碰撞是一个必须要解决的重要问题。
在这里插入图片描述
早期的共享式以太网采用 载波监听多址接入/碰撞检测(CSMA/CD, Carrier Sense Multiple Access/Collision Detection) 协议来解决该问题。


基本概念

①多址接入的意思是多个主机,也可称为站点或站,连接在一条总线上,竞争使用总线。
②载波监听的意思是每一个站在发送帧之前,先要检测一下总线上是否有其他站点在发送帧,可比喻为先听后说。
----若检测到总线空闲96比特时间,则发送这个帧
----若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧。
----96比特时间是指发送96比特所耗费的时间,也称为帧间最小间隔。其作用是使接收方可以检测出一个帧的结束,同时也使得所有其他站点都能有机会平等竞争信道并发送帧。
③碰撞检测的意思是每一个正在发送帧的站边发送帧边检测碰撞,可比喻为边说边听。一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次重新发送。可比喻为一旦冲突立即停说,等待时机,重新再说。


CSMA/CD案例分析

多址接入的概念比较简单,即多个主机连接到一根总线上,各主机随机发送帧。
在这里插入图片描述
①假设主机C要发送帧,它首先进行载波监听检测,到总线空闲96比特时间后就可以发送帧了。
在这里插入图片描述
②假设在主机C使用总线发送帧的过程中,主机B也要发送帧。主机B进行载波监听,发现总线忙,于是持续检测总线
在这里插入图片描述
③B一旦发现总线空闲96比特时间则立即发送帧。B边发送帧还要边检测碰撞,只要没检测到碰撞,则可继续发送帧的剩余部分。
在这里插入图片描述
④假设在主机B发送帧的过程中,主机C也要发送帧。主机C进行载波监听,发现总线空闲96比特时间后,立即发送帧。这必然会产生碰撞,在产生碰撞的时刻,主机B和主机C都在边发送帧边检测碰撞,但都检测不到碰撞。
在这里插入图片描述
⑤碰撞信号沿总线传播,主机C会比主机B更早检测到碰撞,并停止发送,退避一段随机时间后重新再发送之前所发送的帧。
在这里插入图片描述
⑥当主机B检测到碰撞后,立即停止发送,退避一段随机时间,重新再发送之前所发送的帧。
在这里插入图片描述
注意:以太网还采取了一种叫做强化碰撞的措施。就是当发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要再继续发送32比特或48比特的人为干扰信号,以便有足够多的碰撞信号使所有站点都能检测出碰撞。


征用期

如图所示,主机A和D处于总线型以太网的两端,以太网单程端到端的传播时延记为 τ \tau τ,纵坐标为时间。
在这里插入图片描述
①假设在时刻0,主机A要发送帧,当检测到总线空闲96比特时间后,立即发送帧。
在这里插入图片描述②时刻 τ − δ \tau - \delta τδ,主机D也要发送帧。当检测到总线空闲96比特时间后,立即发送帧。
在这里插入图片描述
③需要注意的是,主机D检测到总线空闲,但实际上总线并不空闲,只是主机D检测不出来。这必然会产生碰撞,发生碰撞的时刻为 τ − δ / 2 \tau - \delta/2 τδ/2
在这里插入图片描述
④之后碰撞信号会陆续传播到主机D和主机A,主机D检测到碰撞的时刻为 τ \tau τ,主机A检测到碰撞的时刻为 2 τ − δ 2\tau-\delta 2τδ
在这里插入图片描述
总结:
①从该图可知,主机最多经过 2 τ 2\tau 2τ(即 δ → 0 \delta \to {\rm{0}} δ0) 的时长就可检测到本次发送是否遭受了碰撞。因此,以太网的端到端往返传播时延 2 τ 2\tau 2τ 就称为征用期碰撞窗口
②发送帧的主机经过征用期这段时间还没有检测到碰撞才能肯定这次发送不会产生碰撞。
③每一个主机在自己发送帧之后的一小段时间内存在着遭遇碰撞的可能性。这一小段时间是不确定的,它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间。
④显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发送碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。例如,带宽为 10 M b / s 10Mb/s 10Mb/s 的以太网把争用期定为 512 512 512 比特发送时间,即 51.2 u s 51.2us 51.2us,因此其总线长度不能超过5120米。但考虑到其他一些因素,如信号衰减等,以太网规定总线长度不能超过2500米。


最小帧长

假设主机A正在给主机D发送一个很短的帧,边发送边检测碰撞。
在这里插入图片描述
主机A很快就将该帧发送完毕了,之后就不再针对该帧检测碰撞。
在这里插入图片描述
在该帧的传输过程中,主机C也要发送帧。主机C检测到总线空闲96比特时间后就立即发送帧,尽管总线实际上并不空闲,这必然会产生碰撞。
在这里插入图片描述
主机D最终会收到主机A发送的并遭遇碰撞的帧,主机D会将该帧丢弃。
在这里插入图片描述
但对于主机A而言,它并不知道自己已发送完毕该帧在总线上传输的过程中遭遇了碰撞,因此不会重发该帧。
总结:
很显然,使用CSMA/CD协议的以太网的帧长不能太短。以太网规定最小帧长为64字节,即512个bit(512比特时间即为征用期)。
----如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。
以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧在发送过程中是否遭遇了碰撞。
----如果在争用期(也就是共发送64字节所耗费的时间)内没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞。
----如果在争用期内检测到碰撞,就立即终止发送,这时已经发送出去的数据一定小于64字节。因此,凡长度小于64字节的帧都是由于碰撞而异常终止的无效帧。


最大帧长

假设主机A正在给主机D发送一个很长的帧,这会使得主机A长时间占用总线,而总线上的其他主机迟迟拿不到总线的使用权。另外,由于帧很长,还可能导致主机D的接收缓冲区无法装下该帧而产生溢出。
在这里插入图片描述
因此,以太网的帧长应该有其上限。例如,下图是以太网版本二的MAC帧格式,其数据载荷的最大长度为1500字节,加上首部和尾部共18字节,帧的最大长度为1518字节。而数据载荷的最小长度不能小于46字节,这样加上首部和尾部共18字节。正好满足帧的最小长度为64字节。
在这里插入图片描述
下图是插入VLAN标记字段后的802.1Q帧,其数据载荷的最大长度为1500字节,加上首部和尾部共22字节,帧的最大长度为1522字节。而数据载荷的最小长度不能小于42字节,这样加上首部和尾部共22字节,正好满足帧的最小长度为64字节。
在这里插入图片描述


退避时间的计算方法(截断二进制指数退避算法)

退避时间 = 基本退避时间 × 随机数 r 退避时间=基本退避时间\times随机数r 退避时间=基本退避时间×随机数r。其中,基本退避时间的取值为争用期 2 τ 2 \tau 2τ,随机数 r r r 是从离散的整数集合 0 , 1 , . . . , ( 2 k − 1 ) {0,1,...,(2^k-1)} 0,1,...,(2k1) 随机取一个, k = M i n [ 重传次数 , 10 ] k=Min[重传次数,10] k=Min[重传次数,10],这也是该算法名称截断二进制指数这种称谓的由来。
举例
第一次重传, k k k 从重传次数1和10间取小者,也就是1,则离散的整数集合为 { 0 , 1 } \{0,1\} {0,1},则可能的退避时间为 0 × 2 τ , 1 × 2 τ 0 \times 2\tau, 1\times 2\tau 0×2τ,1×2τ
第二次重传, k k k 从重传次数2和10中取小者,也就是2,则离散的整数集合为 { 0 , 1 , 2 , 3 } \{0,1,2,3\} {0,1,2,3},则可能的退避时间为 0 × 2 τ , 1 × 2 τ , 2 × 2 τ , 3 × 2 τ , . . . , 1023 × 2 τ 0 \times 2\tau, 1\times 2\tau, 2 \times 2\tau, 3\times 2\tau,...,1023 \times 2\tau 0×2τ,1×2τ,2×2τ,3×2τ,...,1023×2τ
在这里插入图片描述
总结:
①若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述推理算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
②当重传多达16次仍不能成功时,表明同时打算发送帧的主机太多,以至于连续发生碰撞,则丢弃该帧并向高层报告。


信道利用率

接下来我们来讨论一下使用CSMA/CD协议的共享式以太网的信道利用率。
如图所示,横坐标为时间,总线上的某个主机可能发生多次碰撞,进行多次退避后成功发送了一个帧,帧的发送时延即为 T 0 T_0 T0
在这里插入图片描述
在最极端的情况下,源主机在总线的一端,而目的主机在总线的另一端,因此还要经过一个单程端到端的传播时延 τ \tau τ 后,总线才能完全进入空闲状态。因此发送一帧所需的平均时间为多个征用期 2 τ 2\tau 2τ 加上一个帧的发送时延 T 0 T_0 T0,再加上一个单程端到端的传播时延 τ \tau τ
在这里插入图片描述
考虑以下这种理想情况:
----各主机发送帧都不会产生碰撞,
----总线一旦空闲就有某个主机立即发送帧
因此前面多个争用期这部分时间就不存在了。发送一帧所占用总线的时间为 T 0 + τ T_0+\tau T0+τ,而帧本身的发送时间为 T 0 T_0 T0,这样就可得出极限信道利用率的表达式为: S max ⁡ = T 0 T 0 + τ {S_{\max }} = \frac{{{T_0}}}{{{T_0} + \tau }} Smax=T0+τT0。将分子、分母同除以 T 0 T_0 T0,令 τ / T 0 \tau / T_0 τ/T0即为参数 a a a
在这里插入图片描述
为了提高信道利用率,参数 a a a 的值应尽量小,要使参数 a a a 的值尽量小,则 τ \tau τ 应该尽量小,这意味着以太网端到端的距离应受到限制,不应太长。而 T 0 T_0 T0 的值应当尽量大,这意味着以太网的帧长应尽量大一些。


帧发送流程图

CSMACD协议的帧发送流程图如下在这里插入图片描述

帧接收流程图

再来看CSMACD协议的帧接收流程图
①若接收到的帧的长度小于最短帧长,则认为该帧遭遇到了碰撞,丢弃该帧。
②若接收到的帧的目的Mac地址与接收方的Mac地址相同或是广播地址,则继续进行后续判断,否则丢弃该帧
③若使用循环冗余校验检查出帧在传输过程中出现了误码,则丢弃该帧。
只有正确通过上述三个检查,主机才能接受所收到的帧。
在这里插入图片描述


例题

【2015年题36】下列关于CSMA/CD协议的叙述中,错误的是 (B)
A. 边发送数据帧,边检测是否发生冲突
B. 适用于无线网络,以实现无线链路共享
C. 需要根据网络跨距和数据传输速率限定最小帧长
D. 当信号传播延迟趋近于0时,信道利用率趋近100%
解析:
选项A描述的是碰撞检测(充突检测),这是CSMA/CD协议中的一部分,描述正确。
选项B的描述错误,因为CSMA/CD协议并不适用于无线网络。对于无线网络可以使用CSMA/CA协议。
选项C中给出的网络跨距相当于给出了端到端传播时延 τ \tau τ,进而可以得出争用期 2 τ 2\tau 2τ。再乘以数据传输速率即为最小帧长,描述正确。
选项D描述正确,这可以从极限信道利用率的计算公式看出,当 τ \tau τ 趋近于零时,信道利用率趋近于100%。

例题

【2009年题37】在一个采用CSMA/CD协议的网络中,传输介质是一根完整的电缆,传输速率为1Gbps,电缆中的信号传播速度是200000km/s。若最小数据帧长度减少800比特,则最远的两个站点之间的距离至少需要 (D)
A. 增加160m
B. 增加80m
C. 减少160m
D. 减少80m
解析:
本题考查的是采用CSMA/CD协议的共享式以太网的最小帧长的相关概念。设最远两个站点之间的距离为 d d d 米,最小帧长为 l l l bit, 最小帧长 = 争用期 × 数据传输速率 最小帧长=争用期 \times 数据传输速率 最小帧长=争用期×数据传输速率。将题目所给的个已知量统一单位后,与之前所设的两个未知量 d d d l l l 代入上式,就可以得出最远两个站点之间的距离 d d d 与最小帧长 l l l 的关系式:
在这里插入图片描述
很显然,若最小帧长减少800比特,最远的两个站点之间的距离至少会减少80米。

例题

【2010年题47】某局域网采用CSMA/CD协议实现介质访问控制,数据传输速率为10Mbps,主机甲和主机乙之间的距离为2km,信号传播速度是200000km/s。请回答下列问题,要求说明理由或写出计算过程。
(1)如主机甲和主机乙发送数据时发生冲突,则从开始发送数据时刻起,到两台主机均检测到冲突时刻止,最短需经过多长时间?最长需经过多长时间(假设主机甲和主机乙发送数据过程中,其他主机不发送数据)?
解析:
根据题意可画出如下所示的示意图:
在这里插入图片描述
只有两主机同时发送数据,才能使得它们从开始发送数据时刻起到它们都检测到冲突时刻止,所经过的时间最短。如图所示,这段时间包括主机发送的数据信号传播到距离中点处所耗费的传播时延,以及发生碰撞后的碰撞信号传播回主机所耗费的时间,这与之前的传播时延是相等的。因此这段时间实际上是两主机间单程的传播时延,计算如下:
2 k m ÷ 200000 k m / s = 0.01 m s 2km \div 200000km/s=0.01ms 2km÷200000km/s=0.01ms
(2)主机甲发送的数据信号传播到无限接近主机乙的某个时刻,主机已也要发送数据,它检测到信道空闲,但实际上信道此时并不空闲,就立刻开始发送数据,这必然会导致碰撞。主机乙会首先检测到碰撞,一段时间后,主机甲也会检测到碰撞,如图所示:
在这里插入图片描述
很显然,从开始发送数据时刻起到两台主机均检测到碰撞时刻,只最长需要经过的时间为两台主机间信号传播的往返时延,也就是争用期 2 τ 2\tau 2τ ,计算如下:
2 k m ÷ 200000 k m / s × 2 = 0.02 m s 2km \div 200000km/s \times 2=0.02ms 2km÷200000km/s×2=0.02ms


注:CSMACD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中,现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。


小测验

1、在CSMA/CD协议中,争用期指的是
A. 信号在最远两个端点之间往返传输的时间
B. 信号从线路一端传输到另一端的时间
C. 从发送开始到收到应答的时间
D. 从发送完毕到收到应答的时间
答案:A

2、以太网中,当数据传输速率提高时,帧的发送时间会相应地缩短,这样可能会影响到冲突的检测,为了能有效地检测冲突,可以使用的解决方案有
A. 减少电缆介质的长度或减少最短帧长
B. 减少电缆介质的长度或增加最短帧长
C. 增加电缆介质的长度或减少最短帧长
D. 增加电缆介质的长度或增加最短帧长
答案:B

3、长度为10km,数据传输率为10Mb/s的CSMA/CD以太网,信号传播速率为200m/μs。那么该网络的最小帧长是
A. 20bit
B. 200bit
C. 100bit
D. 1000bit
答案:D

4、在以太网的退避算法中,在11次碰撞后,站点会在0~x之间选择一个随机数,x是
A. 255
B. 511
C. 1023
D. 2047
答案:C


6.4 媒体接入控制 — 随机接入(CSMA/CA协议)

在上节中,我们介绍了总线型局域网使用的媒体接入控制协议CSMA/CD。这一节我们介绍无线局域网使用的媒体接入控制协议CSMA/CA,也就是载波监听多址接入/碰撞避免(CSMA/CA, Carrier Sense Multiple Access/Collision Avoidance)。

一些问题

思考:既然CSMA/CD协议已经成功的应用于使用广播信道的有线局域网,那么同样使用广播信道的无线局域网能不能也使用CSMA/CD协议呢?
:①在无线局域网中仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听,若发现有其他站在发送帧,就推迟发送以避免发生碰撞。
②但是在无线局域网中不能使用碰撞检测,原因如下:
----由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测,对硬件的要求非常高。
----即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(例如存在隐蔽站问题),进行碰撞检测的意义也不大。如图所示,这里有四个无线站点,A的信号范围可以覆盖到B,但不能覆盖到C。C的信号范围可以覆盖到B,但不能覆盖到A。换句话说,A和C都检测不到对方的无线信号。当A和C都要给B发送帧时,就会产生碰撞,但A和C无法检测到碰撞,这种未能检测出信道上其他站点信号的问题叫做隐蔽站问题。
在这里插入图片描述
而同样使用广播信道的有线局域网就不存在这样的问题。例如,总线上某个主机发送的信号最多经过一个总线端到端传播时延,就会被总线上的各主机接收到。
在这里插入图片描述
而总线上产生的碰撞信号最多经过一个总线端到端往返传播时延,也会传遍总线。因此,802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个CA,也就是碰撞避免功能,而不在实现CD,也就是碰撞检测。
在这里插入图片描述
由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止等待协议)来保证数据被正确接收。802.11的MAC层标准定义了两种不同的媒体接入控制方式:
①一种是分布式协调功能DCF(Distributed Coordination Function)。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议,通过征用信道来获取发送权,这是802.11定义的默认方式。
②另一种是点协调功能PCF(Point Coordination Function)。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用。


帧间间隔(InterFrame Space)

①802.11标准规定所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。
②帧间间隔的长短取决于该站点要发送的帧的类型。
----高优先级帧需要等待的时间较短,因此可优先获得发送权。
----低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙状态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
③常用的两种帧间间隔如下
----短帧间间隔SIFS(长度为28us),是最短的帧间间隔,用来分隔开属于一次对话的各个帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、由过长的Mac帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
②DCF帧间间隔DIFS(长度为128us),它比短帧间间隔要长得多,在DCF方式中用来发送数据帧和管理帧。


CSMA/CA协议的工作原理

①无线站点横坐标为时间,假设无线信道是空闲的,源站有数据帧要发送。当源站检测到信道空闲,则在等待帧间间隔DIFS后发送该数据帧。
在这里插入图片描述
目的站若正确收到该数据帧,则经过帧间间隔SIFS后,向源站发送确认帧ACK。需要说明的是,若源站在规定时间内没有收到确认帧AK,由重传计时器控制这段时间就必须重传该数据帧,直到收到确认为止,或者经过若干次的重传失败后放弃发送。
在这里插入图片描述
思考:源站为什么在检测到信道空闲后,还要再等待帧间间隔DIFS后才发送数据帧呢?
回答:这就是考虑到可能有其他的站有高优先级的帧要发送,若有就让高优先级帧先发送。
思考:那么目的站又是为什么在正确接收数据帧后还要再等待一段时间SIFS才能发送ACK帧呢?
回答:SIFS是最短的帧间间隔,用来分割开属于一次对话的各个帧。在这段时间内,一个站点应当能够从发送方式切换到接收方式。如图所示,在源站和目的站的一次对话过程中,无线信道处于忙状态。若无线信道处于忙状态时,其他无线站点要发送数据,则必须退避。
在这里插入图片描述
当信道从忙状态转换到空闲状态,并经过帧间间隔DIFS后,其它要发送数据的无线站点需要退避一段随机时间后才能发送。
在这里插入图片描述
思考:那么既然信道已经由忙转为空闲,且经过帧间间隔DIFS后,为什么还要退一段随机时间才能使用信道而不是立即使用信道呢?
回答:这样做的目的在于防止多个站点同时发送数据而产生碰撞。
在这里插入图片描述
当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。而以下情况必须使用退避算法:
----在发送数据帧之前检测到信道处于忙状态时,必须使用退避算法
----在每一次重传一个数据帧时,必须使用退避算法。
----在每一次成功发送后,要连续发送下一个帧时,必须使用退避算法,这是为了避免一个站点长时间占用信道。


CSMA/CA协议的退避算法

在执行退避算法时,站点为退避计时器设置一个随机的退避时间:
----当退避计时器的时间减小到零时,就开始发送数据
----当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过帧间间隔DIFS后,继续启动退避计时器。
----在进行第i次退避时,退避时间在时隙编号 { 0 , 1 , . . . , 2 2 + i − 1 } \{0,1,...,2^{2+i}-1\} {0,1,...,22+i1} 随机选择一个,然后乘以基本退避时间(也就是一个实际的长度),就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应于第六次退避)就不再增加了。
示例:
如图所示,ABCDE是五个无线站点,横坐标为时间。
①假设A正在占用无线信道发送帧,在A的发送过程中,BCD也要发送帧,我们用向上的箭头来表示。
在这里插入图片描述
②于是BCD进行载波监听,发现信道忙需要退避。根据退避算法,选择出一个随机的退避时间,并在每个时隙对信道进行一次检测。当检测到信道由忙状态转为空闲状态且经过帧间间隔DIFS后,退避计时器开始倒计时。假设C的退避时间最短,当C的退避计时器到时候,C立即开始发送帧,此时信道由空闲状态转换为忙状态。当B和D检测到信道忙后,就冻结各自剩余的退避时间。
在这里插入图片描述
③假设在C占用无线信道发送帧的过程中,E也要发送帧。于是E进行载波监听,发现信道忙需要退避,根据退避算法选择出一个随机的退避时间,并在每个时隙对信道进行一次检测。当检测到信道由忙状态转为空闲状态且经过帧间间隔DIFS后,退避计时器开始倒计时。
在这里插入图片描述
④当B和D检测到信道由忙状态转为空闲状态且经过帧间间隔DIFS后,退避计时器重新开始从上次冻结的退避剩余时间开始倒计时。D的退避计时器会首先到时,D立即开始发送帧,此时信道由空闲状态转换为忙状态。
在这里插入图片描述
⑤当B和E检测到信道忙后就冻结各自剩余的退避时间。
在这里插入图片描述
⑥当D发送完帧后,信道转为空闲状态。当B和E检测到信道由忙状态转换为空闲状态且经过帧间间隔DIFS后,退避计时器重新开始从上次冻结的退避剩余时间开始倒计时。
在这里插入图片描述
⑦E的退避计时器会首先到时,E立即开始发送帧,此时信道由空闲状态转换为忙状态。当B检测到信道忙后就冻结自己剩余的退避时间。
在这里插入图片描述
⑧当E发送完帧后,信道将转为空闲状态。当B检测到信道由忙状态转换为空闲状态且经过帧间间隔DIFS后,退避计时器重新开始从上次冻结的退避剩余时间开始倒计时。当B的退避计时器到时候,B立即开始发送帧。
在这里插入图片描述
⑨若B发送完这一帧后还有帧要发送,则在检测到信道空闲且经过中间间隔DIFS后还必须再退避一段随机时间后才能发送。
在这里插入图片描述


CSMA/CA协议的信道预约和虚拟载波监听

信道预约
为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS(Request To Send),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
例子
如图所示,当源站检测到信道空闲且经过帧间间隔DIFS后,发送RTS帧。
在这里插入图片描述
若目的站正确收到源站发来的RTS帧,在检测到信道空闲且经过帧间间隔SIFS后,就发送一个响应控制帧,称为允许发送CTS,它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)。
在这里插入图片描述
源站收到CTS帧后,在等待一个帧间间隔SIFS后就可发送其数据帧。
在这里插入图片描述
若目的站正确收到由源站发来的数据帧,在等待一个帧间间隔SIFS后,就向源站发送确认帧ACK。
在这里插入图片描述
除源站和目的站以外的其他各站在收到CTS帧或数据帧后,就推迟接入到无线局域网中,这样就保证了源站和目的站之间的通信不会受到其他站的干扰。
在这里插入图片描述
如果RTS帧发生碰撞,源站就收不到CTS帧,需要执行退避算法重传RTS帧。由于RTS帧和CTS帧很短,发生碰撞的概率、碰撞产生的开销以及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。802.11标准规定了三种情况供用户选择:
----一种是使用RTS帧和CTS帧。
----另一种是不使用RTS帧和CTS帧,
----还有一种是只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧。
虚拟载波监听
除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制。由于利用虚拟载波监听机制,站点只需要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号。因此,虚拟载波监听机制能减少隐蔽站带来的碰撞问题。
例子:
下面是四个无线站点,A和C互为隐蔽站,A的信号可以覆盖到B,但不能覆盖到C。C的信号可以覆盖到B,但不能覆盖到A。A在给B发送数据帧前,可以使用RTS帧来预约信道。尽管C收不到该RTS帧,但是C可以收到B发送给A的CTS帧。这样C就知道了信道将被占用多长时间,在这段时间内C都不会征用信道,也就是说A给B发送数据帧时,不会受到C的干扰。
在这里插入图片描述


习题

【2011年题36】下列选项中,对正确接收到的数据帧进行确认的MAC协议是 (D)
A. CSMA
B. CDMA
C. CSMA/CD
D. CSMA/CA
解析:
CSMA是指载波监听多址接入,它并不使用确认机制。
CSMA/CD是指载波监听多址接入/碰撞检测,是对CSMA的改进,是早期共享信道以太网使用的信道访问控制协议,它并不使用确认机制
CSMA/CA是指载波监听多址接入/碰撞避免,是802.11局域网采用的无线信道访问控制协议。802.11局域网在使用CSMA/CA的同时,还使用停止-等待协议。这是因为无线信道的通信质量远不如有线信道,因此无线站点每发送完一个数据帧后,要等到收到对方的确认帧后才能继续发送下一帧;
CDMA是指码分多址,属于静态划分信道,是物理层的信道复用技术,而不属于MAC协议。

习题

【2011年题36】下列介质访问控制方法中,可能发生冲突的是 (B)
A. CDMA
B. CSMA
C. TDMA
D. FDMA
解析:
CDMA(Code Division Multiplex Access)是指码分多址
TDMA(Time Division Multiplex Access)是指时分多址
FDMA(Frequency Division Multiplex Access)是指频分多址
CSMA(Carrier Sense Multiple Access)是指载波监听多址接
TDMA,FDMA,CDMA是常见的物理层信道复用技术,属于静态划分信道,用于多用户共享信道,不会发生冲突。
CSMA属于争用型的媒体接入控制协议,连接在同一媒体上的多个站点使用该协议以竞争方式发送数据帧,可能出现冲突(也称为碰撞)。


习题

【2018年题35】IEEE 802.11无线局域网的MAC协议CSMA/CA进行信道预约的方法是 (D)
A. 发送确认帧
B. 采用二进制指数退避
C. 使用多个MAC地址
D. 交换RTS与CTS帧
解析:
CSMA/CA协议使用RTS和CTS帧来预约信道,它们都携带有通信需要持续的时间。另外,除RTS和CTS帧外,数据帧也能携带通信需要持续的时间,这就是802.11的虚拟载波监听。


七、MAC地址、IP地址、ARP协议

MAC地址是以太网的MAC层所使用的地址。IP地址是TCP/IP体系结构网际层所使用的地址。ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议就可以通过该IP地址获取到设备的MAC地址。从网络体系结构的角度来看,MAC地址属于数据链路层的范畴,IP地址和ARP协议属于网际层的范畴。


7.1 MAC地址

案例分析

如图所示,两台主机通过一条链路通信。很显然,它们不需要使用地址就可以通信,因为连接在信道上的主机只有他们两个。换句话说,使用点对点信道的数据链路层不需要使用地址。
在这里插入图片描述
再来看使用共享信道的总线型局域网。总线上的某台主机要给另一台主机发送帧。表示帧的信号通过总线会传送到总线上的其他所有主机。那么这些主机如何判断该帧是否是发送给自己的呢?很显然,使用广播信道的数据链路层必须使用地址来区分各主机。也就是说,当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址。
在这里插入图片描述
假设总线上各主机的地址分别用一个不同的大写字母来表示,在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地只适用于媒体接入控制的,其英文缩写词为MAC(Media Access Control)。因此,这类地址被称为MAC地址。如图所示,这是主机C要发送给主机D的帧。则在帧首部中的目的地址字段应填入主机D的MAC地址。而在源地址字段应填入主机C自己的MAC地址。这样,总线上其他各主机收到该帧后,就可以根据真首部中的目的地址字段的值是否与自己的MAC地址匹配,进而丢弃或接受该帧。
在这里插入图片描述


网卡组成

MAC地址一般被固化在网卡的电可擦可编程只读存储器EEPROM中。因此,MAC地址也被称为硬件地址。如图所示,这是一块PCI接口的千兆以太网卡。
在这里插入图片描述
核心芯片采用REALTEK的8169SC。该芯片实现了以太网的数据链路层和物理层。
EEPROM芯片,例如93C46,用来存储MAC地址以及网卡的相关信息。
BootROM插槽,用于网络无盘工作站的启动,一般并不标配启动芯片。
网络隔离变压器,将核心芯片与外部隔离,提高抗干扰能力,对核心芯片进行保护(防雷击)。


MAC地址与物理地址

MAC地址有时也被称为物理地址,例如在Windows系统中。但请大家注意,这并不意味着MAC地址属于网络体系结构中的物理层。
例题
【2018年题34】下列选项中,不属于物理层接口规范定义范畴的是 ©
A. 接口形状
B. 引脚功能
C. 物理地址
D. 信号电平
解析:
物理地址,又称为硬件地址或Mac地址,并不属于物理层的范畴,而是属于数据链路层的范畴。即

有线网卡、无线网卡

一般情况下,用户主机会包含两个网络适配器。一个是有线局域网适配器,也就是有线网卡。另一个是无线局域网适配器,也就是无线网卡。每个网络适配器都有一个全球唯一的Mac地址。而交换机和路由器往往拥有更多的网络接口,所以就会拥有更多的Mac地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。

IEEE 802局域网的MAC地址格式

它由48个比特构成,每八个比特为一个字节,从左至右依次为第一字节到第六字节。
在这里插入图片描述
①前三个字节是组织唯一标识符OUI。生产网络设备的厂商需要向IEEE的注册管理机构申请一个或多个OUI。
②后三个字节是获得OUI的厂商可自行随意分配的。这种地址标识符称为扩展的唯一标识符EUI。对于48比特的MAC地址,可称为EUI-48。
MAC地址的标准表示方法是:将每四个比特写成一个16进制的字符,共12个字符。将每两个字符分为一组,共六组,组之间用短线连接。Windows系统采用标准的表示方法。也可以将短线更改为冒号,这是Linux系统、苹果系统、安卓系统中的表示方法。还可以将四个字符分为一组,共三组,组之间用点连接,这是packet tracer仿真软件中的表示方法。
在这里插入图片描述

OUI查询方式

如何在各种系统上查看设备所拥有的MAC地址,大家可自行在网上搜索。另外,我们可以在IEEE的官方网站(IEEE查询OUI)查看已分配的组织唯一标识符OUI。
可以看到,30-FB-B8这个OUI已被分配给华为科技有限公司。
在这里插入图片描述
而A4-45-19这个OUI已被分配给小米通信有限公司。
在这里插入图片描述
如果我们知道设备的Mac地址,而不知道该设备的厂商信息,可以通过设备的Mac地址来查询。有很多网站都提供这样的免费查询服务,例如(MAC地址查询)。输入设备的MAC地址后,就可以查出设备的厂商信息。


MAC地址取值

----MAC地址第1字节的b0位取0时,表示该地址是单播地址。取1时,表示该地址是多播地址,又称为组播地址。
----MAC地址第1字节的b1位取0时,表示该地址是全球管理的,也就是全球唯一的。取1时,表示该地址是本地管理的。
根据上面的规定,我们来填写下表:
在这里插入图片描述
第1字节的b1位取0。表明MAC地址是全球管理的。取1表明MAC地址是本地管理的。
第一字节的b0位取0,表示MAC地址是单播地址。取1表明MAC地址是多播地址。
很显然,一共有四种类型的MAC地址,分别是全球管理的单播地址、全球管理的多播地址、本地管理的单播地址、本地管理的多播地址。
----全球管理的单播地址是厂商生产网络设备时,给设备的各网络接口固化的MAC地址。
----全球管理的多播地址是标准网络设备所应支持的多播地址,用于特定功能。例如,交换机生成树协议所需要的多播地址。
----本地管理的单播地址由网络管理员分配。这种类型的地址会覆盖网络接口的全球管理单播地址,也就是它的优先级高。
----本地管理的多播地址。用于用户对主机的软件配置,以表明该主机属于哪些多播组。
需要注意的是,当剩余46比特为全1时,也就是MAC地址的48比特全部为1,16进制形式为全F,就是广播地址。
由于MAC地址由48个比特构成,因此总地址数量为 2 48 2^{48} 248,也就是280多万亿个。这四类MAC地址各占总地址空间的1/4,也就是每种马克地址有70多万亿个。
思考: 我们每个人一般会拥有几个全球管理的单播MAC地址呢?台式机、笔记本电脑、平板电脑、智能手机等设备上的以太网接口、WiFi接口、蓝牙接口都分配有全球单播的MAC地址,而每台交换机和路由器都拥有多个网络接口,也就拥有多个全球单播的MAC地址。那么,在我们有生之年,是否会看到EUI-48地址空间耗尽呢?
回答: 对于使用EUI-48的地址空间的应用程序,IEEE的目标寿命为100年,也就是直到2080年,但现在鼓励采用EUI-64作为替代。

MAC地址的发送顺序

字节发送顺序为第一字节到第六字节,字节内的比特发送顺序为 b 0 b_0 b0 b 7 b_7 b7
在这里插入图片描述


单播MAC地址的作用

假设这是一个拥有三台主机的总线型以太网,各主机网卡上固化的全球单播MAC地址如图所示。假设主机必须要给主机C发送单播帧,主机B首先要构建该单播帧。在帧首部中的目的地址字段填入主机C的MAC地址,源地址字段填入自己的MAC地址,再加上帧首部中的其他字段、数据载荷以及帧尾部就构成该单播帧。
在这里插入图片描述
主机B将该单播帧发送出去,主机A和C都会收到该单播帧。主机A的网卡发现该单播帧的目的MAC地址与自己的MAC地址不匹配,于是丢弃该帧。主机C的网卡发现该单播帧的目的MAC地址与自己的MAC地址匹配,于是接受该帧,并将该帧交给其上层处理。
在这里插入图片描述


广播MAC地址的作用

假设主机B要发送一个广播帧,主机B首先要构建该广播帧。在帧首部中的目的地址字段填若广播地址,也就是16进制的全F。源地址字段填入自己的MAC地址。再加上帧首部中的其他字段、数据载荷以及帧尾部就构成了该广播帧。
在这里插入图片描述
主机B将该广播帧发送出去,主机A和C都会收到该广播帧。发现该帧首部中的目的地址字段的内容是广播地址,就知道该帧是广播帧,接受该帧,并将该帧交给上层处理。
在这里插入图片描述


多播MAC地址的作

假设主机A要发送多播帧给多播地址07-E0-12-F6-2A-D8,将该多播地址的左起第一个字节写成8个比特。可以看到最低比特位是1,这就表明该地址是多播地址。这里给大家介绍一个快速判断MAC地址是否是多播地址的方法。如果该位16进制数,不能整除二,即1、3、5、7、9、B、D、F则该地址是多播地址。
在这里插入图片描述
假设主机BCD支持MAC多播波,各用户给自己的主机配置的多播组列表如下所示:
在这里插入图片描述
可以看到主机B属于两个多播组,主机C也属于两个多播组,而主机D不属于任何多播组。主机A首先要构建该多播帧,在帧首部中的目的地址字段填入该多播地址。源地址字段填入自己的MAC地址,再加上帧首部中的其他字段、数据载荷以及帧尾部,就构成了该多播帧。
在这里插入图片描述
主机A将该多播帧发送出去,主机BCD都会收到该多播帧。主机B发现该多播帧的目的MAC地址在自己的多播组列表中。主机C发现该多播帧的目的MAC地址在自己的多播组列表中。因此,主机B和C都会接受该帧并送交上层处理。而主机D发现该多播帧的目的MAC地址不在自己的多播组列表中,主机D丢弃该多播帧。
在这里插入图片描述
需要提醒大家注意的是,当给主机配置多播组列表进行私有应用时,不得使用公有的标准多播地址,具体可在以下网址(多播地址查询)查询。


随机MAC地址

据斯诺登爆料,美国国家安全局有一套系统,通过监视电子设备的MAC地址来跟踪城市中每个人的行动。因此,苹果率先在IOS系列设备扫描网络时采用随机MAC地址技术。随后Windows 10、安卓6.0、内核版本为3.18的Linux系统也开始提供随机MAC地址的功能。目前大多数移动设备已经采用了随机MAC地址技术。


小测验

1、以下哪个地址是广播MAC地址
A. 00-00-00-00-00-00
B. AB-CD-EF-11-22-33
C. FF-FF-FF-FF-FF-FF
D. 29-29-29-29-29-29
答案:C

2、以下哪个地址是多播MAC地址
A. 00-00-00-00-00-00
B. A9-8B-7C-6D-5E-4F
C. FF-FF-FF-FF-FF-FF
D. 0A-1B-2C-3D-4E-5F
答案:B


7.2 IP地址

前言

IP地址属于网络层的范畴,而非数据链路层的范畴。之所以在数据链路层这一章的讲解中引入IP地址,是因为在我们日常的大多数网络应用中,属于数据链路层的MAC地址和属于网络层的IP地址都在使用,它们之间存在一定的关系。IP地址的相关内容比较多,例如分类的IP地址、划分子网的IP地址、构造超网的IP地址等。这些内容我们将在网络层这一章详细介绍,本节课我们主要介绍IP地址的作用。

IP地址的作用

IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息:
①网络编号,用来标识因特网上数以百万计的网络。
②主机编号,用来标识同一网络上不同主机或路由器各接口。
例子: 如图所示,假设这是因特网的一部分。我们给网络N8上的两台主机各分配了一个IP地址,给路由器R4连接该网络的接口也分配了一个IP地址。这三个IP地址的前三个十进制数是相同的,也就是网络N8的编号。而最后一个十进制数各不相同,是网络N8上各主机和路由器接口的编号。换句话说,同一个网络上的个主机和路由器的各个接口的IP地址的网络号部分应该相同,而主机号部分应该互不相同。
在这里插入图片描述
又例如,我们给网络N9上的各主机和路由器的接口各分配了一个IP地址。这三个IP地址的前三个十进制数是相同的,也就是网络N9的编号。而最后一个十进制数各不相同,是网络N9上各主机和路由器接口的编号。
在这里插入图片描述
因特网中不同网络的网络编号必须各不相同。例如,在本例中,网络N8的编号为192 168 0,而网络N9的编号为192 168 1。需要提醒大家注意的是,在一个IP地址中,哪部分是网络编号,哪部分是主机编号,并不都和本例相同。将在后续网络层这一章进行详细介绍。
结论: 很显然,之前介绍的MAC地址不具备区分不同网络的功能,而IP地址具备这样的功能。如果只是一个单独的网络,不接入因特网,可以只使用MAC地址,但这并不是一般用户的常见应用方式。如果主机所在的网络要接入因特网,则IP地址和Mac地址都需要使用。


IP地址与MAC地址的封装位置

接下来我们从网络体系结构的角度看看IP地址与MAC地址的封装位置,我们以五层原理体系结构为例。
在这里插入图片描述
①应用层封装好的应用层报文,将其向下交付给运输层。
②运输层看不懂也无需看懂应用层报文的结构与内容,我们用黑色表示,仅仅给其添加一个运输层首部。运输层将封装好的协议数据单元向下交付给网络层。
③网络层看不懂也无需看懂运输层协议数据单元的结构与内容,仅仅给其添加一个网络层首部。由于IP地址属于网络体系结构中网络层的范畴,因此在网络层首部中应该封装有源IP地址和目的IP地址。网络层将封装好的协议数据单元向下交付给数据链路层。
④数据链路层看不懂也无需看懂网络层协议数据单元的结构与内容,仅仅给其添加一个数据链路层首部和一个数据链路层尾部。由于MAC地址属于网络体系结构中数据链路层的范畴,因此在数据链路层首部中应该封装有源MAC地址和目的MAC地址。数据链路层将封装好的协议数据单元向下交付给物理层。
⑤物理层看不懂也无需看懂数据链路层协议数据单元的结构与内容,仅仅将他们看做是比特流,以便将它们转换为相应的电信号发送到传输媒体。


工作状态下IP地址与MAC地址的变化情况

如图所示,为了简单起见,图中各主机和路由器各接口的IP地址和MAC地址用比较简单的标识符来表示,而并未使用实际的IP地址和MAC地址。假设主机H1要给主机H2发送一个数据包。
在这里插入图片描述
我们从网络体系结构的角度来看看数据包在传输过程中IP地址与MAC地址的变化情况。需要注意的是,主机中有完整的网络体系结构,而路由器的最高层为网络层,它没有网络体系结构中的运输层和应用层。我们所关注的重点是网络层封装IP数据报时,源IP地址和目的IP地址应该填写什么?数据链路层封装帧时,源MAC地址和目的MAC地址应填写什么?因此,我们忽略网络体系结构中除网络层和数据链路层外的其他各层。可以想象成各网络层进行水平方向的逻辑通信、各数据链路层进行水平方向的逻辑通信。
在这里插入图片描述
①主机H1将数据包发送给路由器R1。
在这里插入图片描述
----在网络层封装的IP数据报首部中,源IP地址应填写主机H1的IP地址IP1,目的IP地址应填写主机H2的IP地址IP2,也就是从IP1发送给IP2。
----在数据链路层封装的帧首部中,源MAC地址应填写主机H1的MAC地址MAC1,目的MAC地址应填写路由器R1的MAC地址MAC3,也就是从MAC1发送给MAC3。
②路由器R1将收到的数据包转发给路由器R2。
在这里插入图片描述
----在网络层封装的IP数据报首部中,源IP地址仍然填写主机H1的IP地址IP1,目的IP地址仍然填写主机H2的IP地址IP2,也就是从IP1发送给IP2。
----在数据链路层封装的帧首部中,源MAC地址应填写路由器R1的MAC地址MAC4,目的MAC地址应填写路由器R2的MAC地址MAC5,也就是从MAC4发送给MAC5。
③路由器R2将收到的数据包转发给主机H2。
在这里插入图片描述
----在网络层封装的IP数据报首部中,源IP地址仍然填写主机H1的IP地址IP1,目的IP地址仍然填写主机H2的IP地址IP2,也就是从IP1发送给IP2。
----在数据链路层封装的帧首部中,源MAC地址应填写路由器R2的MAC地址MAC6,目的MAC地址应填写主机H2的MAC地址MAC2,也就是从MAC6发送给MAC2。
总结: 通过本例可以看出,在数据包转发过程中,源IP地址和目的IP地址始终保持不变,而源MAC地址和目的MAC地址逐个链路或逐个网络改变。主机H1知道应该把数据包传给R1,由R1帮其把数据包转发出去。H1知道R1相应接口的IP地址为IP3,但不知道其对应的MAC地址是什么。路由器R1知道应该把数据包转发给R2,R1知道R2相应接口的IP地址为IP5,但不知道其对应的MAC地址是什么。路由器R2知道应该把数据包传给主机H2,R2知道H2的IP地址为IP2,但不知道其对应的MAC地址是什么。
在这里插入图片描述
:有的同学可能会对这部分内容产生疑问,请大家目前先权且这么认可,我们将在后续的网络层详细介绍。对于本例,主机H1、路由器R1和R2都存在一个共同的问题,那就是知道IP地址,但不知道其相应的MAC地址。如何通过IP地址找出其对应的MAC地址?这是我们下节将要介绍的地址解析协议ARP所要实现的功能。


例题

【2018年题37】路由器R通过以太网交换机S1和S2连接两个网络,R的接口、主机H1和H2的IP地址与MAC地址如下图所示。若H1向H2发送一个IP分组P,则H1发出的封装P的以太网帧的目的MAC地址、H2收到的封装P的以太网帧的源MAC地址分别是 (D)
A. 00-a1-b2-c3-d4-62、00-1a-2b-3c-4d-52
B. 00-a1-b2-c3-d4-62、00-1a-2b-3c-4d-61
C. 00-1a-2b-3c-4d-51、00-1a-2b-3c-4d-52
D. 00-1a-2b-3c-4d-51、00-a1-b2-c3-d4-61
解析:
在这里插入图片描述
在数据包的转发过程中,源IP地址和目的IP地址始终保持不变。而源MAC地址和目的MAC地址逐段链路或逐个网络改变。针对本题,我们来一起填写下表。
在这里插入图片描述
①主机H1将数据包传输给路由器R
----在网络层封装IP数据报时,在其首部的源IP地址字段填入主机H1的IP地址,目的IP地址字段填入主机H2的IP地址。
----在数据链路层封装MAC帧时,在其首部的源MAC地址字段填入主机H1的MAC地址,目的MAC地址字段填入路由器R相应接口的MAC地址。
②路由器R将数据包转发给主机H2。
----在网络层封装IP数据报时,在其首部的源IP地址字段仍然填入主机H1的IP地址,目的IP地址字段仍然填入主机H2的IP地址。
----在数据链路层封装MAC帧时,在其首部的源MAC地址字段填入路由器R相应接口的MAC地址。目的MAC地址字段填入主机H2的MAC地址。


小测验

1、下图中各主机和路由器各接口的MAC地址和所配置的IP地址都已标注在它们的旁边,假设主机H1要给H2发送一个IP数据报,该IP数据报会被封装成以太网帧进行发送,则当H2收到该帧时,其首部中的源MAC地址以及所封装的IP数据报首部中的源IP地址分别是
在这里插入图片描述
A. 00-a1-b2-c3-d4-61、192.168.1.254
B. 00-a1-b2-c3-d4-61、192.168.0.1
C. 00-1a-2b-3c-4d-51、192.168.0.1
D. 00-1a-2b-3c-4d-51、192.168.1.254
答案:B


7.3 ARC协议

地址解析协议(ARP, Address Resolution Protocol)的工作原理

下面是一个共享总线型的以太网,为了简单起见,我们只画出了该网络中的三台主机。各主机所配置的IP地址和其网卡上固化的MAC地址如下图所示。假设主机B要给主机C发送数据包,主机B知道主机C的IP地址,但不知道他的MAC地址。因此,主机B的数据链路层在封装MAC帧时就无法填写目的MAC地址字段,进而也就无法构建出要发送的MAC帧。
在这里插入图片描述
实际上,每台主机都会有一个ARP高速缓存表,表中记录有IP地址和MAC地址的对应关系。例如,下面是主机B的ARP高速缓存表,其中包含了主机B之前获取到的主机A的IP地址与MAC地址的对应关系。
在这里插入图片描述
在本例中,当主机B要给主机C发送数据包时,会首先在自己的ARP高速缓存表中查找主机C的IP地址所对应的MAC地址,但未找到。
在这里插入图片描述
因此,主机B要发送ARP请求报文来获取主机C的MAC地址。ARP请求报文的内容是:我的IP地址为192.168.0.2,我的MAC地址为00-E0-F9-A3-43-77,我想知道IP地址为192.168.0.3的主机的MAC地址。需要说明的是,为了简单起见,这里我们以比较通俗的语言来描述ARP请求报文的内容。但实际上,ARP请求报文有其具体的格式。另外需要大家注意的是,ARP请求报文被封装在MAC帧中发送,目的地址为广播地址。
在这里插入图片描述
主机B发送封装有ARP请求报文的广播帧,总线上的其他主机都能收到该广播帧。
在这里插入图片描述
①主机A的网卡收到该广播帧后,将其送交上层处理。上层的ARP进程解析ARP请求报文,发现所询问的IP地址不是自己的IP地址,因此不予理会。
②主机C的网卡收到该广播帧后,将其送交上层处理。上层的ARP进程解析ARP请求报文。发现所询问的IP地址正是自己的IP地址,需要进行响应。
在这里插入图片描述
----主机C首先将ARP请求报文中所携带的主机B的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给主机B发送ARP响应报文,以告知自己的MAC地址。
在这里插入图片描述
----ARP响应报文的内容是:我的IP地址是192.168.0.3,我的MAC地址为00-0C-CF-B8-4A-82。需要注意的是,ARP响应报文被封装在MAC帧中发送,目的地址为主机B的MAC地址。
在这里插入图片描述
----主机C给主机B发送封装有ARP响应报文的单播帧,总线上的其他主机都能收到该单播帧。
----主机A的网卡收到该单播帧后,发现其目的MAC地址与自己的MAC地址不匹配,直接丢弃该帧。
----主机B的网卡收到该单播帧后,发现其目的MAC地址就是自己的MAC地址,将其交付上层处理。
在这里插入图片描述
主机B上层的ARP进程解析ARP响应报文,将其所包含的主机C的IP地址与MAC地址记录到自己的ARP高速缓存表中。主机B现在可以给主机C发送之前想发送的数据包了。
在这里插入图片描述
ARP高速缓存表中的每一条记录都有其类型,分为动态和静态两种。
在这里插入图片描述
----动态类型是指记录是主机自动获取到的,其生命周期默认为两分钟。当生命周期结束时,该记录将自动删除。这样做的原因是,IP地址与MAC地址的对应关系并不是永久性的。例如,当主机的网卡坏了,更换新的网卡后,主机的IP地址并没有改变,但主机的MAC地址改变了。
----静态类型是指记录是用户或网络维护人员手工配置的,不同操作系统下的生命周期不同。例如系统重启后不存在、或在系统重启后依然有效。


思考:

在下图所示的网络拓扑中,主机H1是否可以使用ARP协议获取到主机H2的MAC地址。
在这里插入图片描述
:不能。ARP协议只能在一段链路或一个网络上使用,而不能跨网络使用。对于本例,ARP协议的使用是逐段链路进行的。
在这里插入图片描述


小测验

1、下列情况需要发送ARP请求的是
A. 主机需要接收信息,但ARP高速缓存表中没有源IP地址与MAC地址的映射关系
B. 主机需要接收信息,但ARP高速缓存表中已有源IP地址与MAC地址的映射关系
C. 主机需要发送信息,但ARP高速缓存表中没有目的IP地址与MAC地址的映射关系
D. 主机需要发送信息,但ARP高速缓存表中已有目的IP地址与MAC地址的映射关系
答案:C

2、主机A发送IP数据报给主机B,途中经过了8个路由器,则在此过程中使用ARP的次数为
A. 8
B. 9
C. 10
D. 11
答案:B

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知初与修一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值