当前位置: 首页 > news >正文

数据链路层(四):数据链路层协议

目录

  • 1 数据链路层协议
    • 1.1 异步协议
    • 1.2 同步协议
    • 1.3 局域网数据链路层协议
    • 1.4 广域网数据链路层协议

1 数据链路层协议

数据链路层“协议”也称为“规程”,数据链路控制协议也称数据链路控制规程。
数据链路控制协议主要分为异步协议和同步协议两大类。

1.1 异步协议

数据链路层的异步协议是一种通信协议,它允许数据在没有固定时间间隔的情况下传输。这种协议主要用于处理那些不需要连续发送大量数据的通信场景。

  • 传输单位:字符
  • 工作原理:
    • a.发送数据:发送方在准备好发送数据时,首先发送一个起始位,然后是数据位,最后是停止位。
    • b.接收数据:接收方在任何时刻都可以开始接收数据。它通过检测起始位来同步发送方的数据流,并在接收到停止位时结束接收。接收方需要对每个接收到的字符进行处理,如校验、解码等。
    • c.错误检测:异步协议通常包含错误检测机制,如奇偶校验位,以确保数据的完整性。如果接收到的数据出现错误,接收方可以请求发送方重发。
    • d.流量控制:为了防止数据丢失或溢出,异步协议可能采用简单的流量控制机制,如XON/XOFF,其中XON字符表示允许发送数据,而XOFF字符表示停止发送数据。
  • 基本特点:
    • a.字符计数:异步协议通常以字符为单位发送数据。每个字符包括数据位、起始位和停止位。起始位标志着字符的开始,而停止位则表示字符的结束。
    • b.起始位和停止位:起止式通信规程是异步协议的典型,它是靠起始为(逻辑0)和停止位(逻辑1)来实现字符内比特的同步的。这样的设计可以使接收方在任何时刻同步到发送方的数据流。
    • c.无固定时间间隔:异步通信不要求发送方和接收方在固定的时间间隔内交换数据。这意味着发送方可以在任何时刻发送数据,接收方则在准备好接收数据时开始接收。
    • d.流量控制:由于异步协议不保证发送方和接收方的同步,因此可能需要额外的流量控制机制来防止数据丢失或溢出。
  • 缺点:信道利用率很低,原因是:每个传输字符都要添加诸如起始位、校验位、停止位等冗余位
  • 应用场景:一般用于数据速率较低的场合,主要是用在调制解调器中

异步协议是一种灵活的通信方式,适用于数据传输不需要实时性或连续性的场景。它通过起始位和停止位来标识数据的开始和结束,允许数据在任何时刻被发送和接收,同时具备一定的错误检测和简单的流量控制机制。

1.2 同步协议

数据链路层的同步协议是一种在通信系统中用于确保数据正确传输的机制。与异步协议不同,同步协议要求发送方和接收方在固定的时间间隔内交换数据。这种协议主要用于那些需要连续发送大量数据的场景,如文件传输或实时通信。

  • 传输单位:由字符或比特组成的数据块
  • 工作原理:
    • a.建立同步:在通信开始之前,发送方和接收方需要通过交换同步序列来建立同步。这通常涉及到发送方发送一个特定的同步序列,接收方检测到该序列并确认同步。
    • b.发送数据:一旦同步建立,发送方就可以开始按照固定的时间间隔发送数据。每个数据单元都被封装在一个帧中,并以同步序列作为标识。
    • c.接收和处理数据:接收方在检测到同步序列后,开始接收数据帧。接收到的数据帧会被检查错误,并进行必要的处理,如解封装、解码等。
    • d.错误处理:如果接收方检测到错误,它会请求发送方重发受影响的数据帧。这通常涉及到发送一个错误指示信号,如否定应答(NAK)或选择重传(SRT)。
    • e.维持同步:在整个通信过程中,发送方和接收方需要持续维持同步。如果同步丢失,双方需要重新建立同步。
  • 基本特点:
    • a.固定时间间隔:同步协议要求数据按照固定的时间间隔发送。这意味着发送方和接收方必须在相同的速率下工作,以保证数据的连续性和一致性。
    • b.帧结构:在同步协议中,数据通常被组织成帧(frame)。每个帧包含一个完整的数据单元,如一个文件块或一段音频数据。帧的开始和结束由特定的同步序列(如特定的比特模式)标识。
    • c.同步序列:同步序列是同步协议中的关键组成部分,它用于帮助接收方识别帧的开始和结束。同步序列通常是预先定义好的,且具有独特的比特模式,以便于接收方进行同步。
  • 协议分类:
    • 面向字符(字节)的协议(Character-Oriented Protocol)
      • 传输单位:位
      • 实现方式:通过发送特定的比特组合来控制通信过程,比如发送命令或接收响应。这些控制信息可以和普通的数据一起在同一通信链路上发送,以便实时监控和管理链路的状态。简单来说,面向比特的协议能在传输数据的同时,用特定的比特模式来管理和调整通信链路。
      • 基本特点:
        • 通过发送特定的比特组合来控制通信过程
        • 控制信息可以和普通的数据一起在同一通信链路上发送
      • 典型代表:高级数据链路控制HDLC(High-level Data Link Control)
        • 特点:支持半双工和全双工通信
        • 所有面向比特的协议都和高级数据链路控制HDLC有关
    • 面向比特的协议(Bit-Oriented Protocol):
      • 面向字符的协议效率比面向比特的协议低,例如BSC规程,现在不大采用。

同步协议是一种确保数据在固定时间间隔内正确传输的机制,适用于需要连续数据流的通信场景。它通过同步序列来标识数据帧的开始和结束。同步协议要求发送方和接收方在相同的速率下工作,以保证数据的连续性和一致性。

1.3 局域网数据链路层协议

局域网数据链路层协议主要由IEEE 802小组制定,它们都涵盖了物理层和数据链路层。这些标准包括以下几个:

  • Ethernet(以太网)
  • Token-Ring(令牌环)
  • Token-Bus(令牌总线)
  • WLAN(无线局域网)

1.4 广域网数据链路层协议

广域网是基于交换技术的网络,网络中的中间节点负责将数据转发到下一个节点,节点间的线路利用率高。

广域网数据链路层技术复杂,它需要将数据封装成适合广域网传输的帧,以保证数据的可靠传输。

广域网通信子网部分由公共传输系统组成,提供相应服务的一般由电信运营商,如电信、联通、移动等。

广域网数据链路层标准有以下几个:

  • HDLC(高级数据链路控制)
  • X.25(公共分组交换网)
  • PPP(点到点协议)
  • Frame Relay(帧中继)

相关文章:

数据链路层(四):数据链路层协议

目录 1 数据链路层协议1.1 异步协议1.2 同步协议1.3 局域网数据链路层协议1.4 广域网数据链路层协议 1 数据链路层协议 数据链路层“协议”也称为“规程”,数据链路控制协议也称数据链路控制规程。 数据链路控制协议主要分为异步协议和同步协议两大类。 1.1 异步协…...

#Linux系统编程(孤儿进程及僵尸进程以及wait函数)

(一)发行版:Ubuntu16.04.7 (二)记录: (1)概述 在 Unix/Linux 系统中,正常情况下,子进程是通过父进程创建的,且两者的运行是相互独立的&#xff…...

苍穹外卖项目-01(开发流程,介绍,开发环境搭建,nginx反向代理,Swagger)

目录 一、软件开发整体介绍 1. 软件开发流程 1 第1阶段: 需求分析 2 第2阶段: 设计 3 第3阶段: 编码 4 第4阶段: 测试 5 第5阶段: 上线运维 2. 角色分工 3. 软件环境 1 开发环境(development) 2 测试环境(testing) 3 生产环境(production) 二、苍穹外卖项目介绍 …...

学习笔记(16)函数防抖和节流

JavaScript 中的函数防抖(Debounce)和函数节流(Throttle)是两种优化频繁触发事件回调函数执行的技术,它们主要用于限制函数调用的频率,尤其是在处理高频率触发且响应开销较大的用户交互场景时。 函数防抖 …...

【揭秘】空号检测平台挑选秘籍:让每一分钱都花在“刀刃”上

在数字化营销时代,精准的数据是企业制胜的关键。而空号检测平台作为数据清洗的重要工具,其选择的正确与否直接影响到营销效果与成本效益。如何在众多平台中慧眼识珠,找到最适合自己的“黄金搭档”?今天,就跟着企讯通一…...

Linux源码包安装

目录 一、transmission源码包安装 二、 nginx源码包安装 一、transmission源码包安装 1、下载编译环境所需的软件包依赖 2、下载transmision源码包到用户主目录下 https://github.com/transmission/transmission/releases/download/4.0.5/transmission-4.0.5.tar.xz 3、解压…...

【P1328】[NOIP2014 提高组] 生活大爆炸版石头剪刀布

[NOIP2014 提高组] 生活大爆炸版石头剪刀布 题目背景 NOIP2014 提高组 D1T1 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。在《生活大爆炸》第二季第 8 集中出现了一种…...

查看k8s中的secret

kubectl get secret xxx -o yaml -n xxxx参考: Managing Secrets using kubectl...

[深度学习]yolov8+pyqt5搭建精美界面GUI设计源码实现五

【简单介绍】 依托先进的目标检测算法YOLOv8与灵活的PyQt5界面开发框架,我们倾力打造出了一款集直观、易用与功能强大于一体的目标检测GUI界面软件。通过深度融合YOLOv8在目标识别领域的出色性能与PyQt5的精美界面设计,我们成功推出了一款高效且稳定的软…...

C# get set 访问器

在C#中get 访问器set 访问器属性的优势例子 在C#中 get 和 set 是访问器(accessors)的关键词,它们用于定义属性的读取和写入行为。属性是一种特殊的类成员,它提供了对字段(field)或计算结果的灵活访问。 …...

【OpenGL】使用 python + Qt + OpenGL 的现代渲染

伴随资源 目录 一、说明二、 PyQt4三、PyOpenGL四、OpenGL 管线五、Python集成开发环境5.1 Emacs配置5.2 pycharm环境 六、你好,OpenGL!七、QGL控件八、平截头体.svg九、定义几何9.1 立即模式与保留模式9.2 使用 VBO 定义 Cube 十、渲染立方体十一、渲…...

vlan、三层交换机、网关、DNS、子网掩码、MAC地址详解

vlan、三层交换机、网关、DNS、子网掩码、MAC地址详解 一、 什么是VLAN? VLAN中文是“虚拟局域网”。 ​ LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。 ​ VLAN所指的LAN特指使用路由器分割的网络——也就是广…...

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记11:数字电位器MCP4017

系列文章目录 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记01:赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记02:开发环境安装 嵌入式|蓝桥杯STM32G431(…...

CTF题型 nodejs(1) 命令执行绕过典型例题

CTF题型 nodejs(1) 命令执行绕过 文章目录 CTF题型 nodejs(1) 命令执行绕过一.nodejs中的命令执行二.nodejs中的命令绕过1.编码绕过2.拼接绕过3.模板字符串4.Obejct.keys5.反射6.过滤中括号的情况典型例题1.[GFCTF 2021]ez_calc2.[西湖论剑 2022]Node Magical Login 一.nodejs中…...

Mybatis在SpringBoot中是如何被加载执行

首先依赖于springboot的自动装配EnableAutoConfiguration注解,这个注解最终帮助我们读取mybatis-spring-boot-autoconfigure-x.x.x.jar中的META-INF\spring.factories配置类: org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.myb…...

数据采集用,集成了主流工业通讯协议

IoTClient 是一个物联网设备通讯协议实现客户端,集成了主流工业通讯协议,包括主流PLC通信读取、ModBus协议、Bacnet协议等。该组件基于.NET Standard 2.0,适用于.NET的跨平台开发,可在Windows、Linux等系统上运行,甚至…...

Django(三)-搭建第一个应用(2)

一、编写更多视图 问题详情页——展示某个投票的问题和不带结果的选项列表。问题结果页——展示某个投票的结果。投票处理器——用于响应用户为某个问题的特定选项投票的操作。 # 1.问题详情页:展示某个投票的问题和不带结果的选项列表 def detail(request,questi…...

求助:配置脚手架代理,跨域问题proxyTable配置无效,访问后显示404?

已经在这里卡了一天了。找了很多解决办法,比如重启,修改proxytable等等,但是每次但是404,求助各位大佬,怎么解决? 1、代码 (1)config的index.js (2) App.v…...

【4月】组队打卡《山有木Python特征工程极简入门》

活动名称 CDA Club 第2期《山有木兮Python数据分析极简入门》组队打卡 活动介绍 本次打卡活动由CDA俱乐部旗下学术部主办。目的是通过数据分析科普内容,为数据分析爱好者提供学习和交流的机会。方便大家利用碎片化时间在线学习,以组队打卡的形式提升学…...

Wireshark 抓包

启动时选择一个有信号的网卡双击打开,或者在 捕获选择里打开选择网卡。 然后输出下面的规则就可以抓到报文了。 最上面的三条是建立连接时的三次握手, 下面是发送数据hello 对应两条数据 最下面的4条是断时的4次挥手...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

基础测试工具使用经验

背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...