计算机网络 TCP/IP体系 数据链路层

一. 数据链路层的基本概念

数据链路层主要负责节点之间的通信,确保从物理层接收到的数据能够准确无误地传输到网络层。
在这里插入图片描述
数据链路层使用的信道主要有以下两种类型:

  1. 点对点信道: 这种信道使用一对一的点对点通信方式。
  2. 广播信道: 这种信道使用一对多的广播通信方式, 必须使用共享信道协议来协调这些主机的数据发送。

二. 数据帧

帧是数据链路层传输的基本单位,它是封装了特定信息的数据包。

帧的结构:

  1. 目的地址:接收方的物理地址(MAC地址)。
  2. 源地址:发送方的物理地址。
  3. 类型/长度:标识帧内数据的类型或长度。
  4. 数据字段:实际要传输的数据。
  5. 帧检验序列(FCS):用于检测传输过程中可能出现的错误,通常是一个基于CRC(循环冗余校验)计算的结果。
    在这里插入图片描述

2.2 封装成帧

当数据从高层向下传递到达数据链路层时,会被添加上必要的头部信息和尾部信息,形成一个完整的帧。在这里插入图片描述

2.3 透明传输

帧的透明传输是指在网络通信中,数据链路层能够确保任何类型的数据都能被正确无误地从发送方传输到接收方,而不会因为数据的内容或格式导致传输失败。为了实现帧的透明传输通常采用字符填充技术。

字符填充的工作原理:

  1. 定义特殊字符:
    • 起始标志(Start Flag):用于表示一个帧的开始。
    • 结束标志(End Flag):用于表示一个帧的结束。
    • 转义字符(Escape Character, ESC):用于指示下一个字符是一个特殊字符,而不是普通数据的一部分。
  2. 数据处理:
    • 当数据中出现了与起始标志或结束标志相同的字符时,发送方会在该字符前面插入一个转义字符。
    • 同样,如果数据中出现了与转义字符相同的字符,也需要在其前面插入一个转义字符。
  3. 接收处理:
    • 接收方在接收到数据时,会检查每个字符。
    • 如果遇到转义字符,则将下一个字符视为特殊字符处理,即移除转义字符并保留后面的字符。

在这里插入图片描述

2.4 差错检测

差错检测是数据通信中的一种技术,用于发现传输过程中可能出现的错误。这些错误可能是由于信号干扰、噪声、信号衰减或其他物理因素引起的。差错检测的主要目的是确保接收方能够识别出传输过程中发生的数据损坏,并采取相应的措施来处理这些错误。

常见的差错检测方法:

  1. 奇偶校验(Parity Check):
    • 原理:在数据中添加一个额外的位(奇偶位),使得整个数据中1的数量为奇数或偶数。
    • 类型:单比特奇偶校验只能检测奇数个错误,不能检测偶数个错误。
    • 优点:简单易实现。
    • 缺点:检测能力有限,无法定位错误的具体位置。
  2. 校验和(Checksum):
    • 原理:将数据分成若干段,对每段进行求和运算,最后将结果作为校验和附加到数据末尾。
    • 优点:比奇偶校验更强大,能检测更多的错误类型。
    • 缺点:仍然可能存在漏检的情况。
  3. 循环冗余校验(CRC, Cyclic Redundancy Check):
    • 原理:使用多项式除法生成一个固定长度的校验码,附加到数据末尾。
    • 优点:检测能力强,能够检测出大多数类型的错误,包括多位错误。
    • 缺点:计算复杂度较高,但现代硬件已经能够高效地实现CRC计算。
  4. 海明码(Hamming Code):
    • 原理:通过在数据中插入多个校验位,使得每个数据位都被多个校验位覆盖,从而能够检测并纠正单比特错误。
    • 优点:既能检测又能纠正错误。
    • 缺点:增加了数据的冗余度,适用于对可靠性要求极高的场合。

2.5 MAC地址

MAC地址是一种用于唯一标识网络设备的硬件地址。每个网络接口控制器都有一个唯一的MAC地址,它在数据链路层用于网络通信。

  • MAC地址的特点
    1. 唯一性:MAC地址在全球范围内是唯一的,确保了每个网络设备在局域网中都有一个独特的标识。
    2. 固定性:MAC地址通常是出厂时由制造商写入网络接口控制器的ROM中,不可更改(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)。
  • MAC地址的格式
    一个标准的MAC地址由6个字节(48位)组成,通常表示为12个十六进制数字,中间用冒号或连字符分隔。例如:
    00:1A:2B:3C:4D:5E
    00-1A-2B-3C-4D-5E

2.6 MTU最大传输单元

以太网帧中的数据长度规定最小46字节, 最大1500字节, ARP数据包的长度不够46字节, 要在后面补填充位; 最大值1500称为以太网的最大传输单元(MTU), 不同的网络类型有不同的MTU。
在这里插入图片描述

三. 点对点协议PPP

3.1 PPP协议的概念

PPP(Point-to-Point Protocol,点对点协议)是一种广泛使用的数据链路层协议,主要用于在点对点连接上提供数据传输服务。

3.2 PPP协议的功能

  1. 封装数据:将上层协议(如IP)的数据封装成适合在点对点链路上传输的帧格式。
  2. 链路配置:自动协商和配置链路参数,如最大传输单元(MTU)、认证方式等。
  3. 错误检测和纠正:通过使用循环冗余校验(CRC)来检测传输错误。
  4. 多协议支持:支持多种网络层协议,如IP、IPX等。
  5. 身份验证:提供多种身份验证方法,确保连接的安全性。
  6. 动态地址分配:支持动态分配IP地址,常用于拨号上网等场景。

3.3 PPP协议的格式

在这里插入图片描述

  • Flag:帧的开始和结束标志,固定值为 0x7E。
  • Address:目标地址,通常为 0xFF,表示广播地址。
  • Control:控制字段,通常为 0x03,表示无编号信息。
  • Protocol Field:协议字段,指示帧中携带的数据所属的协议类型。例如,0xC021表示LCP,0x8021 表示IPCP。
  • Information:数据字段,携带具体的协议数据。
  • Frame Check Sequence(FCS):帧检验序列,用于检测传输错误,通常使用CRC-16或CRC-32。

四. CSMA/CD协议

4.1 CSMA/CD的概念

CSMA/CD是一种用于局域网中的介质访问控制协议。它的主要目的是在共享介质上允许多个设备高效、可靠地传输数据,同时尽量减少数据包碰撞的可能性。

4.2 CSMA/CD的工作原理

  1. 监听介质:
    • 设备在准备发送数据之前,先监听介质,检查是否有其他设备正在传输数据。
    • 如果介质是空闲的,进入下一步;如果介质是忙的,等待一段时间后重新监听。
  2. 发送数据:
    • 如果介质是空闲的,设备开始发送数据。
    • 在发送过程中,设备继续监听介质,以检测是否发生了冲突。
  3. 检测冲突:
    • 如果在发送过程中检测到冲突,设备立即停止发送,并发送一个冲突信号。
    • 冲突信号确保所有设备都能检测到冲突,并停止发送数据。
  4. 退避和重试:
    • 发生冲突后,每个设备会随机选择一个退避时间(通常是一个随机的时隙数),并在等待这段时间后再重新尝试发送数据。
    • 如果再次发生冲突,重复上述步骤,直到数据成功发送或达到最大重试次数。
      在这里插入图片描述

4.3 CSMA/CD的优缺点

优点:

  1. 简单高效:CSMA/CD协议简单易实现,能够有效地管理共享介质上的多设备通信。
  2. 动态适应:能够动态适应网络负载的变化,通过退避机制减少冲突的发生。
    局限性:
  3. 冲突问题:在高负载情况下,冲突频繁发生,导致传输效率下降。
  4. 不适合全双工通信:CSMA/CD仅适用于半双工通信,因为全双工通信中每个设备都有独立的发送和接收通道,不需要冲突检测。

————————————————————
感谢大家观看,不妨点赞支持一下吧喵~
如有错误,随时纠正喵~

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

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

相关文章

使用注解装配Bean

!!!仅用作学习笔记记录!!! 一、一些概念: 1.定义Bean的注解: 在实际开发中分别使用Repository、Service与Controller对实现类进行标注。 2.注入Bean组件装配的注解 Autowired默认…

csa文件管理账号管理练习

1、查看/etc/passwd文件的第18-20行内容,并将找到的内容存储至/home/passwd文件中(head,tail,>,>>) # head -num 显示文件头num行 # tail -num :显示文件的最后num行 # 输出重定向 > # 使用…

软考高级架构 - 8.1 - 系统质量属性与架构评估 - 超详细讲解+精简总结

第8章 系统质量属性与架构评估 软件系统属性包括功能属性和质量属性,而软件架构重点关注质量属性。 8.1 软件系统质量属性 8.1.1 概述 软件系统的质量反映了其与需求的一致性,即:软件系统的质量高低取决于它是否能满足用户提出的需求&#…

初见Linux:基础开发工具

前言: 这篇文章我们将讲述Linux的基本开发工具,以及讨论Linux的生态圈,最后再了解vim开发工具。 Yum: YUM(Yellowdog Updater Modified)是一个在Linux系统中用于管理软件包的工具,特别是在基于…

电信基站智能计量新方案:DJSF1352双通讯直流计量电表——安科瑞 丁佳雯

随着信息技术的飞速发展和5G时代的到来,电信基站作为信息传输的重要基础设施,其能耗管理和运营效率成为各大运营商关注的焦点。为了应对日益增长的能耗需求和复杂的运维挑战,采用高效、智能的计量方案显得尤为重要。在这样的背景下&#xff0…

Pytorch cuda版本选择(高效简洁版)

简而言之 Pytorch cuda版本选择 只需要低于cuda驱动版本即可,cuda驱动版本查看命令是nvidia-smi, nvcc -V 是runtimeapi版本可以不用管 1.只要看cuda驱动版本 安装pytorch 选择cuda版本,只要看你电脑cuda驱动版本即可。 2.选择依据 pytorch中cuda版本只…

全网最详细的项目管理完整方案!破解项目管理难题,解决方案一网打尽!

在现代企业中,项目管理愈发复杂,尤其是项目规模扩大、团队多元化的情况下,项目管理的难度逐渐上升。当前,企业在项目管理中面临以下主要问题: 信息碎片化:项目数据和文件分散在不同部门和系统中&#xff0…

数据库的使用05:不规范的写法与操作记录

一、写SQL带数据库名 【严禁】sql写成 select * from databasename.dbo.tablename 【原因】生产环境的databsename不一定和开发环境的databsename一样 【正确写法】select * from tablename 二、不合理的表设计 【改善方法】C#小结:数据库中数据表的设计原则、技…

YOLO11改进 | 融合改进 | C3k2引入多尺度分支来增强特征表征【全网独家 附结构图】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 本文给大家带来的教程是将YOLO11的C3k2替…

三维测量与建模笔记 - 3.1 相机标定基本概念

成像领域有多个标定概念 笔记所说的相机标定主要是指几何标定。 相机几何模型基于小孔成像原理,相关文章很多,上图中R t矩阵是外参矩阵(和相机在世界空间中的位姿相关),K矩阵是内参矩阵(和相机本身参数相关…

安卓/华为手机恢复出厂设置后如何恢复照片

绝大多数安卓用户都会经历过手机恢复出厂设置,部分用户可能没有意识到手机恢复出厂设置可能会导致数据丢失。但是,当您在 云盘上进行备份或在设备上进行本地备份时,情况就会有所不同,并且当您将 安卓手机恢复出厂设置时&#xff0…

丹摩征文活动 |【AI落地应用实战】文本生成语音Parler-TTS + DAMODEL复现指南

目录 一、Parler-TTS简介1.1、TTS 模型1.2、Parler-TTS 二、Parler-TTS复现流程2.1、创建实例2.2、配置代码与环境2.3、配置预训练模型2.4、Parles-TTS使用 Parler-TTS 是一个由 Hugging Face 开源的文本生成语音 (Text-to-Speech, TTS) 模型。它的设计目的是生成高质量的语音输…

【QT项目】QT6项目之基于C++的通讯录管理系统(联系人/学生管理系统)

目录 一.项目背景 二.创建工程 工程创建 添加文件 联系人类 功能类 三.功能实现 联系人类 person.cpp person.h 查 查询按钮槽函数 返回按钮槽函数 findperson.cpp: 增 addperson.cpp: 删 deleteperson.cpp: 改 changeperson.cpp&#xff1a…

一文详谈领域驱动设计实践

作者:泊静 阿里云开发者 导读 本文作者结合在团队的实践过程,分享了自己对领域驱动设计的一些思考。 了解过领域驱动设计的同学都知道,人们常常把领域驱动设计分为两部分:战术设计和战略设计。这两个概念本身都是抽象的&#xff…

单链表OJ思路

目录 前言 一、移除链表元素 二、反转链表 三、链表的中间结点 四、返回倒数第k个结点 五、合并两个有序链表 六、链表分割 七、链表的回文结构 八、相交链表 九、环形链表 十、环形链表|| 十一、随机链表的赋值 前言 11道单链表OJ题的解题思路。 一、移除链表元素 链接&#…

数据结构与算法——Java实现 54.力扣1008题——前序遍历构造二叉搜索树

不要谩骂以前的自己 他当时一个人站在雾里也很迷茫 ​​​​​​​ ​​​​​​​ ​​​​​​​—— 24.11.6 1008. 前序遍历构造二叉搜索树 给定一个整数数组,它表示BST(即 二叉搜索树 )的 先序遍历 ,构造树并返回其根。 保证 对于给定…

【Qt聊天室客户端】单聊与群聊

1. 区分单聊和群聊 逻辑分析 具体实现逻辑 主窗口完善判断单聊还是群聊的逻辑 单聊会话详情入口中,设置头像和昵称 2. 删除好友 直接找到删除好友的按钮,然后实现其删除逻辑即可 具体实现 无法删除好友BUG处理 问题复现,点击好友删除后&…

1.集合体系补充(1)

1.接口式引用 集合的构造,我们需要采用接口类型引用的的方式,这样做的好处就是方便根据业务或者设计上的变化,快速更换具体的实现。 事实上,Java集合设计体系者也是支持我们这样做的,并且集合体系的设计也是如此的。 创…

枚举及优化(一)

第1题 百钱买百鸡 查看测评数据信息 百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100只鸡,公鸡、母鸡、小鸡各买多少只?本程序要求解的问题是:给定一个正整…

自注意力机制

当输入一系列向量,想要考虑其中一个向量与其他向量之间的关系,决定这个向量最后的输出 任意两个向量之间的关系计算 计算其他向量对a1的关联性 多头注意力机制 图像也可以看成一系列的向量,交给自注意力机制处理,CNN是特殊的自注意…