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

目录

  • 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(帧中继)

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

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

相关文章

java常用IO流功能——字符流和缓冲流概述

前言: 整理下学习笔记,打好基础,daydayup! 之前说了下了IO流的概念,并整理了字节流,有需要的可以看这篇 java常用应用程序编程接口(API)——IO流概述及字节流的使用 字符流 FileReader(文件字…

leetcode 1218.最长定差子序列

思路:动态规划。 其实这道题和最长递增子序列很像,都是以数字为结尾的dp形式,也就是把判断条件改了一下就是了。 这里首先我们用二重循环来做一下,发现会时间超时,因为这里的时间数是大于10万的,所以要么…

docker 共享内存不足问题

在启动容器时增加共享内存大小: 您可以通过在docker run命令中添加--shm-size参数来指定更大的共享内存大小。例如,如果您需要32GB的共享内存,可以这样做: docker run --shm-size32g -it your-docker-image 这里的your-docker-im…

SAP Fiori开发中的JavaScript基础知识2 - 变量,操作符,值,类型

1. JavaScript代码示例 在介绍JavaScript具体语法前&#xff0c;让我们先看一段在Web应用程序过程中的JS代码片。 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>First JavaScript Application!</title><scr…

webpack proxy工作原理?为什么能解决跨域?

一、是什么 webpack proxy&#xff0c;即webpack提供的代理服务 基本行为就是接收客户端发送的请求后转发给其他服务器 其目的是为了便于开发者在开发模式下解决跨域问题&#xff08;浏览器安全策略限制&#xff09; 想要实现代理首先需要一个中间服务器&#xff0c;webpac…

代码随想录算法训练营Day35|LC860 柠檬水找零LC406 根据身高重建队列LC452 用最少数量的箭引爆气球

一句话总结&#xff1a;身高队列看起来不简单&#xff0c;实际上也很难。 原题链接&#xff1a;860 柠檬水找零 简单贪心思想即可。5元时加入cnt5&#xff0c;10元时cnt10&#xff0c;cnt5--&#xff0c; 20元时则优先找零10元再找零5元&#xff0c;这样最后判断是否在一次找零…

超全整理,软件测试-性能测试流程汇总,看这一篇就够了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试&#xf…

Redis 教程系列之Redis 客户端连接(八)

Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接&#xff0c;当一个连接建立后&#xff0c;Redis 内部会进行以下一些操作&#xff1a; 首先&#xff0c;客户端 socket 会被设置为非阻塞模式&#xff0c;因为 Redis 在网络事件处理上采用的是非阻塞…

2024年蓝牙耳机怎么选?五大爆火真无线蓝牙耳机推荐大公开!

​随着科技的进步&#xff0c;越来越多的用户倾向选择无线蓝牙耳机&#xff0c;摆脱有线耳机的束缚&#xff0c;享受更加自由的音乐体验。为了帮助大家选购到适合自己的蓝牙耳机&#xff0c;我整理了一些目前市面上我个人认为性能优异的款式&#xff0c;与大家分享。 一、蓝牙耳…

封装的charts使用 vue2

//组件 <template><div ref"chartRef" class"echart"></div> </template><script> import * as echarts from echartsexport default {data() {return {chart: null}},methods: {init() {if (!this.chart) {this.chart ech…

共享旅游卡见证旅游市场的活力与魅力!这个财富风口你抓住了吗?

共享旅游卡&#xff0c;探索旅游市场新活力&#xff0c;捕捉财富风口 暑期旅游热潮涌动&#xff0c;中国旅游研究院预测&#xff0c;今年暑期将成为五年来最为火爆的旅游季节。在6月至8月期间&#xff0c;国内旅游人数预计占全年出游总人数的近三成&#xff0c;旅游收入也有望…

typeScript5(元组)

数组一般由同种类型的值组成&#xff0c;但有时我们需要在单个变量中存储不同类型的值&#xff0c;这时候我们就可以使用元组。在 JavaScript 中是没有元组的&#xff0c;元组是 TypeScript 中特有的类型&#xff0c;其工作方式类似于数组。 元组最重要的特性是可以限制数组元…

龙哥风向标20240326 GPT拆解

视频号刷到一个便携折叠屏&#xff0c;直击商务用户群体痛点 盈利点&#xff1a;利用视频号平台上商务用户群体的需求&#xff0c;推出便携折叠屏产品&#xff0c;吸引高客单的商务用户群体&#xff0c;同时可以考虑拓展海外市场。 操作步骤&#xff1a; 通过视频号平台了解商…

通科技新品亮相:4K60编解一体,USB透传无忧

在信息化快速发展的今天&#xff0c;音视频技术的需求与应用场景日益丰富&#xff0c;特别是在对视频画质和实时性要求极高的领域中&#xff0c;如军警、公安、金融等&#xff0c;对音视频处理设备的性能要求更为严格。为满足这些高端应用场景的需求&#xff0c;视通科技紧跟时…

【MySql】MySQL表的结构

MySQL表的结构通常包含以下几个部分&#xff1a; 表名&#xff1a; 每个表都有一个唯一的名称&#xff0c;用于标识这个表。 字段&#xff1a; 表中的每一列被称为字段&#xff0c;每个字段都有一个名称和数据类型。如姓名、年龄、编号等。 记录&#xff1a; 表中的每一行被称…

【Node.js从基础到高级运用】十八、Node.js的安全性加固

引言 在Web开发中&#xff0c;安全性是一个不可忽视的话题。Node.js作为一个流行的后端平台&#xff0c;同样需要关注各种潜在的安全威胁&#xff0c;并采取措施加以防御。本文将介绍如何在Node.js应用中防御常见的Web攻击&#xff0c;以及如何使用安全相关的中间件来加固安全性…

24.Python从入门到精通—函数 标准模块 包

24.从入门到精通&#xff1a;__name__属性 dir(函数 标准模块 包 从一个包中导入* __name__属性dir() 函数标准模块包从一个包中导入* __name__属性 在Python中&#xff0c;每个模块&#xff08;module&#xff09;都有一个内置的属性name&#xff0c;用于表示模块的名称。这个…

MySQL-1.数据库的基本操作

1. 数据库的基本操作 show databases; information_schema&#xff1a;信息图式&#xff0c;存储服务器管理数据库的信息 mysql&#xff1a;存放系统信息&#xff0c;用户名密码等 performance_schema&#xff1a;性能图式 sys&#xff1a;系统文件 1.1 创建数据库-studen…

vue指令相关

vue中有很多的指令像v-on、v-model、v-bind等是我们开发中常用的 常用指令 v-bind 单向绑定解析表达式 v-model 双向数据绑定 v-for 遍历数组/对象/字符串 v-on 绑定事件监听,可简写为@ v-show 条件渲染(动态控制节点是否存展示) v-if 条件渲染(动态控制节点是否存存在) v…

Linux VFS机制详解

在深入探讨Linux操作系统内部机制时&#xff0c;我们无法忽视一个关键的核心组件——Linux Virtual File System (VFS)。VFS作为Linux内核中的重要组成部分&#xff0c;其主要作用是在用户空间应用程序与内核中多样化的物理文件系统之间搭建起一座桥梁&#xff0c;提供了一个抽…