zoukankan      html  css  js  c++  java
  • 数据链路层(1) 数据链路层基本概念

    一、数据链路层基本概念

      1.1 结点:数据链路层上的结点主要是主机和路由器。由物理线路联接起来的两个结点,又叫相邻结点。

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

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

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

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

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

      

    二、数据链路层具备的基本功能

      (1)为网络层提供服务

      数据链路层向网络层提供三种基本功能:1、无确认无连接服务,2、有确认无连接服务,3、有确认面向连接服务

      无确认无连接服务:通常用于实时服务,或误码率比较低的通信信道。源主机在发送数据时没有事先与目标主机建立链接,而且目的主机在收到数据时,也不需要发送确认数据,如果帧丢失,数据链路层也不负责重发,而直接交由上层处理。

      有确认无连接服务:源主机在发送数据时没有事先与目标主机建立链接,但目的主机在收到数据时,必须发送确认数据帧,如果源主机在规定时间内没有收到确认数据,则源主机则重发一次数据。这就可以提搞链路上的可靠性,一般用于无线传输。

      有确认面向链接服务:源主机在发送数据时事先与目标主机建立链接,同时目的主机在收到数据时,必须发送确认数据帧。

      (2)链接管理,即连接的建立、维持、释放(用于面向连接的服务)。

      (3)组帧。

      (4)流量控制,限制发送方的发送速度。

      (5)差错控制,差错控制主要有帧错或是位错。

    三、封装成帧

      封装成帧就是在一段网络层IP数据报的前后部分添加数据链路层首部和数据链路层尾部,构成一个链路层数据帧,接收端在收到物理层上交的比特流后,就根据链路层首部和链路层尾部的标记,从收到的比特流中识别帧的开始和结束。帧首部和帧尾部包含许多的控制信息,其中一个重要作用是确定数据帧的启始位置和结束位置。图例如下:

      

      帧同步:接收方根据接收到的二进制比特流中区分帧的起始和终止。

      注:封装成帧是数据发送端完成的操作,而帧同频则是数据接收端完成的操作

      数据封装成帧的四种方法:1、字符计数法,2、带字符填充的首尾界符法,3、带位填充的首尾标志法,4、物理编码违例法

      (1)字符计数法

      字符计数法用一个特殊的字符表示一帧的开始,然后用一个字段标明该帧包含的字节数,当接收方收到帧时,根据此字段,便可知道帧的结束位和下一帧的开始位。这种方法的问题是,如果计数字段在传输中出错,则接收方无法判断传输帧的结束位,也无法知道下一帧的开始,使发送方和接收方无法同步。即使接收方通过差错控制得知传输出错,也不知道应该让发送方跳回多少字符重传。

      (2)带字符填充的首尾界符法

      在每一帧的头部用帧开始字符标记,在帧的尾部用帧结束字符标记,但在数据传输中,如果帧首尾定界符出现在信息字段中,将会造成对数据的错误接收,为避免这种现象出现,采用在信息位中出现的定界符前填充转义字符的方法来区别

      (3)带位填充的首尾标志法

      使用特定的位模式01111110作为帧的开始和结束标志,为不使信息字段中出现的比特流01111110被误判为帧的首尾标志,发送方在信息位中每遇到5个连续的比特1时,将自动在其后插入一个比特0,在接收方收到连续的5个比特1时,则自动删除后面紧跟的一个比特0。

      (4)物理编码违例法

      将数据位“1”编码成高-低电平对,数据位“0”编码成低-高电平对,这样每一个数据位在中间都有一次跳变,使接收方容易将帧的边界定位。

      注:由于字符计数法中计数记段出错,而影起帧首和帧尾不方便定界的问题;带字符填充的首尾界符法实现上的复杂性和不兼容性,目前普遍使用的帧同步方法是带位填充的首尾标志法和物理编码违例法

    四、透明传输

      透明传输是指不管所传的数据是什么样的比特组合,都能在链路上传输,当所传输的数据中的比特组成恰巧与链路层的某个控制信息完全一致时,就必须采取适当的措施,这样才不会使控制数据与需要传输的数据混淆,这样才能确保数据链路层的透明传输。

  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/PBDragon/p/14904677.html
Copyright © 2011-2022 走看看