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

news2024/11/25 0:19:47

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

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

  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.coloradmin.cn/o/2234254.html

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

相关文章

数据结构————链表

一、引言 1. 中间/头部的插入删除,时间复杂度为O(N) 2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。 3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200&#x…

【网络原理】深入理解关于HTTP协议和报文的格式以及重要的属性

前言 🌟🌟本期讲解关于HTTP协议的重要的机制~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…

【MyBatis源码】CacheKey缓存键的原理分析

文章目录 Mybatis缓存设计缓存KEY的设计CacheKey类主体CacheKey组成CacheKey如何保证缓存key的唯一性 Mybatis缓存设计 MyBatis 每秒过滤众多数据库查询操作,这对 MyBatis 缓存键的设计提出了很高的要求。MyBatis缓存键要满足以下几点。 无碰撞:必须保证…

面试题:JVM(二)

1. 面试题 简述 Java 类加载机制?(百度) JVM类加载机制 (滴滴) JVM中类加载机制,类加载过程,什么是双亲委派模型? (腾讯) JVM的类加载机制是什么? &#x…

数据库的使用02:SQLServer的连接字符串、备份、还原、SQL监视相关设置

目录 一、连接字符串 【本地连接字符串】 【远程连接字符串】 二、备份 三、还原 (1)还原数据库-bak、btn文件 (2)附加数据库mdf文件 四、SQL监视器的使用 一、连接字符串 【本地连接字符串】 server DESKTOP-FTH2P3S; Da…

【2024工业图像异常检测文献】UCAD: 使用对比学习提示的无监督连续异常检测方法

Unsupervised Continual Anomaly Detection with Contrastively-learned Prompt 1、Background 无监督异常检测(UAD)专注于在没有先验知识或标记实例的情况下识别数据中的不寻常模式或异常值,仅依赖于“正常”数据的内在分布(Cha…

【算法】Floyd多源最短路径算法

目录 一、概念 二、思路 三、代码 一、概念 在前面的学习中,我们已经接触了Dijkstra、Bellman-Ford等单源最短路径算法。但首先我们要知道何为单源最短路径,何为多源最短路径 单源最短路径:从图中选取一点,求这个点到图中其他…

[C++]——哈希(附源码)

目录 ​编辑 ​编辑 一、前言 二、正文 2.1 unorder系列关联式容器 2.1.1 unordered_map 2.1.1.1 unorderer_map的介绍 ①unordered_map的构造 ②unordered_map的容量 ③unordered_map的迭代器 ④unordered_map的元素访问 ⑤unordered_map的查询 ⑥unordered_map的修改操…

使用Ubuntu快速部署MinIO对象存储

想拥有自己的私有云存储,安全可靠又高效?MinIO是你的理想选择!这篇文章将手把手教你如何在Ubuntu 22.04服务器上部署MinIO,并使用Nginx反向代理和Let’s Encrypt证书进行安全加固。 即使你是新手,也能轻松完成&#xf…

Maven 下载配置 详解 我的学习笔记

Maven 下载配置 详解 我的学习笔记 一、Maven 简介二、maven安装配置三、maven基本使用四、idea配置mavenidea配置maven环境maven坐标idea创建maven项目配置Maven-Helper插件 五、依赖管理 一、Maven 简介 Apache Maven 是一个项目管理和构建工具,它基于项目对象模型…

一文带你了解,全国职业院校技能大赛老年护理与保健赛项如何备赛

老年护理与保健,作为2023年全国职业院校技能大赛的新增赛项,紧密贴合党的二十大精神,致力于加速健康与养老产业的蓬勃发展,并深化医养康养结合的服务模式。此赛项不仅承载着立德树人的教育使命,更通过竞赛的引领作用&a…

STM32ZET6-USART使用

一、原理说明 STM32自带通讯接口 通讯目的 通信方式: 全双工:通信时可以双方同时通信。 半双工:通信时同一时间只能一个设备发送数据,其他设备接收。 单工:只能一个设备发送到另一个设备,例如USART只有…

电话语音机器人,是由哪些功能构成?

电话语音机器人是自动电话销售、筛选意向客户的,只要录入好行业话术,导入要拨打的手机号,机器人就可以上岗工作了。 电话语音机器人组成部分: 1、语音识别器,主要作用:识别客户讲话内容,从而做…

理解 WordPress | 第二篇:结构化分析

WordPress 专题致力于从 0 到 1 搞懂、用熟这种可视化建站工具。 第一阶段主要是理解。 第二阶段开始实践个人博客、企业官网、独立站的建设。 如果感兴趣,点个关注吧,防止迷路。 WordPress 的内容和功能结构可以按照层级来划分,这种层次化的…

vue3项目history模式部署404处理,使用 historyApiFallback 中间件支持单页面应用路由

vue3项目history模式部署404处理,使用 historyApiFallback 中间件支持单页面应用路由 在现代的 web 开发中,单页面应用(SPA)变得越来越流行。这类应用通常依赖于客户端路由来提供流畅的用户体验,但在服务器端&#xf…

计算机毕业设计Hadoop+PySpark深度学习游戏推荐系统 游戏可视化 游戏数据分析 游戏爬虫 Scrapy 机器学习 人工智能 大数据毕设

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

PHP电商供应链ERP管理系统小程序源码

🚀电商供应链大揭秘!ERP管理系统如何重塑你的商业版图✨ 🔍 什么是电商供应链ERP管理系统? 电商供应链ERP管理系统是一款基于FastAdminThinkPHP开发的系统。该系统可满足电商企业管理自身进销存,帮助中小型电商企业管…

全参微调与LoRA的区别,及7种LoRA变种方法解析

随着LLM的发展和应用,在LLM的预训练模型基础上做微调,使其适用于自己的业务场景的研究越来越多。与全参数SFT相比LoRA是在冻结LLM本身参数的基础上,在旁路增加两个可学习的矩阵,用于训练和学习,最后推理是LLM输出和可学…

ubuntu工具 -- ubuntu服务器临时没有网络,急需联网下载东西怎么办? 使用手机提供网络

问题 ubuntu服务器配置经常遇到临时需要网络下载文件需求, 通过有线连接又来不及 解决方法 使用手机usb为ubuntu服务器提供网络 先在ubuntu上运行 ifconfig 查看当前的网络接口, 一会看看多了哪个网口 1. 手机端操作 先使用usb数据线将手机连接到服务器上 打开手机的usb共享…

一文快速预览经典深度学习模型(一)——CNN、RNN、LSTM、Transformer、ViT

Hi,大家好,我是半亩花海。本文主要简要并通俗地介绍了几种经典的深度学习模型,如CNN、RNN、LSTM、Transformer、ViT(Vision Transformer)等,便于大家初探深度学习的相关知识,并更好地理解深度学…