计算机网络(7) 数据链路层

数据链路层的内容不学不知道,一学真的是吓一跳哦,内容真的挺多的,但是大家不要害怕,总会学完的。

还有由于数据链路层的内容太多,一篇肯定是讲不完的所以我决定把它分为好几个部分进行学习与讲解。大家可以关注以后文章的发布。

数据链路层(Data Link Layer)

数据链路层是计算机网络体系结构中的第二层,它位于物理层之上,网络层之下。数据链路层的主要任务是确保在物理层提供的可靠传输基础上,能够有效地进行数据帧的可靠传输。它负责在局部网络中节点之间传输数据包(帧),并处理传输过程中可能出现的错误和流量控制。

数据链路层的主要功能

  1. 帧的封装与解封装: 数据链路层的最基本功能是将网络层传递下来的数据包(Packet)封装成帧(Frame),然后在物理层上进行传输。在接收到数据时,数据链路层会将物理层传输的比特流解封装成数据包并交给上层网络层处理。

  2. 错误检测与纠正: 数据链路层负责检测在物理层传输过程中可能出现的错误,如位错误、丢失或重复的帧。最常见的错误检测方法是循环冗余检查(CRC)。如果数据链路层发现错误,它可以请求重发(ARQ协议),以确保数据的正确性。

  3. 流量控制: 数据链路层需要管理网络节点之间的传输速度,防止因接收端处理能力不足导致丢失数据帧。流量控制通过一些机制(如窗口控制)来调整数据发送的速率。

  4. 介质访问控制(MAC): 数据链路层管理对共享传输介质的访问。在共享介质网络中(如以太网、无线网络),多个设备需要争用网络带宽,数据链路层采用介质访问控制协议来避免冲突并管理数据传输。

  5. 物理地址(MAC地址)管理: 数据链路层使用物理地址(通常是MAC地址)来唯一标识网络中的设备。MAC地址是一种硬件地址,它由网络设备的制造商赋予,并用于确保帧能够被正确地发送到目标设备。

数据链路层的子层

数据链路层通常被分为两个子层:

  1. 逻辑链路控制子层(LLC,Logical Link Control):
    • LLC子层负责在数据链路层与网络层之间建立逻辑连接。它处理与网络层的交互,提供帧的封装和差错控制。LLC子层使得数据链路层能够支持多种网络协议。
  2. 介质访问控制子层(MAC,Medium Access Control):
    • MAC子层负责控制对物理介质的访问。它通过协议来决定如何在共享的通信媒介上调度数据的发送。MAC子层使用硬件地址(MAC地址)来进行数据帧的目标定位,并解决冲突。
    • 典型的MAC协议有:CSMA/CD(以太网)、CSMA/CA(Wi-Fi)等。

数据链路层的常见协议

  1. 以太网(Ethernet):

    • 以太网是广泛使用的局域网协议,基于CSMA/CD(载波侦听多路访问/碰撞检测)协议,它在数据链路层提供帧的封装、错误检测和介质访问控制。
  2. 无线局域网(Wi-Fi):

    • Wi-Fi协议基于IEEE 802.11标准,定义了在无线环境中如何通过MAC协议进行数据的传输与访问。
  3. 点对点协议(PPP,Point-to-Point Protocol):

    • PPP是一种常用于点对点连接的协议,通常用于拨号连接、DSL和VPN等。PPP协议提供了数据封装、错误检测、流量控制等功能。
  4. 帧中继(Frame Relay):

    • 帧中继是一种广域网协议,使用虚拟电路传输数据帧,通常用于传输速率较高的数字数据。帧中继提供错误检测、流量控制和数据链路的管理。
  5. ATM(异步传输模式):

    • ATM是一种面向连接的技术,用于广域网和局域网。它将数据分成固定长度的53字节的单元(称为单元,或Cell),提供错误检测和流量控制。

数据链路层的错误检测与纠正

  1. 循环冗余校验(CRC,Cyclic Redundancy Check):

    • 数据链路层通过CRC来检测数据帧在传输过程中是否出现了错误。发送端会根据数据内容计算一个CRC值,并将其附加到数据帧中。接收端使用相同的算法检查数据的完整性,若CRC值不匹配,表示数据帧在传输中出错。
  2. 自动重传请求(ARQ,Automatic Repeat reQuest):

    • 数据链路层使用ARQ协议来请求丢失或损坏的数据帧重发。常见的ARQ协议有停等ARQ(Stop-and-Wait ARQ)、连续ARQ(Go-Back-N ARQ)、选择重传ARQ(Selective Repeat ARQ)等。

数据链路层与物理层的区别

  • 物理层: 主要负责比特的传输,将数据通过物理媒介从一个设备传输到另一个设备,它不涉及数据的内容和结构。
  • 数据链路层: 负责对比特进行封装形成数据帧,提供错误检测、流量控制等功能,确保数据能够可靠地在物理媒介上传输。

下面讲解帧封装的知识:

帧封装(Frame Encapsulation)

帧封装是数据链路层的核心功能之一,它指的是将来自上层(通常是网络层)的数据包附加上数据链路层的控制信息,形成一个完整的数据帧,然后通过物理介质传输到目标设备。帧封装的主要目的是确保数据在传输过程中得到可靠的传输和正确的识别。

帧封装的过程

帧封装的过程通常包括以下几个步骤:

  1. 添加帧头(Header):在网络层的数据包之前附加一个帧头。帧头通常包含目标地址、源地址、类型信息、帧序号、流量控制和错误检测等信息。

  2. 封装数据:帧头之后是上层传输的数据包,这是数据帧的主要内容部分,也就是数据载荷(payload)。

  3. 添加帧尾(Trailer):在数据部分之后附加帧尾。帧尾通常包含循环冗余校验(CRC)或其他形式的错误检测码,用于检测帧在传输过程中是否发生错误。

  4. 帧边界标识(Frame Boundary Identification): 通过在帧的其实和结束位置使用特定的标志位,可以明确区分帧之间的界限,确保在传输过程中数据不会混淆。

帧封装的结构

帧的结构因协议而异,但通常包含以下几个常见的字段:

  • 帧头(Header):包含控制信息,如目标MAC地址、源MAC地址、协议类型等。
  • 数据(Data):包含要传输的实际数据,即来自网络层的数据包。
  • 帧尾(Trailer):包含错误检测码(例如CRC),用于检测帧在传输过程中的完整性。

帧封装的作用

  1. 确保数据完整性:通过添加错误检测码,帧封装可以帮助接收方检测并定位传输过程中是否有数据损坏或丢失。

  2. 地址识别和定位:帧头中包含源地址和目标地址,确保数据帧能够到达正确的目标设备。

  3. 分段和组装:封装成帧的数据可以在发送端分段处理,接收端则可以按照帧序号将数据重新组合成完整的信息。

  4. 流量控制和顺序控制:通过帧头中的控制信息,可以有效地实现对数据流的控制,并保证数据按顺序到达。

帧封装的典型例子

  1. 以太网帧

    • 以太网帧是数据链路层的典型帧格式之一。它由以太网协议(如IEEE 802.3)定义,帧头包括目标MAC地址、源MAC地址、帧类型等字段,帧尾通常包含CRC校验码。
  2. PPP帧

    • 在点对点协议(PPP)中,帧封装结构为标志字段、地址字段、控制字段、协议字段、数据和帧校验序列。PPP广泛用于通过电话线或宽带连接等点对点链路传输数据。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python基础大杂烩

命令提示符程序,输入python,运行python程序 代码通过解释器程序翻译给计算机去执行 命令提示符输入的python本质上就是调用D:/dev/python/python3.12.5/python.exe这个解释器程序 有python程序将输入的代码翻译成二进制的0和1,去向计算机去运…

【数字图像处理+MATLAB】对图片进行伽马校正(Gamma Correction):使用幂律变换公式进行伽马变换

引言 伽马校正(Gamma Correction)是一种用于图像处理的技术,主要用于调整图像的亮度或对比度。其基本原理是对图像的每一个像素应用一个非线性变换,以更好地适应人眼的视觉感知。在数字图像处理中,伽马校正通常用于调…

Golang | Leetcode Golang题解之第553题最优除法

题目: 题解: func optimalDivision(nums []int) string {n : len(nums)if n 1 {return strconv.Itoa(nums[0])}if n 2 {return fmt.Sprintf("%d/%d", nums[0], nums[1])}ans : &strings.Builder{}ans.WriteString(fmt.Sprintf("%d…

基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路

一、项目概述 随着电动车的普及,充电桩作为关键基础设施,其智能化、网络化管理显得尤为重要。本项目旨在基于STM32微控制器开发一款智能充电桩,能够实现高效的充电监控与管理。项目通过物联网技术,提供实时数据监测、远程管理、用…

性能高于Transformer模型1.7-2倍,彩云科技发布基于DCFormer架构通用大模型云锦天章

2017年,谷歌发布《Attention Is All You Need》论文,首次提出Transformer架构,掀开了人工智能自然语言处理(NLP)领域发展的全新篇章。Transformer架构作为神经网络学习中最重要的架构,成为后来席卷全球的一…

黄仁勋:AI革命将创百万亿美元价值!近屿智能带你入局AIGC

11月13日,NVIDIA在日本成功举办了2024年AI峰会。一场关于人工智能驱动的新工业革命的讨论热烈展开。英伟达创始人兼CEO黄仁勋与软银主席兼CEO孙正义共同探讨了当前技术革命的独特之处及其深远影响。 黄仁勋在会上表示,AI革命将创造的价值不是以万亿美元计…

大数据面试题--kafka夺命连环问(后10问)

目录 16、kafka是如何做到高效读写? 17、Kafka集群中数据的存储是按照什么方式存储的? 18、kafka中是如何快速定位到一个offset的。 19、简述kafka中的数据清理策略。 20、消费者组和分区数之间的关系是怎样的? 21、kafka如何知道哪个消…

Vue2:组件

Vue2:组件 非单文件组件定义注册使用 单文件组件 组件是Vue中最核心的内容,在编写页面时,将整个页面视为一个个组件,再把组件拼接起来,这样每个组件之间相互独立,有自己的结构样式,使页面编写思…

超子物联网HAL库笔记:定时器[基础定时]篇

超子物联网 HAL库学习 汇总入口: 超子物联网HAL库笔记:[汇总] 写作不易,如果您觉得写的不错,欢迎给博主来一波点赞、收藏~让博主更有动力吧! 一、资源介绍:STM32F103C8T6定时器资源介绍 高级定时器&#x…

ubuntu20.04_从零LOD-3DGS的复现

环境要求 dependencies:- cudatoolkit11.6- plyfile0.8.1- python3.7.13- pip22.3.1- pytorch1.12.1- torchaudio0.12.1- torchvision0.13.1- tqdm1. 安装conda创建环境 conda create -n lod-3dgs python3.7.132. 安装CUDA11.6和相应cuDNN。 2.1 CUDA CUDA安装参考CUDA10.1…

Springboot 启动端口占用如何解决

Springboot 启动端口占用如何解决 1、报错信息如下 *************************** APPLICATION FAILED TO START ***************************Description:Web server failed to start. Port 9010 was already in use.Action:Identify and stop the process thats listening o…

Python注意力机制Attention下CNN-LSTM-ARIMA混合模型预测中国银行股票价格|附数据代码...

全文链接:https://tecdat.cn/?p38195 股票市场在经济发展中占据重要地位。由于股票的高回报特性,股票市场吸引了越来越多机构和投资者的关注。然而,由于股票市场的复杂波动性,有时会给机构或投资者带来巨大损失。考虑到股票市场的…

论文笔记 SuDORMRF:EFFICIENT NETWORKS FOR UNIVERSAL AUDIO SOURCE SEPARATION

SUDORMRF: EFFICIENT NETWORKS FOR UNIVERSAL AUDIO SOURCE SEPARATION 人的精神寄托可以是音乐,可以是书籍,可以是运动,可以是工作,可以是山川湖海,唯独不可以是人。 Depthwise Separable Convolution 深度分离卷积&a…

【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】

在 Kubernetes 中,NodePort 类型的 Service 允许用户通过每个节点的 IP 地址和指定的端口访问应用程序。如果 NodePort 类型的 Service 无法通过节点的 IP 地址和指定端口进行访问,可能会导致用户无法访问应用。本文将详细分析该问题的常见原因及其解决方…

Fiddler安装配置+抓包手机

1.下载安装(汉化版) 链接:https://pan.baidu.com/s/1Xgw66UbV-lVV--BJmwEKOw?pwdybww 提取码:ybww 2. HTTPS设置 3.connection设置 4.使用fiddler对手机进行抓包 前提:先打开fiddler,手机和电脑连接同一…

【专题】计算机网络之网络层

1. 网络层的几个重要概念 1.1 网络层提供的两种服务 (1) 让网络负责可靠交付 计算机网络模仿电信网络,使用面向连接的通信方式。 通信之前先建立虚电路 VC (Virtual Circuit) (即连接),以保证双方通信所需的一切网络资源。 如果再使用可靠传输的网络…

高亚科技签约美妥维志化工,提升业务协同与项目运营效率

近日,中国企业管理软件资深服务商高亚科技与韶关美妥维志化工有限公司(以下简称“美妥维志”)正式签约。基于高亚科技的8Manage PM项目管理软件,美妥维志将实现项目进度、人员审批及问题的统一管理,提升部门间协同效率…

《双城之战》,活成了王者荣耀最羡慕的模样

11月9日,《双城之战》第二季开播,延续了第一季的好口碑,目前该剧集在豆瓣平台荣获9.2分高分,同时在烂番茄平台也收获了100%的好评率,可以说是赢得了国内外观众的一致认可。 与第一季因剧集热度带动游戏市场爆火而略显…

Spring Cloud Eureka 服务注册与发现

Spring Cloud Eureka 服务注册与发现 一、Eureka基础知识概述1.Eureka两个核心组件2.Eureka 服务注册与发现 二、Eureka单机搭建三、Eureka集群搭建四、心跳续约五、Eureka自我保护机制 一、Eureka基础知识概述 1.Eureka两个核心组件 Eureka Server :服务注册中心…

告别系统限制,一键关闭Windows Defender

作为一款专业级系统优化工具,Defender Remover 为追求完全系统控制权的高级用户提供了全方位的安全组件管理解决方案。这款强大的实用工具不仅完美支持从 Windows 8.x 到最新的 Windows 11 全系列操作系统,更提供了精细化的安全组件调整选项。 本工具最…