1.数据链路层的概述
1.0地位
数据链路层在网络体系结构中所处的地位
- 链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
- 数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
- 数据链路层以帧为单位传输和处理数据。
1.1数据链路层的三个重要问题
封装成帧
添加帧头和帧尾称为封装成帧,其目的是为了在链路上以帧为单位来传输数据。
差错检测
帧在传输过程中可能遭遇干扰后可能会出现误码。
可靠传输
尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输。
使用点对点信道的数据链路层來举例
使用广播信道的数据链路层(共享式局域网)
交换式局域网
无线局域网
2.封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
- 帧头和帧尾中包含有重要的控制信息。
- 帧头和帧尾的作用之一就是帧定界。
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
- 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。
- 面向比特的物理链路使用比特填充的方法实现透明传输。
【2013年题37】HDLC协议对0111110001111110组帧后对应的比特串为A
A.011111000011111010
B.011111000111110101111110
C. 01111100011111010
D.011111000111111001111101
为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)
3.差错检测
- 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错。
- 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
- 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
3.1奇偶校验:
- 在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)
- 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;
- 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检);
3.2循环冗余校验CRC(Cyclic Redundancy Check)
- 收发双方约定好一个生成多项式G(x);
- 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
- 接收方通过生成多项式来计算收到的数据是否产生了误码;
- 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
- 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
- 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。
- 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。
4.可靠传输
4.1可靠传输的基本概念
使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。
数据链路层向上层提供的服务类型
- 不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做;
- 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。
─般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。
比特差错只是传输差错中的一种。
从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复。
分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。
可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。
4.2.可靠传输的实现机制:停止-等待协议(SW)
这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中。
希望同学们在学习时,不要把思维局限在数据链路层,而应放眼于整个网络体系结构。
接收方收不到数据分组,就不会发送ACK或NAK。如果不采取其他措施,发送方就会一直处于等待接收方ACK或NAK的状态。
为解决该问题,可以在发送方发送完一个数据分组时,启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫做超时重传。
一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”
为避免分组重复这种传输错误,必须给每个分组带上序号。
对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同就可以了,因此用一个比特来编号就够了。
【注意事项】
- 接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组
- 为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等特性,只需1个比特编号就够了,即编号0和1。
- 为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号。
- 超时计时器设置的重传时间应仔细选择。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”。
- 在数据链路层点对点的往返时间比较确定,重传时间比较好设定。
- 然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易。
停止-等待协议的信道利用率
- 当往返时延RTT远大于数据帧发送时延TD时(例如使用卫星链路),信道利用率非常低。
- 若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低。
- 为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退N帧协议GBN和选择重传协议SR。
【2018年题36】主机甲采用停-等协议向主机乙发送数据,数据传输速率使3kbps,单向传播延时是200ms,忽略确认帧的传输延时。当信道利用率等于40%时,数据帧的长度为D
A.240比特
B.400比特
C.480比特
D.800比特
4.3.可靠传输的实现机制:回退N帧协议
接收方不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后(由具体实现决定)对按序到达的最后一个数据分组发送确认。ACKn表示序号为n及以前的所有数据分组都已正确接收。
即使确认分组丢失,发送方也可能不必重传!
发送方收到重复的确认,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻重传!
至于收到几个重复确认就立刻重传,由具体实现决定。
【2009年题35】数据链路层使用后退N帧(GBN)协议,发送方已经发送了编号为0~7的帧。当计时器超时时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是C
A.2
B.3
C. 4
D.5
【解析】
(1)“发送方只收到0、2、3号帧的确认”表明接收方正确接收了0~3号帧,并针对它们中的每一个发送了确认帧,只不过针对1号帧的确认帧丢失了(这是题目中的陷阱,但又没有相应的选项,所以迷惑性并不是很大);
(2)截止到计时器超时,发送方只收到了针对03号帧的确认,而发送方之前已经发送了07号帧,因此应该从4号帧开始重传,即重传之前已经发送过的4、5、6、7号帧,共计重传4个帧。
回退N帧协议在流水线传输的基础上利用发送窗回来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。在协议的工作过程中发送窗回和接收窗口不断向前滑动,因此这类协议又称为滑动窗回协议。
由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止:等待协议高。
4.4.可靠传输的实现机制:选择重传协议
为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WR不应再等于1(而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。
注意:
选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!
【2011年题35】数据链路层采用选择重传协议(SR)传输数据,发送方已发送了0~3号数据帧,现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是B
A.1
B.2
C.3
D.4
【解析】
(1)与回退N帧协议不同,选择重传协议不支持累积确认。接收方每接收一个数据帧,就会发回相应的确认帧。(2)题目所给“收到1号帧的确认,而O、2号帧依次超时”,因此需要重传0、2号帧。至于发送方已发送的3号数据帧,题目并未给出它的任何其他线索,因此无须考虑3号帧。
5.点对点协议PPP
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
- 对各种协议数据报的封装方法(封装成帧)
- 链路控制协议LCP,用于建立、配置以及测试数据链路的连接
- 一套网络控制协议NCPs,其中的每一个协议支持不同的网络层协议
帧格式
标志(Flag)字段: PPP帧的定界符,取值为0x7E
地址(Address)字段:取值为OxFF,预留(目前没有什么作用)
控制(Control)字段:取值为Ox03,预留(目前没有什么作用)
协议(Protocol)字段:指明帧的数据部分送交哪个协议处理
透明传输
透明传输—-面向字节的异步链路采用插入转义字符的字节填充法
发送方的处理:
- 出现的每一个7E(PPP帧的定界符)字节转变成2字节序列(7D,5E)。
- 出现的每一个7D(转义字符)字节转变成2字节序列(7D,5D)。
- 出现的每一个ASCII码控制字符(数值小于0x20的字符),则在该字符前面插入一个7D
字节,同时将该字符的编码加上Ox20。
接收方的处理:进行反变换即可恢复出原来的帧的数据部分
透明传输——面向比特的同步链路采用插入比特0的比特填充法
发送方的处理:
- 对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0。
接收方的处理:
- 对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的1个比特0删除。
差错检测
接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层向上不提供可靠传输服务。
工作状态
6.媒体接入控制
6.1基本概念
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。
6.2静态划分信道
信道复用:
- 复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
- 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。
频分复用FDM:
频分复用的所有用户同时占用不同的频带资源并行通信。
时分复用TDM:
时分复用的所有用户在不同的时间占用同样的频带宽度。
波分复用WDM:
码分复用CDM:
-
码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple 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:
【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
6.3随机接入-CSMA/CD协议(总线局域网)
载波监听多址接入/碰撞检测CSMA/CD (Carrier Sense Multiple Access/Collision Detection)
多址接入MA,多个站连接在一条总线上,竞争使用总线。
载波监听CS:每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧(“先听后说”) :
- 若检测到总线空闲96比特时间,则发送这个帧;
- 若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧。
碰撞检测CD:每一个正在发送帧的站边发送边检测碰撞(“边说边听”) :
- 一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次发送(“一旦冲突,立即停说,等待时机,重新再说”)。
以太网还采取一种叫做强化碰撞的措施。这就是当发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要再继续发送32比特或48比特的人为干扰信号(Jamming Signal),以便有足够多的碰撞信号使所有站点都能检测出碰撞。
争用期(碰撞窗口)
-
主机最多经过2τ(即τ→0)的时长就可检测到本次发送是否遭受了碰撞
-
因此,以太网的端到端往返传播时延2τ称为争用期或碰撞窗口。
-
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
-
每一个主机在自己发送帧之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间。
-
显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。
-
10Mb/s以太网把争用期定为512比特发送时间,即51.2pus,因此其总线长度不能超过5120m,但考虑到其他一些因素,如信号衰减等,以太网规定总线长度不能超过2500m。
最小帧长
-
很显然,以太网的帧长不能太短。最小帧长=争用期x数据传输速率
-
以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期);
-
如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。
-
以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞;
-
如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞;
-
如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧。
最大帧长?
截断二进制指数退避算法
- 若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推送时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
- 当重传达16次仍不能成功时,表明同时打算发送帧的主机太多以至于连续发生碰撞,则丢弃该帧,并向高层报告。
信道利用率
参数a的值尽量小,以提高信道利用率
以太网端到端的距离受到限制
以太网帧的长度应尽量长些
帧发送流程图
帧接收流程
习题
【2015年题36】下列关于CSMA/CD协议的叙述中,错误的是B
A.边发送数据帧,边检测是否发生冲突
B.适用于无线网络,以实现无线链路共享
C.需要根据网络跨距和数据传输速率限定最小帧长
D.当信号传播延迟趋近于0时,信道利用率趋近100%
【2009年题37】在一个采用CSMA/CD协议的网络中,传输介质是一根完整的电缆,传输速率为1Gbps,电缆中的信号传播速度是200 000km/s。若最小数据帧长度减少800比特,则最远的两个站点之间的距离至少需要D
A.增加160m
B.增加80m
C.减少160m
D.减少80m
【2010年题47】某局域网采用CSMA/CD协议实现介质访问控制,数据传输速率为10Mbps,主机甲和主机乙之间的距离为2km,信号传播速度是200 000km/s。请回答下列问题,要求说明理由或写出计算过程。
(1)如主机甲和主机乙发送数据时发生冲突,则从开始发送数据时刻起,到两台主机均检测到冲突时刻止,最短需经过多长时间?最长需经过多长时间(假设主机甲和主机乙发送数据过程中,其他主机不发送数据)?
CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中。
现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。
6.4CSMA/CA协议(无线局域网使用的协议)
载波监听多址接入/碰撞避免CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)
既然CSMA/CD协议已经成功地应用于使用广播信道的有线局域网,那么同样使用广播信道的无线局域网能不能也使用CSMA/CD协议呢?
- 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
- 在无线局域网中,不能使用碰撞检测CD,原因如下:
- 由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现检测CD,对硬件的要求非常高。
- 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。
- 802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。
- 由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收。
- 802.11的MAC层标准定义了两种不同的媒体接入控制方式:
- 分布式协调功能DCF(Distributed Coordination Function)。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。
- 点协调功能PCF(Point Coordination Function)。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用。
帧间间隔IFS(InterFrame Space):
-
802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。
-
帧间间隔的长短取决于该站点要发送的帧的类型:
- 高优先级帧需要等待的时间较短,因此可优先获得发送权;
- 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
-
常用的两种帧间间隔如下:
- 短帧间间隔SIFS(281s),是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
- DCF帧间间隔DIFS(128us),它比短帧间间隔SIFS要长得多
在DCF方式中用来发送数据帧和管理帧。
CSMA/CA协议的工作原理:
源站为什么在检测到信道空闲后还要再等待一段时间DIFS?
就是考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送。
目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?
SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内,一个站点应当能够从发送方式切换到接收方式。
- 当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。
- 以下情况必须使用退避算法:
- 在发送数据帧之前检测到信道处于忙状态时;在每一次重传一个数据帧时;
- 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)。
CSMA/CA协议的退避算法:
- 在执行退避算法时,站点为退避计时器设置一个随机的退避时间
- 当退避计时器的时间减小到零时,就开始发送数据;
- 当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器。
- 在进行第i次退避时,退避时间在时隙编号{0,1, ...,……22+i-1}中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应于第6次退避)就不再增加了。
【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协议。
【2013年题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的虚拟载波监听。
7.MAC地址、IP地址以及ARP地址
MAC地址是以太网的MAC子层所使用的地址;属于数据链路层
IP地址是TCP/IP体系结构网际层所使用的地址;属于网际层
ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址;
尽管IP地址和ARP协议属于TCP/IP体系结构的网际层(而不属于数据链路层),但是它们与MAC地址存在一定的关系,并且我们日常的网络应用都离不开MAC地址、IP地址以及ARP协议。因此,我们将这三者放在一起讨论。
7.1MAC地址
-
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;
-
在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址;
-
MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址;
-
MAC地址有时也被称为物理地址。请注意:这并不意味着MAC地址属于网络体系结构中的物理层!
【2018年题34】下列选项中,不属于物理层接口规范定义范畴的是C
A.接口形状
B.引脚功能
C.物理地址
D.信号电平
- 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
单播MAC地址举例
广播MAC地址举例
多播MAC地址举例
随机MAC地址
7.2IP地址
IP地址属于网络层的范畴
- IP地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:
- 网络编号:标识因特网上数以百万计的网络
- 主机编号:标识同一网络上不同主机(或路由器各接口)
- 很显然,之前介绍的MAC地址不具备区分不同网络的功能。
- 如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)。
- 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。
数据包转发过程中IP地址与MAC地址的变化情况
- 数据包转发过程中源IP地址和目的IP地址保持不变;
- 数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。
[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
7.3ARP协议
8.集线器与交换机的区别
早期的总线型以太网
使用双绞线和集线器HUB的星型以太网
- 使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议;
- 集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测);
- 集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作。
使用集线器HUB在物理层扩展以太网
以太网交换机
- 以太网交换机通常都有多个接口。每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式。
- 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信,无碰撞(不使用CSMA/CD协议)。
- 以太网交换机一般都具有多种速率的接口,例如:10Mb/s、100Mb/s、1Gb/s、10Gb/s接口的多种组合。
- 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
- 以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的。
- 帧的两种转发方式:
1.存储转发
2.直通交换:采用基于硬件的交叉矩阵(交换时延非常小,钜不检查帧是否有差错)
9.以太网交换机自学习和转发帧的流程
- 以太网交换机工作在数据链路层(也包括物理层)
- 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
- 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
以太网交换机自学习和转发帧的流程:
-
收到帧后进行登记。登记的内容为帧的源MAC地址及进入交换机的接口号;
-
根据帧的目的MAC地址和交换机的帧交换表对帧进行转发。有以下三种情况:
- 明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播,多播,广播)
- 盲目转发:交换机不知道应当从哪个端口转发帧,只能将其通过除进入交换机的接口外的其他所有接口转发(也称为泛洪)。
- 明确丢弃:交换机知道不应该转发该帧,将其丢弃。
-
帧交换表中的每条记录都有自己的有效时间,到期删除。原因如下:
- 交换机的接口改接了另一台主机;
- 主机更换了网卡。
【2009年题36】以太网交换机进行转发决策时使用的PDU地址是A
A.目的物理地址
B.目的IP地址
C.源物理地址
D.源lP地址
【解析】
PDU(Protocol Data Unit)的意思是协议数据单元,它是计算机网络体系结构中对等实体间逻辑通信的对象。
以太网交换机工作在数据链路层(也包括物理层),它接收并转发的PDU通常称为帧。以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。MAC地址又称为硬件地址或物理地址。请注意:不要被“物理”二字误导认为物理地址属于物理层范畴,物理地址属于数据链路层范畴。
【2014年题34】某以太网拓扑及交换机当前转发表如下图所示,主机00-e1-d5-00-23-a1向主机0O-e1-d5-00-23-c1发送1个数据帧,主机0O-e1-d5-00-23-c1收到该帧后,向主机00-e1-d5-00-23-a1发送1个确认帧,交换机对这两个帧的转发端口分别是 B
A.{3}和{1}
B.{2,3}和{1}
C.{2,3}和{1,2}
D.{1,2,3}和{1}
找不到目的地址,于是进行盲目转发,
【解析】
数据帧的转发端口为{2,3}
确认帧的转发端口为{1}
10.以太网交换机的生成树协议STP
- 如何提高以太网的可靠性?
- 添加冗余链路可以提高以太网的可靠性
- 但是,冗余链路也会带来负面效应——形成网络环路
- 网络环路会带来以下问题:
- 广播风暴,大量消耗网络资源,使得网络无法正常转发其他数据帧;
- 主机收到重复的广播帧,大量消耗主机资源
- 交换机的帧交换表震荡(漂移)
- 以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。
- 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路);
- 最终生成的树型逻辑拓扑要确保连通整个网络;
- 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算。
11.虚拟局域网VLAN
11.1概述
-
以太网交换机工作在数据链路层(也包括物理层)
-
使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。
-
随着交换式以太网规模的扩大,广播域相应扩大。
-
巨大的广播域会带来很多弊端:
- 广播风暴,广播风暴会浪费网络资源和各主机的CPU资源!
- 难以管理和维护
- 潜在的安全问题
-
网络中会频繁出现广播信息
- TCP/IP协议栈中的很多协议都会使用广播:
- 地址解析协议ARP(已知IP地址,找出其相应的MAC地址)
- 路由信息协议RIP(一种小型的内部路由协议)
- 动态主机配置协议DHCP(用于自动配置IP地址)
- TCP/IP协议栈中的很多协议都会使用广播:
-
NetBEUl: Widnows下使用的广播型协议
-
IPX/SPX: Novell网络的协议栈
-
Apple Talk: Apple公司的网络协议栈
-
分割广播域的方法
- 使用路由器可以隔离广播域
- 路由器的成本较高
-
虚拟局域网VLAN技术应运而生
- 虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
11.2VLAN实现机制
IEEE 802.1Q帧:
- IEEE 802.1Q帧(也称Dot One Q帧)对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记。
-
VLAN标记的最后12比特称为VLAN标识符VID,它唯一地标志了以太网帧属于哪一个VLAN.
- VID的取值范围是0~4095 (0 ~ 212-1)
- 0和4095都不用来表示VLAN,因此用于表示VLAN的VID的有效取值范围是1~4094。
-
802.1Q帧是由交换机来处理的,而不是用户主机来处理的。
- 当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧,简称“打标签“
- 当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧,简称“去标签”。
交换机的端口类型:
- Access
- Trunk
- Hybrid
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不等于PVID 帧,直接转发。
Trunk端口接收处理方法:
- 接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。
- 接收“已经打标签的帧”。
參考:3.3 差错检测_哔哩哔哩_bilibili