数据链路层的基本功能
设计数据链路层的原因1、在原始的物理线路上传输数据信号是有差错的。2、设计数据链路层的主要目的就是在原始的、有差错的物理传输线路的基础上,采取差错检测、差错控制与流量控制等方法,将有差错的物理线路改进成逻辑上无差错的数据链路,向网络层提供高质量的服务。3、从网络参考模型的角度看,物理层之上的各层都有改善数据传输质量的责任,数据链路层是最重要的一层。数据链路层的最基本的功能是向该层用户提供透明的和可靠的数据传送基本服务。透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠的传输使用户免去对丢失信息、干扰信息及顺序不正确等的担心。在物理层中这些情况都可能发生,在数据链路层中必须用纠错码来检错与纠错。数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路。如果您想用尽量少的词来记住数据链路层,那就是:“帧和介质访问控制”。 为了使传输中发生差错后只将有错的有限数据进行重发,数据链路层将比特流组合成以帧为单位传送。每个帧除了要传送的数据外,还包括校验码,以使接收方能发现传输中的差错。帧的组织结构必须设计成使接收方能够 明确地从物理层收到的比特流中对其进行识别,也即能从比特流中区分出帧的起始与终止,这就是帧同步要解决的问题。由于网络传输中很难保证计时的正确和一致,所以不可采用依靠时间间隔关系来确定一帧的起始与终止的方法。(1)字节计数法:这是一种以一个特殊字符表示一帧的起始并以一个专门字段来标明帧内字节数的帧同步方法。接收方可以通过对该特殊字符的识别从比特流中区分出帧的起始并从专门字段中获知该帧中随后跟随的数据字节数,从而可确定出帧的终止位置。面向字节计数的同步规程的典型代表是DEC公司的数字数据通信报文协议DDCMP(Digital Data Communications Message Protocol)。DDCMP采用的帧格式如图3-1。控制字符SOH标志数据帧的起始。实际传输中,SOH前还要以两个或更多个同步字符来确定一帧的起始,有时也允许本帧的头紧接着上帧的尾,此时两帧间就不必再加同步字符。 count字段共有14位,用以指示帧中数据段中数据的字节数,14位二进制数的最大值为2-1=16383,所以数据最大长度为8×16383=131064。DDCMP协议就是靠这个字节计数来确定帧的终止位置的。DDCMP帧格式中的ACK、SEG、ADDR及FLAG中的第2位,CRC1、CRC2分别对标题部分和数据部分进行双重校验,强调标题部分单独校验的原因是,一旦标题部分中的CONUT字段出错,即失却了帧边界划分的依据,将造成灾难性的后果。由于采用字符计数方法来确定帧的终止边界不会引起数据及其它信息的混淆,因而不必采用任何措施便可实现数据的透明性(即任何数据均可不受限制地传输)。(2)使用字符填充的首尾定界符法:该法用一些特定的字符来定界一帧的起始与终止,为了不使数据信息位中出现的与特定字符相同的字符被误判为帧的首尾定界符,可以在这种数据字符前填充一个转义控制字符(DLE)以示区别,从而达到数据的透明性。但这种方法使用起来比较麻烦,而且所用的特定字符过份依赖于所采用的字符编码集,兼容性比较差。(3)使用比特填充的首尾标志法:该法以一组特定的比特模式(如01111110)来标志一帧的起始与终止。本章稍后要详细介绍的HDLC规程即采用该法。为了不使信息位中出现的与特定比特模式相似的比特串被误判为帧的首尾标志,可以采用比特填充的方法。比如,采用特定模式01111110,则对信息位中的任何连续出现的五个“1”,发送方自动在其后插入一个“0”,而接收则做该过程的逆操作,即每接收到连续五个“1”,则自动删去其后所跟的“0”,以此恢复原始信息,实现数据传输的透明性。比特填充很容易由硬件来实现,性能优于字符填充方法。(4)违法编码法:该法在物理层采用特定的比特编码方法时采用。例如,一种被称作曼彻斯特编码的方法,是将数据比特“1”编码成“高-低”电平对,而将数据比特“0”编码成“低-高”电平对。而“高-高”电平对和“低-低”电平对在数据比特中是违法的。可以借用这些违法编码序列来定界帧的起始与终止。局域网IEEE 802标准中就采用了这种方法。违法编码法不需要任何填充技术,便能实现数据的透明性,但它只适用于采用冗余编码的特殊编码环境。由于字节计数法中COUNT字段的脆弱性以及字符填充法实现上的复杂性和不兼容性,较普遍使用的帧同步法是比特填充和违法编码法。 为了提高信道的有效利用率。如前节所述采用了发送方不等待确认帧返回就连续发送若干帧的方案,这样的发送过程就象一条连续的流水线,故又称为管道(pipelining)技术。由于允许连续发送多个未被确认折帧,帧号就采用多位二进制数才能加以区分。因为凡被发送出去但沿尚未被确认的帧都可能出错或丢失而要求重发,因而这些帧都要保留下来。这就要求发送方有较大的发送缓冲区保留可能要求重发的未被确认的帧。但是缓冲区容量总是有限的,如果接收方不能以发送方的发送速率处理收到的帧,则还是可能用完缓冲容量而暂时过载。为此,可引入类似于空闲RQ方案的调整措施,其本质是在收到一确定帧之前,对发送方可发送的帧的数目加以限制,这是由发送方调整保留在重发表中的待确认帧的数目来实现的。如果接收方来不及对收到的帧进行处理,则接收方停发确认信息,此时送方的重发表增长,当达到重发表限度时,就不再发送新帧,直至再次收到确认信息为止。 为了实现此方案,存放未确认帧的重发表中应设置未确认帧数目的最大限度,这一限度被称为链路的发送窗口。显然,如果窗口设置为1,即发送方缓冲能力公为一个帧,则传输控制方案就回到了空闲RQ方案,此时传输效率很低,故窗口限度应选为使接收方尽量能处理或接受收到的所有帧。当然选择时还必须考虑诸如帧的最大长度、可使用的缓冲存容量以及传输的比特速率等因素。重发表是一个连续序号的列表,对应发送方已发送但尚未确认的那些帧。这些帧的序号有一个最大值即发送窗口的限度。所谓发送窗口就是指示发送方已发送但尚未确认的帧序号队列的界,其上、下界分别称为发送窗口的上、下沿,上、下沿的间距称为窗口尺寸。接收方类似地有接收窗口,它指示允许接收的帧的序号。接收窗口的上、下界也是随时间滑动的。发送方每次发送一帧后,待确认帧的数目便增1;同样,发送方每收到一个确认信息后,待确认帧的数目便减1。当重发计数值,即待确认帧的数目等于发送窗口时,便停止发送新的帧。一般帧号只取有限位二进制数,到一定时间后就又反复循环,若帧号配3位二进制,则帧号在0~7间循环。如果发送窗口限度取值为2,则发送过程如图3-4所示。图中发送方阴影表示发送窗口,接收方阴影则相应可视作接收窗口。当传送过程进行时,窗口位置一直在滑动,所以也称为滑动窗口(Slidding Window),或简称为滑窗。图3-4中滑动窗口的状态变化过程可叙述如下(假设发送窗口为2,接收窗口为1)。初始态,发送方没有帧发出,发送窗口前后沿相等。接收窗口限度为1,它允许接收0号帧。发送方已发送0号帧,此时发作口打开(即前沿加1),窗口对准0号,表示已发出但尚未收到确认返回信息。接收窗口状态同前,指示允许接收0帧。发送方在未收到0帧的确认返回信息前,继续发送1号帧。发送窗口状态不变。接收方已收到0帧,窗口滑动一格,表示准备接收1号帧。发送窗口状态不变。发送方已收到0号帧的确认返回信息,发送窗口后沿加1,表示从重发表中删除0号帧,接收窗口状态不变。发送方继续发送2帧,发送窗口前沿加1,表示2号帧也纳入待确认之列。接收窗口状态仍不变。接收方已收到1号帧,接收窗口滑动一格,表示准备接收2号帧。发送窗口状态不变。发送方收到接收方发来的1号帧收毕的确认信息,发送窗口后沿加1,表示从重发表中删除最早进入的1号帧。接收窗口状态不变。 一般说来,凡是在一定范围内到达的帧,那怕不按顺序,接收方也要接收下来。若把这个范围看成是接收窗口的话,则接收窗口的大小应该是大于1的,而Go-back-N正是接收窗口等于1的一个特例。选择重发也可以看作是一种滑动窗口协议,只不过其发送窗口和接收窗口都大于1。若从滑动窗口的观点来统一看待空闲RQ、Go-back-N及选择重发三种协议,它们的差别公在于各自窗口的大小不同而已:空闲RQ:发送窗口=1,接收窗口=1Go-back-N:发送窗口>1,接收窗口=1选择重发:发送窗口>1,接收窗口>1若帧序号采用3位二进制编码,则最大序号为SMAX=2^3-1=7。对于有序接收方式,发送窗口最大尺寸选为SMAX;对于无笆接收方式,发送窗口最大尺寸至多是序号范围的一半。管理超时控制的计时器应等于发送缓冲器数,而不是序号空间的大小。实际上,每一个缓冲器应对应一个计时器,当计时器超时时,该对应缓冲器的内容重发。按收方必须设置的缓冲器数应该等于接收窗口尺寸,而不是序号空间的大小。

数据链路层的主要功能
数据链路层要完成许多特定的功能。这些功能包括为网络层提供设计良好的服务接口,处理帧同步,处理传输差错,调整帧的流速,不至于使慢速接收方被快速发送方淹没。 数据链路层的功能是为网络层提供服务。其基本服务是将源机器中来自网络层的数据传输给目的机器的网络层。 数据链路层一般都提供3种基本服务,即无确认的无连接服务、有确认的无连接服务、有确认 的面向连接的服务。(1)无确认的无连接服务无确认的无连接服务是源机器向目的机器发送独立的帧,而目的机器对收到的帧不作确认。如果由于线路上的噪声而造成帧丢失,数据链路层不作努力去恢复它,恢 复工作留给上层去完成。这类服务适用于误码率很低的情况,也适用于像语音之类的实时传输,实时传输情况下有时数据延误比数据损坏影响更严重。大多数局域网 在数据链路层都使用无确认的无连接服务。(2)有确认的无连接服务这种服务仍然不建立连接,但是所发送的每一帧都进行单独确认。以这种方式,发送方就会知道帧是否正确地到达。如果在某个确定的时间间隔内,帧没有到达,就必须重新发此帧。(3)有确认的面向连接的服务采用这种服务,源机器和目的机器在传递任何数据之前,先建立一条连接。在这条连接上所发送的每一帧都被编上号,数据链路层保证所发送的每一帧都确实已收 到。而且,它保证每帧只收到一次,所有的帧都是按正确顺序收到的。面向连接的服务为网络进程间提供了可靠地传送比特流的服务。2.帧同步在数据链路层,数据的传送单位是帧。所谓帧,是指从物理层送来的比特流信息按照一 定的格式进行分割后形成的若干个信息块。数据一帧一帧地传送,就可以在出现差错时,将有差错的帧再重传一次,从而避免了将全部数据都重传。帧同步是指接收方应当能从收到的比特流中准确地区分出一帧的开始和结束在什么地方。3.差错控制传送帧时可能出现的差错有:位出错,帧丢失,帧重复,帧顺序错。位 出错的分布规律及出错位的数量很难限制在预定的简单模式中,一般采用漏检率及其微小的CRC检错码再加上反馈重传的方法来解决。为了保证可靠传送,常采用 的方法是向数据发送方提供有关接收方接收情况的反馈信息。一个否定性确认意味着发生了某种差错,相应的帧必须被重传。这种做法即是反馈重传。更复杂的情况是,一个帧可能完全丢失(比如,消失在突发性噪声中)。在这种情况下,发送方将会永远等下去。 这个问题可以通过在数据链路层中引入计时器来解决。
数据链路层:OSI参考模型中的第二层

数据链路层包括哪些主要功能
一、数据链路层使用的信道分类 数据链路层使用的信道主要有以下两种类型:点对点信道:这种信道使用一对一的点对点通信方式。广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。二、各层传输的数据单位网络层:IP数据报(或IP分组)数据链路层:帧物理层:比特三、数据链路层传输数据时的三个基本问题(1)封装成帧(framing)——在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界。(2) 透明传输

数据链路层的有什么功能?
数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其连接.媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不等的一次或多次数据通信.1、数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能2、与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,NFS,SMTP等。3、数据链路(逻辑线路):在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。从数据发送点到数据接收点(点到点 point to point)所经过的传输途径。
数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其 连接.媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不等的一次或多次数据通信.每次通信都要经过建立通信联络和拆除通信联络两过程.这种建立起来的数据收发关系就叫作数据链路.而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错.数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务.⑴链路层的主要功能链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应具备如下功能:① 链路连接的建立,拆除,分离.② 帧定界和帧同步.链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但无论如何必须对帧进行定界.③ 顺序控制,指对帧的收发顺序的控制.④ 差错检测和恢复。还有链路标识,流量控制等等.差错检测多用方阵码校验和循环码校验来检测信道上数据的误码,而帧丢失等用序号检测.各种错误的恢复则常靠反馈重发技术来完成.⑵数据链路层的主要协议数据链路层协议是为发对等实体间保持一致而制定的,也为了顺利完成对网络层的服务。主要协议如下:a. ISO1745--1975:"数据通信系统的基本型控制规程".这是一种面向字符的标准,利用10个控制字符完成链路的建立,拆除及数据交换.对帧的收发情况及差错恢复也是靠这些字符来完成.ISO1155, ISO1177, ISO2626, ISO2629等标准的配合使用可形成多种链路控制和数据传输方式.b. ISO3309--1984:称为"HDLC 帧结构".ISO4335--1984:称为"HDLC 规程要素 ".ISO7809--1984:称为"HDLC 规程类型汇编".这3个标准都是为面向比特的数据传输控制而制定的.有人习惯上把这3个标准组合称为高级链路控制规程.c. ISO7776:称为"DTE数据链路层规程".与CCITT X.25LAB"平衡型链路访问规程"相兼容.⑶链路层产品独立的链路产品中最常见的当属网卡,网桥也是链路产品。MODEM的某些功能有人认为属于链路层,对些还有争议.数据链路层将本质上不可靠的传输媒体变成可靠的传输通路提供给网络层。在IEEE802.3情况 下,数据链路层分成了两个子层,一个是逻辑链路控制,另一个是媒体访问控制
OSI第一层,数据连路层的协议定义了单连路上如何传输数据例如802.3802.2 协议

数据链路层的功能?
数据链路层的功能 数据链路层要完成许多特定的功能。这些功能包括为网络层提供设计良好的服务接口,处理帧同步,处理传输差错,调整帧的流速,不至于使慢速接收方被快速发送方淹没。 数据链路层的功能是为网络层提供服务。其基本服务是将源机器中来自网络层的数据传输给目的机器的网络层。数据链路层一般都提供3种基本服务,即无确认的无连接服务、有确认的无连接服务、有确认 的面向连接的服务。(1)无确认的无连接服务无确认的无连接服务是源机器向目的机器发送独立的帧,而目的机器对收到的帧不作确认。如果由于线路上的噪声而造成帧丢失,数据链路层不作努力去恢复它,恢复工作留给上层去完成。这类服务适用于误码率很低的情况,也适用于像语音之类的实时传输,实时传输情况下有时数据延误比数据损坏影响更严重。大多数局域网在数据链路层都使用无确认的无连接服务。 (2)有确认的无连接服务这种服务仍然不建立连接,但是所发送的每一帧都进行单独确认。以这种方式,发送方就会知道帧是否正确地到达。如果在某个确定的时间间隔内,帧没有到达,就必须重新发此帧。(3)有确认的面向连接的服务采用这种服务,源机器和目的机器在传递任何数据之前,先建立一条连接。在这条连接上所发送的每一帧都被编上号,数据链路层保证所发送的每一帧都确实已收到。而且,它保证每帧只收到一次,所有的帧都是按正确顺序收到的。面向连接的服务为网络进程间提供了可靠地传送比特流的服务。2.帧同步在数据链路层,数据的传送单位是帧。所谓帧,是指从物理层送来的比特流信息按照一定的格式进行分割后形成的若干个信息块。数据一帧一帧地传送,就可以在出现差错时,将有差错的帧再重传一次,从而避免了将全部数据都重传。帧同步是指接收方应当能从收到的比特流中准确地区分出一帧的开始和结束在什么地方。3.差错控制传送帧时可能出现的差错有:位出错,帧丢失,帧重复,帧顺序错。位出错的分布规律及出错位的数量很难限制在预定的简单模式中,一般采用漏检率及其微小的CRC检错码再加上反馈重传的方法来解决。为了保证可靠传送,常采用的方法是向数据发送方提供有关接收方接收情况的反馈信息。一个否定性确认意味着发生了某种差错,相应的帧必须被重传。这种做法即是反馈重传。更复杂的情况是,一个帧可能完全丢失(比如,消失在突发性噪声中)。在这种情况下,发送方将会永远等下去。这个问题可以通过在数据链路层中引入计时器来解决,当发送方发出一帧时,通常也启动计时器。该计时器计到设置值的时间时清为零。 如果所传出的帧或者确认信息被丢失了,则计时器会发出超时信号,提醒发送方可能出现了问题,最明显的解决方法是重传此帧。但是多次传送同一帧的危险是接收方可能两次甚至多次收到同一帧,为了防止这种情况发生,通常有必要对发出的各帧编号,这样接收方就能辨别出是重复帧还是新帧,还能分辨出帧顺序错。采用定时器和编号的主要目的是保证每帧都能最终正确地传给目的地—网络层。差错出现的特点:随机,连续突发(burst)处理差错的两种基本策略使用纠错码:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误。使用检错码:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,但不能判断哪里有错。4.流量控制在数据链路层及较高层中另一个重要的设计问题是:如何处理发送方的传送能力比接收方接收能力大的问题?通常的解决办法是引入流量控制来限制发送方所发出的数据流量,使其发送速率不要超过接收方能处理的速率。流量控制方法有发送等待方法、预约缓冲区法、滑动窗口控制方法、许可证法和限制管道容量方法等。下面简要介绍一下滑动窗口控制方法。在所有的滑动窗口协议中,每一个要发出的帧都包含一个序列号,范围是0到某个最大值。 具有最简单流量控制的数据链路层协议 为了使收方的接收缓冲区在任何情况下都不会溢出,最简单的方法是发方从主机每取一个数据块,就将其送到数据链路层的发送缓冲区中发送出去,然后等待;收方收到数据帧后,将其放入数据链路层的接收缓冲区并交付给主机,同时回应一信息给发送节点表示数据帧已经上交给主机,接收任务已经完成;发方收到由接收站点发过来的双方事先商定好的信息,则从主机取下一个新的数据帧再发送。在这种情况下,收方的接收缓冲区的大小只要能够装得下一个数据帧即可,这就是最简单最基本的停止-等待(Stop-and-Wait)协议。

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/70054.html。