计算机网络知识梳理与总结(二)

Chapter4

具体还可以参看博文数据链路层结构

数据链路概述(点对点)

数据链路层利用不可靠的物理链路向网络层提供可靠的数据链路,实现网络中两个相邻节点之间的无差错数据传输。
数据链路层以帧为单位传输数据,同时具备差错检测、流量控制和透明传输等功能。

数据链路层模型

在这里插入图片描述

数据链路层的功能

在这里插入图片描述

数据链路层向网络层提供的服务

在这里插入图片描述
对应上图,例如数据报服务
在这里插入图片描述
在这里插入图片描述
数据帧在链路中按序传输,对应上图,例如虚电路服务

数据链路层成帧机制

数据包到达“数据链路层”后加上“数据链路层”的协议头和协议尾就构成了一个数据帧。在每个帧的前部加上一个“帧头部”,在帧的结尾处加上一个“帧尾部”

有趣的是,在七层参考模型中,只有数据链路的成帧协议是有头有尾的,其他协议只涉及到首部字段,没有尾部,这点注意一下
在这里插入图片描述
为了使物理层能透明地传输数据,数据链路层将采用一定的方法将物理层的比特流划分成离散的帧。
数据链路层的成帧机制:如何将比特流划分成帧。
数据链路层常用的成帧方法:字符计数法、带填充字符的首尾界符法和带填充位的首尾标志法。
前2种方法现在基本不使用。
在这里插入图片描述

差错控制技术

差错产生的原因

差错指接收方收到的数据与发送方实际发出的数据不一致现象。
差错一般是由通信信道的噪声产生的,分为热噪声和冲击噪声。
热噪声是由传输介质导体的电子热运动产生的,是随机噪声。由热噪声引起的差错称为随机差错。
冲击噪声:指由于意外干扰而产生的噪声,引起传输差错的主要原因。它的持续时间一般比数据传输中的每个比特发送时间长(如外界磁场的变换、电源开关的跳变等),因此冲击噪声可能会引起相邻多个数据位出错。冲击噪声引起的传输差错称为突发差错。
计算机网络中的差错主要指突发差错。

差错控制方法

差错控制:是指在数据通信过程中能发现或纠正差错,将差错限制在尽可能小的允许范围内。
常用的差错控制方法:反馈检测、自动重传请求(Automatic Repeat reQuest,ARQ)和前向纠错(Forward Error Correction,FEC)。

反馈检测

在这里插入图片描述

自动重传请求

在这里插入图片描述
发送方需设置缓冲器

前向纠错

在这里插入图片描述

循环冗余码

循环冗余校验码(CRC),简称CRC校验码。
在发送方产生一个循环冗余校验码,附加在信息位后面一起发送到接收方,接收方将收到的信息按发送方形成循环冗余校验码相同的算法进行校验以检测是否出错。

循环冗余码的计算方法

1)确定信息多项式M(x)。
在这里插入图片描述
2)确定一个素(生成)多项式G(x)。
生成多项式的作用是和信息多项式进行计算产生余数多项式。生成多项式的最高位和最低位必须是1。

3)计算余数多项式R(x)。
设G(x)为r阶,发送方计算xrM(x)/G(x)(模2除法),得到余数多项式R(x),商舍掉。

4)形成码元多项式C(x)。
发送方将R(x)附在M(x)之后,组成码元多项式C(x),将其发送出去。

5)接收方检验。
接收方收到码元多项式C’(x),计算C’(x)/G(x)(模2除法),得到新的余数多项式R’(x)。如果R’(x)=0,则认为传输无错误,否则,可以确定传输中产生了差错。

例题

在这里插入图片描述
短除法:异或运算,相同为1,不同为0
在这里插入图片描述
在这里插入图片描述

海明码(考研必考)

海明码(Hamming Code)是一个可以有多个校验位,具有检测并纠正一位错误代码功能的纠错码,所以它也仅用于信道特性比较好的环境中,如以太局域网中,因为如果信道特性不好的情况下,出现的错误通常不是一位。

海明码的检错、纠错基本思想是将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶性测试,然后产生多位检测信息,并从中得出具体的出错位置,最后通过对错误位取反(也是原来是1就变成0,原来是0就变成1)来将其纠正。
在这里插入图片描述

海明码纠错步骤

要采用海明码纠错,需要按以下步骤来进行:计算校验位数→确定校验码位置→确定校验码→实现校验和纠错。下面来具体介绍这几个步骤。

  • 1、计算校验位数
    要使用海明码纠错,首先就要确定发送的数据所需要的校验码(也就是“海明码”)位数(也称校验码长度)。
    它是这样的规定的:假设用N表示添加了校验码位后整个信息的二进制位数,用K表示其中有效信息位数,r表示添加的校验码位,它们之间的关系应满足:N = K+r≤ 2r-1。
    如K = 5,则要求2r - r ≥ 5 + 1=6,根据计算可以得知r的最小值为4,也就是要校验5位信息码,则要插入4位校验码。如果有效信息位数是8,则要求2r-r≥8+1=9,根据计算可以得知r的最小值也为4。根据经验总结,得出信息码和校验码位数之间的关系如下表所示
    在这里插入图片描述
  • 2、确定校验码位置
    上一步我们确定了对应信息中要插入的校验码位数,但这还不够,因为这些校验码不是直接附加在信息码的前面、后面或中间的,而是分开插入到不同的位置的。但不用担心,校验码的位置很容易确定的,那就是校验码必须是在2n位置,如第1位,2位,4位,8位,16位,32位……(对应20,21,22,23,24,25,……,从最左边的位数起),这样一来就知道了信息码的分布位置,也就是非2n次方的位置,如第3位,5位,6位,7位,9位,10位,11位,12位,13位,……(从最左边的位数起)。
    举一个例子,假设现有一个8位信息码,即b1、b2、b3、b4、b5、b6、b7、b8,由上表得知,它需要插入4位校验码,即p1、p2、p3、p4,也就是整个经过编码后的数据码(称为码字)共有12位。根据以上介绍的校验码位置分布规则可以得出,这12位编码后的数据就是p1、p2、b1、p3、b2、b3、b4、p4、b5、b6、b7、b8。假设原来的8位信息码为10011101,因还没有求出各位校验码值,现在这些校验码位都用“?”表示,最终的码字为:??1?001?1101
  • 3、确定校验码
    经过前面的两步,我们已经确定了所需的校验码位数和这些校验码的插入位置,但这还不够,还得确定各个校验码值。这些校验码的值不是随意的,每个校验位的值代表了代码字中部分数据位的奇偶性(最终要根据是采用奇校验还是偶校验来确定),其所在位置决定了要校验的比特位序列。总的原则是:第i位校验码从当前位开始,每次连续校验i(这里是数值i,不是第i位,下同)位后再跳过i位,然后再连续校验i位,再跳过i位,以此类推。最后根据所采用的是奇校验还是偶校验即可得出第i位校验码的值。

各校验码校验的码字位对照表如下:
在这里插入图片描述

计算方法

校验码的具体计算方法如下:

  • p1(第1个校验位,也是整个码字的第1位)的校验规则是:从当前位数起,校验1位,然后跳过1位,再校验1位,再跳过1位,……。这样就可得出p1校验码位可以校验的码字位包括:第1位(也就是p1本身),第3位,第5位,第7位,第9位,第11位,第13位,第15位,……。然后根据所采用的是奇校验还是偶校验,最终可以确定该校验位的值。
  • p2(第2个校验位,也是整个码字的第2位)的校验规则是:从当前位数起,连续校验2位,然后跳过2位,再连续校验2位,再跳过2位,……。这样就可得出p2校验码位可以校验的码字位包括:第2位(也就是p2本身),第3位,第6位,第7位,第10位,第11位,第14位,第15位,……。同样根据所采用的是奇校验还是偶校验,最终可以确定该校验位的值。
  • p3(第3个校验位,也是整个码字的第4位)的校验规则是:从当前位数起,连续校验4位,然后跳过4位,再连续校验4位,再跳过4位,……。这样就可得出p4校验码位可以校验的码字位包括:第4位(也就是p4本身),第5位,第6位,第7位,第12位,第13位,第14位,第15位,第20位,第21位,第22位,第23位,……。同样根据所采用的是奇校验还是偶校验,最终可以确定该校验位的值。
  • p4(第4个校验位,也是整个码字的第8位)的校验规则是:从当前位数起,连续校验8位,然后跳过8位,再连续校验8位,再跳过8位,……。这样就可得出p4校验码位可以校验的码字位包括:第8位(也就是p4本身),第9位,第10位,第11位,第12位,第13位,第14位,第15位,第24位,第25位,第26位,第27位,第28位,第29位,第30位,第31位,……。同样根据所采用的是奇校验,还是偶校验,最终可以确定该校验位的值。
  • …依此类推

例题1(发送方纠一位错的海明码)、

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例题2(接收方纠错)、

采用偶校验
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PPT里的部分内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

冲突域

“冲突域”就是可能发生介质访问冲突的节点范围。在Hub中连接的所有用户都是共享一个背板信道进行访问的,多个用户同时访问时就可能发生冲突,所以我们说一个集线器就是一个冲突域
在这里插入图片描述
交换机(Switch)的背板与端口的连接方式与Hub的不一样,在背板中有一个交换矩阵,通过这个交换矩阵就可实现任何两个端口间的通信都有一条专用的通道,不同节点间的通信不存在介质争用现象
在这里插入图片描述
在我们常用的以太局域网和WLAN无线局域网的介质争用解决方案主要有:CSMA、CSMA/CD和CSMA/CA协议。

CSMA技术

载波监听多路访问技术

特点:信道监听只在帧发送前,一旦帧开始发送,就不再监听,无论信道中是否有冲突
在这里插入图片描述

非持续CSMA

在这里插入图片描述
“非坚持CSMA”算法还存在一个明显的缺点,就是不能把信道刚一变成空闲的时刻找出,影响了信道利用率的提高。

1-持续CSMA

在这里插入图片描述
该算法的优点是提高了介质的利用率,但仍有两个致命的弱点:一是在有多个站点发送数据的情况下,这种毫不等待的算法使得冲突时常发生;二是介质忙时一直侦听的要求占用了大量网络和设备资源。

p-持续CSMA

在这里插入图片描述
“p-坚持CSMA”算法是前面介绍的“非-坚持CSMA”和“1-坚持CSMA”这两种算法的一种折中算法,取两者的长处,而尽量克服了两者的不足。

具体来讲就是当侦听到介质处于忙状态时持续侦听,当侦听到介质处于空闲状态时,但此时站点不一定会马上发送数据,根据概率p(这个p值是算法事先确定好的)来选择发送数据,而在另一个(1-p)概率的时候,即使介质处于空闲状态,也会延迟一段时间t(这个t是指端到端的“传播延时”)后再重新侦听介质状态。

CSMA/CD技术

带冲突检测的载波监听多路访问技术

半双工通信
在这里插入图片描述
在这里插入图片描述

CSMA/CA技术

CSMA/CA是带有冲突避免的载波监听多路访问技术。
在这里插入图片描述
详情请看我的上篇博文数据链路网课笔记(内含LLC子层、MAC子层、SAP、海明码、奇偶校验码、循环冗余检错码CRC、ALOHA协议、CSMA协议、CSMA/CD协议)

例题1、

在这里插入图片描述

例题2、

在这里插入图片描述

停止等待协议

在这里插入图片描述
在发送结点:
(1) 从主机取一个数据帧。
(2) 将数据帧送到数据链路层的发送缓存。
(3) 将发送缓存中的数据帧发送出去。
(4) 等待。
(5) 若收到由接收结点发过来的信息(此信息的格式与内容可由双方事先商定好),则从主机取一个新的数据帧,然后转到(2)

在接收结点:
(1) 等待。
(2) 若收到由发送结点发过来的数据帧,则将其放入数据链路层的接收缓存。
(3) 将接收缓存中的数据帧上交主机。
(4) 向发送结点发一信息,表示数据帧已经上交给主机。
(5) 转到(1)。
在这里插入图片描述

停止等待协议中数据帧和确认帧的发送时间关系

在这里插入图片描述

回退N帧策略

“回退N帧策略”的基本原理是,如果发送端一共发送了n个数据帧,但收到接收端发来的ACK确认帧中少了某一个或几个帧ACK确认帧,或者在接收某一帧时检测出有错,接收端发送一个NAK否认帧给发送端;或者在计时器超时后仍没有收到某个帧的ACK或者NAK帧,发送端则可以判断接收端最后一个正确接收的帧编号,然后从缓存空间的重发表中重发所收到的最后一个ACK帧序号以后的所有帧。
在这里插入图片描述

高级数据链路数据规程(HDLC)

HDLC是一个在同步网上传输数据、面向比特的数据链路控制协议。它是思科私有协议,思科路由器上的默认WAN接口封装的协议。
在这里插入图片描述

HDLC的特点

在这里插入图片描述

捎带应答

捎带应答是指在同一个TCP包中既发送数据又发送确认应答ACK的一种机制。由此,网络的利用率会提高,计算机的负荷也会减轻。不过,确认应答必须等到应用处理完数据并将作为回执的数据返回为止,才能进行捎带应答。

点对点协议PPP

PPP只支持点到点链路,不支持多点链路,使用全双工方式进行传输数据

在通信线路质量较差的年代,在数据链路层使用可靠传输协议曾经是一种好办法。因此,能实现可靠传输的高级数据链路控制HDLC (High-level Data Link Control)就成为当时比较流行的数据链路层协议。但现在HDLC已很少使用了。对于点对点的链路,简单得多的点对点协议PPP (Point-to-Point Protocol)则是目前使用得最广泛的数据链路层协议。

PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议
在这里插入图片描述

PPP协议应满足的需求

(1) 简单
IETF在设计因特网体系结构时把其中最复杂的部分放在TCP协议中,而网际协议IP则相对比较简单,它提供的是不可靠的数据报服务。在这种情况下,数据链路层没有必要提供比IP协议更多的功能。因此,对数据链路层的帧,不需要纠错,不需要序号,也不需要流量控制。IETF把“简单”作为首要的需求。
总之,这种数据链路层的协议非常简单:接收方每收到一个帧,就进行CRC检验。如CRC检验正确,就收下这个帧;反之,就丢弃这个帧,其他什么也不做。

(2) 封装成帧
PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符),以便使接收端从收到的比特流中能准确地找出帧的开始和结束位置。e.g.01111110

(3) 透明性
PPP协议必须保证数据传输的透明性。这就是说,如果数据中碰巧出现了和帧定界符一样的比特组合时,就要采取有效的措施来解决这个问题

(4) 多种网络层协议
PPP协议必须能够在在同一条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。当点对点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议。

(5) 多种类型链路
除了要支持多种网络层的协议外,PPP还必须能够在多种类型的链路上运行。例如,串行的(一次只发送一个比特)或并行的(一次并行地发送多个比特),同步的或异步的,低速的或高速的,电的或光的,交换的(动态的)或非交换的(静态的)点对点链路。

(6) 差错检测(error detection)
PPP协议必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。若在数据链路层不进行差错检测,那么已出现差错的无用帧就还要在网络中继续向前转发,因而会白白浪费许多的网络资源。

(7) 检测连接状态
PPP协议必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。当出现故障的链路隔了一段时间后又重新恢复正常工作时,就特别需要有这种及时检测功能。

(8) 最大传送单元MTU
PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值1500字节。这样做是为了促进各种实现之间的互操作性。如果高层协议发送的分组过长并超过MTU的数值,PPP就要丢弃这样的帧,并返回差错。需要强调的是,MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。

(9) 网络层地址协商
PPP协议必须提供一种机制使通信的两个网络层(例如,两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。协商的算法应尽可能简单,并且能够在所有的情况下得出协商结果。这对拨号连接的链路特别重要,因为仅仅在链路层建立了连接而不知道对方网络层地址时,则还不能够保证网络层可以传送分组。

(10) 数据压缩协商
PPP协议必须提供一种方法来协商使用数据压缩算法。但PPP协议并不要求将数据压缩算法进行标准化。

PPP协议不需要的功能

在这里插入图片描述

PPP协议的组成

(1) 一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制。

(2) 一个用来建立、配置和测试数据链路连接的链路控制协议LCP (Link ControlProtocol)。通信的双方可协商一些选项。在RFC 1661中定义了11种类型的LCP分组。

(3) 一套网络控制协议NCP (Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet,以及AppleTalk等。

PPP协议的帧格式

在这里插入图片描述
其中FCS是校验和字段,占两个字节,一般是CRC循环校验码

PPP工作原理图

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

猜你喜欢

转载自blog.csdn.net/qq_44631615/article/details/111414326
今日推荐