简述计算机网络数据链路层

数据链路层

   数据链路层是什么?

     数据链路层工作在七层网络模型的第二层,它定义了在单个链路上如何传输数据。

数据链路层:是为了提供功能上和规程上的方法,以便建立、维护和释放网络实体间的数据链路 。

物理链路(物理线路):是由传输介质与设备组成的。原始的物理传输线路是指没有采用高层差错控制的基本的物理传输介质与设备。

数据链路(逻辑线路):在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。从数据发送点到数据接收点所经过的传输途径。

当采用复用技术时,一条物理链路上可以有多条数据链路。

  为什么需要数据链路层?

  在原始的物理线路上传输数据信号总是不尽人意的会出现各种错误。

   设计数据链路层的主要目的就是在原始的、有差错的物理传输线路的基础上,采取差错检测、差错控制与流量控制等方法,将有差错的物理线路改进成逻辑上无差错的数据链路,向网络层提供高质量的服务。

  该层用户提供透明的和可靠的数据传送基本服务。透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠的传输使用户免去对丢失信息、干扰信息及顺序不正确等的担心。在物理层中这些情况都可能发生,在数据链路层中必须用纠错码来检错与纠错。数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路。

   帧同步

  为了使传输中发生差错后只将有错的有限数据进行重发,数据链路层将比特流组合成以帧为单位传送。每个帧除了要传送的数据外,还包括校验码,以使接收方能发现传输中的差错。帧的组织结构必须设计成使接收方能够 明确地从物理层收到的比特流中对其进行识别,也即能从比特流中区分出帧的起始与终止,这就是帧同步要解决的问题。由于网络传输中很难保证计时的正确和一致,所以不可采用依靠时间间隔关系来确定一帧的起始与终止的方法。

(1)字节计数法:

(2)使用字符填充的首尾定界符法:

(3)使用比特填充的首尾标志法:

(4)违法编码法:

  差错控制

   一个实用的通信系统必须具备发现(即检测)这种差错的能力,并采取某种措施纠正之,使差错被控制在所能允许的尽可能小的范围内,这就是差错控制过程,也是数据链路层的主要功能之一。对差错编码(如奇偶校验码,检查和或CRC)的检查,可以判定一帧在传输过程中是否发生了错误。一旦发现错误,一般可以采用反馈重发的方法来纠正。这就要求接收方收完一帧后,向发送方反馈一个接收是否正确的信息,使发送方所在此作出是不需要重新发送的决定,也即发送方仅当收到接收方已正确接收的反馈信号后才能认为该帧已经正确发送完毕,否则需要重新发送直至正确为止。物理信道的突发噪声可能完全“淹没”一帧,即使得整个数据帧或反馈信息帧丢失,这将导致发送方永远收不到接收方发来的反馈信息,从而使传输过程停滞.为了避免出现这种情况,通常引入计时器来限定接收方发回反馈信息的时间间隔,当发送方发送一帧的同时也启动计时器,若在限定时间间隔内未能收到接收方的反馈信息,即计时器超时,则可认为传的帧已出错或丢失,继而要重新发送。由于同一帧数据可能被重复发送多次,就可能引起接收方多次收到同一帧并将其递交给网络层的危险。为了防止发生这种危险,可以采用对发送的帧编号的方法,即赋予每帧一个序号,从而使接收方能从该序号来区分是新发送来的帧还是已经接收但又重新发送来的帧,以此来确定要不要将接收到的帧递交给网络层。数据链路层通过使用计数器和序号来保证每帧最终都被正确地递交给目标网络层一次。

  流量控制

  流量控制并不是数据链路层所特有的功能,许多高层协议中也提供流时控功能,只不过流量控制的对象不同而已。对于数据链路层来说,控制的是相邻两节点之间数据链路上的流量,而对于运输层来说,控制的则是从源到最终目的之间端的流量。由于收发双方各自使用的设备工作速率和缓冲存储的空间的差异,可能出现发送方发送能力大于接收方接收能力的现象,如若此时不对发送方的发送速率(也即链路上的信息流量)作适当的限制,前面来不及接收的帧将被后面不断发送来的帧“淹没”,从而造成帧的丢失而出错。由此可见,流量控制实际上是对发送方数据流量的控制,使其发送率不致超过接收方所能承受的能力。这个过程需要通过某种反馈机制使发送方知道接收方是否能跟上发送方,也即需要有一些规则使得发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待收到某种反馈信息后继续发送。

  链路管理

  链路管理功能主要用于面向连接的服务。当链路两端的节点要进行通信前,必须首先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号初始化,然后才能建立连接,在传输过程中则要能维持该连接。如果出现差错,需要重新初始化,重新自动建立连接。传输完毕后则要释放连接。数据连路层连接的建立维持和释放就称作链路管理。在多个站点共享同一物理信道的情况下(例如在LAN中)如何在要求通信的站点间分配和管理信道也属于数据链路层管理的范畴。

  差错控制

  用以使发送方确定接收方是否正确收到了由它发送的数据信息的方法称为反馈差错控制。通常采用反馈检测和自动重发请求两种基本方法实现。

反馈检测法

  反馈检测法也称回送校验或“回声”法,主要用于面向字符的异步传输中,如终端与远程计算机间的通信,这是一种无须使用任何特殊代码的错误检测法。双方进行数据传输时,接收方将接收到的数据(可以是一个字符,也可以是一帧)重新发回发送方,由发送方检查是否与原始数据完全相符。若不相符,则发送方发送一个控制字符(如DEL)通知接收方删去出错的数据,并重新发送该数据;若相符,则发送下一个数据。反馈检测法原理简单、实现容易,也有较高的可靠性,但是,每个数据均被传输两次,信道利用率很低。一般,在面向字符的异步传输中,信道效率并不是主要的,所以这种差错控制方法仍被广泛使用。

  自动重发法

  (ARQ法):实用的差错控制方法,应该既要传输可靠性高,又要信道利用率高。为此让发送方将要发送的数据帧附加一定的冗余检错码一并发送,接收方则根据检错码对数据帧进行错误检测,若发现错误,就返回请求重发的答,发送方收到请求重发的应答后,便重新传送该数据帧。这种差错控制方法就称为自动请求法,简称ARQ法。ARQ法仅返回很少的控制信息,便可有效地确认所发数据帧是否被正确接收。

  流量控制

  流量控制涉及链路上字符或帧的传输速率的控制,以使接收方在接收前有足够的缓冲存储空间来接受每一个字符或帧。例如,在面向字符的终端--计算机链路中,若远程计算机为许多台终端服务,它就有可能因不能在高峰时按预定速率传输全部字符而暂时过载。同样,在面向帧的自动重发请求系统中,当待确认帧数量增加时,有可能超出缓冲器存储容量,也造成过载。

原创文章,作者:TQT,如若转载,请注明出处:http://www.178linux.com/75816

赞 (0)
TQTTQT
上一篇 2017-05-15 20:08
下一篇 2017-05-15 20:56

相关推荐

  • 8.3_Linux习题和作业

    课堂习题 1.当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? 答:不能cd进该目录 2.当用户xiaoqiang对/testdir 目录无读权限时,意味着无法做哪些操作? 答:不能查看目录内的文件列表,不能cd,也不能查看目录里面文件的元数据 3.当用户wangcai 对/testdir 目录无写权限时,该目录下的只读文件…

    Linux干货 2016-08-04
  • Linux正则表达式

    正则表达式

    2017-12-24
  • linux网络命令与软件管理

    1、描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景和区别 网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,用来连接不同网段。 集线器称为“Hub”,主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。 二层交换机工作于OSI模型的第2层(数据链路层),可识别数据包中的MAC地址信息,…

    Linux干货 2016-12-18
  • Linux计划任务

    计划任务 Linux任务计划、周期性任务执行 • 未来的某时间点执行一次任务:     at     batch:系统自行选择空闲时间去执行此处指定的任务 • 周期性运行某任务:      cron at任务 …

    Linux干货 2016-09-10
  • 浅谈DNS基本原理以及实现方法(一)

     DNS(Domain Name System,域名系统),是目前互联网上最不可或缺的服务器之一,我们在互联网从访问一个网站,到发送一封电子邮件,再到定位域中的域控制器,无时无刻不再使用着DNS为我们提供的服务,那为什么我们会需要这样一个服务那?带着这样一个疑问让我们先来认识一下什么是DNS吧  DNS最核心的工作就是域名解析,也就是把计…

    Linux干货 2015-12-15
  • 数据的游戏:冰与火

    我对数据挖掘和机器学习是新手,从去年7月份在Amazon才开始接触,而且还是因为工作需要被动接触的,以前都没有接触过,做的是需求预测机器学习相关的。后来,到了淘宝后,自己凭兴趣主动地做了几个月的和用户地址相关数据挖掘上的工作,有一些浅薄的心得。下面这篇文章主要是我做为一个新人仅从事数据方面技术不到10个月的一些心得,也许对你有用,也许很傻,不管怎么样,欢迎指…

    Linux干货 2016-08-15