计算机网络——数据链路层(数据链路层功能概述)

计算机网络——数据链路层(数据链路层功能概述)

  • 数据链路层的功能
  • 数据链路层的基本概念
  • 封装成帧和透明传输

我们之前已经学完了物理层的所有内容,今天开始我们要进入数据链路层的学习,如果有小伙伴对物理层的内容感兴趣的话,可以点击这里:

https://blog.csdn.net/qq_67693066/category_12609808.html

我们今天来学习数据链路层的功能

数据链路层的功能

数据链路层作为计算机网络OSI七层模型中的第二层,位于物理层之上,网络层之下,它在物理层提供的比特流传输服务基础上,提供了更为复杂和高级的服务。数据链路层的主要功能包括但不限于以下几个方面:

  1. 成帧(帧同步)
  • 数据链路层将从网络层接收的数据分割并封装成帧,每个帧都有固定的格式,包括帧头、数据部分和帧尾。帧头包含诸如源地址、目的地址等控制信息,帧尾则通常包含用于检测错误的校验序列。
  • 接收方通过特定的帧定界符或标志位来识别帧的开始和结束,实现帧同步。
  1. 链路管理
  • 对于面向连接的服务,数据链路层负责链路的建立、维护和释放过程,例如PPP协议中的LCP阶段。
  1. 物理地址识别
  • 数据链路层使用物理地址(如MAC地址)来进行节点间的通信,确保数据帧能够被正确送达目标主机。
  1. 错误检测与纠正
  • 实现差错控制机制,如循环冗余校验(CRC)或其他校验方式,检测数据帧在传输过程中是否出错。
  1. 流量控制
  • 控制数据传输速率,防止发送方过快发送数据导致接收方无法及时处理,从而避免数据丢失或网络拥塞。
  1. 透明传输
  • 保证任意数据都能被正确传输,即使数据中包含了特殊字符(如帧界定符),也需要通过字节填充或字符转义等方法来解决透明性问题。
  1. 数据封装与解封装
  • 将来自网络层的数据报文添加必要的控制信息封装成帧进行传输,并在接收端将接收到的帧解封装还原为数据报文。
    在这里插入图片描述
    在这里插入图片描述

综上所述,数据链路层通过上述功能确保了在两个相邻节点之间进行可靠的数据传输,并为上层网络层提供了逻辑无差错的数据传输服务。

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

数据链路层的基本概念

数据链路层是开放系统互连(OSI)参考模型中的第二层,它直接建立在物理层基础之上,为网络层提供服务。以下是数据链路层的一些基本概念:

  1. 链路(Link)
  • 链路指的是两个相邻网络节点之间的物理通道,比如一根铜缆、一段光纤、或者无线通信的电磁频谱范围。它是用来传输数据的物理媒介。
  1. 结点(Node)
  • 在数据链路层上,结点一般指计算机、交换机、路由器等设备,它们通过链路相互联接,参与到数据传输过程中。
  1. 数据链路(Data Link)
  • 数据链路是在物理链路上增加控制数据传输的协议之后形成的逻辑通信路径,它实现了比特流的组织、传输和错误控制等功能。
  1. 协议(Protocol)
  • 数据链路层协议定义了两个对等实体间如何进行通信的规则,包括数据帧的格式、编码、错误检测、确认机制、流量控制和访问控制等具体过程。
  1. 实体(Entity)和对等实体(Peer Entity)
  • 在数据链路层参与通信的任何设备或软件组件被称为实体;当这些实体遵循相同的协议并且可以直接相互交互时,则称它们为对等实体。
  1. 服务(Services)
  • 数据链路层向上层(即网络层)提供服务,主要包括通过帧的传输来实现数据的可靠传输,这可能涉及到帧的组装、拆分、寻址、错误检测与纠正、流量控制等服务。
  1. 协议数据单元(PDU)
  • 在数据链路层,PDU被称为“帧”(Frame)。数据链路层接收网络层传递的数据包,将其封装成帧,并附加相应的地址和控制信息。
  1. 信道类型
  • 数据链路层的信道可以分为两类:
  • 点对点通信(Point-to-Point):两个单一设备之间的直接连接,一对一通信方式。
  • 广播通信(Broadcast):在一个共享媒体上传输,使得所有相连的设备都能接收到同一份数据,一对多通信方式。
    在这里插入图片描述

总之,数据链路层的核心任务是确保经过物理层传输的数据的可靠性,通过对原始比特流的处理,提供一种无差错的、有序的数据传输服务。同时,它还负责处理物理层不可靠带来的各种问题,比如丢包、重传、流量控制等,为上层网络层提供更加稳定的数据传输环境。

封装成帧和透明传输

封装成帧(Framing)
封装成帧是数据链路层的重要功能之一。它指的是在数据链路层将上层(通常是网络层)传来的数据加上帧头和帧尾,形成一个完整且独立的数据传输单元,这个单元被称为帧。帧头通常包含源地址、目的地址以及其他控制信息,而帧尾包含用于检测数据传输错误的校验码(如CRC校验)。

具体流程如下:

  1. 数据链路层在接收到网络层的数据报文后,在其前后添加特定的首部和尾部信息。
  2. 首部信息可能包括源和目的MAC地址、协议类型标识等。
  3. 尾部信息通常包含校验序列,用于在接收端验证数据在传输过程中是否发生错误。
  4. 成帧后的数据能够被物理层准确识别并进行传输,同时在接收端也能准确地恢复原始的数据报文。
    在这里插入图片描述

透明传输(Transparent Transmission)
透明传输是指数据链路层对于上层传输的数据不加任何限制,不论数据内容包含何种比特组合,都能够准确无误地进行传输,就像数据链路层不存在一样。但在实际物理传输过程中,可能会遇到一些特殊情况,比如某些特定的比特序列恰好与帧界定符相同,这就可能导致帧边界混淆。
在这里插入图片描述

为了实现透明传输,需要采用以下几种机制:

  • 字符计数法:帧首部放置一个字段,用于记录帧内数据区字符的总数(通常是ASCII字符的数量)。然而,这种方法存在的问题是,如果计数值字段本身发生了错误,接收方将无法准确识别帧的结束位置,导致同步丢失
    在这里插入图片描述
  • 字符填充法:当数据中有帧定界符时,在其前插入一个特殊的转义字符,并在其后重新插入定界符以区别数据中的定界符和真正的帧结尾
    在这里插入图片描述在这里插入图片描述
  • 零比特填充法(如在以太网中):如果数据中连续出现了多个1比特(如在曼彻斯特编码中表示帧起始和结束的特定模式),则在传输时会在连续的1比特之间自动插入一个0比特,接收端再按照规定移除这些额外插入的0比特。
    在这里插入图片描述
  • 违规编码法:设计一种编码方案,使得数据中不可能自然出现与帧界定符一样的比特序列。
    在这里插入图片描述

通过以上方法,数据链路层能够确保任何类型的数据都能不受干扰地在网络中进行透明传输,既不会因为数据内容影响到帧的识别,也不会因帧边界模糊而导致数据解析错误。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Web】记录巅峰极客2023 BabyURL题目复现——Jackson原生链

目录 前言 分析 EXP SignedObject打二次反序列化 打TemplatesImpl加载恶意字节码 前文:【Web】浅聊Jackson序列化getter的利用——POJONode 前言 题目环境:2023巅峰极客 BabyURL 之前AliyunCTF Bypassit I这题考查了这样一条链子: BadAttributeV…

C语言 自定义类型:结构体

目录 前言 一、结构体类型 1.1 结构体的声明 1.2 结构体变量的创建和初始化 1.3 结构体的特殊声明 1.4 结构体的自引用 二、结构体的对齐 2.1 对齐规则 2.2 内存对齐的原因 2.3 修改默认对齐数 2.4 结构体传参 三、结构体实现位段 3.1 位段的内存分配 3.2 段的跨平…

39 openlayers 对接地图图层 绘制点线面圆

前言 这里主要是展示一下 openlayers 的一个基础的使用 主要是设计 接入地图服务器的 卫星地图, 普通的二维地图, 增加地区标记 增加 省市区县 的边界标记 基础绘制 点线面园 等等 测试用例 <template><div style"width: 1920px; height:1080px;" &g…

软考高级:软件架构评估概述和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

计算机网络:分层体系结构

计算机网络&#xff1a;分层体系结构 基本分层概述各层次的任务物理层数据链路层网络层运输层应用层 数据传递过程分层体系常见概念实体协议服务 基本分层概述 为了使不同体系结构的计算机网络都能互联&#xff0c;国际标准化组织于 1977 年成立了专门机构研究该问题。不久他们…

鸿蒙一次开发,多端部署(十一)交互归一

对于不同类型的智能设备&#xff0c;用户可能有不同的交互方式&#xff0c;如通过触摸屏、鼠标、触控板等。如果针对不同的交互方式单独做适配&#xff0c;会增加开发工作量同时产生大量重复代码。为解决这一问题&#xff0c;我们统一了各种交互方式的API&#xff0c;即实现了交…

基于ssm的勤工助学管理系统+数据库+报告+免费远程调试

项目介绍: 基于ssm的勤工助学管理系统。Javaee项目&#xff0c;ssm项目。采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMvc Mybatisplus VuelayuiMaven来实现。有管理员和老…

国内AI领域的新星:Kimi与GPT的较量,谁主沉浮?

近期&#xff0c;国产大型人工智能模型Kimi频繁成为众多行业领袖讨论的焦点。这些来自不同领域的专家和领袖们&#xff0c;似乎都在对Kimi的性能和能力给予高度评价。在这两年国产AI模型的快速发展中&#xff0c;尽管市场上涌现出了许多新面孔&#xff0c;但真正能够在技术和应…

Tomcat整体架构

一、Tomcat介绍 开源的java web应用服务器&#xff0c;实现了java EE的部分技术规范&#xff0c;如 java servlet、javaServer Pages、 JavaWebSocket等&#xff1b; 核心&#xff1a;http服务器Servlet容器 二、Tomcat两个核心功能 1、处理Socket连接&#xff0c;负责网络字节…

jQuery 其他方法

文章目录 1. jQuery 拷贝对象2. 多库共存3. jQuery 插件3.1 瀑布流插件3.2 图片懒加载技术3.3 bootstrap JS 组件3.4 bootstrap JS 插件*案例--todolist布局 1. jQuery 拷贝对象 拷贝过去的对象属性值会覆盖原来对象的值。 **浅拷贝&#xff1a;**简单数据类型就直接被拷贝&am…

第十三届蓝桥杯物联网试题(省赛)

做后感悟&#xff1a; OLED显示函数需要一直显示&#xff0c;所以在主函数中要一直循环&#xff0c;为了确保这个检错功能error只输出一次&#xff0c;最好用中断串口进行接收数据&#xff0c;数据收完后自动进入中断函数中&#xff0c;做一次数据检查就好了&#xff0c;该开灯…

正基塑业邀您参观2024长三角快递物流供应链与技术装备展览会

2024.7.8-10 杭州国际博览中心 科技创新&#xff0c;数字赋能 同期举办&#xff1a;数字物流技术展 新能源商用车及物流车展 电商物流包装展 冷链物流展 展会介绍 2024长三角快递物流供应链与技术装备展览会&#xff08;杭州&#xff09;&#xff0c;于2024年7月8-10日在杭州…

QGraphicsView 实例3地图浏览器

主要介绍Graphics View框架&#xff0c;实现地图的浏览、放大、缩小&#xff0c;以及显示各个位置的视图、场景和地图坐标 效果图: mapwidget.h #ifndef MAPWIDGET_H #define MAPWIDGET_H #include <QLabel> #include <QMouseEvent> #include <QGraphicsView&…

Tomcat 服务器部署和 IDEA 配置 Tomcat

(一) Tomcat 简介 Tomcat是Apache软件基金会一个核心项目&#xff0c;是一个开源免费的轻量级Web服务器&#xff0c;支持Servlet/JSP少量JavaEE规范。 概念中提到了JavaEE规范&#xff0c;那什么又是JavaEE规范呢? JavaEE: Java Enterprise Edition,Java企业版。指Java企业级…

【Java初阶(二)】分支与循环

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; 目录 1.前言2.顺序结构3.分支循环3.1if语句3.2switch语句 4.循环结构4.1while循环4.2 break和continue4.3 for循环4.4 do while循环 5.输入输出5.1输出5.2输…

三级数据库技术知识点(详解!!!)

1、从功能角度数据库应用系统可以划分为表示层、业务逻辑层、数据访问层、数据持久层四个层次&#xff0c;其中负责向表示层直接传送数据的是业务逻辑层。 【解析】表示层负责所有与用户交互的功能;业务逻辑层负责根据业务逻辑需要将表示层获取的数据进行组织后&#xff0c;传…

提升Midjourney风格化的三个技巧

1. 引言 在前篇博文中&#xff0c;我们详细讲述了Midjourney的新功能风格参考的一些基础使用方法&#xff0c;事实上我们可以通过控制参数和提示权重进行更多的自定义操作&#xff0c;在本文中&#xff0c;我将向大家介绍我在网上搜集到的一些提升风格化效果的三个技巧。 闲话…

阿里云服务器租用一年多少钱?2024年最新阿里云租用价格

2024年阿里云服务器租用费用&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元&#xff0c;ECS u1服务器2核4G5M固定带宽199元一年&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;2核4G服务…

NC 现金流量查询 节点 多账簿联查时,根据所选择的列来判断明细和现金流量联查按钮是否可用,根据添加列选择监听事件处理。

NC 现金流量查询 节点 多账簿联查时&#xff0c;根据所选择的列来判断明细和现金流量联查按钮是否可用&#xff0c;如下图的情况&#xff1a; 在现金流量查询界面UI类的initTable(QueryConditionVO conVO)方法中添加列选择监听事件即可&#xff0c;如下&#xff1a; // 列监听…

【Android】【Bluetooth Stack】蓝牙电话协议之拨打电话分析(超详细)

1. 精讲蓝牙协议栈&#xff08;Bluetooth Stack&#xff09;&#xff1a;SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅&#xff0c;【蓝牙协议栈】和【Android Bluetooth Stack】专栏会持续更新中.....敬请期待&#xff01…