计算机网络-数据链路层上篇

这篇具有很好参考价值的文章主要介绍了计算机网络-数据链路层上篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、数据链路层概述

二、封装成帧

三、差错检测

(一)奇偶校验

(二)循环冗余校验CRC

四、可靠传输

(一)停止-等待协议SW 

(二)后退N帧协议GBN

(三)选择重传协议SR

五、点对点协议PPP

(一)点对点协议PPP的帧格式

​(二)透明传输- 面向字节的异步链路采用插入转义字符的字节填充法

(三)透明传输-面向比特的同步链路采用插入比特0的比特填充法 

(四)点对点协议PPP的工作状态

六、媒体接入控制MAC

(一)静态划分信道

1、频分复用FDM

2、时分复用TDM

3、波分复用WDM

4、码分复用CDM

(二)动态接入控制

1、随机接入-总线局域网使用的协议:CSMA/CD(载波监听多址接入/碰撞检测)

2、随机接入-无线局域网使用的协议:CSMA/CA(载波监听多址接入/碰撞避免)


一、数据链路层概述

数据链路层在网络体系结构中所处的地位如下,当我们专门研究数据链路层时,可以视为,数据直接在数据链路层上通过链路传输

链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。

数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。

计算机网络-数据链路层上篇

数据链路层的三个重要问题:

① 封装成帧

经过层层封装后,到达数据链路层时加上帧头和帧尾形成帧

计算机网络-数据链路层上篇

封装后的格式如下:

计算机网络-数据链路层上篇

② 差错检测

帧在传输过程中遭遇干扰后可能出现误码(比特0变成比特1,反之亦然)

计算机网络-数据链路层上篇

此时接收方如何知道产生了误码呢? 可以利用检错码,发送方发送数据之前可以基于待发送的数据和检错算法计算出检错码,将其封装于帧尾。接收方接收到数据后就可以通过帧尾中的检错码和检错算法检测帧中是否有误码。

③ 可靠传输

当接受方接收到的数据有误码出现时,如果是基于非可靠传输协议发送的数据,那么直接丢弃而不做任何措施。如果是可靠传输协议,则发送方需要重新发送使接收方能正确的接收到数据

计算机网络-数据链路层上篇

上述是基于点对点的协议,如果是使用广播信道的数据链路层,那么除上述外还需要解决发送目的和碰撞问题

即如何知道数据是发送给C的,可以将帧发送的目的地址添加在帧中一起传输

计算机网络-数据链路层上篇

 计算机网络-数据链路层上篇

 碰撞问题是共享式局域网不可避免的,可以使用以太网的媒体接入控制协议CSMA/CD

计算机网络-数据链路层上篇

二、封装成帧

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

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

计算机网络-数据链路层上篇

  • 帧头和帧尾的作用之一就是帧定界

当数据链路层将帧交付到物理层,物理层将构成帧的各比特转换为电信号发送到传输媒体后,接收方如何从物理层交付的比特流中提取出一个个的帧呢?这就是帧头和帧尾存在的意义之一了,即帧定界

 如PPP帧的格式,在帧头和帧尾会加上帧定界标志计算机网络-数据链路层上篇

 但并不是每一种数据链路层的帧都包含帧定界标志,比如以太网版本2的MAC帧格式,是通过物理层在帧的前面添加前导码,并规定帧发送帧间间隔时间

计算机网络-数据链路层上篇

 计算机网络-数据链路层上篇

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

  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输
  • 面向比特的物理链路使用比特填充的方法实现透明传输

面向字节的物理链路

那当上层交付的数据中也包含了和帧定界一样的数据时,此时接收方会错误接收帧。解决方法是对数据进行扫描,每出现一个和帧定界一样的数据或者转义字符则在其后添加转义字符、接收端物理层在遇到第一个帧定界符时知道是帧的开始,接下来遇到转义字符就知道之后的1字节虽然与帧定界符相同,但其内容是数据了。

面向比特的物理链路:

在和帧定界一样的数据中使用零比特填充法,保证帧定界在整个帧中的唯一性

计算机网络-数据链路层上篇

为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit) 。

计算机网络-数据链路层上篇

三、差错检测

实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。

使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。

计算机网络-数据链路层上篇

如下所示的帧中都包含了帧检验序列FCS字段,其作用是让接收方的数据链路层检测接收到的数据是否产生误码。

计算机网络-数据链路层上篇

接下来介绍校验方法

(一)奇偶校验

在待发送的数据后面添加1位奇偶校验位使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)。

  • 如果有奇数个位发生误码则奇偶性发生变化可以检查出误码,
  • 如果有偶数个位发生误码则奇偶性不发生变化不能检查出误码(漏检)

计算机网络-数据链路层上篇

 (二)循环冗余校验CRC

  1. 收发双方约定好一个生成多项式G(x);
  2. 发送方基于待发送的数据和生成多项式计算出差错检测码,将其添加到待传输数据的后面一起传输
  3. 接收方通过生成多项式来计算收到的数据是否产生了误码;

计算机网络-数据链路层上篇

练习题

计算机网络-数据链路层上篇

1、检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
2、要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用
3、循环元余校验CRC有很好的检错能力(检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
4、在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务

四、可靠传输

当接收方检测出帧中出现误码,如果数据链路层向上层提供的服务类型不同做法也不同

  • 不可靠传输服务,那么仅仅丢弃有误码的帧,其他什么也不做;
  • 可靠传输服务,实现发送方发送什么,接收方就收到什么。

计算机网络-数据链路层上篇

一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。

计算机网络-数据链路层上篇

可靠传输的三种实现机制

(一)停止-等待协议SW 

计算机网络-数据链路层上篇

 计算机网络-数据链路层上篇

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

计算机网络-数据链路层上篇

当往返时延RTT远大于数据帧发送时延To时 (例如使用卫星链路),信道利用率非常低。

若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低

为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退N帧协议GBN选择重传协议SR

(二)后退N帧协议GBN

停止-等待协议的利用率很低,当出现超时重传,其利用率更低。而使用流水线传输可提高信道利用率

计算机网络-数据链路层上篇

回退N帧协议就是基于流水线传输,每次发送窗口内的组,得到接收方的ACK后,发送窗口往后移动

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇

接收方接收后给发送方发送ACK确认后,发送窗口往后移动

计算机网络-数据链路层上篇

接收方不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后 (由具体实现决定),对按序到达的最后一个数据分组发送确认。ACKn表示序号为n及以前的所有数据分组都已正确接收,即累计确认。如下图,接收方接收到数据后向发送方发送了ACK1和ACK4,而ACK1在发送过程中丢失了,但此时不需要重传,因为ACK4被收到了,代表着接受方确认了ACK4前面的分组

计算机网络-数据链路层上篇

当出现差错时,比如下图,分组5出现错误被接收方丢弃,此时因为接收方的窗口序号为5,后面的1076分组都不匹配,都被丢弃,此时接收方每丢弃一个分组就会发给发送方一个ACK,该ACK是最后一个正确接收分组的序号,即ACK4。发送方接收到ACK4后就知道刚才发送的几个分组都被丢弃了,此时根据发送方设置的接收重复ACK个数来决定是否立即重传,或者等待超时计时器超时结束再重传。

可以看到该过程中1076也连带被丢弃了,这就是所谓的回退N帧,可见,当通信线路不好时,回退N帧协议的利用率并不比停止-等待协议高。

计算机网络-数据链路层上篇

总结

计算机网络-数据链路层上篇

 (三)选择重传协议SR

回退N帧协议的接收窗口尺寸Wr只能等于1,因此接收方只能按序接收正确到达的数据分组
一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃 (尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。
可设法只重传出现误码的数据分组。因此,接收窗口的尺寸Wr不应再等于1 (而应大于1),为了进一步提高性能,以便接收方先收下失序到达但无误码并目序号(使用逐一确认而不是累计确认)落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层,这就是选择重传协议

 计算机网络-数据链路层上篇

当2号分组出现差错,接收方丢弃后,由于发送方只接收到3号分组的ACK,此时窗口不能往前滑动,等2号分组的重传计时器超时,重新发送2号分组

计算机网络-数据链路层上篇

总结

计算机网络-数据链路层上篇

五、点对点协议PPP

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

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

PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:

  • 对各种协议数据报的封装方法 (封装成顿)
  • 链路控制协议LCP        用于建立、配置以及测试数据链路的连接
  • 一套网络控制协议NCPs        其中的每一个协议支持不同的网络层协议

 计算机网络-数据链路层上篇

(一)点对点协议PPP的帧格式

计算机网络-数据链路层上篇

当数据中出现和帧定界相同的数据时

(二)透明传输- 面向字节的异步链路采用插入转义字符的字节填充法

 计算机网络-数据链路层上篇

(三)透明传输-面向比特的同步链路采用插入比特0的比特填充法 

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇

(四)点对点协议PPP的工作状态

计算机网络-数据链路层上篇

六、媒体接入控制MAC

共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。

计算机网络-数据链路层上篇

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

(一)静态划分信道

复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽

计算机网络-数据链路层上篇

1、频分复用FDM

将传输线路的频带资源划分成多个子频带,形成多个子信道、各子信道需要划分隔离频带,以免造成子信道间的干扰。当多路信号输入一个多路复用器时,这个复用器将每一路信号调制到不同的载波上,接收端由相应的分用器通过滤波将各路信号分开,将合成的复用信号恢复成原始的多路信号。

很显然,频分复用的所有用户同时占用不同的频带资源进行通信

计算机网络-数据链路层上篇

2、时分复用TDM

时分复用技术将传输线路的带宽资源按时隙轮流分配给不同的用户,每对用户只在所分配的间隙里使用线路传输数据、时分复用技术将时间划分为了一段段等长的时分复用帧。每一个时分复用的用户在每一个时分复用帧中占用固定序号的时隙,如下图所示,每一个用户所占用的时隙是周期性出现的,其周期就是时分复用帧的长度。很显然,时分复用的所有用户在不同时间占用同样的频带宽度。

计算机网络-数据链路层上篇

3、波分复用WDM

波分复用就是光的频分复用,下图是8路传输速率均为2.5Gbit/s的光载波,其波长均为1310nm,经光调制后,分别将波长变换到1550~1561.2nm,每个光载波相隔1.6nm。这8个很接近的光载波经过光复用器(或称合波器),就在一根光纤上传输,因此在一根光纤上传输的速率就达到了8*2.5Gbit/s=20Gbit/s。光信号传输一段时间后会衰减,需要对衰减了的信号进行放大才能继续传输,这就是掺铒光纤放大器的作用。

计算机网络-数据链路层上篇

4、码分复用CDM

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇

(二)动态接入控制

1、随机接入-总线局域网使用的协议:CSMA/CD(载波监听多址接入/碰撞检测)

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇

CSMA/CD协议-争用期

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇 CSMA/CD协议-最小帧长

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇  CSMA/CD协议-最大帧长

 计算机网络-数据链路层上篇

CSMA/CD协议-帧发送流程

计算机网络-数据链路层上篇

CSMA/CD协议-帧接收流程

计算机网络-数据链路层上篇

 2、随机接入-无线局域网使用的协议:CSMA/CA(载波监听多址接入/碰撞避免)

计算机网络-数据链路层上篇

隐蔽站问题

计算机网络-数据链路层上篇

 计算机网络-数据链路层上篇

帧间间隔IFS

计算机网络-数据链路层上篇CSMA/CA的工作原理

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇

问题1:源站为什么在检测到信道空闲后还要再等待一段时间DIFS?

就是考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送

问题2:目的站为什么正确接收到数据帧hou还要等待一段时间SIFS才能发送ACK帧?

SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧在这段时间内,一个站点应当能够从发送方式切换到接收方式。

问题3:信道由忙转为空闲且经过DIFS时间后,还要退避一段随机时间才能使用i信道?

防止多个站点同时发送数据产生碰撞

CSMA/CA的退避算法

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇

CSMA/CA的信道预约和虚拟载波监听

为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约

  1. 源站在发送数据之前先发送一个短的控制帧,称为请求发送RTS(Resquest to Send),它包括地址,目的地址以及这次通信(包括相应确认帧)所需的持续时间。
  2. 若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Clear To Send),它也包括这次通信所需的持续时间 (从RTS顿中将此持续时间复制到CTS帧中)。
  3. 源站收到CTS倾后,再等待一段时间SIFS后,就可发送其数据帧
  4. 若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK.

计算机网络-数据链路层上篇

计算机网络-数据链路层上篇文章来源地址https://www.toymoban.com/news/detail-508218.html

到了这里,关于计算机网络-数据链路层上篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络 数据链路层

         

    2024年02月13日
    浏览(40)
  • 【计算机网络】——数据链路层

    数据链路层之所以要把比特组合成帧为单位传输,是为了出错的时候,只重发出错的帧,而不必重发全部数据,从而提高效率。 组帧主要解决帧定界、帧同步、透明传输等问题。 透明传输:不管所传输的数据是什么样的比特组合都能在链路上传送。(数据中出现与定界符相同

    2024年02月12日
    浏览(43)
  • 计算机网络之数据链路层

    在研究数据链路层时,我们可忽略网络体系中的其他层只关注与数据链路层本身。 链路(Link)是指从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。 数据链路(Data Link)是基于链路的。当在一条链路上传送数据时,除需要链路本身,

    2024年01月25日
    浏览(50)
  • 计算机网络-数据链路层下篇

    目录 计算机网络 七、MAC地址,IP地址及ARP地址 (一)MAC地址 (二)IP地址 (三)ARP地址 八、集线器和交换机的区别 九、以太网交换机自学习和转发帧的流程 十、以太网交换机的生成树协议STP 十一、虚拟机与网VLAN (一)VLAN概述 (二)虚拟局域网VLAN的实现机制 1、IEEE 80

    2024年02月11日
    浏览(113)
  • 计算机网络——数据链路层(1)

            在计算机网络中,数据链路层承担着点对点通信的任务,用于跨物理层在网段节点之间参数数据。它在网络分层中处于物理层之上,网路层之下。         在链路层的讨论中,我们将看到两种截然不同类型的链路层信道。第一种类型是广播信道,这种信道用于连

    2024年01月18日
    浏览(41)
  • 计算机网络(三)数据链路层

    数据链路层功能 : 在物理层提供服务的基础上向网络层提供服务,主要作用是加强物理层传输原始比特流的功能, 将物理层提供的可能出错的物理连接改在为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路 为网络层提供服务 : 无确认的无连接服务: 源机

    2024年04月17日
    浏览(34)
  • 精炼计算机网络——数据链路层(一)

    上篇文章,我们一同学完了物理层的全部内容,在本篇文章中,我们初步学习数据链路层,理解数据链路和帧的相应概念,知晓封装成帧,透明传输,差错检测的含义。 链路是从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换节点。 数据链路则不同。这是

    2024年02月04日
    浏览(58)
  • 【计算机网络】概述及数据链路层

    每一层只依赖于下一层所提供的服务,使得各层之间相互独立、灵活性好,已于实现和维护,并能促进标准化工作。 应用层:通过应用进程间的交互完成特定的网络应用,HTTP、FTP、DNS,应用层交互的数据单元被称为报文(Message)。 表示层:解决用户信息的语法表示问题,对数

    2024年02月13日
    浏览(35)
  • 计算机网络与技术——数据链路层

    😊各位小伙伴们,本专栏新文章出炉了!!! 数据链路层是 OSI参考模型 中的 第二层 ,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层的

    2024年02月06日
    浏览(45)
  • 考研408 | 【计算机网络】 数据链路层

    结点:主机、路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。 帧:链路层的协议数据单

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包