计算机网络-数据链路层

一、数据链路层所使用的信道类型:

1、点对点信道->PPP协议

2、广播信道。->CSMA/CD协议

二、从层次上看数据的流动

97bb388efa884fa280bc220b8c70ed58.png

三、数据链路和帧

链路:即物理链路,从一个结点到相邻节点的一段物理链路。

数据链路:逻辑链路,当在一条线路上传送数据时,除去必须的物理链路以外还需要一些必须的通信协议来控制数据的传输,把实现这些协议的硬件和软件加到链路上就构成了数据链路。

帧:数据链路层把网络层交下来的数据(IP数据报)构成帧发送到链路上。数据链路层进行通信时的步骤如下:

1 结点A的数据链路层把网络层交付下来的IP数据报添加首部和尾部封装成帧。

2 结点A把封装好的帧交给结点B的数据链路层。

3 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给网络层,否则丢弃该帧。

四、数据链路层的三个基本问题

1、封装成帧

为什么要将数据封装成帧?

1. 数据分割和组织

  • 分割数据:网络层传递的数据包可能很大,直接传输不仅效率低下,还容易出错。封装成帧可以将大数据包分割成多个较小的帧,便于传输和管理。

  • 组织数据:帧结构为数据提供了清晰的组织形式,每个帧都包含了必要的控制信息和校验机制,使得数据在传输过程中更加有序和可控。

2. 错误检测与纠正

  • 错误检测:帧头和帧尾中的控制字段(如帧校验序列,FCS)用于检测数据在传输过程中是否发生了错误。如果没有封装成帧,错误检测将变得非常复杂和低效。

  • 错误纠正:通过封装成帧,数据链路层可以使用各种协议(如HDLC、PPP)进行差错控制,确保数据的可靠传输。例如,接收方可以通过序列号和确认机制进行重传请求。

3. 寻址与识别

  • 寻址:每个帧中包含了源地址和目的地址(如MAC地址),这些地址用于在局域网中正确标识发送方和接收方。如果没有封装成帧,每个数据包都需要额外携带这些地址信息,增加了不必要的复杂性和开销。

  • 识别:帧中的控制字段(如帧类型、协议类型)帮助接收方识别数据的类型和如何处理这些数据。这在多种协议共存的环境中尤为重要。

4. 流量控制与拥塞控制

  • 流量控制:通过封装成帧,数据链路层可以使用各种流量控制机制(如滑动窗口协议)来管理数据流量,防止发送方发送过快导致接收方无法处理。

  • 拥塞控制:在某些情况下,封装成帧也有助于网络中的拥塞控制。例如,通过限制帧的发送速率来避免网络拥塞。

5. 协议兼容性

  • 协议兼容:不同的数据链路层协议(如以太网、PPP、HDLC)有不同的帧格式和功能。通过封装成帧,不同的设备和网络可以使用统一的帧结构进行通信,确保协议的兼容性和互操作性。

6. 安全性

  • 数据完整性:帧校验序列(FCS)等机制确保了数据在传输过程中的完整性,防止数据被篡改或损坏。

  • 访问控制:通过帧中的地址信息,数据链路层可以实现基本的访问控制,防止未经授权的设备接入网络。

帧首部和帧尾部还有一个很重要的功能就是进行帧定界。为了提高传输效率,要求尽量让帧的数据部分长度大于帧首部和帧尾部,不过,每一种链路层协议都规定了传送帧的数据部分长度上限,即最大传送单元MTU。以太网的最大传送单元MTU的值为1500B。

2、透明传输

  • 无改动传输:透明传输意味着数据在传输过程中不会被修改或丢失,保持其原始状态。这意味着数据链路层仅负责封装、传输和解封装数据,而不对数据内容本身进行任何处理。
  • 无感知传输:高层协议(如网络层)不需要了解底层物理层的具体实现细节,只需关心数据是否被正确传输。

面向字节的物理链路采用字节填充的方法实现透明传输。

9565b87f796845ec825d890f1a57c67d.png

在帧的首部和尾部有帧定界符,帧定界符是一个特殊数值,如果在帧的数据部分恰好也包含了这个数值,那么接收方在解析数据链路层发来的帧时,就会错误的认为这就是帧的结束 。解决办法是在将帧交付给物理层之前,对帧的数据载荷中数值与针定界符相同的数据前插入转义字符,当然,如果数据载荷中出现了与转义字符数值相同的数据,就在其前面再添加一个转义字符(套娃),接收方在解析收到的帧时,再逐个剔除转义字符,从而提取出正确的数据。

面向比特的物理链路采用比特填充的方法实现透明传输e04da454e3a14032999be4181199f61d.png 

如图所示 ,这里采用0比特填充法,假设某个帧的帧首部和尾部为01111110,如果在数据载荷部分也出现了与帧首部尾部相同的位串,就无法实现透明传输,这里的解决办法是,每出现连续的5个1就在后面插入一个比特0.

差错检验:这里只介绍一下CRC循环冗余检验,具体计算步骤参考湖南科技大学计算机网络深入浅出视频课。

409de1397bfd4994944be2ee00a2482d.png

 

 

 3b006a7ae74d4fbf9914b6becea4fbc4.png

五、 CSMA/CD协议

CSMA/CD协议的意思是载波监听多点接入/碰撞检测

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

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

相关文章

Web入门

Spring 官网:Spring | Home Spring是一个开源的Java企业级应用开发框架。Spring的主要目的是使Java EE(Java Platform, Enterprise Edition)开发更容易,并且通过提供一系列丰富的库和接口来促进良好编程实践,是…

人工智能下半场,全球期待AI超级应用

人工智能(AI)这个概念,从1955年的达特茅斯会议开始,已经走过了很长的路。从最初的统计语言模型,到专家系统、神经网络,再到深度学习,AI技术不断进步。2019年到2022年,预训练模型大量…

西圣、猛玛、科唛领夹麦克风哪个牌子好?领夹麦精品实测大PK

无线领夹麦克风,这个在音频领域逐渐崭露头角的设备,已经深入到我们生活中的许多场景。从线上会议的清晰收音,到自媒体创作者户外拍摄时的便捷声音采集,它的重要性不言而喻。可是,市场上无线领夹麦克风的乱象令人担忧。…

哈工大华为出品|大模型「幻觉」,看这一篇就够了

大模型“幻觉”,终于有系统综述了! 一口气49页,详细阐述了幻觉定义、分类、导致幻觉的原因,还有检测幻觉、减轻幻觉的方法。 这篇最新综述来自哈工大和华为,一po出就在网上火得不行: 具体来说&#xff0c…

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56 1. STM32F407 BootLoader 中的 Flash 擦除功能详解 在嵌入式系统中,BootLoader 的设计是非常关键的部分,它负责引导主程序的启动、升级以及安全管理。而在 STM32F407 等 MCU 上实现 BootLoader&…

J.U.C - 深入解读重入锁和读写锁

文章目录 概述synchronized的缺陷1)synchronized不能控制阻塞,不能灵活控制锁的释放。2)在读多写少的场景中,效率低下。 独占锁ReentrantLock原理ReentrantLock概述AQS同步队列1. AQS实现原理2. 线程被唤醒时,AQS队列的…

异地双活容灾技术研究

摘要 随着技术快速发展,尤其是人工智能、大数据等新兴技术的应用,对数据安全提出了新的挑战,平台部署在机房云资源池,当云平台因人为错误原因出现基础设施故障,或自然灾害使得云平台的机房出现停电、断网等故障&#x…

从Facebook到Meta:公司转型背后的战略与意义

2021年,Facebook宣布更名为Meta,转型聚焦于“元宇宙”——这一虚拟世界的构建标志着公司从传统社交平台向更前沿的科技领域迈进。本文将探讨这一转型的背景、战略布局及其深远意义。 一、转型背景:应对市场和技术的挑战 自2004年成立以来&am…

前端在PC端实现支付思路流程

一.去支付 1.前端点击“去支付”按钮,请求订单详情接口,传递订单的id、订单号给后端和请求支付方式接口 2.后端返回支付信息和支付方式数据 二.弹出支付窗口 接收支付信息和支付方式数据后,前端弹出支付弹窗 三.确认支付 前端无论选择任何…

STM32 51单片机设计半导体制冷片温控设计

目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 基于STM32与51单片机的半导体制冷片温控设计 前言 随着现代工业、医疗…

开源大模型技术路线及趋势

1. 三个维度 大模型研发力量 学术机构 大模型创业公司 科技大厂 旗舰开源模型的形态/模态 基础大模型 -> instruct大模型 -> 多模态(VL大模型 -> 类gpt-4o大模型) 时间线 23年上半年 23年下半年 24年 25年 2. 核心观察 学术机构及…

Vue学习笔记

Vue学习笔记 以下内容为黑马SpringbootVue3中的Vue3教程部分 Vue概述 什么是Vue? Vue 是一款用于构建用户界面的渐进式的JavaScript框架。(官方:https://cn.vuejs.org/) 快速入门 准备 准备html页面,并引入Vue模块(官…

Java 使用MyBatis-Plus数据操作关键字冲突报错You have an error in your SQL syntax问题

问题 这个报错是出现在Java Spring boot项目中,使用MyBatis-Plus通过创建的实体类对数据库的操作过程中,通过实体创建数据库表是没有问题的,而在接口调用服务类操作数据库的时候,会出现报错。报错详情如下: 服务请求异…

Chrome DevTools Protocol 进阶: Page域

前言 本章开始我们将进一步学习 Chrome DevTools Protocol(CDP),首先切入的内容是 CDP 中的域。 在 Chrome DevTools Protocol(CDP) 中,Page 域 是一个至关重要的部分,它负责控制浏览器页面的…

电动采光排烟大窗施工常见问题

电动采光排烟天窗施工常见问题可能涉及多个方面,包括施工前的准备、施工过程中的操作以及施工后的维护等。以下是对这些常见问题的归纳和分析。 一、施工前的准备问题 1、现场勘查不足,可能导致天窗尺寸、形状和材质不符合建筑设计要求; 2…

关于VUE NPM安装失败的问题

最近使用 npm install --registryhttps://registry.npmmirror.com 安装一个新项目的依赖,各种失败。 最后发现是package-lock里面有老的淘宝的域名,整体替换掉就行了

51单片机应用开发---LCD1602显示应用

实现目标 1、了解LCD1602液晶屏; 2、掌握驱动程序的编写; 3. 具体目标:在屏幕上显示字符。 一、LCD1206概述 1.1 定义 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置…

解决Clion相对路径失效的问题

Clion相对路径失效的可能原因 工作目录不对相对路径错误 解决方法 设置工作目录 点击 工作文件 将工作路径置空 (或设置正确的工作路径) 之后便可完美解决 设置全局路径 这样即可解决 希望能帮助到你

香港电讯连续蝉联香港01「大湾区企业同创大奖」

香港电讯非常荣幸地连续第四年荣获「香港01大湾区企业同创大奖」殊荣,以表扬我们在大湾区业务所取得的卓越成绩,以及我们积极促进区内跨境业务方面的贡献。 面对企业拓展业务的迫切需求,香港电讯提供全面的跨境数码方案,包括SD-WA…

Vue3.js - 一文看懂Vuex

1. 前言 Vuex 是 Vue.js 的官方状态管理库,用于在 Vue 应用中管理组件之间共享的状态。Vuex 适用于中大型应用,它将组件的共享状态集中管理,可以避免组件间传递 props 或事件的复杂性。 2. 核心概念 我们可以将Vuex想象为一个大型的Vue&…