计算机网络 三 (数据链路层)上

news2024/11/29 10:47:36

数据链路层

在这里插入图片描述
数据链路层的概述
在这里插入图片描述

基本概念

数据链路层是OSI参考模型中的第二层,它主要负责在物理层上提供可靠的数据传输服务,使得相邻节点间的数据传输能够实现。

数据链路层的基本概念如下:

  • 帧:数据链路层数据传输的基本单位是帧,帧由标识帧起始和结束的控制字符、帧头、帧数据和帧尾等组成。
  • MAC地址:MAC地址是数据链路层地址,用于标识网络中的每个节点。MAC地址是48位二进制数,通常表示为12个十六进制数。
  • 媒体访问控制:在共享媒体网络中,多个节点共享同一根物理链路,因此必须采用一定的媒体访问控制机制,以避免多个节点同时发送数据引起的冲突。常用的媒体访问控制机制有CSMA/CD、令牌环等。
  • 差错控制:数据链路层通过差错控制机制来保证数据传输的可靠性,常用的差错控制技术有循环冗余校验(CRC)等。
  • 流量控制:数据链路层通过流量控制机制来控制数据发送的速率,以避免过多数据拥塞网络,引起数据丢失等问题。
  • 链路管理:数据链路层负责链路管理,包括链路的建立、维护和释放等操作。

总之,数据链路层是计算机网络中非常重要的一层,它提供了数据传输的基础服务,是上层协议能够正常运行的基础。

功能概述

数据链路层是计算机网络中的一层,它位于物理层之上,位于网络层之下。主要功能如下:

  1. 将网络层传递下来的数据分割成帧,加上帧头和帧尾等控制信息,形成帧,便于物理层进行传输。
  2. 将帧发送给物理层,并接收物理层传来的帧,进行解封装,提取出数据,并将数据传递给网络层。
  3. 进行差错控制,包括检错和纠错,以保证数据传输的可靠性。
  4. 进行流量控制,控制数据的传输速率,避免发送方发送过多数据导致接收方无法处理,造成数据丢失或延迟等问题。
  5. 进行链路管理,包括链路的建立、维护和释放等操作,以保证链路的稳定性和可靠性。
  6. 进行媒体访问控制,协调多个节点对共享媒体的访问,避免出现冲突,保证数据的传输效率。

总之,数据链路层的主要功能是提供可靠的数据传输服务,保证数据在物理层上的正确传输,同时进行链路管理和媒体访问控制,以保证整个网络的正常运行。
在这里插入图片描述

运行流程

在这里插入图片描述

封装成帧

数据链路层为了将网络层传来的数据适应于物理层的传输,需要将数据封装成帧。封装成帧的过程大致如下:

首先,在数据包前面添加帧头,帧头包括起始标志、目的地址、源地址、长度等控制信息,用于标识帧的开始和结束位置。

然后,在数据包后面添加帧尾,帧尾包括帧校验码等控制信息,用于检测数据在传输过程中是否出现错误。

对于数据包中出现的特殊字符,需要进行转义处理,以避免这些字符被误认为是帧头或帧尾,导致传输错误。

最后,将封装好的帧发送给物理层进行传输。

在接收方,数据链路层会根据帧头和帧尾的信息来识别帧的开始和结束位置,提取出数据,并进行校验和解码等操作,将数据传递给网络层。以上就是数据链路层封装成帧的大致过程。

透明传输

数据链路层透明传输是指在数据传输过程中,数据链路层对上层的数据不进行干预或改变,使得上层的数据可以在任何情况下被正确传输。具体来说,透明传输需要满足以下条件:

传输的数据不能被错误的修改或解释,即传输的数据应该与原始数据一致。

传输的数据应该可以正确识别和处理特殊字符,避免特殊字符被误解释为帧头或帧尾。

传输的数据应该能够正确处理差错控制,保证数据传输的可靠性。

为了实现透明传输,数据链路层需要使用一些技术,如字节填充和帧长度填充等。字节填充是指在数据中插入一个特殊字符,使得特殊字符不会被误解释为帧头或帧尾;而帧长度填充是指在帧长度不足时,通过添加填充字符的方式,使得帧的长度达到一定的标准,以便于物理层进行传输。

总之,数据链路层透明传输可以保证数据在传输过程中不被干扰或改变,使得数据可以在任何情况下被正确传输,提高了数据传输的可靠性和正确性。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

差错控制

数据链路层差错控制是指在数据链路层进行数据传输时,通过使用一些技术来检测和纠正数据传输中的错误。差错控制可以提高数据传输的可靠性和正确性,保证数据的准确性和完整性。

常用的数据链路层差错控制技术有以下几种:

  • 奇偶校验:数据发送方在传输数据的时候,会对每个字符进行奇偶校验,判断传输的数据是否有误。如果数据传输过程中发生错误,则接收方可以通过对奇偶校验码进行校验来发现错误。
  • CRC校验:CRC(Cyclic Redundancy
    Check)校验是一种基于多项式的校验技术,可以在数据传输过程中检测到传输过程中出现的错误。发送方会对数据进行处理,得到一个校验码,接收方在接收到数据后,也会对数据进行处理得到一个校验码,并将其与发送方的校验码进行比对,以判断数据是否传输正确。
  • ARQ(Automatic Repeat
    Request):ARQ技术是一种自动重传请求技术,当接收方收到错误的数据时,会向发送方发送一个重传请求,要求发送方重新发送数据,直到接收方正确接收数据为止。
  • FEC(Forward Error
    Correction):FEC技术是一种前向纠错技术,通过在数据中添加冗余的校验码,使得接收方可以检测到传输过程中的错误,并进行纠正。FEC技术可以在一定程度上提高数据传输的可靠性,但是需要在数据传输中增加冗余数据,会降低数据传输的效率。

总之,数据链路层差错控制技术可以提高数据传输的可靠性和正确性,保证数据的准确性和完整性,是数据链路层的重要技术之一。
在这里插入图片描述
在这里插入图片描述
海明码是一种用于数据传输和存储中纠错的编码技术,可以通过添加冗余信息来检测和纠正数据传输中的错误。海明码的使用可以提高数据传输的可靠性,保证数据的准确性和完整性。

海明码的使用步骤如下:

确定数据长度:首先需要确定需要传输的数据长度和数据格式。

计算校验位数:根据数据长度计算需要添加的校验位数。校验位数的计算公式为:2^k >= m + k + 1,其中m为数据长度,k为校验位数。

插入校验位:将计算得到的校验位插入到数据中,形成海明码。插入校验位的方式可以是垂直放置或水平放置。

检测和纠正错误:在数据传输过程中,接收方通过对海明码进行检测和纠正,来发现和纠正数据传输中的错误。检测和纠正错误的方式可以是使用海明码表或利用异或运算等方法。

海明码的使用可以提高数据传输的可靠性,保证数据的准确性和完整性。但是海明码的使用会增加数据长度,降低数据传输的效率,需要根据具体的应用场景进行选择。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小结
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis持久化:RDB和AOF(版本redis 7.0)

什么是持久化? 学过计算机基础的都知道以一种磁盘,只要关机,那么磁盘的内容都会被清空,这种磁盘称为内存,而Redis则是一种内存数据库,redis中的数据也都存储在磁盘中,如果服务器中进程被关掉&am…

麻了,真的不想做测试了...

前言 有不少技术友在测试群里讨论,近期的面试越来越难了,要背的八股文越来越多了,考察得越来越细,越来越底层,明摆着就是想让我们徒手造航母嘛!实在是太为难我们这些测试工程师了。 这不,为了帮大家节约时…

Mathtype修改硕士论文公式格式

Mathtype修改硕士论文格式 1将word格式的公式变为mathtype格式1选中公式2点击mathtype中的转换公式 2修改mathtype格式的公式文字版式 1将word格式的公式变为mathtype格式 1选中公式 如果不选公式默认全文所有公式或者指定的公式。 2点击mathtype中的转换公式 选择要转换的…

汽车功能安全

前言 近些年来,功能安全在汽车传统底盘域和动力域的应用已较为成熟,各大汽车企业功能安全意识也逐渐增强。在辅助驾驶和自动驾驶爆发式增长的大趋势下,现代汽车的功能安全在目前尤为复杂的电子电气系统中就显得更为重要,功能安全…

MySQL---存储过程流程控制(判断(if、case)、循环(while、repeat、loop))

1. if判断 IF语句包含多个条件判断,根据结果为TRUE、FALSE执行语句,与编程语言中的if、else if、else 语法类似,其语法格式如下: -- 语法 if search_condition_1 then statement_list_1[elseif search_condition_2 then statem…

十八、Stream 流

目录 1、为什么要引入SpringCloud Stream 2、SpringCloud Stream简介 2.1、标准MQ架构图 2.2、SpringCloud Stream架构图 2.3、SpringCloud Stream处理流程 3、如何使用SpringCloud Stream 3.1、创建springcloud-stream-sender项目(消息生产者) …

SpringCloud_服务调用_Ribbon负载算法简介与如何替换(二)

SpringCloud_服务调用_Ribbon负载算法简介与如何替换(二) Ribbon核心组件IRule IRule:根据特定算法中从服务列表中选取一个要访问的服务 IRule接口有多种实现: Ribbon自带的7种负载规则 com.netflix.loadbalancer.RoundRobinRule 轮询 com.netflix.loadbalancer.Ra…

8年测试老鸟总结,软件测试工程师关键成长晋升要素,这些不能不知道...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、技术-依然是最…

MySQL深入浅出:自增长序列(@i:=@i+1)的用处及用法

目录 1:问题分析 2:模拟自增长序列 2.1 单表查询 2.2 多表关联查询 3:结束语 社区 1:问题分析 Oracle中的伪列 ROWNUM 是一组递增的序列,在查询数据时生成,为结果集中每一行标识一个行号, 每条记录…

医院运维场景下的风险感知

随着医疗信息化建设发展,医院的系统、设备不断叠加,在提升用户体验,享受高效医疗服务的同时,也为支撑系统稳定运行的信息部门带来巨大挑战。诸如科室复杂、应用场景多、终端运维工作量大、软件系统兼容需求强等痛点,并…

WPF MaterialDesign 初学项目实战(0):github 项目Demo运行

前言: 最近在学B站的WPF项目实战合集(2022终结版),但是到22P时候发现UI框架 MaterialDesignThemes的Github上面的程序没办法正常运行,最后折腾了好久终于解决。 github地址 gitcode镜像地址 下载成功后 下载成功后是如下效果 打开这个文…

259元,诺基亚返祖式新机玩了把大的

智能手机经过这么多年发展,市场逐渐趋向成熟。 在这个过程中,优胜劣汰这一自然法则同样适用,无数没能经受住市场考验的企业也只能含泪离场。 其中最典型的例子还得是曾经手机中的王者诺基亚了。 当初在 Symbian(塞班系统&#x…

php event原理以及对象与属性赋值

1、定义时间原理 2、定义对象与对象与属性赋值 ps:赋值过程其实会通过魔术方法_get调动本类的set方法 来源B站大佬视频 4.Yii2.0 Advanced Object与Property的关系_哔哩哔哩_bilibili

刚入职,就想跑路了...

刚入职一家公司,想离职又怕找不到新工作。 说实话,这个问题还是蛮常见的,很多时候,入职的公司并不是自己最满意的,即使是最满意的,入职后总会遇到各种各样的不顺心,公司制度不规范啊&#xff0…

C++ 图进阶系列之剖析二分图的染色算法和匈牙利算法

1. 前言 二分图又称作二部图或称为偶图,是图论中的一种特殊类型,有广泛的应用场景。 什么是二分图? 二分图一般指无向图。看待问题要有哲学思想,有二分图也可以是有向图。 如果图中所有顶点集合能分成两个独立的子集&#xff0…

常用好用的远程连接工具分享

1、RayLink 介绍: RayLink它是一款功能强大的远程控制软件,支持Windows、macOS、IOS以及Android等多种操作系统。同时,它还提供了手机端和桌面端两种不同的应用程序,可以通过手机控制电脑,也可以通过电脑控制手机。这…

C语言编程软件

C语言是一门历史很长的编程语言,其编译器和开发工具也多种多样,其开发工具包括编译器,现举几个开发工具供大家选择,当然也要根据自己的操作系统来选择适合自己的开发工具。 好多刚开始接触c语言的朋友都想知道用上面软件开发c语言…

【JavaScript数据结构与算法】字符串类(计算二进制子串)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端(Node.js) 📃个人状态: 在校大学生一枚,已拿多个前端 offer(…

Grafana之Graph Panel使用(05)

Graph是Grafana的原生插件。使用Graph Panel,可以将数据展示成折线、条状、点状等风格。Graph是Grafana展示数据的缺省图形面板,它提供了一组非常丰富的绘图选项。 ① Panel options(面板选项)主要包括:Title(标题);Description(描述) ②Tooltip(鼠标经过图例展示数据效果)…

数字产品在教育行业的应用:关键特点和必备功能概览

数字化转型的浪潮已经席卷了各行各业,不仅出现在互联网、电商、建筑等行业,还应用在了教育行业。数字化的教育ERP软件能够在满足学校需求的基础上,帮助学校完善各类工作流程,提高工作效率。 对于一个拥有多个校区,上万…