第三章数据链路层
- 数据链路层:负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
- 链路:网络中两个结点之间的物理通道。链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
- 数据链路:网络中两个结点之间的逻辑通道。把实现控制数据传输协议的硬件和软件加到链路上构成数据链路。
- 帧:链路层的协议数据单元,封装网络层数据报。
一、数据链路功能
- 数据链路层在物理层提供服务的基础上向网络层提供服务。最基本服务将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
- 主要作用:加强物理层传输原始比特流的功能,将物理层可能出错的物理连接改造成逻辑上无差错的数据链路。
- 功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。
- 功能二:链路管理。即连接的建立、维持、释放
- 功能三:组帧
- 功能四:流量控制,限制发送方。
- 功能五:差错控制(帧错/位错)。
1.1封装成帧
- 封装成帧:在一段数据的前后部分添加首部和尾部,构成一个帧。
- 首部和尾部:包含许多控制信息,重要作用是帧定界,接收端识别帧的开始和结束。
-
帧同步:接收方应当能从接收到二进制比特流中区分出帧的起始和终止。
-
组帧方法:①字符计数法②字符填充法③零比特填充法④违规编码法
-
透明传输:不管什么数据是怎样的比特组合,都应当能够在链路上传送。
1.字符计数法
- 字符计数法:帧首部用一个计数字段**(第一个字节,八位)**来表明帧内字符数。
- 如果用来计数字段出错,会导致很多出错。
2.字符填充法
- 当传送帧是由文本文件组成时(文本文件即从键盘上输入的,ASCII码),不管从键盘上输入字符都可以放在帧里传输过去,不会跟首部和尾部相同。即透明传输。
- 当传送的帧是由非ASCII码文本文件组成时(二进制代码的程序或图像等),可能会跟首部跟尾部相同,就要采用字符填充方法实现透明传输。
(1)当没有采用字符填充法时,传输二进制码时可能会出现错误识别帧的边界。
(2)采用字符填充法时,在与控制信息(包括转义字符)相同的二进制码前面加上转义字符。接收端就会把识别到真正的帧边界。
3.零比特填充法
- 首部和尾部都使用**01111110(有6个1)**来做帧边界。
- 在发送方,只要数据出现连续5个1后面填入一个0。
- 在接收方,只要数据连续出现5个1就把后面0删除。
- 保证了透明传输,在传送的比特流中可以传送任意比特流组合,不会引起对帧边界的判断错误。
4.违规编码法
- 由于曼彻斯特编码每个比特用 ”高-低“ 或者 ”低-高“ 来表示。可以用 “高-高” “低-低”来定界帧的起始和终止。
1.2差错控制(检错编码)
-
差错来源:
①全局来说:对于线路本身的电气特性产生随机噪声,是信道固有的。
解决办法:提高信噪比减少或避免干扰。
②局部来说:外界的冲击噪声。
解决办法:利用编码技术解决。
-
差错分类:
①位错:比特位出错,0变1,1变0。
②帧错:以帧为单位出错,如丢失、重复、失序。
-
差错控制主要有:检错编码(如奇偶校验码、循环冗余码CRC)、纠错编码(如海明码)
注:数据链路层编码针对一组比特,物理层数据编码针对单个比特。
冗余编码:在数据发送前,添加一定冗余位一次来构成某个规则,接收端根据收到的码字能够判断是否出错。
1.奇偶校验码
- 由于接收端是根据“1”是奇数和偶数来判定是否出错,所以当数据发生错误但是符合规则时,检测不出来。
【例】如果一个字符S的编码从低到高依次是1100101,采用奇校验,下述过程中哪种错误不能检测。
A.11000011 B.11001010 C.11001100 D.11010011
解:由于A、B、C中“1”的个数都是偶数个,不符合奇校验。
D中“1”的个数是奇数个,符合奇校验
2.CRC循环冗余码
- 循环冗余码基于一个简单问题,在发送端根据除数后的余数添加相应位数的冗余码。接收端根据接收到的数据进行除数判定。
【循环冗余码】
①把要输出的数据分成等长的数据组。
②每个组加上冗余码构成帧再发送。根据商定的除数,加上相应位数0,然后进行模二计算(同0异1),得到的余数就是冗余码。
③接收方将收到的数据(包括冗余码),根据商定的除数进行模二计算,余数为0则确认接收,不为0则丢弃。
【例】要发送数据为 1101 0110 11,采用CRC校验,生成多项式为10011。问最终发送数据为多少?
- 这里余数1110就是冗余码,所以最终发送数据 1101 0110 11 1110。
注:计算冗余码: ①加 0 :如 10011 表示生成多项式为 x 4 + x 1 + x 0 = 1 x 4 + 0 x 3 + 0 x 2 + 1 x 1 + 1 x 0 这里阶为最高次幂即 4 ,也就是多项式 N 位,阶为 N − 1 ( 要添加 0 的位数 ) ②模二除法:数据加 0 后除以多项式,余数为冗余码。 且计算为异或:同 0 异 1 注:计算冗余码: \\①加0:如10011表示生成多项式为 x^4+x^1+x^0=1x^4+0x^3+0x^2+1x^1+1x^0 \\这里阶为最高次幂即4,也就是多项式N位,阶为N-1(要添加0的位数) \\②模二除法:数据加0后除以多项式,余数为冗余码。 \\ 且计算为异或:同0异1 注:计算冗余码:①加0:如10011表示生成多项式为x4+x1+x0=1x4+0x3+0x2+1x1+1x0这里阶为最高次幂即4,也就是多项式N位,阶为N−1(要添加0的位数)②模二除法:数据加0后除以多项式,余数为冗余码。且计算为异或:同0异1
- 接收端检错过程:把收到的数据除相同的除数,余数为0,则没有差错;余数不为0,则这个数据由差错。
1.3差错控制(纠错编码)
- 海明距离:两个合法编码对应比特位取值不同的比特数。在一个有效编码集中,任意两个的最小值海明距离就是这个编码集的海明距离。
1.确定校验码位数
【例】要发送数据D=1100。
解:要发送数据为4位,满足不等式最小值r=3。
即海明码应该有4+3=7位。其中原始数据4位,校验码3位。
2.确定校验码和数据的位置
3.求校验码值
4.检错和纠错
若采用的是偶校验
纠错方法:
1.4流量控制与可靠传输
1.链路层的流量控制
- 由于较高的发送速度和较低的接受能力不匹配,会造成传输出错。
- 流量控制方法:①停止—等待协议;②滑动窗口协议:后退N帧协议(GBN)、选择重传协议(SR).
- 停止—等待协议:每发送完一个帧就停止发送,等待对方的确认,收到确认后再发送下一个帧。
- 滑动窗口协议:有若干个发送窗口,接收窗口接收到帧后,滑到下一个接收窗口,返回确认帧,然后发送创空继续发送下一个帧。
注:停止—等待协议:发送窗口大小=1,接收窗口大小=1;
滑动窗口协议:发送窗口大小>1,接收窗口大小=1;
选择重传协议:发送窗口大小>1,接收窗口大小>1。
2.可靠传输
- 可靠传输:发送端发什么,接收端收什么。
- 流量控制:控制发送速率,使接收方有足够缓冲空间接收每个帧。
- 滑动窗口用来解决:流量控制、可靠传输。
二、流量控制
2.1停止—等待协议
- 停止—等待协议:每发送完一个分组就停止发送,等对方确认,在收到确认后再发送下一分组。
1.无差错情况
2.有差错情况
(1)数据帧丢失或检测到帧出错
注:RRT为数据帧往返传送时延。
(2)ACK丢失(确认帧丢失)
(3)ACK迟到
3.停止—等待协议性能分析
- 信道利用率=TD/(TD+RTT+TA),所以信道利用率低。
- 信道利用率:发送端在发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
【例】一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止—等待协议的信道最大利用率达到80%,要求数据帧长度至少为多少。
解:设数据帧长度为
L
80
%
=
L
/
4
L
/
4
+
2
×
30
m
s
=
L
L
+
2
×
30
m
s
×
4
k
b
/
s
L
=
960
b
i
t
解:设数据帧长度为L \\80\% = \frac{L/4}{L/4+2×30ms}=\frac{L}{L+2×30ms×4kb/s} \\L=960bit
解:设数据帧长度为L80%=L/4+2×30msL/4=L+2×30ms×4kb/sLL=960bit
2.2后退N帧协议(GBN)
- 通过流水线技术,连续发送帧。所以必须增加序号范围,发送方需要缓存多个分组。
1.后退N帧协议中的滑动窗口
- 发送窗口:发送方位置一组连续的允许发送帧的序号
- 接收窗口:接收方维持一组连续的允许接收帧的序号
发送端发送后需要保存复本,等待确认。并且可以发送多个帧
接收端接收后返回确认信息,接收窗口和发送窗口进行窗口滑动一位。
-
GBN发送方必须响应:
①上层调用:上层要发送数据时,检查发送窗口是否已满,若未满产生一个帧发送;若窗口满发送方将数据返回给上层表示已满(或者缓存这些数据)。
②收到了一个ACK:GBN协议,对n号帧确认采用累积确认方式,标明接收方已经接收到n号之前的全部帧。
③超时事件:如果出现超时,发送方重传已经发送但未被确认的帧。
-
如果按序正确收到n号帧,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
-
其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。
2.GBN协议小结
(1)累积确认
(2)接收方只按顺序接收帧,不按序则丢弃
(3)确认序列号最大的、按序到达的帧
(4)发送窗口最大为2^n-1;接收窗口为1
【例】数据链路层采用了后退N帧(GBN)协议,发送方已经发送了编号为0~7的帧。当计时器超时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是几?
解:因为接收端最大确认是
3
,所
0
到
3
号帧数都接收到了,需要重发的帧数是
4
帧。
解:因为接收端最大确认是3,所0到3号帧数都接收到了,需要重发的帧数是4帧。
解:因为接收端最大确认是3,所0到3号帧数都接收到了,需要重发的帧数是4帧。
【例】主机甲和主机乙使用后退N帧(GBN)协议传输数据。甲发送窗口尺寸为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧立即利用一个短帧(忽略其传送延迟)进行确认,若甲、乙之间的单向传播时延是50ms,则甲可以到达最大平均数据传输率为多少?
解:在没有丢失帧情况下,甲发送数据到接收到乙的确认信息时间
T
0
T
0
=
2
×
50
m
s
+
1000
×
8
b
i
t
100
M
b
/
s
=
2
×
50
m
s
+
1000
×
8
b
i
t
100
×
1
0
6
b
/
s
=
100.08
m
s
甲发送所有窗口数据所需时间
T
1
=
1000
×
1000
×
8
b
i
t
100
M
b
/
s
=
80
m
s
则平均数据传输率
=
1000
×
1000
×
8
b
i
t
T
0
×
≈
80
M
b
/
s
解:在没有丢失帧情况下,甲发送数据到接收到乙的确认信息时间T_0 \\T_0=2×50ms + \frac{1000×8 bit}{100Mb/s}=2×50ms + \frac{1000×8 bit}{100×10^6b/s}=100.08ms \\甲发送所有窗口数据所需时间T_1=\frac{1000×1000×8bit}{100Mb/s}=80ms \\则平均数据传输率= \frac{1000×1000×8bit}{T_0}×≈80Mb/s
解:在没有丢失帧情况下,甲发送数据到接收到乙的确认信息时间T0T0=2×50ms+100Mb/s1000×8bit=2×50ms+100×106b/s1000×8bit=100.08ms甲发送所有窗口数据所需时间T1=100Mb/s1000×1000×8bit=80ms则平均数据传输率=T01000×1000×8bit×≈80Mb/s
2.3选择重传协议(SR)
- GBN协议:使用累积确认,导致如果出错需要批量重传。
- 为了解决GBN需要批量重传的问题,引入了选择重传协议。
- 每个帧都有一个计时器,超时后只需要重传一个帧。
- 在接收窗口内的帧,将确认一个正确接收的帧,不管是否按序。
- 失序的帧会被缓存,并返回发送方一个该帧确认帧,直到序号小的帧皆被接收为止。
选择重传协议小结
(1)对数据帧逐一确认,收到一个确认一个。
(2)只重传出错的帧。
(3)接收方有缓存,有很多个窗口。构成连续的帧后才滑动窗口。
【例】数据链路层采用了选择重传协议(SR),发送方已经发送了编号为0~3的帧。现已收到1号帧的确认,而0、2号帧依次超时,则发送方需要重发的帧数是几?
解:已经收到
1
号帧确认,
0
、
2
号帧超时,所以
0
号帧和
2
号帧都需要重传。所以需要重发
2
个帧。
解:已经收到1号帧确认,0、2号帧超时,所以0号帧和2号帧都需要重传。所以需要重发2个帧。
解:已经收到1号帧确认,0、2号帧超时,所以0号帧和2号帧都需要重传。所以需要重发2个帧。
三、介质访问控制
-
传输数据使用的两种链路:
点对点链路:两个相邻节点通过一个链路相连,没有第三者。应用于PPP协议,常用于广域网。
广播式链路:所有主机共享通信介质。应用于早期总线以太网,无线局域网,常用于局域网。
-
介质访问控制:采取一定措施,使两对节点之间通信不会发生互相干扰的情况。
3.1信道划分介质访问控制(静态)
- 信道划分介质访问控制:将使用介质的每个设备与来自同一信道的其他设备通信隔开,把时域和频域资源合理地分配给网络上的设备。
- 多路复用技术:把多个信号组合在一条物理信号上进行传输,使得多个计算机或终端设备共享信道资源。
- 即把广播信道转变为点对点信道。
1.频分多路复用FDM
- 用户在分配一定频带后,在通信过程中都占用这个频带。频分复用的所有用户在同样时间占用不同带宽(频率带宽)资源。
- 充分利用传输介质带宽,系统频率较高。
- 类似于并行。
2.时分多路复用TDM
- 将时间划分为等长的若干个时分复用帧,每一个时分复用的用户在每个TDM帧中占用固定需要的时隙,用户轮流占用信道。
- 类似于并发。
3.波分多路复用WDM
- 波分多路复用:光的频分多路复用。在一根光纤中传输多种不同波长的光信号,由于波长不同,所以各路光信号互不干扰。
4.码分多路复用CDM
- 码分多路复用:采用不同编码来区分各路原始信号。既共享信道频率,又共享时间。
3.2动态分配信道
-
动态分配信道:信道并非在用户通信时固定分配给用户。
-
动态分配信道包括:
①轮询访问介质访问控制:令牌传递协议
②随机访问介质访问控制:ALOHA协议、CSMA协议、CSMA/CD协议、CAMA/CA协议。
注:随机访问介质:所有用户可随机发送信息,发送信息时占用全部带宽。
3.2.1 ALOHA协议
-
纯ALOHA协议:不监听信道,想发就发。
-
冲突检测:如果发生冲突,接收方就会检测出差错,不确认。发送方在一定时间收不到确认就判定为发生冲突。
-
解决冲突:超时后随机实践重传。
-
时隙ALOHA协议:把时间分成若干个相同的时间片,需要在时间片段开始才能发送,如果发送冲突,需要等到下一个时间片开始再发送。
3.2.2 CSMA协议
-
CS:载波侦听/监听,每一个站在发送数据之前检测一下总线上是否有其他计算机在发送数据。
-
MA:多点接入,表示许多计算机以多点接入方式链接在一跟总线上。
-
CSMA协议:发送帧之前,监听信道。
①信道空闲:发送完整帧
②信道忙:推迟发送
1.1-坚持CSMA
-
1-坚持CSMA:监听信道,如果空闲直接传输,如果忙则一直监听,直到空闲马上传输。
如果有冲突,等待一个随机长时间再监听。
-
优点:媒体空闲 站点马上就发送,媒体利用率高。
-
缺点:如果有两个或两个站点数据发送,不可避免冲突。
2.非坚持CSMA
- 非坚持CSMA:监听信道,如果空闲直接传输,如果忙则等待一个随机时间再监听。
- 优点:采用随机重发延迟时间,减少发生冲突可能性
- 缺点:可能存在都在延迟等待过程,使媒体处于空闲状态
3.p-坚持CSMA
-
p-坚持CSMA:监听信道,如果空闲,以p概率传输,以1-p概率等到下一个时间槽传输。如果忙,持续监听知道信道空闲再以p概率发送。如果发生冲突,等到下一个时间槽开始再监听。
-
优点:既能像非坚持CSMA减少冲突,又能像1-坚持CSMA减少媒体空闲时间。
3.2.3 CSMA/CD协议
- CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时检测一下总线上是否有其他计算机在发送数据。
- MA:总线型网络。
- CD:碰撞检测,边发送边监听。半双工网络。
3.3轮询访问介质访问控制(动态)
- 轮询访问介质访问控制包括:轮询协议、令牌传递协议
1.轮询协议
- 轮询协议:主节点轮流“邀请”从属结点发送数据。
2.令牌传递协议
- 令牌传递协议:一个特殊格式的MAC控制帧,用来控制信道的使用,确保同一时刻只有一个结点独占信道。
四、局域网
- 局域网:简称LAN,指某个区域内由多台计算机互联成计算机组,使用广播信道。
- IEEE 802标准是LAN/MAN标准委员会指定的局域网、城域网技术标准。
- IEEE 802标准将数据链路层划分为逻辑链路层LLC子层和介质访问控制层MAC子层。
- IEEE802.3 :以太网介质访问控制协议。
- IEEE802.5:令牌环网。
- IEEE802.8:光纤技术咨询组。
- IEEE802.11:无线局域网。
4.1以太网
-
以太网:基带总线局域网规范,是现有局域网通用通信协议标注,以太网使用CSMA/CD技术。
-
以太网提供无连接、不可靠服务
无连接:发送方和接收方没有握手过程。
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃。
-
10BASE-T以太网:传输速率为10Mb/s,采用无屏蔽双绞线,传送基带信号的以太网。
BASE:基带传输信号
T:双绞线,通常为无屏蔽双绞线
物理上采用星型拓扑,逻辑上总线型。每段双绞线最长100m。采用曼彻斯特编码,采用CSMA/CD介质访问控制。
-
100BASE-T以太网:在双绞线上传送100Mb/s基带信号的星型拓扑以太网。采用CSMA/CD介质访问控制。
-
吉比特以太网:在光纤或双绞线上传送1Gb/s信号,支持全双工和半双工。
-
10吉比特:在光纤上传送10Gb/s信号。只支持全双工。
4.2 VLAN
- 虚拟局域网VLAN:将局域网内设备划分成物理位置无关的逻辑组技术,每个VLAN是一个单独的广播域/不同子网。
五、广域网
-
广域网的通信子网:主要使用分组交换技术。
-
广域网:将分布在不同地区的局域网或计算机网络互联起来,达到资源共享目的。
-
点对点PPP协议:目前使用最广泛数据链路层协议。只支持全双工链路,可以实现透明传输,可以实现差错检测,但不纠错。
T以太网**:传输速率为10Mb/s,采用无屏蔽双绞线,传送基带信号的以太网。
BASE:基带传输信号
T:双绞线,通常为无屏蔽双绞线
物理上采用星型拓扑,逻辑上总线型。每段双绞线最长100m。采用曼彻斯特编码,采用CSMA/CD介质访问控制。
- 100BASE-T以太网:在双绞线上传送100Mb/s基带信号的星型拓扑以太网。采用CSMA/CD介质访问控制。
- 吉比特以太网:在光纤或双绞线上传送1Gb/s信号,支持全双工和半双工。
- 10吉比特:在光纤上传送10Gb/s信号。只支持全双工。
4.2 VLAN
- 虚拟局域网VLAN:将局域网内设备划分成物理位置无关的逻辑组技术,每个VLAN是一个单独的广播域/不同子网。
五、广域网
-
广域网的通信子网:主要使用分组交换技术。
-
广域网:将分布在不同地区的局域网或计算机网络互联起来,达到资源共享目的。
-
点对点PPP协议:目前使用最广泛数据链路层协议。只支持全双工链路,可以实现透明传输,可以实现差错检测,但不纠错。
不可靠传输。面向字节。2B协议字段。
参考书籍:计算机网络(第5版)——谢希仁;王道计算机网络复习指导
参考视频:王道计算机计算机网络