408---CN三轮复习---数据链路层
重点知识点
组帧 ⭐⭐⭐⭐
差错控制 ⭐⭐⭐⭐
流量控制与可靠传输机制 ⭐⭐⭐⭐⭐
介质访问控制 ⭐⭐⭐⭐⭐⭐⭐⭐
局域网(IEEE 802.3与IEEE 802.11) ⭐⭐⭐⭐⭐⭐⭐⭐
广域网 ⭐⭐⭐
数据链路层的设备 ⭐⭐⭐⭐
组帧
组帧时既要加首部,又要加尾部,原因是,在网络中信息是以帧为最小单位进行传输的,所以接收端要正确地接收顿,必须要清楚该帧在一串比特流中从哪里开始到哪里结束。而分组(即P数据报)仅是包含在帧中的数据部分所以不需要加尾部来定界。
字符计数法
字符计数法是指在帧头部使用一个计数字段来标明帧内字符数
如果传输过程,计数字段出错就g了
字符填充的首尾定界符法(字符填充法)
控制字符 SOH表示帧的首部开始
控制字符EOT表示帧的结束
若传输的数据中出现特殊字符(SOH/EOT/ESC),为了防止其被误认为特殊字符,可在特殊字符前加上一个转义字符---ESC
零比特填充的首尾标志法(零比特填充法)
它使用 01111110 表示一个帧的开始/结束
为了不使传输的数据中出现类似的序列(连续的6个1),发送方在数据每连续的5个1后面插入一个"0"
差错控制
差错控制的方法通常有两种: 自动重传ARQ与向前纠错FEC
通常利用编码技术进行差错控制,主要有两类:自动重传请求ARQ和前向纠错FEC
在ARQ方式中,接收端检测到差错时,就设法通知发送端重发,直到接收到正确的码字为止。
在FEC方式中,接收端不但能发现差错,而且能确定比特串的错误位置,从而加以纠正。因此,差错控制又可分为检错编码和纠错编码。
检错编码奇---偶校验码
如果是奇校验码,那么在附加一个校验元后,码长为的码字中“1”的个数为奇数.
如果是偶校验码,那么在附加一个校验元以后,码长为n的码字中“1”的个数为偶数。
它只能检测奇数位的出错情况,但并不知道哪些位错了,也不能发现偶数位的出错情况。
检错编码---循环冗余码
通过循环冗余码(CRC)的检错技术,数据链路层做到了对帧的无差错接收。
也就是说,凡是接收端数据链路层接收的帧,我们都认为这些帧在传输过程中没有产生差错
注意:循环冗余码(CRC)是具有纠错功能的,只是数据链路层仅使用了它的检错功能,检测到桢出错则直接丢弃,是为了方便协议的实现
纠错编码---海明码
0、确定海明码位数公式
n为有效信息的位数,k为校验位的位数
想想书上那张图检验四位就用了三个海明码
这个公式可以变化为:
也就是说去除0后,校验码与有效信息码的种类小于等于k位校验码所能表示的所有编码种类
1、海明码一般来说具有一位纠错功能
2、海明码纠错d位,需要2d+1海明距,检错d位,需要d+1的海明距
流量控制与可靠传输
本来流量控制是区分停止-等待、滑动窗口两种呢,但发现两者差别不大
单帧滑动窗口---停止等待 ARQ
停止-等待协议:发送窗口大小=1,接收窗口大小=1
多帧滑动窗口---后退N帧 ARQ
后退N帧协议:发送窗口大小>1,接收窗口大小=1
特点: 累计确认,超时重传,按序接受
发送方无须在收到上一个帧的ACK后才能开始发送下一帧,而是可以连续发送帧。
当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N个帧后,若发现该N个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随后的N个帧。换句话说,接收方只允许按顺序接收帧
多帧滑动窗口---选择重传 ARQ
选择重传协议:发送窗口大小>1,接收窗口大小>1
特点 : 全部确认,超时重传,不按序接受
为进一步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧,但此时必须加大接收窗口,以便先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机
另外,该协议使用了比上述其他协议更有效的差错处理策略,即一旦接收方怀疑帧出错,就会发一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行重传
介质访问控制
介质访问控制所要完成的任务是,为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号
介质访问控制的内容是,采取一定的措施,使得两对结点之间的通信不会发生互相干扰的情况
常见的介质访问控制方法有: 信道划分(介质访问控制)、随机访问(介质访问控制)、轮询访问(介质访问控制)
前者是静态划分信道,后两者是动态分配信道
信道划分(介质访问控制)
信道划分介质访问控制将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔离开来,把时域和频域资源合理地分配给网络上的设备。
信道划分的实质就是通过分时、分频、分码等方法把原来的一条广播信道,逻辑上分为几条用于两个结点之间通信的互不干扰的子信道,实际上就是把广播信道转变为点对点信道。
频分复用 FDM
时分复用 TDM
时分多路复用是将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用
异步时分复用
波分复用 WDM
码分复用 CDM(CDMA)
CDM即共享空间又共享时间
工作基本原理:
假设有A、B、C三个站点,AC与BC之间均有通道,A与B分别向C发送数据
- A、B每个站点被指派一个唯一的、m位的码片序列,站点之间的码片序列必须相互正交,比如另A=00011011,另B=00101110,为了方便我们吧0当作-1,1当作+1。则有A=-1 -1 -1 +1 +1 -1 +1 +1 B=-1 -1 +1 -1 +1 +1 +1 -1
- A要发送数据1时,就会发送 向量(-1 -1 -1 +1 +1 -1 +1 +1),发送数据零时,则取反码片序列再发送: (+1 +1 +1 -1 -1 +1 -1 -1),同理,B发送1时,直接发送码片序列,发送0时,取反码片序列再发送
- 俩向量在公共信道上会叠加,即A+B
- 到达C站后,C站根据提前知道的A站的码片序列,可以通过规格化内积推测出A发送的序列,根据提前知道的B站的码片序列,可以通过规格化内积推测出B发送的序列 推测A的序列: a = A·(A+B) 推测B的序列 : b = B(A+B),若a=+m,则发送的是1,若a=-m,则发送的是0
随机访问(介质访问控制)
不采用集中控制方式解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。在总线形网络中
即不共享时间,也不共享空间
随机介质访问控制实质上是一种将广播信道转化为点到点信道的行为
ALOHA协议---纯ALOHA协议
当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据。如果在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突。发送站点需要等待一段时间后再发送数据,直至发送成功
纯ALOHA系统采用的重传策略是让各站等待一段随机的时间,然后再进行重传。若再次发生碰撞,则需要再等待一段随机的时间,直到重传成功为止。
ALOHA协议---时隙ALOHA协议
时隙ALOHA协议把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙(Sot),规定只能在每个时隙开始时才能发送一个帧。
时隙ALOHA网络比纯ALOHA网络的吞吐量大了1倍。
CSMA
CSMA在ALOHA协议上增加了一点:
每个站点在发送前都先侦听一下共用信道,发现信道空闲后再发送
CSMA协议是在ALOHA协议基础上提出的一种改进协议,它与ALOHA协议的主要区别是多了一个载波侦听装置。
1-坚持CSMA
侦听到信道忙后,继续坚持侦听信道;侦听到信道空闲后,发送帧的概率为1,即立刻发送数据。
传播延迟对1-坚持CSMA协议的性能影响较大
非坚持CSMA
非坚持的意思是放弃监听,等待一个随机时间再监听
一个结点要发送数据时,首先侦听信道:如果信道空闲,那么立即发送数据:如果信道忙,那么放弃侦听,等待一个随机的时间后再重复上述过程。
p-坚持CSMA
p-坚持CSMA(P-persistent CSMA)用于时分信道,其基本思想是:一个结点要发送数据时,首先侦听信道;如果信道忙,就持续侦听,直至信道空闲:如果信道空闲,那么以概率p发送数据,以概率1-p推迟到下一个时隙:如果在下一个时隙信道仍然空闲,那么仍以概率p发送数据,以概率1-p推迟到下一个时隙.这个过程一直持续到数据发送成功或因其他结点发送数据而检测到信道忙为止,若是后者,则等待下一个时隙再重新开始侦听。
对比
CSMA/CD
IEEE 802.3广泛使用CSMA/CD
比CSMA多了个CD,即碰撞检测
“碰撞检测”就是边发送边侦听,即适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站点是否也在发送数据。
CSMA/CD工作流程:
除了指数退避算法,与CSMA比起来好像没什么不同
最大的不同在这里:
CSMA/CD引入了最短帧长的概念
CSMA/CD把以太网往返的时间即2t称为争用期(碰撞窗口),站点在2t内所传输的数据大小称为最短帧长
站点在开始传输到检测到碰撞的最长时间是2t,如果帧长大于2t,那么站点就可以在检测到碰撞后停止发送数据帧,此时发送的帧的长度一定小于最短帧长,而CSMA/CD又规定凡长度小于最短帧长的帧都是由于冲突而异常中止的无效帧,收到这种无效帧时应立即丢弃。一次实现了介质访问控制
以太网的最短帧长为64B
二进制退避算法:
注意单位是2t
CSMA/CA
IEEE 802.11广泛使用CSMA/CA
CSMA/CD 广泛用于有线连接的局域网,CSMA/CA用于无线网
CSMA/CA协议,把CSMA/CD的碰撞检测改为碰撞避免(Collision Avoidance ,CA),不是说可以完全避免碰撞,而是指协议的设计要尽量降低碰撞发生的概率
1、CSMA/CA使用的是确认/重传ARQ,每发送完一帧都要在收到确认帧后才能继续发送下一帧 (看来是停止等待协议)
2、所有的站完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间称为帧间间隔(InterFrame Space,IFS)。帧间间隔的长短取决该站要发送的帧的类型
802.11使用了一下三种帧:
3、CSMA/CA的二进制指数退避算法与前面讲的略有不同,这里并不打算深入学习,详情可参考《计算机网络(第八版))》p416
4、CSMA/CA实现原理
5、处理隐蔽站问题
什么是隐蔽站问题?
类似于这样:
A站或B站向接入点AP发送数据时,远处的C站接收不到这些信号,而C站向AP发送的信号也传播不到远处的A站或B站,但是A站与C站同时发送数据时就会产生碰撞
解决方法
为了解决这个问题,802.11引入了信道预约这个概念
- 源站要发送数据帧之前先广播一个很短的请求发送RTS(Request To Send)控制帧,它包括源地址、目的地址和这次通信(含相应的确认帧)所持续的时间,该帧能被其范围内包括AP在内的所有站点听到。
- 若信道空闲,则AP广播一个允许发送CTS(Clear To Send)控制帧,它包括这次通信所需的持续时间(从RTS帧复制),该帧也能被其范围内包括A和B在内的所有站点听到
- B和其他站听到CTS后,在CTS帧中指明的时间内将抑制发送
CTS帧有两个目的:①给源站明确的发送许可;②指示其他站点在预约期内不要发送。
轮询访问---令牌传递协议
典型的轮询访问介质访问控制协议是令牌传递协议,它主要用在令牌环局域网中。
1、在令牌传递网络中,传输介质的物理拓扑不必是一个环,但是为了把对介质访问的许可从一个设备传递到另一个设备,令牌在设备间的传递通路逻辑上必须是一个环
2、轮询介质访问控制非常适合负载很高的广播信道。所谓负载很高的信道,是指多个结点在同一时刻发送数据概率很大的信道
3、令牌环网上不可能存在冲突
局域网 LAN
1、三种局域网
以太网 : 目前使用最广的局域网。逻辑拓扑是总线形(类似于机组的总线)、物理拓扑是是星形或拓展星形
令牌环 : (Token Ring,IEEE802.5)。逻辑拓扑是环形结构,物理拓扑是星形结构。
FDDI : (光纤分布数字接口,IEEE802.8)。逻辑拓扑是环形结构,物理拓扑是双环结构。
以太网与IEEE 802.3
-
IEEE802.3标准是一种基带总线形的局域网标准
-
使用CSMA/CD、曼彻斯特编码
-
以太网与IEEE 802.3有很小的差距,因此称IEEE 802.3的局域网也为以太网
-
以太网的传输介质
以太网的MAC帧
重点是:
- MAC帧 = 6B目的地址+6B源地址 + 2B类型 + 数据(IP数据报,范围在46~1500) + 4B FCS(32位CRC校验)
- 帧定界符大小为8B
高速以太网
无线局域网 IEEE802.11
无线局域网可分为两大类:有固定基础设施的无线局域网和无固定基础设施的移动自组织网络
所谓“固定基础设施”,是指预先建立的、能覆盖一定地理范围的固定基站
有固定基础设施无线局域网
1、星形拓扑,中间为AP(接入点)
2、802.l1标准规定无线局域网的最小构件是基本服务集BSS
3、各站在本BSS内之间的通信,或与本BSS外部站的通信,都必须通过本BSS的AP。上面提到的AP就是基本服务集中的基站(base station)。
4、安装AP时,必须为该AP分配一个不超过32字节的服务集标识符(Service Set IDentifier,SSID)和一个信道。SSID是指使用该AP的无线局域网的名字。一个基本服务集覆盖的地理范围称为一个基本服务区(Basic Service Area,BSA),无线局域网的基本服务区的范围直径一般不超过100m
5、一个基本服务集可以是孤立的,也可通过AP连接到一个分配系统(Distribution System,DS),然后再连接到另一个基本服务集,就构成了一个扩展的服务集(Extended Service Set, ESS)。
6、ESS还可以通过一种称为Potl(门户)的设备为无线用户提供到有线连接的以太网的接入。门户的作用相当于一个网桥。在下图中,移动站A如果要和另一个基本服务集中的移动站B通信,就必须经过两个接入点AP1,和AP2,即A→AP1→AP2→B,注意AP1到AP2的通信是使用有线传输的。
7、上图画出了移动站A漫游的情况。但移动站A漫游到图中的位置A,时,就能够同时收到两个接入点的信号。
无固定基础设施的移动自组织网络
自组网络没有上述基本服务集中的AP,而是由一些平等状态的移动站相互通信组成的临时网络各结点之间地位平等,中间结点都为转发结点,因此都具有路由器的功能。
802.11局域网的MAC帧
802.11帧共有三种类型,即数据帧、控制帧和管理帧
1、30B的头+数据部分(0~2312B) +4B的FCS
2、重点是四个地址
以一道题来研究
- 当为发送帧时
- 地址1是AP的MAC地址 (不是真正的目的地址)
- 地址2是源MAC地址
- 地址3是真正的目的地址
- 当帧为接受帧时
- 地址1是目的MAC地址
- 地址2是AP的MAC地址(不是源地址)
- 地址3是原MAC地址
地址4用于自组网
VLAN的概念
通过虚拟局域网(Virtual LAN),可以把一个较大的局域网分割成一些较小的与地理位置无关的逻辑上的VLAN,而每个VLAN是一个较小的广播域
虚拟局域网VLAN以太网帧
1、6目的地址+6源地址+4VLAN标签+2类型+数据(46~1500)+4FCS
2、由于引入了VALN标签,所以以太网最大帧长从原来的1518字节变成了1522字节
3、VLAN标签的前两个字节置为0x8100,表示这是一个802.1Q帧。
4、在VLAN标签的后两个字节中,前4位没有用,
5、后12位是该VLAN的标识符VID,它唯一标识了该802.1Q帧属于哪个VLAN。12位的VID可识别4096个不同的VLAN。插入VID后,802.1Q帧的FCS必须重新计算。
6、交换机隔离不了广播域,而VLAN和路由器可以隔离广播域,一个VLAN就是一个广播域,一个路由器的一个端口就是广播域
VLAN划分原理
广域网
广域网使用的协议主要在网络层,局域网使用的协议主要在数据链路层
PPP协议
Point-to-Point Protocol
1、是使用串行线路通信的面向字节的协议
2、它既可以在异步线路上传输,又可在同步线路上传输
3、PPP提供差错检测但不提供纠错功能,只保证无差错接收
4、只支持点对点,不支持多点
5、只支持全双工
6、PPP是面向字节的,当信息字段出现和标志字段一致的比特组合时,PPP有两种不同的处理方法:若PPP用在异步线路(默认),则采用字节填充法;若PPP用在SONET/SDH等同步线路,则协议规定采用硬件来完成比特填充(和HDLC的做法一样)。
PPP帧结构
1、PPP帧的前3个字段和最后2个字段与HDLC帧是一样的,标志字段(F)仍为7E(01111110),前后各占1字节,若它出现在信息字段中,就必须做字节填充使用的控制转义字节是7D(01111101)
前后的标志字段F作为帧定界符
2、但在PPP中,地址字段(A)占1字节,规定为0xFF,控制字段(C)占1字节,规定为Ox03,两者的内容始终是固定不变的。PPP是面向字节的,因而所有PPP帧的长度都是整数个字节。
3、第4个字段是协议段,占2字节,它是说明信息段中运载的是什么种类的分组。以比特0开始的是诸如IP、IPX和AppleTalk这样的网络层协议;以比特1开始的被用来协商其他协议,包括LCP及每个支持的网络层协议的一个不同的NCP。
4、第5个字段是数据部分,大于等于0且小于等于1500B
没有最短帧的原因 : 因为PPP是点对点的,并不是总线形,所以无须采用CSMA/CD协议,自然就没有最
短帧,所以信息段占0~1500字节,而不是46~1500字节
透明传输
异步电路使用字节填充法
同步电路使用bit填充法
PPP协议的流程图
- NCP: 网络控制协议,为了支持不同的网络层协议
- LCP: 链路控制协议, 用于建立配置以及测试数据链路的连接
难懂
数据链路层设备
网桥
1、两个或多个以太网通过网桥连接后,就成为一个覆盖范围更大的以太网,而原来的每个以太网就称为一个网段。
2、可以使以太网各网段成为隔离开的碰撞域
3、网桥具有存储转发功能,可以互连两个物理层和数据链路层不同的网段,中继器不是存储转发设备,它属于直通式设备
局域网交换机
1、从本质上说,以太网交换机是一个多端口的网桥
2、工作原理:
它检测从以太端口来的数据帧的源和目的地的MAC(介质访问层)地址,然后与系统内部的动态查找表进行比较,若数据帧的源MAC地址不在查找表中,则将该地址加入查找表,并将数据帧发送给相应的目的端口
3、交换机的最大优点
4、全双工
5、两种交换模式(真题考过)
以太网交换机主要采用两种交换模式:
①直通式交换机,只检查帧的目的地址,这使得帧在接收后几乎能马上被传出去。这种方式速度快,但缺乏智能性和安全性,也无法支持具有不同速率的端口的交换
②存储转发式交换机,先将接收到的帧缓存到高速缓存器中,并检查数据是否正确,确认无误后通过查找表转换成输出端口将该帧发送出去。如果发现帧有错,那么就将其丢弃。优点是可靠性高,并能支持不同速率端口间的转换,缺点是延迟较大。
6、交换机的自学习
交换机的自学习主要通过对原MAC地址的登记工作来完成的
讲的无敌好
其他一些知识点
点到点的通信
即使是广播信道也可通过介质访问控制机制使广播信道逻辑上变为点对点的信道,所以说数据链路层研究的是“点到点”之间的通信。
GBN连续ARQ协议为什么接受窗口大小为1,而发送窗口大小小于等于 \(2^n-1\)
- 设n=3,且发送端A向接受端B发送0~7八个数据帧
- 接收端完整的收到了所有的数据帧,此时滑动窗口移动八位
- 当接受端发送给发送端的确认帧都丢失时,发送端超时重传0~7号帧
- 而当接受端再接受到0时会误以为是发送端发送的第二组数据(但实际上是发送端重传的第一组的数据)
而如果发送窗口大小等于 \(2^n-1\)呢
- 设n=3,且发送端A向接受端B发送0~6七个数据帧
- 接收端完整的收到了所有的数据帧,此时滑动窗口移动七位
- 当接受端发送给发送端的确认帧都丢失时,发送端超时重传0~6号帧
- 而这时的接收端在接收到0~6时不会误以为是第二组数据(因为GBN下接收端是按序接受的,也就是说它必须接收到7后才能接受0)