0

0

数据链路层的主要功能是什么

青灯夜游

青灯夜游

发布时间:2021-07-09 11:11:23

|

87518人浏览过

|

来源于php中文网

原创

数据链路层的主要功能:1、将数据组合成数据块,封装成帧;2、差错控制;3、流量控制;4、链路控制;5、MAC寻址;6、区分数据和控制信息;7、透明传输。

数据链路层的主要功能是什么

本教程操作环境:windows10系统、Dell G3电脑。

数据链路层的主要功能

1. 成帧(帧同步)---将数据组合成数据块,封装成帧

为了向网络层提供服务,数据链路层必须使用物理层提供的服务。而物理层是以比特流进行传输的,这种比特流并不保证在数据传输过程中没有错误,接收到的位数量可能少于、等于或者多于发送的位数量。而且它们还可能有不同的值,这时数据链路层为了能实现数据有效的差错控制,就采用了一种”帧”的数据块进行传输。而要采帧格式传输,就必须有相应的帧同步技术,这就是数据链路层的”成帧”(也称为”帧同步”)功能。

采用帧传输方式的好处是:在发现有数据传送错误时,只需将有差错的帧再次传送,而不需要将全部数据的比特流进行重传,这就在传送效率上将大大提高。

采用帧传输方式的好处是带来了两方面的问题:

(1)如何识别帧的开始与结束; 

(2)在夹杂着重传的数据帧中,接收方在接收到重传的数据帧时是识别成新的数据帧,还是识别成重传帧呢?这就要靠数据链路层的各种”帧同步”技术来识别了。”帧同步”技术既可使接收方能从并不是完全有序的比特流中准确地区分出每一帧的开始和结束,同时还可识别重传帧。

2. 差错控制

  • 在数据通信过程中可能会因物理链路性能和网络通信环境等因素,难免会出现一些传送错误,但为了确保数据通信的准确,又必须使得这些错误发生的几率尽可能低。这一功能也是在数据链路层实现的,就是它的”差错控制”功能。

  • 在数字或数据通信系统中,通常利用抗干扰编码进行差错控制。一般分为4类:前向纠错(FEC)、反馈检测(ARQ)、混合纠错(HEC)和信息反馈(IRQ)。

  • FEC方式是在信息码序列中,以特定结构加入足够的冗余位–称为”监督元”(或”校验元”)。接收端解码器可以按照双方约定的这种特定的监督规则,自动识别出少量差错,并能予以纠正。FEC最适合于实时的高速数据传输的情况。

  • 在非实时数据传输中,常用ARQ差错控制方式。解码器对接收码组逐一按编码规则检测其错误。如果无误,向发送端反馈”确认”ACK信息;如果有错,则反馈回ANK信息,以表示请求发送端重复发送刚刚发送过的这一信息。ARQ方式的优点在于编码冗余位较少,可以有较强的检错能力,同时编解码简单。由于检错与信道特征关系不大,在非实时通信中具有普遍应用价值。

  • HEC方式是上述两种方式的有机结合,即在纠错能力内,实行自动纠错;而当超出纠错能力的错误位数时,可以通过检测而发现错码,不论错码多少都可以利用ARQ方式进行纠错。

  • IRQ方式是一种全回执式最简单差错控制方式。在该检错方式中,接收端将收到的信码原样转发回发送端,并与原发送信码相比较,若发现错误,则发送端再进行重发。只适于低速非实时数据通信,是一种较原始的做法。

3. 流量控制

在双方的数据通信中,如何控制数据通信的流量同样非常重要。它既可以确保数据通信的有序进行,还可避免通信过程中不会出现因为接收方来不及接收而造成的数据丢失。这就是数据链路层的”流量控制”功能。

数据的发送与接收必须遵循一定的传送速率规则,可以使得接收方能及时地接收发送方发送的数据。并且当接收方来不及接收时,就必须及时控制发送方数据的发送速率,使两方面的速率基本匹配。

4. 链路控制

数据链路层的”链路管理”功能包括数据链路的建立、维持和释放三个主要方面。

当网络中的两个节点要进行通信时,数据的发送方必须确知接收方是否已处在准备接收的状态。为此通信双方必须先要交换一些必要的信息,以建立一条基本的数据链路。在传输数据时要维持数据链路,而在通信完毕时要释放数据链路。

5. MAC寻址

MVM mall 网上购物系统
MVM mall 网上购物系统

采用 php+mysql 数据库方式运行的强大网上商店系统,执行效率高速度快,支持多语言,模板和代码分离,轻松创建属于自己的个性化用户界面 v3.5更新: 1).进一步静态化了活动商品. 2).提供了一些重要UFT-8转换文件 3).修复了除了网银在线支付其它支付显示错误的问题. 4).修改了LOGO广告管理,增加LOGO链接后主页LOGO路径错误的问题 5).修改了公告无法发布的问题,可能是打压

下载

这是数据链路层中的MAC子层主要功能。这里所说的”寻址”与下一章将要介绍的”IP地址寻址”是完全不一样的,因为此处所寻找的地址是计算机网卡的MAC地址,也称”物理地址”、”硬件地址”,而不是IP地址。

在以太网中,采用媒体访问控制(Media Access Control, MAC)地址进行寻址,MAC地址被烧入每个以太网网卡中。这在多点连接的情况下非常必需,因为在这种多点连接的网络通信中,必须保证每一帧都能准确地送到正确的地址,接收方也应当知道发送方是哪一个站。

6. 区分数据和控制信息

由于数据和控制信息都是在同一信道中传输,在许多情况下,数据和控制信息处于同一帧中,因此一定要有相应的措施使接收方能够将它们区分开来,以便向上传送仅是真正需要的数据信息。

7. 透明传输

这里所说的”透明传输”是指可以让无论是哪种比特组合的数据,都可以在数据链路上进行有效传输。这就需要在所传数据中的比特组合恰巧与某一个控制信息完全一样时,能采取相应的技术措施,使接收方不会将这样的数据误认为是某种控制信息。只有这样,才能保证数据链路层的传输是透明的。

注:在以上七大链路层功能中,主要的还是前面的五项,后面两项功能是在前五项功能中附带实现的,无需另外的技术,所以在此仅介绍前面五项功能。

链路层向网络层提供的服务

数据链路层的设计目标就是为网络层提供各种需要的服务。实际的服务随系统的不同而不同,但是一般情况下,数据链路层会向网络层提供以下三种类型的服务:

1. 无确认的无连接服务

“无确认的无连接服务”是指源计算机向目标计算机发送独立的帧,目标计算机并不对这些帧进行确认。这种服务,事先无需建立逻辑连接,事后也不用解释逻辑连接。正因如此,如果由于线路上的原因造成某一帧的数据丢失,则数据链路层并不会检测到这样的丢失帧,也不会恢复这些帧。出现这种情况的后果是可想而知的,当然在错误率很低,或者对数据的完整性要求不高的情况下(如话音数据),这样的服务还是非常有用的,因为这样简单的错误可以交给OSI上面的各层来恢复。如大多数局域网在数据链路层所采用的服务也是无确认的无连接服务。

2. 有确认的无连接服务

为了解决以上“无确认的无连接服务”的不足,提高数据传输的可靠性,引入了“有确认的无连接服务”。在这种连接服务中,源主机数据链路层必须对每个发送的数据帧进行编号,目的主机数据链路层也必须对每个接收的数据帧进行确认。如果源主机数据链路层在规定的时间内未接收到所发送的数据帧的确认,那么它需要重发该帧。 这样发送方知道每一帧是否正确地到达对方。这类服务主要用于不可靠信道,如无线通信系统。它与下面将要介绍的“有确认的面向连接服务”的不同之处在于它不需要在帧传输之前建立数据链路,也不要在在帧传输结束后释放数据链路。

3. 有确认的面向连接服务

大多数数据链路层都采用向网络层提供面向连接确认服务。利用这种服务,源计算机和目标计算机在传输数据之前需要先建立一个连接,该连接上发送的每一帧也都被编号,数据链路层保证每一帧都会被接收到。而且它还保证每一帧只被按正常顺序接收一次。这也正是面向连接服务与前面介绍的“有确认无连接服务”的区别,在无连接有确认的服务中,在没有检测到确认时,系统会认为对方没收到,于是会重发数据,而由于是无连接的,所以这样的数据可能会复发多次,对方也可能接收多次,造成数据错误。这种服务类型存在3个阶段,即:数据链路建立、数据传输、数据链路释放阶段。每个被传输的帧都被编号,以确保帧传输的内容与顺序的正确性。大多数广域网的通信子网的数据链路层采用面向连接确认服务。

以太网采用无连接的工作方式,读发送的数据帧不进行编号,也不要求对方发回确认。目的站收到有差错的帧就把他丢弃,不采取其他行为。

其他知识点

  • 局域网的优点:具有广播功能,从一个站点可以很方便的访问全网;便于系统的扩展和逐渐演变;提高了系统的可靠性、可用性和生存性。

  • 以太网采用的协议是具有冲突检测的载波监听多点接入CMSA/CD。协议的要点是:发送前先监听,便发送边监听,一旦发现总线上出现了碰撞,就立即停止发送。然后按照退避算法等待一段随机时间后再次发送。因此,每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。以太网上各站点都平等的争用以太网信道。

更多相关知识,请访问常见问题栏目!

相关专题

更多
页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

402

2023.08.14

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

322

2023.10.09

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

393

2023.10.16

asp连接access数据库的方法
asp连接access数据库的方法

连接的方法:1、使用ADO连接数据库;2、使用DSN连接数据库;3、使用连接字符串连接数据库。想了解更详细的asp连接access数据库的方法,可以阅读本专题下面的文章。

119

2023.10.18

access和trunk端口的区别
access和trunk端口的区别

access和trunk端口的区别是Access端口用于连接终端设备,提供单个VLAN的接入,而Trunk端口用于连接交换机之间,提供多个VLAN的传输;Access端口只传输属于指定VLAN的数据,而Trunk端口可以传输多个VLAN的数据,并使用VLAN标签进行区分。想了解更多access和trunk端口相关内容,可以阅读本专题下面的文章。

323

2023.10.31

access怎么导入数据
access怎么导入数据

access导入数据步骤:1. 选择数据源 2. 选择要导入的文件 3. 指定导入选项 4. 选择导入目标 5. 预览数据 6. 导入数据即可。想了解更多access的相关内容,可以阅读本专题下面的文章。

435

2024.04.10

access数据库用途
access数据库用途

access数据库是一种关系型数据库管理系统,主要用途包括:数据存储和管理;数据查询和检索;报告和表单设计;应用程序开发。想了解更多access数据库的相关内容,可以阅读本专题下面的文章。

563

2024.04.10

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

4

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

23

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Laravel---API接口
Laravel---API接口

共7课时 | 0.6万人学习

php-src源码分析探索
php-src源码分析探索

共6课时 | 0.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号