Board logo

标题: 数据链路层的基本知识 [打印本页]

作者: yuyang911220    时间: 2016-9-16 10:57     标题: 数据链路层的基本知识

数据链路层属于计算机的网络的底层。数据链路层使用的信道主要有以下2种类型:
1:点对点信道。这种信道使用一对一的点对点通信方式。
2:广播信道。这种信使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。


图中a表示用户主机H1通过电话线上网,中间经过三个路由器(R1,R2,R3)连接到远程主机H2。所经过的网络可以是多种的,如电话网,局域网和广域网。当主机H1向H2发送数据时,从协议的层次上看,数据流动如图b所示。主机H1和H2都有完成的五层协议,单路由器在转发分组时候使用的协议栈只有下面的三层。数据进入路由器后要先从物理层上到网络层,在转发表中找到下一跳的地址后,再下到物理层转发出去。因此,数据从主机H1传送到主机H2需要在路径中的各结点协议栈向上和向下流动多次。




然而当我们专门研究数据链路层的问题时,在许多情况下我们可以只广信在协议栈中水平向的各数据链路层。于是,当主机H1向主机H2发送数据时,我们可以想象数据就是在数据链路层从左向右沿水平方向传送。如图:





从数据层来看,H1到H2的通信可以看成是由四段不同的链路层通信组成,即H1->R1,R1->R2,R2->R3,R3->H2。这四段不同的链路层可能采用不同的数据链路层协议。

       

注意,链路和数据链路不是一回事。


链路是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换节点。在进行数据通信时,两个计算机之间的同心路径往往要经过许多段这样的链路。可见链路只是一条路径的组成部分。


数据链路则是另一个概念。则是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法就是网络适配器(如拨号上网使用拨号适配器)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。




数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并交给网络层。在因特网中,网络层协议数据单元就是IP数据报(简称数据报,分组或包)。




点对点信道的数据链路层在进行通信时步骤:

1:结点A的数据链路层把网络层交下来的IP数据报添加头和尾封装成帧。
2:结点A把封装好的帧发送给结点B的数据链路层。
3:结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给网络层,否则丢弃该包。
数据链路层不必考虑物理层如何实现的细节。



数据链路层协议虽然有多种,但有3个基本问题则是共同的:封装成帧,透明传输和差错检测。

1:封装成帧就是在一段数据后面分别添加头和尾,就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据头和尾的标记,从收到的比特流中识别帧的开始和结束。
分组交换的一个重要概念就是所有在因特网上传送的数据都是以分组(即IP数据报)为传送单位。网络层的IP数据报传送到数据链路层就成为帧的数据部分。在帧的数据部分的头和尾加上标记信息,构成一个完整的帧。因此,帧的长度等于数据部分长度加上帧的头尾长度,头尾的一个重要作用就是进行帧定界(确定帧的界限)。此外,头尾还包括许多需要的控制信息。在发送帧时,是从帧头部开始发送。各种数据链路层协议都要对帧头和帧尾的格式有明确的规定。为了提高帧的传输效率,应当使帧得数据部分长度尽可能地大于头尾的长度。但是,每种数据链路层协议都规定了帧的数据部分长度上限-最大传送单元MTU。



点对点协议:

PPP协议是目前使用最广泛的数据链路层协议。


我们知道,因特网用户通常都要连接到某个ISP才能接入因特网。PPP协议就是用户计算机和ISP进行通信所用的数据链路层协议。





封装成帧:PPP协议必须规定特殊字符作为帧定界符(标志一个帧的开始和结束的字符),以便使接收端从收到的比特流中能准确地找出帧的开始和结束位置。


透明性:PPP协议必须保证数据的透明性,就是说,如果数据中碰巧出现了和帧定界符一样的比特组合时,就要采取有效地措施来解决这个问题。


多种网络协议:PPP协议必须能够在同一条物理链路上同事支持多种网络层协议(如IP何IPX等)的运行。当点对点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议。


多种类型链路:除了要支持多种网络层的协议外,PPP还必须能够在多种类型的链路上运行,例如串行的或并行的,同步的或异步的,低速的或高速的,电或光的,交换的(动态的)或非交换的(静态的)点对点链路。PPPoE(PPP over Ethernet)这是PPP协议能够适应多种类型链路的一个典型例子。PPPoE是为宽带上网的主机使用的链路层协议。这个协议把PPP帧再封装在以太网帧中(当然还要增加一些能够识别各个用户的功能)。宽带上网时由于数据传输速率较高,因此可以让多个连接在以太网(是当今现有局域网采用的通用通信协议,是一种通信速率为10Mbps的常用局域网LAN标准,在以太网中,所有计算机被连接在一条同轴电缆上)上的用户共享一条道ISP的宽带链路。现在,即使是只有一个用户利用ADSL进行宽带上网(并不和其他人共享到ISP的宽带链路),也是使用PPPoE协议。


差错检测:PPP协议必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。若在数据链路层不进行差错检测,那么已出现差错的无用帧就还要在网络中继续向前转发,白白浪费网络资源。


检测连接状态:PPP协议必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。当出现故障的链路隔了一段时间后又重新恢复正常工作时,就特别需要有这种及时检测功能。


最大传送单元:PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值。这样做是为了促进各种实现之间的互操作性。如果高层协议发送的分组过长并超过MTU的数值,PPP就要丢弃这样的帧,并返回差错。需要强调的是,MTU是数据链路层的帧可以载荷的数据部分的最大长度,不是帧的总长度。


网络层地址协议商:PPP协议必须提供一种机制使通信的两个网络层(例如两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。协商的算法应尽可能简单,并且能够在所有的情况下得出协商结果。这对拨号连接特别重要,因此仅仅在链路层建立了连接而不知道对方网络层地址时,则还不能够保证网络层能够传送分组。


数据压缩协商:PPP协议必须提供一种方法来协商使用数据压缩算法。单PPP协议并不要求将数据压缩算法进行标准化。



PPP协议不需要的功能:

纠错:在TCP/IP协议中,可靠传输由运输层的TCP协议负责,而数据链路层的PPP协议只进行检错。就是说,PPP协议是不可靠传输协议。


流量控制:在TCP/IP协议族中,端到端的流量控制由TCP负责,因而链路级的PPP协议就不需要再重复进行流量控制。


序号:PPP是不可靠传输协议,因此不需要使用[img]file:///C:.Users.by.AppData.Local.Temp.%7B)_G62%60%60_[8)(8ND1X0_M7L.gif[/img][img]file:///C:.Users.by.AppData.Local.Temp.%7B)_G62%60%60_[8)(8ND1X0_M7L.gif[/img]帧的序号。在噪声较大的环境下,如无线网络,则可以使用有序号的工作方式,这样就可以提供可靠传输服务。


多点线路:PPP协议不支持多点线路(即一个主站轮流和链路上的多个从站进行通信),而只支持点对点的链路通信。


半双工或单工链路:PPP协议只支持全双工链路。







欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0