读书频道 > 网站 > 网页设计 > 深入理解计算机网络
5.2.1 数据链路管理
13-01-15    奋斗的小年轻
收藏    我要投稿   

本文所属图书 > 深入理解计算机网络

本书是计算机网络领域的扛鼎之作,由有20余年从业经验的优秀网络技术工程师兼全国网管技能水平考试认证专家王达老师撰写,51CTO技术社区鼎力推荐,权威性毋庸置疑。内容方面,本书结合最新计算机网络技术,全面、...立即去当当网订购

5.2 数据链路层主要功能及实现原理

数据链路层位于网络体系结构中“网络层”(在TCP/IP协议体系结构中称网际互连层)的下层,所以它的一项基本功能就是向网络层提供透明、可靠的数据传输服务(在计算机网络体系结构中,下一层是为相邻的上一层服务的)。“透明”是指要使在数据链路层上所传输的数据在内容、格式及编码上都没有限制,也就是要使一些本来用于特殊用途的控制字符(具体有哪些控制字符将在本章后面介绍)也能像正常的数据一样传输,使接收端不要误认为这些字符为控制字符;可靠的传输使数据从发送端无差错地在数据链路上传输到目的接收端。总体而言,数据链路层(其实这里主要是针对LLC子层)的主要功能就是四个方面:数据链路管理、封装成帧、透明传输、差错控制。下面具体介绍。

5.2.1 数据链路管理

在本章前面说到了,在数据链路层中要形成一条更有利于数据传输的数据链路,而不是直接利用下面物理层中建立的物理链路。物理链路在没有人为拆除时是永久存在的,而数据链路一般是非永久存在的(但局域网中的数据链路是永久的),仅当有数据传输时建立并存在,在数据传输完后自动拆除。数据链路是由数据链路层中的LLC子层通过相应的通信规程(也就是通常所说的协议)建立并管理的。

说明 数据链路分为点对点链路和点对多点链路(或“广播链路”)两种。点对点链路就是一个节点只与另一个节点连接起来的链路,用于建立点对点通信。它所采用的是点对点协议,如PPP(点对点协议),PPPoE(基于以太网的点对点协议)。点对多点链路就是一个节点同时与多个节点连接建立起来的链路,用于建立点对多点通信。它所采用的通常是点对多点协议,如以太网协议、WLAN协议,还有本章后面将要介绍的HDLC(高级数据链路控制)协议。

1.数据链路层提供的服务类型

根据数据链路层协议的不同,所建立的数据链路类型也会有不同。同时我们知道,数据链路层是为上面的网络层提供服务的,所以这些不同协议所建立的数据链路向网络层提供的服务类型也有所不同。总体上可把这些数据链路服务分为以下三类:有确认的面向连接服务、有确认的无连接服务、无确认的无连接服务。前者称为面向连接服务(Connection-oriented Servce),后面两者称为无连接服务(Connetionless Service)。

说明 其实不仅本章中所讲的数据链路层协议有面向连接和无连接两种服务类型,在网络层和传输层协议中也有这两种类型的,如网络层中的X.25协议是面向连接的,而IP协议是无连接的;传输层中的TCP协议是面向连接的,而UDP协议是无连接的。这些将在第10章进行介绍。

(1)有确认的面向连接服务

有确认的面向连接服务里面包括两层含义:一是在提供服务时,必须先建立好双方通信连接;二是在提供服务时,必须要求对方确认后才进行。这种服务类型存在三个阶段,即数据链路建立、数据传输、数据链路释放等阶段。举个现实中的例子,就像我们打电话,我们打电话给某个人时,首先就是要拿起电话拨号(相当于建立连接的过程),然后对方拿起电话,问一下看是不是打错了(这就是一个“确认”过程)。确认不是打错的电话后,双方开始通话,这就相当于在数据链路中进行数据传输的过程;通话完毕,双方挂掉电话,相当于链路释放的过程。

从以上这个打电话的例子可以看出,数据链路层中有确认的面向连接服务是独占链路的,只有在当前数据传输完成,释放了链路后,其他用户才可能与同一个接收端进行数据传输。就像你打电话给你的朋友时,其他人再打电话给你朋友听到的是忙音,只有等你结束了与你朋友的通话后,其他人才可以打通你那朋友的电话。同样,从以上分析可以得出,有确认的面向连接服务非常可靠,这一则是因为有专门的通信链路,在一路通信使用某条链路时,其他通信不能同时使用这条链路;再则是这种服务类型不会向错误的接收端进行数据传输,也可确认接收端正确地接收了发送来的数据,而且是按数据帧发送顺序接收,每一帧只接收了一次,因为它规定接收端在接收到每一个数据帧(每个帧都有编号)后必须对发送端进行确认,就像打电话一样,只有对方确认你是要找他的,他才可能接听你的电话。

大多数广域网中通信子网的数据链路层协议采用有确认的面向连接服务,如SLIP(串行线路协议)、PPP(点对点协议)、PPPoE(基于以太网的点对点协议)、HDLC(高级数据链路控制)协议等。

(2)有确认的无连接服务

有确认的无连接服务与有确认的面向连接服务的相同之处就是接收端在接收到的每一个数据帧时都向发送端确认;不同之处在于它在进行数据传输前是不需要建立专门的数据链路的,自然也不需要在数据传输结束后释放数据链路(事实上是因为这类服务所用的数据链路已建立起来,而且是永久存在的,所以不用另外建立,如局域网中的链路)。就像我们从快递公司寄快递信件一样,信的投递路线我们不用管(事实上投递路线已经有了),但是在收件人收到信件时必须要求收件人签收(也就是要对接收到的每一个数据帧进行确认)。

有确认的无连接服务虽然不用建立专门的连接,但仍可以保证数据的可靠传输,因为它有“确认”功能,如令牌环网和令牌总线网中的数据传输就是采用这种服务类型,接收端在接收到一个数据帧时会发送确认信息给发送端的。这类服务的另外一个主要用途就是用于一些不可靠信道中的数据传输,如各种无线通信系统。

(3)无确认的无连接服务

无确认的无连接服务与前面的有确认的无连接服务的相同之处就在于它们都不需要在进行数据传输前先建立专门的数据链路,也就是无须先在通信双方建立通信连接;不同之处就是它在进行数据传输时不要求接收端对所接收到的每一个数据帧进行确认。就像我们从邮局寄平信一样,信件投递路线我们不用管(事实上投递路线已经有了),而且当信件到达收信人时,也不用收件人签名确认。

这种服务类型看似不可靠,但它是建立在可靠的通信线路基础之上的,所以数据传输仍然是非常可靠的。如我们常用的以太网中所使用的各种以太网协议就是采用这种服务的,因为以太网中的数据链路性能非常好,数据可靠传输有保障。在以太网中的数据链路始终是存在的,不用另外建立,在以太网中进行数据传输时接收端也不用对接收到的每一帧进行确认。

2.数据链路管理

LLC子层的链路管理功能主要是针对前面所介绍的有确认的面向连接服务类型(主要应用于广域网中)。它包括三个主要阶段:链路建立、链路保持、链路释放。

在这种数据链路层服务中,链路两端的节点要进行通信前,发送端的数据链路层必须先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号进行初始化,然后双方才能建立连接;在传输过程中为个数据连接是要持续保持的;如果出现差错,需要重新初始化,重新自动建立连接。传输完毕后则要释放所占用的数据连接,以供其他通信所用。

数据连路层的这种链路连接的建立、维持和释放过程就是数据链路层的链路管理功能。在多个站点共享同一物理信道的情况下(例如在局域网中),如何在要求通信的站点间分配和管理信道也属于数据链路层管理的范畴。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站