基本概念
 数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报
功能概述
数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻结点的目标网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。 功能二:链路管理,即连接的建立、维持、释放,主要用于面向连接的服务 功能三:组帧 功能四:流量控制 功能五:差错检测
封装成帧
 
透明传输

组帧方法
字符计数法(容易出错,不常用)

字符填充法

零比特填充法

违规编码法

差错控制
差错来源
  
冗余编码
在发送数据的时候,在要发送的数据后面附加几位比特,这些称作冗余码,冗余码和原来数据构成某种规则,形成组合发出去,接收方就根据组合的规则来检测差错
检错编码
奇偶校验码
 
CRC循环冗余码
 生成多项式n为,则阶为n-1   
纠错编码
海明码
海明距离

工作流程
 确定校验码位数r  确定校验码和数据的位置  求出校验码的值  检错并纠错    
小结

流量控制与可靠传输(重点)
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层的流量控制和传输层的流量控制比较
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。 数据链路层流量控制手段:接收方收不下就不回复确认。 传输层流量控制手段:接收端给发送端一个窗口公告。
为什么要进行流量控制
由于接收发双方各自的工作速率和缓存空间的差异,可能出现发送方的发送能力大于接收方的接收能力的现象,如果此时不适当限制发送方的发送速率(即链路上的信息流量),前面来不及接收的帧会被后面不断发送的帧”淹没“,造成帧的丢失而出错。 因此流量控制实际上是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。这个过程需要通过某种反馈机制使发送方能够知道接收方是否能跟上自己,即需要有一些规则使得发送方知道在什么情况下可以接着发送下一帧而在什么情况下必须暂停发送,以等待收到某种反馈信息后继续发送。
流量控制的方式

停止-等待协议(发送窗口大小=1,接收窗口大小=1)
发送方每发送一帧,都要等待接收方的应答信号,之后才发送下一帧;接收方每接收一帧,都反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待,直到超过一定时间,发送方会再重传一次。这种方式每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,所以效率很低。
滑动窗口流量控制方式
在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方页维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小代表在还未收到对方确认信息的情况下,发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。
后退N帧协议(GBN)(发送窗口大小>1,接收窗口大小=1)
 在后退N帧协议中,发送方无须在收到上一个帧的ACK后才能开始发送下一帧,而是可以连续发送帧。当接收方发现有某个序号的信息帧缺失后,会把该序号之后传来的帧都丢弃,直到超时再要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发了N个帧后,发现该N个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随后的N个帧。换句话说,接收方只允许按顺序接收帧 后退N帧协议一方面因连续发送数据帧而提高了信道的利用率,另一方面在重传时又必须把原来已传送正确但未被确认的数据帧进行重传(仅因为这些数据帧的前面有一个数据帧除了错),这种做法又使传送效率降低。由此可见,如果信道的传输质量很差导致误码率较大时,后退N帧协议也不一定优于停止-等待协议
选择重传协议(SR)(发送窗口大小>1。接收窗口大小>1)
 为进一步提高信道的利用率,设法只重传出现差错的数据帧或计时器超时的数据帧,它会对数据帧逐一确认,收一个确认一个,而且接收方有缓存,假如发送的某个序号的数据帧丢失,接收方先收下发送序号不连续但仍处在接收窗口中的那些数据帧,等到所缺序号的数据帧收到后再返回确认,一并送交上层
自动重传请求(ARQ)
自动重传请求通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。传统自动重传请求分为三种,即停止-等待ARQ、后退N帧ARQ和选择性重传ARQ,后两种是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议。
可靠传输机制有哪些
数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。超时重传是指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。
传输数据使用的两种链路

介质访问控制
采取一定的措施,使得两对节点之间的通信不会发生相互干扰的情况 
信道划分介质访问控制

频分多路复用FDM

时分多路复用TDM

波分多路复用WDM
 
码分多路复用CDM

随机访问介质访问控制(重点)
在随机访问协议中,不采用集中控制方式(例如信道划分介质访问的时分复用)来解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧的冲突,导致所有冲突用户的发送都失败。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。这些规则就是随机访问介质访问控制协议,常用的协议有ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA协议等,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权
ALOHA协议
纯ALOHA协议

时隙ALOHA协议

CSMA协议(载波监听多路访问协议)
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。 检测方式:当几个站同时在总线上发生数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。 MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。 协议思想:发送帧之前,监听信道。 
1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持
思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。如果有冲突,也就是一段时间内未收到肯定回复,则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。
思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体利用率降低。
p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理
思想:如果一个主机要发送消息,那么它先监听信道。空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。忙则持续监听直到信道空闲再以p概率发送。若冲突则等到下一个时间槽开始再监听并重复上述过程。
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间
缺点:发生冲突后还是坚持把数据帧发送完,造成了浪费

CSMA/CD协议(载波监听多点接入/碰撞检测协议)
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。 MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上 CD:碰撞检测(冲突检测),”边发送边监听“,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
一些相关概念:
传播时延对载波监听的影响 假设单程端到端的传播时延为t,只要经过2t时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞。
如何确定碰撞后的重传时机(利用截断二进制指数规避算法)  最小帧长  工作流程可简单概括为:先听后发,边听边发,冲突停发,随机重发 (1)适配器从其父结点获得一个网络层数据报,准备一个以太网帧,并把该帧放到适配器缓冲区中。 (2)如果适配器侦听到信道空闲,那么它开始传输该帧。如果适配器侦听到信道忙,那么它将等待直至侦听到没有信号能量,然后开始传输该帧 (3)在传输过程中,适配器检测来自其他适配器的信号能量。如果这个适配器传输了整个帧,而没有检测来自其他适配器的信号能量,那么这个适配器完成该帧的传输。否则,适配器就必须停止传输它的帧,取而代之传输一个48比特的拥塞信号。 (4)在中止(即传输拥塞信号)后,适配器采用截断二进制指数退避算法等待一段随机时间后返回到步骤2
CSMA/CA协议(载波监听多点接入/碰撞避免协议,无线局域网中使用)
工作原理: 发送数据前,先检测信道是否空闲 空闲则发出RTS,RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待 接收端收到RTS后,将响应CTS 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据) 接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)
CSMA/CD与CSMA/CA比较
相同点: CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再发。两个在接入信道之前都需要进行监听。当发现信道空闲后,才能进行接入 不同点: 1、传输介质不同,CSMA/CD用于总线式以太网(有线),而CSMA/CA用于无线局域网(无线) 2、载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随之发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式 3、CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传
轮询访问介质访问控制
回顾比较介质访问控制 
轮询协议

令牌传递协议

局域网

局域网的拓扑结构

局域网传输介质

局域网介质访问控制方法

局域网的分类

IEEE 802标准

MAC子层和LLC子层

以太网
概述

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

以太网传输介质与拓扑结构的发展

10BASE-T以太网

适配器与MAC地址
计算机与外界有局域网的连接是通过通信适配器 
以太网MAC帧
最常用的MAC帧是以太网的V2格式  
高速以太网

无线局域网
IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准
802.11的MAC帧头格式

无线局域网的分类
1、有固定基础设施无线局域网
2、无固定设施无线局域网的自组织网络
PPP协议和HDLC协议(常用于广域网,重点)
广域网

PPP协议
点到点协议(PPP协议)是为在同等单元之间传输数据包这样的简单链路设计的数据链路层协议,提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案
功能: (1)PPP协议具有动态分配IP地址的能力,允许在连接时刻协商IP地址 (2)PPP协议支持多种网络协议,比如TCP/IP (3)PPP协议具有错误检测能力,但不具备纠错能力,所以PPP协议是不可靠传输协议 (4)PPP协议没有重传的机制,网络开销小、速度快 (5)PPP协议具有身份验证功能 (6)PPP协议可以用于多种类型的物理介质上,包括串口线、电话线、移动电话和光纤,也用于Internet接入
PPP协议应满足的要求 简单:对于链路层的帧,无需纠错、无需序号、无需流量控制 封装成帧:利用帧定界符 透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充 多种网络层协议:封装的IP数据报可以采用多种协议 多种类型链路:串行/并行,同步/异步,电/光 差错检测:错就丢弃 检测连接状态:检测链路是否正常工作 最大传送单元:明确数据部分最大长度MTU 网络层地址协商:知道通信双方的网络层地址 数据压缩协商
PPP协议的三个组成部分

PPP协议状态图

PPP协议的帧格式

HDLC协议(重点)
高级数据链路控制,是一个在同步网上传输数据、面向比特的数据链路层协议,在该协议下数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现,采用全双工通信,所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高
特点: (1)对于任何一种比特流都可透明传输 (2)较高的数据链路传输效率 (3)所有的帧都有帧校验序列(FCS),传输可靠性高 (4)用统一的帧格式来实现传输
HDLC的站

HDLC的帧格式

PPP协议与HDLC协议比较

冲突域和广播域

数据链路层设备:网桥、交换机
试分析中继器、集线器、网桥和交换机这四种网络互联设备的区别与联系
中继器工作在物理层,用来连接两个速率相同且数据链路层协议也相同的网段,其功能是消除数字信号在基带传输中由于经过一长段电缆而造成的失真和衰减,使信号的波形和强度达到所需要求,原理是信号再生
集线器(Hub)也工作在物理层,相当于一个多接口的中继器,它可以将多个结点连接成一个共享式的局域网,但任何实可都只能有一个结点通过公共信道发送数据
网桥工作在数据链路层,可以互联不同的物理层、不同的MAC子层及不同速率的以太网。网桥具有过滤及存储转发帧的功能,可以隔离冲突域,但不能隔离广播域
交换机工作在数据链路层,相当于一个多端口的网桥,是交换式局域网的核心设备。它允许端口之间建立多个并发连接,实现多个结点之间的并发传输。因此交换机的每个端口结点所占用的带宽不会因为端口结点数的目的增加而减少,且整个交换机的总宽带会随着结点的增加而增加。交换机支持全双工通信,有的局域网交换机采用存储转发方式进行转发,也有的交换机采用直通交换方式(即收到帧的同时立即按帧的目的MAC地址决定该帧的转发端口,而不必先缓存再处理)。
|