- 计算机网络微课堂笔记第三章 数据链路层
- 3.6.4 媒体控制接入——动态接入控制——随机接入的MSMA/CA协议(无线网多用)
- 3.7.1 MAC地址
- 3.7.2 网络层 ——IP地址
- 3.7.3 ARP(地址解析
- 3.8 集线器与交换机的区别
- 以太网交换机自学习与转发帧的流程
- 3.10 以太网交换机的生成树协议STP(了解不深入)
- 3.11 虚拟局域网VLAN
计算机网络微课堂笔记第三章 数据链路层
3.1 数据链路层概述
链路((Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层以帧为单位传输和处理数据。

数据链路层的三个问题
封装成帧
数据链路层给网络层交付的的协议数据单元添加帧头和帧位的操作。
目的是实现数据链路层本身的功能。

差错检测
通过封装在帧尾的检测码与服务端的检错码来检验传输中的错误。

可靠传输
尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输。
这是对于使用点对点信道的数据链路层来举例子的,对于使用广播信道的数据链路层,还有一些其他的问题
如编织问题、共享式局域网(无限局域网)通讯冲突问题的等

3.2 详述 封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
作用
帧头和帧尾中包含有重要的控制信息。

帧头和帧尾可以进行帧定界
但并不是每一种传输方法都有帧定界,如以太网v2用前导码与固定的发送时间来区分每一个帧。

透明传输
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
如按帧标识符定界,当一个帧内有多个帧标识符时,此时会使接受端产生误判,可如下例子中使用的转义字符来解决。
面向字节的物理链路
使用字节填充(或称字符填充),即转义字符的方法实现透明传输。

面向比特的物理链路
使用比特填充的方法实现透明传输
零比特填充法又称零比特插入法。在HDLC的帧结构中,若在两个标志字段之间的比特串中,碰巧出现了和标志字段F(01111110)一样的比特组合,那么就会误认为是帧的边界。为了避免出现这种情况,HDLC采用零比特填充法使一帧中两个F字段之间不会出现6个连续1。
零比特填充法的具体做法是:在发送端,当一串比特流尚未加上标志字段时,先用硬件扫描整个帧。只要发现5个连续1,则立即填入一个0。因此经过这种零比特填充后的数据,就可以保证不会出现6个连续1。在接收一个帧时,先找到F字段以确定帧的边界。接着再用硬件对其中的比特流进行扫描。每当发现5个连续1时,就将这5个连续1后的一个0删除,以还原成原来的比特流。这样就保证了在所传送的比特流中,不管出现什么样的比特组合,也不至于引起帧边界的判断错误。
例如:
某一非标志字段(0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0)中恰好出现“01111110”,被误认为是标志字段,则发送端连续发送5 个“1”后,填入1个“0”:0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0,接收端将5 个连1 之后的“0”删除:0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0

总结
为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU (Maximum Transfer Unit)。
3.3 差错检测
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。

奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)。
如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
如果有偶数个位发生误码,则奇偶性发生变化,不能检查出误码(漏检)
循环冗余校验CRC
收发双方约定好一个生成多项式G(x);发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码);将其添加到待传输数据的后面一起传输接收方通过生成多项式来计算收到的数据是否产生了误码。


小练习
发送
接收

总结
检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。
在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。
3.4.1 可靠传输的基本概念
使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。

一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。
比特差错只是传输差错中的一种。
从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复。
分组丢失

分组失序

分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。

可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。
小结

3.4.2 可靠传输的实现机制——停止-等待协议SW
确认与否认
首先,每次发送方都只发一个数据分组,接收方对数据分组进行差错检测,检验是否有误码。
如果没有误码,那么给发送方发送ACK确认分组;
如果有误码,则丢弃分组,并给发送方发送NAK否认分组。

超时重传
接收方收不到数据分组,就不会发送ACK或NAK。如果不采取其他措施,发送方就会一直处于等待接收方ACK或NAK的状态。
为解决该问题,可以在发送方发送完一个数据分组时,启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫做超时重传。
一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”。

确认丢失
接收方的ACK在传输过程中丢失的话,就会触发发送方的超时计时器,让发送方重传,如果这样,发送方的数据分组会被重复发送。
为避免分组重复这种传输错误,必须给每个分组带上序号。对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同就可以了,因此用一个比特来编号就够了。

确认迟到
发送方发送的数据分组需要序号,接收方发送的确认分组ACK也需要序号。
发送方给接收方发送一个数据分组,接收方可能接收并给发送方发送ACK,此时,如果ACK遇到某些问题,导致该ACK迟到了,那么有可能会触发发送方的超时重发,此时,发送方又发了一个DATA0,接收方误以为是之前的ACK丢包而重发一个ACK,如果没有给ACK编号的话,那么DATA0的两个ACK到达发送方的时候,发送方会误以为DATA1的ACK到了,如此反复,后边是否正确接收数据分组就对不上号了。
因此,也必须给ACK多开辟一个比特位进行编号(0或1),让发送方知道这个ACK到底是丢包没传过来,还是迟到没传过来;并对该结果进行抉择(接收还是忽略)。

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

TD是发送方发送数据分组耗费的发送时延
RTT是收发双方之间的往返时延
TA是接收方发送确认分组所耗费的发送时延(远小于TD,经常忽略不计)
当往返时延RTT远大于数据帧发送时延Tp时(例如使用卫星链路),信道利用率非常低。
若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低。
为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退N帧协议GBN和选择重传协议SR。
练习


小结

3.4.3 回退N帧协议GBN
流水式发送
停止等待协议的信道利用率很低,如出现超时重传,则信道利用率更低。通过同时发送多个数据分组的流水线式的传输方式,可以调高信道的利用率

运行过程

无差错传输时
发送方依次发送数据分组,经传输到达接收方,未出现错误,接收方每接收一个,就将滑动窗口移动一个位置,并发送对应的确认分组
发送方接收到了接收方的确认分组,每接收一个就将发送窗口向前移动一个位置。
发送方将受到确认的数据分组从缓存中删除,接收方将已接收的数据分组交付上层。
累计确认
接收方不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后(由具体实现决定),对按序到达的最后一个数据分组发送确认。ACKn表示序号为n及以前的所有数据分组都已正确接收。
优点
减小接收方的开销,减少对网络资源的占用。
缺点
不能向发送方及时反映出接收方已经正确是接受的数据分组信息。
有差错传输时
发送方发送的5号报文出现误码,接收方将其4位全部丢弃,并向发送方发送ACK4;之后的报文因为与接收窗口不对应,故也无法接收,依次向发送方发送四个ACK4。
发送方收到重复的确认,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器就立刻重传!
如果ACK4也丢失,则超时计时器触发后进行重传。

在本例中,虽然6 7 0 1的分组已经成功到达了接收方,但是因为5号分组出现误码,他们也“受到牵连”而不被接受,发送方还要重传这些数据分组,这既是所谓的Go-Back-N(回退N帧)。
可见,当通信线路质量不好时,回退N帧协议的利用率也并不比停止-等待协议要好。
Wt超过上限的情况
令Wt=8,发送方依次将八个分组发送给接收方,接收方收到分组后发送了ACk7作为累计确认,若ACK7在传输过程中丢失,将会启动了发送方的超时重传。
发送方继续发送这八个分组,儿接收方的接收窗口刚好停在0处,此时也可以接受该分组,但是这个分组已经在前面接受过了,就导致了分组重复。

当发送窗口过大时,会导致接收方无法分辨新旧分组,导致分组重复的错误,所以发送窗口的尺寸不可以超过其上限。
小结
发送方
- 发送窗口尺寸Wr的取值范围是1 < W, ≤ 2”-1其中,n是构成分组序号的比特数量。
- wt=1时,是停等协议
- wt>2的n次方-1时:接收方无法分辨新旧分组
- 发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去;
- 发送方只有收到对已发送数据分组的确认时,发送窗口才能向前相应滑动;
- 发送方收到多个重复确认时,可在重传计时器超时前尽早开始重传,由具体实现决定。
- 发送方发送窗口内某个已发送的数据分组产生超时重发时,其后续在发送窗口内且已发送的数据分组也必须全部重传,这就是回退N帧协议名称的由来。
接受方
- 接收方的接收窗口尺寸WR的取值范围是Wr= 1因此接收方只能按序接收数据分组。
- 接收方只接收序号落在接收窗口内且无误码的数据分组,并且将接收窗口向前滑动一个位置,与此同时给发送方发回相应的确认分组。为了减少开销,接收方不一定每收到一个按序到达且无误码的数据分组就给发送方发回一个确认分组,
- 而是可以在连续收到好几个按序到达且无误码的数据分组后(由具体实现决定),才针对最后一个数据分组发送确认分组,这称为累积确认;或者可以在自己有数据分组要发送时才对之前按序接收且无误码的数据分组进行捎带确认;
- 接收方收到未按序到达的数据分组,除丢弃外,还要对最近按序接收的数据分组进行确认;

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

3.4.5 可靠传输的实现机制 — 选择重传协议SR
引入
- 回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组。
- 一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。
- 为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WR不应再等于1(而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。
注意:选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!

2.SR发送方必须响应的三件事
1.上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;
否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
2.收到了一个ACK
如果收到ACK,加入该帧序号在窗口内,则sR发送方将那个被确认的帧标记为已接收。
如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。
如果窗口移动了并且有序号在窗白内的未发送帧,则发送这些帧。
3.超时事件
每一个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
哪个帧的超时器超时,则重传哪个帧
3.SR接收方要做的事情
1.窗口内的帧来者不拒
2.SR接收方将确认一个正确接收的帧而不管其是否按序。
失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁就确认谁】,
直到失序前面所有帧(即序号更小的帧)皆被接收到为止,这时才可以将一批帧按序交付给上层,
然后向前滑动窗口。
3.如果收到了窗口序号外(小于窗口下界)的帧,就返回一个ACK
4.其他情况就忽略该帧
引用

小结

3.5 点对点协议PPP

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。
PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]。
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
- 对各种协议数据报的封装方法(封装成帧)
- 链路控制协议LCP——用于建立、配置以及测试数据链路的连接
- 一套网络控制协议NCPs——其中的每一个协议支持不同的网络层协议

帧格式

PPP协议透明传输解决方案



差错检测

接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层向上不提供可靠传输服务。
工作状态

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

随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。
3.6.2 媒体接入控制——静态划分信道
信道复用
复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。

频分复用FDM
频分多路复用(Frequency-division multiplexing,FDM),也叫分频多工,是一种将多路基带信号调制到不同频率载波上再进行叠加形成一个复合信号的多路复用技术。
(后续概念不再给出,可自行搜索引擎查询)

时分复用TDM

波分复用WDM

码分复用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是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址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码片序列的二进制反码;


3.6.3 媒体控制接入——动态接入控制——随机接入的MSMA/CD协议
载波监听多址接入/碰撞检测CSMA/CD



征用期

最小帧长

最大帧长

截断二进制指数退避算法

信道利用率

帧发送流程图

帧接受流程图

小结

3.6.4 媒体控制接入——动态接入控制——随机接入的MSMA/CA协议(无线网多用)
载波监听多址接入/碰撞避免CSMA/CA
概念
既然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定义的可选方式,在实际中较少使用。
802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。
帧间间隔的长短取决于该站点要发送的帧的类型:
- 高优先级帧需要等待的时间较短,因此可优先获得发送权;
- 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
常用的两种帧间间隔如下:
- 短帧间间隔SIFS(28us),是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
- DCF帧间间隔DIFS(128us),它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。
工作原理
Q:源站为什么在检测到信道空闲后还要再等待一段时间DIFS?
A:就是考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送。

Q:目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?
A:SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内一个站点应当能够从发送方式切换到接收方式。

Q:信道由忙转为空闲且经过DIFS时间后,还要退避━段随机时间才能使用信道?
A:防止多个站点同时发送数据而产生碰撞。

当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。
以下情况必须使用退避算法:
- 在发送数据帧之前检测到信道处于忙状态时;在每一次重传一个数据帧时;
- 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)。
MSMA/CA协议的退避算法


CSMA/CA协议的信道预约和虚拟载波监听
为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。
- 源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS(Request To Send),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
- 若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Cear To Send),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)。
- 源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧。
- 若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK.
除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会受到其他站的干扰。
如果RTS帧发生碰撞,源站就收不到CTS帧,需执行退避算法重传RTS帧。
由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一股的数据帧,其发送时延大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。802.11标准规定了3种情况供用户选择:
- 使用RTS帧和CTS帧
- 不使用RTS帧和CTS帧
- 只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧

除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制。
由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题。

3.7.1 MAC地址
MAC地址是以太网的MAC子层所使用的地址;





3.7.2 网络层 ——IP地址
因后续介绍,本章简略
IP地址是TCP/IP体系结构网际层所使用的地址;

3.7.3 ARP(地址解析

3.8 集线器与交换机的区别
使用双绞线与集线器HUB的星型以太网

- 使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议;
- 集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测);
- 集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作。
使用集线器在物理层扩展以太网

以太网交换机

全部转发 or 单独转发,类似于全村广播与单独打电话
本节课忽略其arp过程,并假设交换机配置正确
- 以太网交换机通常都有多个接口。每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式。
- 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信,无碰撞(不使用CSMA/CD协议)。
- 以太网交换机一般都具有多种速率的接口,例如:10Mb/s、100Mb/s、1Gb/s、10Gb/s接口的多种组合。以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
- 以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的。
- 帧的两种转发方式:1.存储转发 2.直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是否右差错)
对比交换机与集线器
忽略其arp过程,并假设交换机配置正确

小结

以太网交换机自学习与转发帧的流程
- 以太网交换机工作在数据链路层(也包括物理层)。
- 以太网交换机收到帧后,在帧交换表中查找帧的MAC地址。
- 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
本章节仍然忽略ABP。

通过盲目穷举得出正确的信息在储存,定时删除重新记录。
习题

3.10 以太网交换机的生成树协议STP(了解不深入)
Q:如何提高以太网的可靠性?
A:添加冗余链路可以提高以太网的可靠性
但是,冗余链路也会带来负面效应——形成网络环路网络环路会带来以下问题:
- 广播风暴:大量消耗网络资源,使其网络无法正常转发其他数据帧。
- 主机收到重复的广播帧:大量消耗主机资源
交换机的帧交换表震荡(漂移)

以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。
- 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路);
- 最终生成的树型逻辑拓扑要确保连通整个网络;
- 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算。
其实用的就是数据结构与算法里的最小生成树算法(权值为1),取一个极小连通子图,在没有环路的情况下连通整个网络。

3.11 虚拟局域网VLAN
基本概念
前导
以太网交换机工作在数据链路层(也包括物理层)使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。
随着交换式以太网规模的扩大,广播域相应扩大。巨大的广播域会带来很多弊端:广播风暴(浪费cpu与网络资源)、难以管理和维护、潜在的安全问题。

网络中会频繁出现广播信息
- TCP/IP协议栈中的很多协议都会使用广播:
- 地址解析协议ARP(已知IP地址,找出其相应的MAC地址)
- 路由信息协议RIP (一种小型的内部路由协议)
- 动态主机配置协议DHCP(用于自动配置lP地址)NetBEUI: Widnows下使用的广播型协议
- IPX/SPX: Novell网络的协议栈
- Apple Talk: Apple公司的网络协议栈
分离广播域的方法

VLAN的诞生
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
实现机制
IEEE 802.1Q帧

交换机的端口类型
交换机的端口类型有以下三种:
- Access
- Trunk
- Hybrid
交换机各端口的缺省VLAN ID
- 在思科交换机上称为Native VLAN,即本征VLAN。
- 在华为交换机上称为Port VLAN ID,即端口VLAN ID,简记为PVID.
Access端口


Trunk端口

Hybrid端口

