导航:首页 > 网络连接 > 计算机网络数据链路层使用心得

计算机网络数据链路层使用心得

发布时间:2022-11-28 05:39:56

计算机网络(三)数据链路层

结点:主机、路由器

链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。

数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。

帧:链路层的协议数据单元,封装网络层数据报。

数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。

数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为 逻辑上无差错的数据链路 ,使之对网络层表现为一条无差错的链路。

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。

帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

组帧的四种方法:

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。

当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

概括来说,传输中的差错都是由于噪声引起的。

数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。

较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。

滑动窗口有以下重要特性:

若采用n个比特对帧编号,那么发送窗口的尺寸W T 应满足: 。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。

除了比特出差错,底层信道还会出现丢包 [1] 问题

“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。其操作简单,但信道利用率较低

信道利用率是指发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。即

GBN发送方:

GBN接收方:

因连续发送数据帧而提高了信道利用率,重传时必须把原来已经正确传送的数据帧重传,是传送效率降低。

设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。

SR发送方:

SR接收方:

发送窗口最好等于接收窗口。(大了会溢出,小了没意义),即

传输数据使用的两种链路

信道划分介质访问控制将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔离开来,把时域和频域资源合理地分配给网络上的设备。

当传输介质的带宽超过传输单个信号所需的带宽时,人们就通过在一条介质上同时携带多个传输信号的方法来提高传输系统的利用率,这就是所谓的多路复用,也是实现信道划分介质访问控制的途径。多路复用技术把多个信号组合在一条物理信道上进行传输,使多个计算机或终端设备共享信道资源,提高了信道的利用率。信道划分的实质就是通过分时、分频、分码等方法把原来的一条广播信道,逻辑上分为几条用于两个结点之间通信的互不干扰的子信道,实际上就是把广播信道转变为点对点信道。

频分多路复用是一种将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术。在物理信道的可用带宽超过单个原始信号所需带宽的情况下,可将该物理信道的总带宽分割成若千与传输单个信号带宽相同(或略宽)的子信道,每个子信道传输一种信号,这就是频分多路复用。

每个子信道分配的带宽可不相同,但它们的总和必须不超过信道的总带宽。在实际应用中,为了防止子信道之间的千扰,相邻信道之间需要加入“保护频带”。频分多路复用的优点在于充分利用了传输介质的带宽,系统效率较高;由于技术比较成熟,实现也较容易。

时分多路复用是将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用。每个时间片由复用的一个信号占用,而不像FDM那样,同一时间同时发送多路信号。这样,利用每个信号在时间上的交叉,就可以在一条物理信道上传输多个信号。

就某个时刻来看,时分多路复用信道上传送的仅是某一对设备之间的信号:就某段时间而言,传送的是按时间分割的多路复用信号。但由于计算机数据的突发性,一个用户对已经分配到的子信道的利用率一般不高。统计时分多路复用(STDM,又称异步时分多路复用)是TDM 的一种改进,它采用STDM帧,STDM帧并不固定分配时隙,面按需动态地分配时隙,当终端有数据要传送时,才会分配到时间片,因此可以提高线路的利用率。例如,线路传输速率为8000b/s,4个用户的平均速率都为2000b/s,当采用TDM方式时,每个用户的最高速率为2000b/s.而在STDM方式下,每个用户的最高速率可达8000b/s.

波分多路复用即光的频分多路复用,它在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。由于光波处于频谱的高频段,有很高的带宽,因而可以实现多路的波分复用

码分多路复用是采用不同的编码来区分各路原始信号的一种复用方式。与FDM和 TDM不同,它既共享信道的频率,又共享时间。下面举一个直观的例子来理解码分复用。

实际上,更常用的名词是码分多址(Code Division Multiple Access.CDMA),1个比特分为多个码片/芯片( chip),每一个站点被指定一个唯一的m位的芯片序列,发送1时发送芯片序列(通常把o写成-1) 。发送1时站点发送芯片序列,发送o时发送芯片序列反码。

纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。想发就发

如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。超时后等一随机时间再重传。

时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。

载波监听多路访问协议CSMA(carrier sense multiple access)协议思想:发送帧之前,监听信道。

坚持指的是对于监听信道忙之后的坚持。

1-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。

优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。

缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。

非坚持指的是对于监听信道忙之后就不继续监听。

非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。

优点:采用随机的重发延迟时间可以减少冲突发生的可能性。

缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。

p-坚持指的是对于监听信道空闲的处理。

p-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。

优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。

缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。

载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)

CSMA/CD的工作流程:

由图可知,至多在发送帧后经过时间 就能知道所发送的帧有没有发生碰撞。因此把以太网端到端往返时间为 称为争周期(也称冲突窗口或碰撞窗口)。

截断二进制指数规避算法:

最小帧长问题:帧的传输时延至少要两倍于信号在总线中的传播时延。

载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)其工作原理如下

CSMA/CD与CSMA/CA的异同点:

相同点:CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。

不同点:

轮询协议:主结点轮流“邀请”从属结点发送数据。

令牌:一个特殊格式的MAC控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个结点独占信道。每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。

轮询访问MAC协议/轮流协议/轮转访问MAC协议:基于多路复用技术划分资源。

随机访问MAC协议: 用户根据意愿随机发送信息,发送信息时可独占信道带宽。 会发生冲突

信道划分介质访问控制(MAC Multiple Access Control )协议:既要不产生冲突,又要发送时占全部带宽。

局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。其特点有

决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法。

局域网的分类

IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。

以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。 以太网只实现无差错接收,不实现可靠传输。

以太网两个标准:

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

10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T 采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。

计算机与外界有局域网的连接是通过通信适配器的。

在局域网中,硬件地址又称为物理地址,或MAC地址。MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21。

最常用的MAC帧是以太网V2的格式。

IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。

广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。

广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。 只支持全双工链路。

PPP协议应满足的要求

PPP协议的三个组成部分

以太网交换机

冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。

广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。

以太网交换机的两种交换方式:

直通式交换机:查完目的地址(6B)就立刻转发。延迟小,可靠性低,无法支持具有不同速率的端口的交换。

存储转发式交换机:将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。延迟大,可靠性高,可以支持具有不同速率的端口的交换。

㈡ 通过对计算机网络课程的学习,你学到了什么

写出自己学到的内容,再写出自己的心得体会,范文如下:

通过为期一学期的计算机网络技术课程的学习,作为一个涉及计算机网络不久的我来说收益匪浅。那么以下就是在此次学习过程中我所总结出来的关于计算机网络学习中所体会到的一些值得记录的心得。

首先在学习课件制作时始终要与实际应用相结合,不要把主要精力花费在各个命令孤立地学习上;要把学以致用的原则贯穿整个学习过程,以使自己对各项计算机命令有深刻和形象的理解,有利于培养自己应用各种计算机语言制作网页的能力。

其次WORD作为文字操作专家,它能使我们更加深入地理解、熟练文字操作的命令。要强迫自己做几个综合实例,分别详细地进行文字编辑,使自己可以从全局的角度掌握整个编辑过程,力争使自己学习完WORD之后就能够顺利有效的进行编辑工作。

最后,在学习期间学会了很多东西,网络常用的操作命令:ipconfig/all、nslookup、ping、pathping、tracert、netstat。现在能了解并运用这些命令。

在学习中,我进一步体会到了网络的神奇,是网络能够使远隔万里之遥的人面对面的聊天,是网络能够使人们可足不出户就掌握所有信息从而运筹帷幄,是网络使人们能够更快的掌握更多的信息,本次学习让使我对计算机有了更新的认识,更是学到了很多实用技术。

(2)计算机网络数据链路层使用心得扩展阅读:

学习计算机网络课程的重要性:

1、社会与生活的需要

在信息化社会里计算机网络扮演了非常重要的角色,在社会与生活都会被需要。

2、大学生的素质要求

教育部在非计算机专业的计算机课程中,把《计算机网络》是作为计算机的核心课程来定位的。

3、课程的理论性和实践性都很轻

注重理论与实践的结合,丰富的实践教学环节巩固了理论知识。

㈢ [计算机网络]Ch.3 数据链路层

数据链路层使用物理层提供的服务在通信信道上发送和接收比特。
(1) 向网络层提供一个定义良好的接口
(2) 处理传输错误
(3) 调节数据流,确保慢速的接收方不会被快速的发送方淹没
提供的服务
(1) 无确认的无连接服务 (局域网)
(2) 有确认的无连接服务 (无线通信)
(3) 有确认的有连接服务 (电话)
无线通信,信道使用率很低但数据传输的误码率相对较高,确认是必要的

成帧:将原始的位流分散到离散的帧中。
成帧的方法有:
(1)字符计数法
(2)带字节/字符填充的标志字节法
(3)比特填充的比特标志法
(4)物理层编码违例法

字节计数法:利用帧头部的一个字段来标识该帧中的字符数
缺点:简单,无法恢复,已经很少使用

该方法考虑了错误之后重新开始同步的问题,用一些特殊字节(FLAG)作为帧开始和结束标志,用转义字符(ESC)来区分二进制数据中存在的特殊字节。

采用冗余编码技术,如曼切斯特编码,即两个脉冲宽来表示一个二进制位
数据0:低-高电平对
数据1:高-低电平对
高-高电平对和低-低电平对没有使用,可用作帧边界

差错的种类:

差错的处理:

计算机网络中主要采用:

海明距离的意义 :如果海明距离为d,则一个码字需要发生d个1位错误才能变成另外一个码字
海明距离与检错和纠错的关系:

纠正单比特错的冗余位下界, m为数据位数 r为校验位数

将某一位数据位的编号展开成2的乘幂的和,那末每一项所对应的位即为该数据位的校验位(收方使用)。
如: 11 = 1 + 2 + 8
29 = 1 + 4 + 8 + 16
校验位1的检验集合为所有奇数位。
校验位2的检验集合:2、3、6、7、10、11、…
校验位4的检验集合:4、5、6、7、……
校验位8的检验集合:8、9、10、11、……

海明码纠错过程(只纠错1位)
首先将差错计数器置“0”。
当海明码数据到达接收端后,接收端逐个检查各个校验位的奇偶性。
如发现某一校验位和它所检测的集合的奇偶性不正确,就将该检验位的编号加到差错计数器中。
待所有校验位核对完毕:
若差错计数器仍为“0”值,则说明该码字接收无误。
非“0”值,差错计数器的值为出错位的编号,将该位求反就可得到正确结果。

例子:

经计算需要的检验字个数的最小值 r应满足 ( 所以r最小值为4,再根据校验位的对应规则可得下表:

Data: 1011010
Even: 1011010 0 (偶校验)
Odd: 1011010 1 (奇校验)

使用CRC编码时发送方和接收方必须预先商定一个生成多项式G(x),假设有一个m为的帧M(x),使用G(x)生成的帧的步骤如下:
假设G(x)的阶为r, 那么M(x)在末尾添加r个0,得到 m+r位的位模式 。
利用模2出发,用G(x)去除 ,得到对应的余数(总是小于等于r位)。
利用 减去(模2减法)第2步中得到的余数,得到的位模式就是即将被传输的带校验和的帧
Sender
在数据帧的低端加上r个零,对应多项式为XrM(x)
采用模2除法,用G(x)去除XrM(x),得余数
采用模2减法,用XrM(x)减去余数,得到带CRC校验和的帧
Receiver
用收到的帧去除以G(x)
为零:无错误产生。非零:发生了错误,重传

在一定条件下运作:

缺点

缺点

对协议2的改进:

确认帧
只在接收无差错时才发确认帧,出错时不发确认帧。
重发
网络中采用检错码,无法纠正错误,由重发原来帧的方式来恢复正确的帧。
计时器
控制何时重发,防止无限期等待(死锁)。
帧序号
防止重发时接收端收到重复的帧,序号还用于接收时排序。
保证送给网络层的都是按序无重复的分组

帧格式:

****

与前三个协议不同,这是一个双向传递的协议。 之后的三个协议都属于滑动窗口协议。

滑动窗口协议
如果发送端可以连续发送一批数据帧,必须考虑接收端是否来得及接纳与处理这么多的帧,这里就提出了网络流量控制问题

N回退协议 选择重传协议:
由于传输过程中存在延迟,即数据在传播过程中需要时间,那么如果使用上面所提及的协议,传输过程中有大量的时间存在阻塞状态,所以为了充分利用带宽,我们让发送方一次发送w个帧。所以就存在如何处理在传输过程中出现的帧错误的问题

协议四的基本工作原理:
窗口设置

窗口滑动机制

特点

出错情况
连续发送W个数据帧,其中有一帧出错,但其后续帧被成功发送

接收方的接收策略: 丢弃错帧,其后续帧因不是期望接收帧也被丢弃(接收窗口为1)。
发送方的重传策略: 缓存在发送窗口中的出错帧以及其后续帧全部重发

W<=2BD+1(个帧)
BD:带宽-延迟乘积,bit乘积出来之后换算成帧的个数

该图的发送方和接收方的窗口大小都是7,那么也就是说发送方一次最多只能发送7个帧,刚开始发送方只能发送序号为0~6的数据帧,图中发送方收到序列号为第0和第1号帧的确认帧,那么整个窗口向前滑动,发送方可以发送序列号为7和8 的数据帧,但是不幸的是2号数据帧并没有收到确认帧,所以整个窗口并不会向前滑动,此时只能等待2号数据帧的计时器超时,那么超时后发送方将会从2号数据帧开始发送,重复这个过程。
实现

出错情况

原因:如果错误很少发生,那么协议5可以很好的工作。一旦线路质量很差,那么重传帧需要浪费大量带宽。而选择重传节约了带宽,允许接收方缓存丢失帧之后的所有帧

接收方的接收策略: 丢弃错帧,缓存后续正确接收帧
发送方的重传策略: 只重发出错帧。

基本概念:

选择重传策略:
接收方丢掉坏帧,但接受并缓存坏帧后面的所有好帧。

否定重传策略
当接收方收到错误,他就发送一个否定确认(NAK)信息,而不需要等到相应的计数器超时,提高协议性能。

滑动窗口长度w的选择
协议5(回退n帧) W = MAX_SEQ
协议6(选择重传) W= (MAX_SEQ + 1) / 2

发送方和接收方的窗口大小 W=((MAX_SEQ+1))/2,原因是 防止窗口重叠,在确认帧丢失的情况下而导致的数据错误

接收方在某个帧出错后继续接受和缓存后续发送的数据包,直到整个窗口的填满后,把帧进行排序后才传递给网络层。

面向字符的数据链路协议
PPP 是一种在链路上传输分组的常用方法

3个主要特性:

PPP两种认证协议: PAP and CHAP

PPP的帧格式

PPP成帧是面向字节填充的:
具体细节可以参考上面的字节填充法, 因为PPP重用了HDLC的技术,所以PPP使用标志字(0x7E 01111110)来标记帧的起始,使用0x7D来作为转义字符, 具体操作如下:

接收方接收到帧后进行下面处理:
在帧中遇到0x7D 就把0x7D删除,在把紧跟在0x7D 后的字节和0x20进行异或运算,就得到对应的数据

LCP ( Link Control Protocol)提供了建立、配置、维护和终止点对点链接的方法

PPP的工作过程

㈣ 带你弄懂计算机网络的数据链路层(经典)

差错是不可避免的。而且不同的传输介质的差错程度也是不同的。链路层的任务就是分析差错产生的原因,检查差错,然后纠正差错。 下面的图展示了差错的来源

当数据信号从发送端发送到物理线路时,由于物理线路存在噪声,因此数据信号经过物理线路的噪声,到达接收端时,已经是数据+噪声的叠加。这就是差错的来源。

滑动窗口机制?

㈤ 计算机网络-02-物理层和数据链路层

物理层主要功能是为数据端设备提供传送数据的通路以及传输数据。

信道是往一个方向传送信息的媒体,一条通信电路包含一个接收信道和一个发送信道。

分用-复用技术 允许多个用户使用一个共享信道进行通信,可以降低成本,提高利用率。

数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的功能是向该层用户提供透明的和可靠的数据传送基本服务。

数据链路层有两个功能: 帧编码 和 差错控制 。

物理层只负责传输比特流,为了使传输过程发生差错后只将有限数据进行重发,数据链路层将比特流组合成以太帧作为单位传送。

每个帧除了要传送的数据外,还包括校验码,以使接收方能发现传输中的差错。

假设现在从网络层过来了一个IP数据报,数据链路层会将这个数据报作为帧进行传送。

当然物理层是不管你帧不帧的,它只会将数据链路层传过来的帧以比特流的形式发送给另一台物理设备。

由前面的文章可知: 总时延 = 发送时延 + 排队时延 + 传播时延 + 处理时延

数据链路层的数据帧不是无限大的,数据帧过大或过小都会影响传输的效率,数据链路层使用MTU来限制数据帧长度。

以太网MTU一般为1500字节, 路径MTU由链路中MTU的最小值决定

一个实用的通信系统必须具备发现(即检测)这种差错的能力,并采取某种措施纠正之,使差错被控制在所能允许的尽可能小的范围内,这就是差错控制过程。物理层只管传输比特流,无法控制是否出错,所以差错检测成了数据链路层的主要功能之一。

一般的检测方法有 奇偶校验码 和 CRC循环冗余校验码 。

网络中需要唯一标识物理设备的地址,用于确定数据传输时的发送地址和目的地址。

MAC地址(物理地址、硬件地址)共48位,使用十六进制表示,每一个设备都拥有唯一的MAC地址。

虽然MAC地址是物理硬件地址,但其属于数据链路层的MAC子层。

以太网(Ethernet)是一种使用广泛的局域网技术,它是应用于数据链路层的协议,使用以太网可以完成相邻设备的数据帧传输。

以太网数据报文主要由五个部分组成:

类型主要表示帧数据的类型,例如网络层的IP数据。

定义完数据结构后,就需要进行数据传输。由上文可知,MAC地址唯一标识了设备,那么怎么获得目的设备的MAC地址呢?

MAC地址表记录了与本设备相连的设备的MAC地址。

假设主机A发送了一个以太网数据报文,数据帧到达路由器,路由器取出前6字节(通过报文数据结构可知前6位位目的地址)。

路由器匹配MAC地址表,找到对应的网络接口,路由器往该网络接口发送数据帧。

当路由器的MAC地址表中没有目的地址,此时路由器会将此MAC地址进行广播(发送方A除外),接收局域网中与该路由其相连的其他设备的MAC地址并记录。

由于MAC地址表只能知道当前设备的下一个设备的MAC地址,简而言之就是只能进行相邻物理节点的数据传输。

有关跨设备传输数据的功能是交由网络层处理的,具体见下一章。

㈥ 02 - 数据链路层的详细认识

时间有限我这里只写了一部分内容,更详细的内容可以直接看我的笔记 第三章数据链路层

数据链路层的任务就是将分组从一个网络中或一个链路上的一端传送到另一端。数据链路层传送的数据单元称为帧(frame)。所以也可以说数据链路层的任务就是在一个网络(或一段链路上)传送以帧为单位的数据

数据链路层属于计算机网络的底层,仅在物理层的上方,在网络层的下方,网络中的主机、路由器等都必须实现数据链路层。数据链路层使用的信道主要有两种类型,点对点信道,广播信道

在点对点信道中最重要的是如何实现可靠传输(在实际中并不会在数据链路层实现可靠传输,而是交给上层)

网络层的IP数据报必须向下传达到数据链路层,在数据报前后分别加上首部和尾部,封装成为一个完整的帧。因为在数据链路层就是以帧为单位传输和处理数据,因此,数据链路层中的帧长就是数据部分加上首部和尾部的长度。

发送方将帧以比特流的形式发送给接收方(在物理层会转换成电信号),接收方为了能够处理帧数据,必须正确认识每个帧的开始和结束,这就需要进行帧定界

帧定界有很多种,比如以太网就是在传输的帧与帧之间插入时间间隔来实现,只有首部有帧定界符,尾部没有帧定界符。还有一种就是在帧的首部和尾部都加上一个帧定界符。

帧定界符:
不同类型:

帧定界符在透明传输中的问题和解决
问题: 传输数据存在使用帧定界符所使用的字符或比特组合,会出现错误的帧定界
解决:

注意:

通信链路的传输都不会是理想的,比特在传输过程中可能会产生差错,比如1变为0,0变为1,这叫做比特差错,因此就需要在接收端进行差错检测。

发送方需要采用某种差错检测算法,使用发送的数据计算出差错检测码EDC,差错检测码随数据一起发送给接收方,接收方使用同样的差错检测算法计算出差错检测码EDC',如果两者不一致,则表示出现差错,一般采用循环冗余检验(CRC)来检错

差错检测算法:

接收双方需要约定好一个多项式,之后按照下图的方式进行处理

案例说明

发送方的冗余校验:

说明:

接收方的冗余校验:

说明:

注意:

有些情况下数据链路层需要向上层的网络层提供“可靠传输”的服务,也就是发送端发送什么,对应的接收端就必须接收什么。我们通过可靠传输协议来实现数据链路层的可靠传输,有三种,停止等待协议SW、回退N步协议GBN、选择重传协议SR。
可靠传输协议就是要在不可靠的信道上实现可靠的数据传输服务。

在计算机网络中实现可靠传输的基本方法就是:如果发现错误就重传

使用分组确认和超时重传机制就可以在不可靠的信道上实现可靠的数据传输。

解决: 可以在发送方发送完一个数据分组后,启动一个超时计时器,若超出了设置的重传时间,发送方仍没有收到接收方的任何确认分组,就会重传原来的分组。

注意: 重传时间的选择一般是略大于“从发送方到接收方的平均往返时间”数据链路层的往返时间是比较确定的,可以使用这种方式

说明:

上面也可以看到停止等待协议的信道利用率很低,所以需要采用流水线传输方式,发送方不间断的发送分组来提高信道利用率。但是这种方式有可能会使接收方来不及处理这些分组,从而导致分组的丢失。因此需要限制发送方连续发送分组的个数避免这个问题,而这种方式就是回退N步协议。
简单理解回退N步协议就是停止等待协议只能发送一个分组就等待,回退N步协议是发送多个分组才处于等待状态

原理: 回退N步协议在流水线传输的基础上利用发送窗口来限制发送方连续发送分组的个数,是一种连续的ARQ协议

注意:

选择重传协议是在回退N步协议的基础上,只重传出现差错的分组,这时接收窗口不再为1,以便先收下失序到达但仍然处于接收窗口中的分组,等到所缺分组收齐后再一并送交上层,这就是选择重传协议。

注意:

㈦ 数据链路层怎样保证数据传输的可靠性

刚从书上看的(计算机网络):

数据链路层传输以帧为单位的数据包,
并采用差错控制与流量控制方法,
使有差错的物理线路变成无差错的数据链路。

㈧ 计算机网络:数据链路层

互联网是指很多异构的网络由路由器联系起来的一个大网络。在研究这个大网络之前,我们要庖丁解牛,先研究其局部和单元。最小的网络单元就是局域网,局域网是一个单位所拥有,且地理范围和站点数量都很有限。

局域网内的计算机通信不需要路由器,所以不会用到网络层的协议,而是依赖数据链路层。

上图说明了数据链路层在整个互联网体系中的位置。数据链路层的信道分为两种:

在点到点信道的数据链路层协议上,可以采用简化的三层模型。无论是主机和主机,主机和路由器,或者两个路由器之间,我们都可以看成结点和结点之间的通信。

数据链路层不必考虑物理层是如何实现比特传输的细节,我们甚至可以简单设想,节点A沿着数据链路层的水平方向把帧输出给结点B。

数据链路层的协议有多个,但有三个共性问题。

从上图可以得出以下结论:

利用转义字符(ESC,十六进制编码0x1B)来解决帧的数据部分包含控制字符的问题

信道往往不是理想的,所以通信会带来误差。常用误码率来衡量传输误差。误码率BER(bit error rate)等于错误的比特占全部比特的百分比。

那么我们怎么知道所接受到的帧有没有错误比特呢?这就需要校验机制,目前数据链路层广泛采用循环冗余校验CRC((Cyclic Rendancy Check)。其原理是在帧的数据部分后面加上冗余码(FCS),接受方利用冗余码校验数据部分。具体细节请参考《计算机网络》。

综上,封装成帧和透明传输保证收到完整的帧,差错检验保证收到正确的帧。这三种机制能保证帧的无差错传输,但不能保证可靠传输(发送什么就接收到什么)。造成不可靠传输的原因有两类:

1. 帧中的比特错误
2. 帧重复,帧丢失,帧失序
数据链路层的帧的三种机制只能消除第一种错误,至于第二种则需要确认和重传机制。在早期互联网中,数据链路层曾经保证可靠传输,但随着光纤技术的发展,误码率大大下降,数据链路层就采用了简单的不可靠传输协议,把可靠运输的实现放在了运输层中。实践证明,这样可以提高通信效率。

最后,我们可以看到,计算机网络本质是通信问题,里面包含了很多通信元素:完整,误差,校验,重复,丢失,失序,可靠传输等。

㈨ 计算机网络(3)| 数据链路层

数据链路层属于计算机网络的低层。数据链路层使用的信道主要是两种类型:
(1)点对点信道 。即信道使用的是一对一点对点通信方式。
(2)广播信道 。这种信道使用的是一对多的光播通信方式,相对复杂。在广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。

首先我们应该了解一些有关点对点信道的一点基本概念。
(1)数据链路 。值得是当我们需要在一条线路上传送数据时,除了有一条物理线路外(链路),还必须有一些必要的通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件加到链路上就构成了数据链路。
(2)帧 。帧指的是点对点信道的数据链路层的协议数据单元,即数据链路层把网络层交下来的数据构成帧发送到链路上以及把接收到的帧中的数据取出并上交给网络层。

点对点信道的数据链路层在进行通信时的主要步骤如下:
(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
(2)结点A把封装好的帧发送给结点B的数据链路层。
(3)若B接收的帧无差错,则从接收的帧中提取出IP数据报上交给上面的网络层;否则丢弃这个帧。

接下来是来介绍数据链路层的三个基本问题,而这三个问题对于各种数据链路层的协议都是通用的。

(1)封装成帧 。指的是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧,从而能够作为数据链路层的基本单位进行数据传输。在发送帧时,是从帧的首部开始发送的。各种数据链路层协议都对帧首部和帧尾部的格式有着明确的规定,且都规定了所能传送的 帧的数据部分 长度上限—— 最大传送单元MTU 。首部和尾部的作用是进行帧定界,帧定界可以使用特殊的 帧定界符 ,当数据在传输中出现差错时,通过帧的帧定界符就可以知道收到的数据是一个不完整的帧(即只有首部开始符而没有结束符)。

(2)透明传输 。从上面的介绍中知道帧的开始和结束标记使用了专门的控制字符,因此所传输的数据中任何与帧定界符相同的比特编码是不允许出现的,否则就会出现帧定界错误。当传送的帧是用文本文件组成的帧时,它的数据部分一定不会出现和帧定界符相同的字符,这样的传输就叫做 透明传输 。为了解决其他类型文件传输时产生的透明传输问题,就将帧定界符的前面插入一个 转义字符ESC ,这种方法称为 字节填充 。如果转义字符也出现在数据中,就在转义字符前面加上一个转义字符,当接收端收到两个转义字符时,就删除前面的那一个。

(3)差错检测 。在现实中,通信链路都不会是完美的,在传输比特的过程当中都是会产生差错的,1变成0或者0变成1都是可能发生的,我们把这样的错误叫做差错检测。在数据链路层中,为了保证数据传输的可靠性,减少差错出现的数量,就会采用各种差错检测措施,目前最常使用的检错技术是 循环冗余校验 。它的原理简单来说就是在被传输的数据M后面添加供错检测用的n为冗余码,构成一个帧数据发送出去。关于n位冗余码的得出方式与检验方式,可以 点击这里进一步了解 。

对于点对点链路,点对点协议PPP是目前使用得最广泛的数据链路层协议。由于因特网的用户通常都要连接到某个ISP才能接入到因特网,PPP协议就是用户计算机和ISP进行通信所使用的数据链路层协议。

在设计PPP协议时必须要考虑以下多方面的需求:
(1)简单 。简单的设计可使协议在实现时不容易出错,这样使得不同厂商对协议的不同实现的互操作性提高了。
(2)封装成帧 。PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符),以便使接收端从收到的比特流中能准确的找出帧的开始和结束的位置。
(3)透明性 。PPP协议必须保证数据传输的透明性。如果说是数据中碰巧出现和帧定界符一样的比特组合时,就要采用必要的措施来解决。
(4)多种网络层协议 。PPP协议必须能够在同一条物理链路上同时支持多种网络层协议(IP和IPX等)的运行。
(5)多种类型链路 。除了要支持多种网络层的协议外,PPP还必须能够在多种链路上运行(串行与并行链路)。
(6)差错检测 。PPP协议必须能够对接收端收到的帧进行检测,并舍弃有差错的帧。
(7)检测连接状态 。必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。
(8)最大传送单元 。协议对每一种类型的点对点链路设置最大传送单元MTU。
(9)网络层地址协商 。协议必须提供一种机制使通信的两个网络层(如两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。
(10)数据压缩协商 。协议必须能够提供方法来协商使用数据压缩算法。但PPP协议不要求将数据压缩算法进行标准化。

PPP协议主要是由三个方面组成的:
(1) 一个将IP数据报封装到串行链路的方法。
(2) 一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)。
(3) 一套网络控制协议NCP(Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet,以及AppleTalk等。

最后来介绍PPP协议帧的格式:

首先是各个字段的意义。首部中的地址字段A规定为0xFF,控制字段C规定为0x03,这两个字段并没有携带PPP帧的信息。首部的第一个字段和尾部的第二个字段都是标识字段F(Flag)。首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息部分字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而 0x8021表示这是网络层的控制数据。尾部中的第一个字段(2字节)是使用CRC的帧检验序列FCS。

接着是关于PPP协议的差错检测的方法,主要分为字节填充和零比特填充。当是PPP异步传输时,采用的是字节填充的方法。字节填充是指当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一样的比特组合不出现在信息字段中。而当PPP协议使用的是同步传输时,就会采用零比特填充方法来实现透明传输,即只要发现有5个连续1,则立即填入一个0的方法。

广播信道可以进行一对多的通信。由于局域网采用的就是广播通信,因此下面有关广播通信的讨论就是基于局域网来进行的。

首先我们要知道局域网的主要 特点 ,即网络为一个单位所拥有,且地理范围和站点数目均有限。在局域网才出现时,局域网比广域网有着较高的数据率、较低的时延和较小的误码率。

局域网的 优点 主要有一下几个方面:
(1) 具有广播功能,从一个站点可方便地访问全网。
(2) 便于系统的扩展和逐渐地演变,各设备的位置可灵活地调整和改变。
(3) 提高了系统的可靠性(reliability)、可用性(availibility)、生存性(survivability)。

关于局域网的分类,我们一般是对局域网按照网络拓扑进行分类:
1.星状网: 由于集线器的出现和双绞线大量用于局域网中,星形以太网和多级星形结构的以太网获得了非常广泛的应用。
2.环形网: 顾名思义,就是将各个主机像环一样串起来的拓扑结构,最典型的就是令牌环形网。
3.总线网: 各站直接连在总线上。总线两端的匹配电阻吸收在总线上传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射。

以太网主要有两个标准,即DIX Ethernet V2和IEEE 802.3标准,这两种标准的差别很小,可以不是很严格的区分它们。

但是由于有关厂商的商业上的激烈竞争,导致IEEE 802委员会未能形成一个最佳的局域网标准而制定了几个不同的局域网标准,所以为了数据链路层能够更好的适应各种不同的标准,委员会就把局域网的数据链路层拆成两个子层: 逻辑链路控制LLC子层 媒体接入控制MAC子层

计算机与外界局域网的连接是通过通信适配器(adapter)来进行的。适配器本来是在电脑主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡),这种接口板又称为网络接口卡NIC(Network Interface Card)或简称为网卡。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的,因此适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。由于网络上的数据率和计算机总线上的数据率并不相同,所以在适配器中必须装有对数据进行缓存的存储芯片。若在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或应当在存储器的什么位置上把局域网传送过来的数据块存储下来。适配器还要能够实现以太网协议。

要注意的是,适配器在接收和发送各种帧时是不使用计算机的CPU的,所以这时计算机中的CPU可以处理其他的任务。当适配器收到有差错的帧时,就把这个帧丢弃而不必通知计算机,而当适配器收到正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。特别注意: 计算机的硬件地址—MAC地址,就在适配器的ROM中。计算机的软件地址—IP地址,就在计算机的存储器中。

CSMA/CD协议主要有以下3个要点:
1.多点接入 :指的是这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。
2.载波监听 :就是用电子技术检测总线上有没有其他的计算机也在发送。载波监听也称为检测信道,也就是说,为了获得发送权,不管在发送前,还是在发送中,每一个站都必须不停的检测信道。如果检测出已经有其他站在发送,则自己就暂时不发送数据,等到信道空闲时才发送数据。而在发送中检测信道是为了及时发现有没有其他站的发送和本站发送的碰撞。
3.碰撞检测 :也就是边发送边监听。适配器一边发送数据一边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。所谓碰撞就是信号之间产生了冲突,这时总线上传输的信号严重失真,无法从中恢复出有用的信息来。

集线器的一些特点如下:
(1)使用集线器的以太网在逻辑上仍然是一个总线网,各个站点共享逻辑上的总线,使用的还是CSMA/CD协议。
(2)一个集线器是有多个接口。一个集线器就像一个多接口的转发器。
(3)集线器工作在物理层,所以它的每一个接口仅仅是简单的转发比特。它不会进行碰撞检测,所以当两个接口同时有信号的输入,那么所有的接口都将收不到正确的帧。
(4)集线器自身采用了专门的芯片来进行自适应串音回波抵消。这样可使接口转发出去的较强的信号不致对该接口收到的较弱信号产生干扰。
(5)集线器一般都有少量的容错能力和网络管理能力,也就是说如果在以太网中有一个适配器出现了故障,不停地发送以太网帧,这是集线器可以检测到这个问题从而断开与故障适配器的连线。

在局域网中,硬件地址又称为物理地址或者MAC地址,这种地址是用在MAC帧中的。由于6字节的地址字段可以使全世界所有的局域网适配器具有不同的地址,所以现在的局域网适配器都是使用6字节MAC地址。

主要负责分配地址字段的6个字节中的前3个字节。世界上凡事要生产局域适配器的厂家都必须向IEEE购买这3个字节构成的地址号,这个地址号我们通常叫做 公司标识符 ,而地址字段的后3个字节则由厂家自行指派,称为 扩展标识符

IEEE规定地址字段的第一字节的最低位为I/G位。当I/G位为0时,地址字段表示一个单个站地址,而当I/G位为1时表示组地址,用来进行多播。所以IEEE只分配地址字段前三个字节中的23位,当I/G位分别为0和1时,一个地址块可分别生 2^24 个单个站地址和2^24个组地址。IEEE还把地址字段第1个字节的最低第二位规定为G/L位。当G/L位为0时是全球管理,来保证在全球没有相同的地址,厂商向IEEE购买的都属于全球管理。当地址段G/L位为1时是本地管理,这时用户可以任意分配网络上的地址,但是以太网几乎不会理会这个G/L位的。

适配器对MAC帧是具有的过滤功能的,当适配器从网络上每收到一个MAC帧就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理,否则就将此帧丢弃。这样做就可以不浪费主机的处理机和内存资源这里发往本站的帧包括以下三种帧:
(1)单播帧:即收到的帧的MAC地址与本站的硬件地址相同。
(2)广播帧:即发送给本局域网上所有站点的帧。
(3)多播帧:即发送给本局域网上一部分站点的帧。

常用的以太网MAC帧格式是以太网V2的MAC帧格式。如下图:

可以看到以太网V2的MAC帧比较的简单,有五个字段组成。前两个字段分别为6字节长的目的地址和源地址字段。第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。下一个字段是数据字段,其长度在46到1500字节之间。最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。

从图中可以看出,采用以太网V2的MAC帧并没有一个结构来存储一个数据的帧长度。这是由于在曼彻斯特编码中每一个码元的正中间一定有一次电压的转换,如果当发送方在发送完一个MAC帧后就不再发送了,则发送方适配器的电压一定是不会在变化的。这样接收方就可以知道以太网帧结束的位置,在这个位置减去FCS序列的4个字节,就可以知道帧的长度了。

当数据字段的长度小于42字节时,MAC子层就会在MAC帧后面加入一个整数字节来填充字段,来保证以太网的MAC帧的长度不小于64字节。当MAC帧传送给上层协议后,上层协议必须具有能够识别填充字段的功能。当上层使用的是IP协议时,其首部就有一个总长度字段,因此总长度加上填充字段的长度,就是MAC帧的数据字段的长度。

从图中还可以看出,在传输MAC帧时传输媒体上实际是多发送了8个字节,这是因为当MAC帧开始接收时,由于适配器的时钟尚未与比特流达成同步,因此MAC帧的最开始的部分是无法接收的,结果就是会使整个MAC成为无用帧。所以为了接收端能够迅速的与比特流形成同步,就需要在前面插入这8个字节。这8个字节是由两个部分组成的,第一个部分是由前7个字节构成的前同步码,它的主要作用就是就是实现同步。第二个部分是帧开始界定符,它的作用就是告诉接收方MAC帧马上就要来了。需要注意的是,帧与帧之间的传输是需要一定的间隔的,否则接收端在收到了帧开始界定符后就会认为后面的都是MAC帧而会造成错误。

以太网上的主机之间的距离不能太远,否则主机发送的信号经过铜线的传输就会衰减到使CSMA/CD协议无法正常工作,所以在过去常常使用工作在物理层的转发器来拓展以太网的地理覆盖范围。但是现在随着双绞线以太网成为以太网的主流类型,拓展以太网的覆盖范围已经很少使用转发器,而是使用光纤和一对光纤调制解调器来拓展主机和集线器之间的距离。

光纤解调器的作用是进行电信号与光信号的转换。由于光纤带来的时延很小,并且带宽很宽,所以才用这种方法可以很容易地使主机和几公里外的集线器相连接。

如果是使用多个集线器,就可以连接成覆盖更大范围的多级星形结构的以太网:

使用多级星形结构的以太网不仅能够让连接在不同的以太网的计算机能够进行通信,还可以扩大以太网的地理覆盖范围。但是这样的多级结构也带来了一些缺点,首先这样的结构会增大它们的碰撞域,这样做会导致图中的某个系的两个站在通信时所传送的数据会通过所有的集线器进行转发,使得其他系的内部在这时都不能进行通信。其次如果不同的以太网采用的是不同的技术,那么就不可能用集线器将它们互相连接起来。

拓展以太网的更常用的方法是在数据链路层中进行的,在开始时人们使用的是网桥。但是现在人们更常用的是 以太网交换机

以太网交换机实质上是一个多接口的网桥,通常是有十几个或者更多的接口,而每一个接口都是直接与一个单台主机或者另一个以太网交换机相连。同时以太网交换机还具有并行性,即能同时连通多对接口,使多对主机能同时通信,对于相互通信的主机来说都是独占传输媒体且无碰撞的传输数据。

以太网交换机的接口还有存储器,能够在输出端口繁忙时把到来的帧进行缓存,等到接口不再繁忙时再将缓存的帧发送出去。

以太网交换机还是一种即插即用的设备,它的内部的地址表是通过自学习算法自动的建立起来的。以太网交换机由于使用了专用的交换结构芯片,用硬件转发,它的转发速率是要比使用软件转发的网桥快很多。

如下图中带有4个接口的以太网交换机,它的4个接口各连接一台计算机,其MAC地址分别为A、B、C、D。在开始时,以太网交换机里面的交换表是空的。

首先,A先向B发送一帧,从接口1进入到交换机。交换机收到帧后,先查找交换表,但是没有查到应从哪个接口转发这个帧,接着交换机把这个帧的源地址A和接口1写入交换表中,并向除接口1以外的所有接口广播这个帧。C和D因为目的地址不对会将这个帧丢弃,只有B才收下这个目的地址正确的帧。从新写入的交换表(A,1)可以得出,以后不管从哪一个接口收到帧,只要其目的地址是A,就应当把收到的帧从接口1转发出去。以此类推,只要主机A、B、C也向其他主机发送帧,以太网交换机中的交换表就会把转发到A或B或C应当经过的借口号写入到交换表中,这样交换表中的项目就齐全了,以后要转发给任何一台主机的帧,就都能够很快的在交换表中找到相应的转发接口。

考虑到有时可能要在交换机的接口更换主机或者主机要更换其网络适配器,这就需要更改交换表中的项目,所以交换表中每个项目都设有一定的有效时间。

但是这样的自学习有时也会在某个环路中无限制的兜圈子,如下图:

假设一开始主机A通过接口交换机#1向主机B发送一帧。交换机#1收到这个帧后就向所有其他接口进行广播发送。其中一个帧的走向:离开#1的3->交换机#2的接口1->接口2->交换机#1的接口4->接口3->交换机#2的接口1......一直循环下去,白白消耗网络资源。所以为了解决这样的问题,IEEE制定了一个生成树协议STP,其要点就是不改变网络的实际拓扑,但在逻辑上切断某些链路,从而防止出现环路。

虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机属于VLAN。要注意虚拟局域网其实只是局域网给用户提供的一种服务,而不是一种新型局域网。

现在已经有标准定义了以太网的帧格式的扩展,以便支持虚拟局域网。虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记,它是用来指明发送该帧的计算机属于哪一个虚拟局域网。VLAN标记字段的长度是4字节,插入在以太网MAC帧的源地址字段和类型字段之间。VLAN标记的前两个字节总是设置为0x8100,称为IEEE802.1Q标记类型。当数据链路层检测到MAC帧的源地址字段后面的两个字节的值是0x8100时,就知道现在插入了4字节的VLAN标记。于是就接着检查后面两个字节的内容,在后面的两个字节中,前3位是用户优先级字段,接着的一位是规范格式指示符CFI,最后的12位是该虚拟局域网VLAN标识符VID,它唯一的标志了这个以台网属于哪一个VLAN。

高速以太网主要是分为三种,即100BASE-T以太网、吉比特以太网和10吉比特以太网:

㈩ 计算机网络第三章(数据链路层)

3.1、数据链路层概述

概述

链路 是从一个结点到相邻结点的一段物理线路, 数据链路 则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)

网络中的主机、路由器等都必须实现数据链路层

局域网中的主机、交换机等都必须实现数据链路层

从层次上来看数据的流动

仅从数据链路层观察帧的流动

主机H1 到主机H2 所经过的网络可以是多种不同类型的

注意:不同的链路层可能采用不同的数据链路层协议

数据链路层使用的信道

数据链路层属于计算机网路的低层。 数据链路层使用的信道主要有以下两种类型:

点对点信道

广播信道

局域网属于数据链路层

局域网虽然是个网络。但我们并不把局域网放在网络层中讨论。这是因为在网络层要讨论的是多个网络互连的问题,是讨论分组怎么从一个网络,通过路由器,转发到另一个网络。

而在同一个局域网中,分组怎么从一台主机传送到另一台主机,但并不经过路由器转发。从整个互联网来看, 局域网仍属于数据链路层 的范围

三个重要问题

数据链路层传送的协议数据单元是 帧

封装成帧

封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。

首部和尾部的一个重要作用就是进行 帧定界 。

差错控制

在传输过程中可能会产生 比特差错 :1 可能会变成 0, 而 0 也可能变成 1。

可靠传输

接收方主机收到有误码的帧后,是不会接受该帧的,会将它丢弃

如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会再有更多措施

如果数据链路层向其上层提供的是可靠服务,那就还需要其他措施,来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本

以上三个问题都是使用 点对点信道的数据链路层 来举例的

如果使用广播信道的数据链路层除了包含上面三个问题外,还有一些问题要解决

如图所示,主机A,B,C,D,E通过一根总线进行互连,主机A要给主机C发送数据,代表帧的信号会通过总线传输到总线上的其他各主机,那么主机B,D,E如何知道所收到的帧不是发送给她们的,主机C如何知道发送的帧是发送给自己的

可以用编址(地址)的来解决

将帧的目的地址添加在帧中一起传输

还有数据碰撞问题

随着技术的发展,交换技术的成熟,

在 有线(局域网)领域 使用 点对点链路 和 链路层交换机 的 交换式局域网 取代了 共享式局域网

在无线局域网中仍然使用的是共享信道技术

3.2、封装成帧

介绍

封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧

帧头和帧尾中包含有重要的控制信息

发送方的数据链路层将上层交付下来的协议数据单元封装成帧后,还要通过物理层,将构成帧的各比特,转换成电信号交给传输媒体,那么接收方的数据链路层如何从物理层交付的比特流中提取出一个个的帧?

答:需要帧头和帧尾来做 帧定界

但比不是每一种数据链路层协议的帧都包含有帧定界标志,例如下面例子

前导码

前同步码:作用是使接收方的时钟同步

帧开始定界符:表明其后面紧跟着的就是MAC帧

另外以太网还规定了帧间间隔为96比特时间,因此,MAC帧不需要帧结束定界符

透明传输

透明

指某一个实际存在的事物看起来却好像不存在一样。

透明传输是指 数据链路层对上层交付的传输数据没有任何限制 ,好像数据链路层不存在一样

帧界定标志也就是个特定数据值,如果在上层交付的协议数据单元中, 恰好也包含这个特定数值,接收方就不能正确接收

所以数据链路层应该对上层交付的数据有限制,其内容不能包含帧定界符的值

解决透明传输问题

解决方法 :面向字节的物理链路使用 字节填充 (byte stuffing) 或 字符填充 (character stuffing),面向比特的物理链路使用比特填充的方法实现透明传输

发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面 插入一个转义字符“ESC” (其十六进制编码是1B)。

接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。

如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

帧的数据部分长度

总结

3.3、差错检测

介绍

奇偶校验

循环冗余校验CRC(Cyclic Rendancy Check)

例题

总结

循环冗余校验 CRC 是一种检错方法,而帧校验序列 FCS 是添加在数据后面的冗余码

3.4、可靠传输

基本概念

下面是比特差错

其他传输差错

分组丢失

路由器输入队列快满了,主动丢弃收到的分组

分组失序

数据并未按照发送顺序依次到达接收端

分组重复

由于某些原因,有些分组在网络中滞留了,没有及时到达接收端,这可能会造成发送端对该分组的重发,重发的分组到达接收端,但一段时间后,滞留在网络的分组也到达了接收端,这就造成 分组重复 的传输差错

三种可靠协议

停止-等待协议SW

回退N帧协议GBN

选择重传协议SR

这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中

停止-等待协议

停止-等待协议可能遇到的四个问题

确认与否认

超时重传

确认丢失

既然数据分组需要编号,确认分组是否需要编号?

要。如下图所示

确认迟到

注意,图中最下面那个数据分组与之前序号为0的那个数据分组不是同一个数据分组

注意事项

停止-等待协议的信道利用率

假设收发双方之间是一条直通的信道

TD :是发送方发送数据分组所耗费的发送时延

RTT :是收发双方之间的往返时间

TA :是接收方发送确认分组所耗费的发送时延

TA一般都远小于TD,可以忽略,当RTT远大于TD时,信道利用率会非常低

像停止-等待协议这样通过确认和重传机制实现的可靠传输协议,常称为自动请求重传协议ARQ( A utomatic R epeat re Q uest),意思是重传的请求是自动进行,因为不需要接收方显式地请求,发送方重传某个发送的分组

回退N帧协议GBN

为什么用回退N帧协议

在相同的时间内,使用停止-等待协议的发送方只能发送一个数据分组,而采用流水线传输的发送方,可以发送多个数据分组

回退N帧协议在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数

无差错情况流程

发送方将序号落在发送窗口内的0~4号数据分组,依次连续发送出去

他们经过互联网传输正确到达接收方,就是没有乱序和误码,接收方按序接收它们,每接收一个,接收窗口就向前滑动一个位置,并给发送方发送针对所接收分组的确认分组,在通过互联网的传输正确到达了发送方

发送方每接收一个、发送窗口就向前滑动一个位置,这样就有新的序号落入发送窗口,发送方可以将收到确认的数据分组从缓存中删除了,而接收方可以择机将已接收的数据分组交付上层处理

累计确认

累计确认

优点:

即使确认分组丢失,发送方也可能不必重传

减小接收方的开销

减小对网络资源的占用

缺点:

不能向发送方及时反映出接收方已经正确接收的数据分组信息

有差错情况

例如

在传输数据分组时,5号数据分组出现误码,接收方通过数据分组中的检错码发现了错误

于是丢弃该分组,而后续到达的这剩下四个分组与接收窗口的序号不匹配

接收同样也不能接收它们,讲它们丢弃,并对之前按序接收的最后一个数据分组进行确认,发送ACK4, 每丢弃一个数据分组,就发送一个ACK4

当收到重复的ACK4时,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻开始重传,具体收到几个重复确认就立刻重传,根据具体实现决定

如果收到这4个重复的确认并不会触发发送立刻重传,一段时间后。超时计时器超时,也会将发送窗口内以发送过的这些数据分组全部重传

若WT超过取值范围,例如WT=8,会出现什么情况?

习题

总结

回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议

在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议

由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高

选择重传协议SR

具体流程请看视频

习题

总结

3.5、点对点协议PPP

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议

PPP协议是因特网工程任务组IEIF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]

数据链路层使用的一种协议,它的特点是:简单;只检测差错,而不是纠正差错;不使用序号,也不进行流量控制;可同时支持多种网络层协议

PPPoE 是为宽带上网的主机使用的链路层协议

帧格式

必须规定特殊的字符作为帧定界符

透明传输

必须保证数据传输的透明性

实现透明传输的方法

面向字节的异步链路:字节填充法(插入“转义字符”)

面向比特的同步链路:比特填充法(插入“比特0”)

差错检测

能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。

工作状态

当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。

PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。

这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机

分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。

通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。

3.6、媒体接入控制(介质访问控制)——广播信道

媒体接入控制(介质访问控制)使用一对多的广播通信方式

Medium Access Control 翻译成媒体接入控制,有些翻译成介质访问控制

局域网的数据链路层

局域网最主要的 特点 是:

网络为一个单位所拥有;

地理范围和站点数目均有限。

局域网具有如下 主要优点 :

具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。

便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。

提高了系统的可靠性、可用性和残存性。

数据链路层的两个子层

为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会就将局域网的数据链路层拆成 两个子层 :

逻辑链路控制 LLC (Logical Link Control)子层;

媒体接入控制 MAC (Medium Access Control)子层。

与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关。 不管采用何种协议的局域网,对 LLC 子层来说都是透明的。

基本概念

为什么要媒体接入控制(介质访问控制)?

共享信道带来的问题

若多个设备在共享信道上同时发送数据,则会造成彼此干扰,导致发送失败。

随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术

静态划分信道

信道复用

频分复用FDM (Frequency Division Multiplexing)

将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。

频分复用 的所有用户在同样的时间 占用不同的带宽资源 (请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。

阅读全文

与计算机网络数据链路层使用心得相关的资料

热点内容
宽带与有线电视哪个网络好 浏览:872
尔雅网络课多少学分 浏览:816
纽约无线网络服务 浏览:609
锋火网络怎么样 浏览:528
计算机网络拓扑结构功能 浏览:453
网络学习电脑哪个网站好 浏览:968
手机连接上网但电脑没有网络 浏览:56
驻马店电信网络电视没有信号 浏览:301
怎么用手机调自家网络 浏览:517
江苏无线网络布线多少钱 浏览:579
手机内存不够网络慢 浏览:968
网络营销哪些行业好 浏览:690
什么是pv网络 浏览:64
打开设置重置网络 浏览:345
移动网络电视无法使用 浏览:596
华为2s怎样设置网络 浏览:575
车怎么装无线网络 浏览:414
路由器接光猫后显示网络不可用 浏览:293
做网络直播的如何用软路由 浏览:341
如何增加民宿在网络上的转化率 浏览:313

友情链接