计算机网络教程 谢希仁 第三章 数据链路层

第三章 数据链路层

数据链路层使用的信道主要有两种类型:点对点信道(一对一的点对点通信方式),广播信道(一对多的广播通信方式)。从整个互联网来看,局域网仍属于数据链路层范围。点对点信道最常用的点对点协议PPP。数据链路层的三个基本问题:封装成帧、透明传输和差错检测

3.1 使用点对点信道的数据链路层
3.1.1 数据链路层所处的地位

两台主机通过互联网进行通信时数据链路层所处地位如图
(注意路由器在转发分组时使用的协议栈只有下面的三层,根据所使用的路由选择协议的不同,也有可能需要使用运输层协议),
链路路径:H1的链路层-R1的链路层-R2的链路层-R3的链路层-H2的链路层
H1-R1,R1-R2,R2-R3,R3-H2这四段不同的链路层可能采用不同的数据链路层协议

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ngt3DbDI-1604390616141)(D:\大学\大三\计算机网络教程第五版 谢希仁\笔记\数据链路层的地位.png)]

3.1.2 数据链路和帧

链路(物理链路):从一个结点到相邻结点的一段物理线路。链路是一条路径的组成部分。【Link】

数据链路(逻辑链路):实现通信协议的软硬件加到链路上就构成数据链路。【Data Link】

网络适配器(网卡):实现通信协议的软硬件,包括数据链路层和物理层的功能。

规程:早期的通信协议。

帧:数据链路层的协议数据单元。【网络层协议数据单元就是IP数据报】

数据链路层通信步骤:

1.结点A 的数据链路层把网络层交下来的IP数据报添加首尾两部封装成帧。【封装成帧】

2.A结点物理层把接受的数据链路层的帧变成比特流进行传输,B结点物理层接受传输过来的比特流并变成帧传送到结点B的数据链路层。【透明传输】

3.结点B数据链路层接收的帧无差错,则从帧中提取IP数据报交给网络层,否则丢弃这个帧。【差错控制】

特点:数据链路层不用考虑物理层如何实现,所以就相当于对等层水平传输。

3.1.3 三个基本问题【重点】

1.封装成帧

添加首尾部的作用:进行帧定界,包含许多必要的控制信息。

帧长:数据部分加上帧的首尾部的长度。

最大传送单元(MTU):链路层协议规定的所能传送的帧的数据部分(IP数据报)长度上限。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JuRIgwNT-1604390616144)(D:\大学\大三\计算机网络教程第五版 谢希仁\笔记\数据链路层帧.png)]

帧定界:使用特殊的帧定界符。ASCII码中用SOH表示帧的首部开始,EOT表示帧的尾部结束。作用是为了判断收到的帧是否完整,不完整则丢弃。

2.透明传输存在的问题:数据中的某个二进制代码恰好组成了帧定界符,会出现错误。

解决方法:(1)字节填充或者字符填充:在数据中出现帧的开始/结束符或者转义字符,前面插入一个转义字符(ESC),接收端删去多余转义字符。

(2)物理链路提供比特传输服务时,ppp协议中的零比特填充法:只要有五个连续的1,则立即填入0。

3.差错检测

比特差错:传输中,1可能变成0,0可能变成1。

误码率:在一段时间,传输错误的比特占所有传输比特总数的比率,与信噪比有关。

差错检测码(EDC):CRC检测余数R就是EDC或者FCS。

帧检验序列(FCS):数据链路层,便于硬件检错,在帧的尾部设置一个差错检验字段存放整个帧的差错检测码。

循环冗余检测(CRC):在数据链路层,通常使用CRC技术进行差错检测。

原理:在发送端,先把数据划分为组,假定每组k个比特,若传输一组数据M=101001(k=6),在M后添加供差错检测用的n位冗余码后一起发送,共发送(k+n)位,接收方用收到的数据除P,若余数为0则表示没有差错

​ 冗余码计算方法:在M后面添加n个0,得到(k+n)位的数除以选定好的除数p,得出商Q,余数R,将余数R作为冗余码,添加到M后

​ 例:k=6,M=101001,设n=3,除数P=1101,被除数是101001000,计算后得到商Q=110100,余数R=001

​ 帧校验序列(FCS):为差错检验而添加的冗余码;就是计算后得到的余数R

​ 生成多项式:一种方便的表示循环冗余校验过程的方法

​ CRC编码又称多项式编码

​ 例:P=1101->P(X)=X³+X²+1(最高位对应X³,最低位对应Xº)

总之,在接收端对收到的每一帧经过CRC检验后:

(1)若得到余数R为0,帧没差错,接受。

(2)若R不为0,帧出错,判定不了,丢失。

纠错码进行前向纠错(FEC)。

传输差错的分类:

​ 比特差错:1变0,0变1

​ 帧丢失:丢失某个帧

​ 帧重复:某个帧收到多次

​ 帧失序:后发送的帧反而先到达接收端

CRC的局限性:只能实现无比特差错,不能实现无传输差错,只能判断收到的数据是否正确,其余均无法判断,并不是可靠传输

无差错接受:接收端数据链路层接受的帧,都能认为在传输过程中没有产生差错

可靠传输:发送端发送什么,接收端就收到什么

停止等待协议【自动请求上传ARQ】;回退N帧协议(GBN);选择重传协议(SR)。

3.2 点对点协议(PPP)

以前使用较复杂的HDLC(高级数据链路控制),现在多使用较简单的PPP(点对点协议)

作用域:用户计算机和ISP通信时使用的数据链路层协议。

3.2.1 PPP的特点

(1)简单:对数据链路层的帧,不需要纠错、序号、流量控制,简单作为首要要求;收到帧进行CRC检验,无差错则接收,反之丢弃,数据链路层向上不提供可靠传输服务,若需要,则由物理层运输完成。

(2)封装成帧:规定特殊的字符作为帧定界符,使接收端从收到的比特流中准确找出帧的开始和结束位置。

(3)透明性:保证数据传输的透明性,要能解决碰巧出现和帧定界符一样的比特组合的问题。

(4)多种网络层协议:能够在同一条物理链路上同时支持多种网络层协议的运行,如IP等;在局域网和路由器上同样如此。

(5)多种类型链路:能够在多种链路上运行。

(6)差错检验:对接收端收到的帧进行检测,并立即丢弃有差错的帧

(7)检测连接状态:必须能够自动检测链路是否处于正常工作状态

(8)最大传送单元:对每一种类型的点对点链路设置MTU的标准默认值;促进各种实现之间的互操作性,若高层协议发送的分组数据部分超过MTU值,则丢弃并返回差错

(9)网络层地址协商:必须提供一种机制使通信的两个网络层的实体能够通过协商知道或能够配置彼此的网络层地址

(10)数据压缩协商:必须提供方法来协商使用数据压缩算法

PPP的特点:不支持多点线路,只支持点对点的链路通信,只支持全双工链路

PPP协议不需要的功能:纠错、流量控制、序号、多点线路、半双工或单工链路(只工作在点对点链路)

3.2.2 PPP协议的组成:

(1)将IP数据报封装到串行链路的方法;PPP支持异步链路,也支持面向比特的同步链路;IP数据报在PPP帧中数据部分,收到MTU限制

(2)用来建立、配置和测试链路连接的链路控制协议LCP

(3)网络控制协议NCP,其中每一个协议支持不同的网络层协议

3.2.3 PPP的帧格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TaKLUJKz-1604390616147)(D:\大学\大三\计算机网络教程第五版 谢希仁\笔记\PPP帧的格式.png)]

首部和尾部分别为4个字段和2个字段

​ 标志字段F:规定为0x7E,表示一个帧的开始或结束,就是帧的定界符

​ 地址字段A:规定为0xFF

​ 控制字段C:规定为0x03

​ 协议字段:

​ (1)当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。

​ (2)当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据。

​ (3)当协议字段为0x8021时,PPP帧的信息字段就是网络层协议NCP的控制数据。

​ 信息字段:长度可变,不超过1500字节

​ 帧减压序列FCS:CRC中使用的冗余码

透明传输:信息字段出现和标志字段一样的比特组合(0x7E),就必须采取一些措施使这种形式上和标志字段一言的比特组合不出现在信息字段中。

解决方法:

​ (1)PPP采用异步传输,转义符定义为0x7D,使用字节填充。

​ RFC 1662规定:

(1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)。

(2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把转义字符0x7D转变为2字节序列(0x7D,0x5D)。

(3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变为2字节序列的(0x7D,0x31)。

由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在接收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息。

(2)PPP用在SONET/SDH链路时,使用面向比特的同步传输(一连串比特连续传送)而不是字符的异步传输(一个一个字符传送)。使用零比特填充。

零比特填充的具体方法:

(1)在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。

(2)只要发现有5个连续的1,则立即填入一个0。

(3)接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。

因此通过这种零比特填充后的数据,就可以保证在信息字段中不会出现连续6个1。

3.2.4 PPP的工作状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VCl6oNOy-1604390616151)(D:\大学\大三\计算机网络教程第五版 谢希仁\笔记\PPP协议的工作状态.png)]

3.3 使用广播信道的数据链路层
3.3.1 媒体接入控制(多址接入问题)

媒体接入控制的分类:

(1)静态划分信道—>典型技术有 频分多址,时分多址和码分多址 代价较高,不适合局域网

(2)动态接入控制(多点接入)—>随机接入与受控接入

【随机接入:所有用户可随机发送信息,若发生碰撞(冲突),会使这些发送失败,需要解决碰撞的网络协议

​ 受控接入:用户不能随机发送信息而必须服从一定的控制,如多点线路探询(轮询)】

3.3.2 局域网

局域网的特点:网络为一个单位所拥有,且地理范围和站点数目均有限

局域网的优点:

(1)具有广播功能,从一个站点可方便的访问全网;局域网上主机共享局域网上各种硬件和软件资源

(2)便于系统的扩展和演变,各设备的位置可灵活调整和改变

(3)提高了系统的可靠性、可用性和生存性

**1.***局域网的拓扑结构:总线网、环形网、星形网(集线器)

2.局域网体系结构:

以太网的两个标准:DIX Ethernet V2;IEEE 802.3

数据链路层的两个子层:

逻辑链路控制(MAC):靠近物理层,存放与接入媒体有关的内容

媒体接入控制(LLC):靠近网络层,看不见下面的局域网,已经过时

3.网络适配器:

作用:

网络适配器又被称为网卡

包含了数据链路层和物理层两层的功能

适配器的重要功能:(1)进行串行\并行转换、(2)对数据进行缓存、(3)在计算机的操作系统安装设备驱动程序、(4)实现以太网协议

计算机通过配置器和局域网通信:

4.MAC地址:固化在适配器ROM当中的地址(又叫硬件地址或者物理地址)

3.4 共享式以太网

以太网的两个标准:DIX Ethernet V2;IEEE 802.3

3.4.1 CSMA/CD协议[载波监听多址接入/碰撞检测(冲突检测)]

总线的特点:当一台主机发送数据时,总线上所有主机都能检测到这个数据,就是广播通信方式

1.为使通信简便采取的措施:

(1)采用无连接工作方式,不必先建立连接就可以直接发送数据;适配器对数据帧不编号,不要求发回确认;因此,以太网提供尽最大努力交付,是不可靠交付;收到差错帧则丢弃,是否重传由高层决定,和以太网无关;同一时间只允许一台主机发送数据;使用CSMA/CD协议

(2)发送的数据使用曼切斯特编码

2.CSMA/CD协议要点:

(1)多点接入:说明是总线型网络

(2)载波监听:检测总线上有没有其他计算机也在发送;每个主机必须不停的检测信道,发送前检测是为了获得发送权,发送中检测是为了及时发现碰撞

(3)碰撞检测:边发松边监听,也叫冲突检测;发生碰撞就立即停止发生,等待一段随机时间后再次发送

3.发生碰撞的原因:电磁波在1km电缆的传播时延为5μs,在这段时间其他主机发送数据无法检测到,就会导致之后某时刻发送冲突

4.适用环境:双向交替通信(半双工通信)

5.以太网的发送不确定性:每一个站在自己发送数据之后一段时间内,存在遭遇碰撞的可能,这段时间是不确定的,取决于离另一个发送站的距离,因此无法保证一定能把自己的数据帧成功发送出去

**6.***争用期(碰撞窗口):以太网端到端的往返时间2τ;经过争用期没检测到碰撞,才能肯定这次发送不会发送碰撞

7.截断二进制指数退避算法:用来确定碰撞后重传的时机,不是信道空闲就立即再次发送,而是推迟一个随机的时间

8.具体流程:

​ (1)规定了基本退避时间为争用期2τ,具体的争用期时间是51.2μs;对于10Mbit/s以太网,争用期内能发送512bit,即64字节,也可以说争用期是512比特时间。

​ (2)从离散的整数集合[0,1,…,(2^k-1)]中随机取一个数,记为r,重传应推后r倍的争用期,k=min(重传次数,10)

​ (3)当重传16次仍不成功时,丢弃该帧,向高层报告

​ 凡长度小于64字节的帧都是由于冲突而异常终止的无效帧

强化碰撞:当发现碰撞时,处理立即停止发送数据外,还要继续发送32bit或48bit的人为干扰信号,使所有用户都知道发生了碰撞

帧间最小间隔:9.6μs,即96比特时间,使刚收到数据帧的站的接受缓存来得及清理,做好接收下一帧的准备

CSMA/CD协议要点:

​ (1)准备发送:适配器从网络获得一个分组,加上首部和尾部组成以太网帧,放入以太网缓存中,发送前先检测信道

​ (2)检测信道:若检测到信道忙,则不停检测,直到信道转为空闲;若检测到信道空闲,并在96比特时间内保持空闲,就发送这个帧

​ (3)在发送过程中仍不停检测信道,边发送边监听。这里有两种可能:

​ 发送成功:争用期内未检测到碰撞。这个帧一定能发送成功。发送完毕后回到(1)

​ 发送失败:争用期内检测到碰撞。立即停止发送,并按规定发送人为干扰信号(强化碰撞),执行指数退避算法,等待r倍512比特时间后,返回步骤(2);若重传16次仍不成功,停止重传并向上报错

3.4.2 共享式以太网的信道利用率

以太网信道的利用率:由于会发生碰撞,实际利用率达不到100%

成功发送一个帧占用信道的时间:T0+τ

参数a:

a=τ/T0 是单程端到端时延τ与帧的发送时间T0之比

a->0表示一发生碰撞就能立即检测出来并停止发送,而a越大,争用期占比越大,使信道利用率降低

因此a的值越小越好;当数据率一定时,以太网连线的长度受到限制,同时以太网的帧长不能太短

极限信道利用率Smax:

Smax=T0/(T0+τ)=1/1+a

只有参数a远小于1才能得到尽可能高的极限信道利用率

3.4.3 使用集线器的星型拓扑

*****集线器的特点:

(1)使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,还是使用CSMA/CD协议,在同一时刻只允许一个站发送数据

(2)一个集线器有多个接口,因此一个集线器很像一个多接口转发器

(3)集线器工作在物理层,仅简单的转发比特,不进行碰撞检测

(4)有专用的芯片,能自适应串音回波抵消

每次只能发送一个信号,工作在物理层,只对比特进行转发不进行检测

3.4.4 以太网的帧格式【图3—29】

以太网的两个标准:DIX Ethernet V2;IEEE 802.3

3.5 网桥和以太网交换机

交换式局域网在有线领域已经取代了传统式的共享式局域网

3.5.1 在物理层扩展以太网

以太网两战点之间距离不能太远,CSMA/CD协议会失效

1.转发器:以前使用粗缆与细缆以太网时,两个网段可用一个转发器连接。随着双绞线以太网主流,慢慢不适用了。

2.集线器:多个集线器覆盖更大范围,连接更多站点。但是,碰撞域变大,只能适配最小的吞吐量。集线器基本是多接口的转发器,不缓存帧。

3.光纤:信号在光纤中衰减和失真小,集线器与一对光纤调制解调器。

总之,物理层扩展以太网还是一个碰撞域,不能连接过多站点,否则平均吞吐率太低,导致大量冲突。不管是哪种方式,都相当于延长了共享传输媒体,有时延限制,不能无限扩大地理范围。

3.5.2 在数据链路层扩展以太网

网桥:对收到的帧根据MAC帧的目的地址查找地址表进行转发和过滤

交换机:工作在数据链路层,实质就是一个多接口网桥

特点:交换机上的主机是双全工工作,不会产生冲突,交换机中存有地址表通过自学习算法建立,交换机上的所有端口在同一个广播域上。

帧的转发方式:

1.直通:收到帧之后直接转发

2.存储转发:将所有收到的帧存储检查然后再发送

*交换机的自学习功能:*址表的形成:收到未知的地址后,存储源地址和接口的对应关系,向除来源端口的其它端口广播,目的地址不符则丢弃,否则接收并回复,收到回复后存储对应关系;地址表有有效时间,超过有效时间则失效

生成树协议STP:解决无限循环问题

3.6 虚拟局域网(VLAN)

定义:是一些局域网网段构成的与物理位置无关的逻辑组

VLAN标记:在MAC帧的源地址和类型间插入4字节的VLAN标记,交换机收到帧后只向所属VLAN转发,而不进行广播

最大帧长变为1522字节(1518+4)

口网桥

特点:交换机上的主机是双全工工作,不会产生冲突,交换机中存有地址表通过自学习算法建立,交换机上的所有端口在同一个广播域上。

帧的转发方式:

1.直通:收到帧之后直接转发

2.存储转发:将所有收到的帧存储检查然后再发送

*交换机的自学习功能:*址表的形成:收到未知的地址后,存储源地址和接口的对应关系,向除来源端口的其它端口广播,目的地址不符则丢弃,否则接收并回复,收到回复后存储对应关系;地址表有有效时间,超过有效时间则失效

生成树协议STP:解决无限循环问题

3.6 虚拟局域网(VLAN)

定义:是一些局域网网段构成的与物理位置无关的逻辑组

VLAN标记:在MAC帧的源地址和类型间插入4字节的VLAN标记,交换机收到帧后只向所属VLAN转发,而不进行广播

最大帧长变为1522字节(1518+4)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值