计算机网络——数据链路层(数据链路层功能概述)

news2024/11/17 3:32:13

计算机网络——数据链路层(数据链路层功能概述)

  • 数据链路层的功能
  • 数据链路层的基本概念
  • 封装成帧和透明传输

我们之前已经学完了物理层的所有内容,今天开始我们要进入数据链路层的学习,如果有小伙伴对物理层的内容感兴趣的话,可以点击这里:

https://blog.csdn.net/qq_67693066/category_12609808.html

我们今天来学习数据链路层的功能

数据链路层的功能

数据链路层作为计算机网络OSI七层模型中的第二层,位于物理层之上,网络层之下,它在物理层提供的比特流传输服务基础上,提供了更为复杂和高级的服务。数据链路层的主要功能包括但不限于以下几个方面:

  1. 成帧(帧同步)
  • 数据链路层将从网络层接收的数据分割并封装成帧,每个帧都有固定的格式,包括帧头、数据部分和帧尾。帧头包含诸如源地址、目的地址等控制信息,帧尾则通常包含用于检测错误的校验序列。
  • 接收方通过特定的帧定界符或标志位来识别帧的开始和结束,实现帧同步。
  1. 链路管理
  • 对于面向连接的服务,数据链路层负责链路的建立、维护和释放过程,例如PPP协议中的LCP阶段。
  1. 物理地址识别
  • 数据链路层使用物理地址(如MAC地址)来进行节点间的通信,确保数据帧能够被正确送达目标主机。
  1. 错误检测与纠正
  • 实现差错控制机制,如循环冗余校验(CRC)或其他校验方式,检测数据帧在传输过程中是否出错。
  1. 流量控制
  • 控制数据传输速率,防止发送方过快发送数据导致接收方无法及时处理,从而避免数据丢失或网络拥塞。
  1. 透明传输
  • 保证任意数据都能被正确传输,即使数据中包含了特殊字符(如帧界定符),也需要通过字节填充或字符转义等方法来解决透明性问题。
  1. 数据封装与解封装
  • 将来自网络层的数据报文添加必要的控制信息封装成帧进行传输,并在接收端将接收到的帧解封装还原为数据报文。
    在这里插入图片描述
    在这里插入图片描述

综上所述,数据链路层通过上述功能确保了在两个相邻节点之间进行可靠的数据传输,并为上层网络层提供了逻辑无差错的数据传输服务。

在这里插入图片描述在这里插入图片描述

数据链路层的基本概念

数据链路层是开放系统互连(OSI)参考模型中的第二层,它直接建立在物理层基础之上,为网络层提供服务。以下是数据链路层的一些基本概念:

  1. 链路(Link)
  • 链路指的是两个相邻网络节点之间的物理通道,比如一根铜缆、一段光纤、或者无线通信的电磁频谱范围。它是用来传输数据的物理媒介。
  1. 结点(Node)
  • 在数据链路层上,结点一般指计算机、交换机、路由器等设备,它们通过链路相互联接,参与到数据传输过程中。
  1. 数据链路(Data Link)
  • 数据链路是在物理链路上增加控制数据传输的协议之后形成的逻辑通信路径,它实现了比特流的组织、传输和错误控制等功能。
  1. 协议(Protocol)
  • 数据链路层协议定义了两个对等实体间如何进行通信的规则,包括数据帧的格式、编码、错误检测、确认机制、流量控制和访问控制等具体过程。
  1. 实体(Entity)和对等实体(Peer Entity)
  • 在数据链路层参与通信的任何设备或软件组件被称为实体;当这些实体遵循相同的协议并且可以直接相互交互时,则称它们为对等实体。
  1. 服务(Services)
  • 数据链路层向上层(即网络层)提供服务,主要包括通过帧的传输来实现数据的可靠传输,这可能涉及到帧的组装、拆分、寻址、错误检测与纠正、流量控制等服务。
  1. 协议数据单元(PDU)
  • 在数据链路层,PDU被称为“帧”(Frame)。数据链路层接收网络层传递的数据包,将其封装成帧,并附加相应的地址和控制信息。
  1. 信道类型
  • 数据链路层的信道可以分为两类:
  • 点对点通信(Point-to-Point):两个单一设备之间的直接连接,一对一通信方式。
  • 广播通信(Broadcast):在一个共享媒体上传输,使得所有相连的设备都能接收到同一份数据,一对多通信方式。
    在这里插入图片描述

总之,数据链路层的核心任务是确保经过物理层传输的数据的可靠性,通过对原始比特流的处理,提供一种无差错的、有序的数据传输服务。同时,它还负责处理物理层不可靠带来的各种问题,比如丢包、重传、流量控制等,为上层网络层提供更加稳定的数据传输环境。

封装成帧和透明传输

封装成帧(Framing)
封装成帧是数据链路层的重要功能之一。它指的是在数据链路层将上层(通常是网络层)传来的数据加上帧头和帧尾,形成一个完整且独立的数据传输单元,这个单元被称为帧。帧头通常包含源地址、目的地址以及其他控制信息,而帧尾包含用于检测数据传输错误的校验码(如CRC校验)。

具体流程如下:

  1. 数据链路层在接收到网络层的数据报文后,在其前后添加特定的首部和尾部信息。
  2. 首部信息可能包括源和目的MAC地址、协议类型标识等。
  3. 尾部信息通常包含校验序列,用于在接收端验证数据在传输过程中是否发生错误。
  4. 成帧后的数据能够被物理层准确识别并进行传输,同时在接收端也能准确地恢复原始的数据报文。
    在这里插入图片描述

透明传输(Transparent Transmission)
透明传输是指数据链路层对于上层传输的数据不加任何限制,不论数据内容包含何种比特组合,都能够准确无误地进行传输,就像数据链路层不存在一样。但在实际物理传输过程中,可能会遇到一些特殊情况,比如某些特定的比特序列恰好与帧界定符相同,这就可能导致帧边界混淆。
在这里插入图片描述

为了实现透明传输,需要采用以下几种机制:

  • 字符计数法:帧首部放置一个字段,用于记录帧内数据区字符的总数(通常是ASCII字符的数量)。然而,这种方法存在的问题是,如果计数值字段本身发生了错误,接收方将无法准确识别帧的结束位置,导致同步丢失
    在这里插入图片描述
  • 字符填充法:当数据中有帧定界符时,在其前插入一个特殊的转义字符,并在其后重新插入定界符以区别数据中的定界符和真正的帧结尾
    在这里插入图片描述在这里插入图片描述
  • 零比特填充法(如在以太网中):如果数据中连续出现了多个1比特(如在曼彻斯特编码中表示帧起始和结束的特定模式),则在传输时会在连续的1比特之间自动插入一个0比特,接收端再按照规定移除这些额外插入的0比特。
    在这里插入图片描述
  • 违规编码法:设计一种编码方案,使得数据中不可能自然出现与帧界定符一样的比特序列。
    在这里插入图片描述

通过以上方法,数据链路层能够确保任何类型的数据都能不受干扰地在网络中进行透明传输,既不会因为数据内容影响到帧的识别,也不会因帧边界模糊而导致数据解析错误。

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

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

相关文章

Xilinx FPGA 远程升级时bin和bit文件使用注意

以Spartan-6 ISE开发环境为例。 ISE开发环境支持生成bit和bin格式的程序文件,可以在生成选项进行配置: 把生成的bit文件和bin文件进行二进制比较,发现bit比bin文件头部多了一些内容(头部信息),剩余部分完…

苹果电脑不能删除移动硬盘文件 苹果电脑移动硬盘只读模式如何更改 移动硬盘文件或目录损坏且无法读取怎么办

当我们将移动硬盘插入苹果电脑后,发现无法对移动硬盘中的文件进行编辑该怎么办?相信有不少网友遇到过这类情况。苹果电脑不能删除移动硬盘文件,或无法拷贝硬盘里的文件。今天我为大家解决苹果电脑移动硬盘只读模式如何更改的问题,…

GraphPad Prism 10:一站式数据分析解决方案

GraphPad Prism 10是一款功能强大的数据分析和可视化软件,广泛应用于生命科学研究、医学、生物、化学等多个领域。以下是对其详细功能的介绍: 首先,GraphPad Prism 10具有出色的数据可视化功能。它支持各种类型的图表和图形,包括…

C++ 侯捷 程序设计(Ⅱ)兼谈对象模型 笔记

Conversion function 转换函数 侯捷老师使用分数 Fraction举例,分数理应可以被看作是小数 提供了Fraction类对象一个转换为double的方法,当碰到需要转换为double的情况下,会调用该方法。 黄色的就是转换函数,没有return type&am…

高手勿入:连问chatGPT九个问题,解决个简单前端问题,无剪辑。

将layui弹窗button默认文字:确定,修改为其他文字,就这么个简单问题,把前端妹子(新手)难坏了,向我求助,我没有像以往一样直接给答案,而是以新手的方式求助chatgpt&#xf…

Vue3快速上手(十七)Vue3之状态管理Pinia

一、简介 Pinia官网:https://pinia.vuejs.org/zh/ 从官网截图里可以直接看到,pinia是一个vuejs的状态(数据)管理工具。功能性同vuex。logo是小菠萝。它是一个集中式状态管理工具。就是将多个组件共用的数据管理起来,重复利用。有点类似缓存的意思。 二、Pinia环境搭建 …

vCenter 6.5为虚拟机添加GPU直通

参考:Dell文档 如何为GPU直通启用VMware虚拟机。 | Dell 中国

【计算机视觉】Gaussian Splatting源码解读补充(一)

本文旨在补充gwpscut创作的博文学习笔记之——3D Gaussian Splatting源码解读。 Gaussian Splatting Github地址:https://github.com/graphdeco-inria/gaussian-splatting 论文地址:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gauss…

redis功能点

一、redis简介 概述 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 Redis 支持很…

深入理解指针03

1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针char*; ⼀般使⽤: int main(){char ch w;char *pc &ch;*pc w;return 0;} 还有⼀种使⽤⽅式如下: int main() {const char* pstr "hello world";//这⾥是把⼀个字符串放到pstr指针变量⾥了…

【并查集专题】【蓝桥杯备考训练】:网络分析、奶酪、合并集合、连通块中点的数量、格子游戏【已更新完成】

目录 1、网络分析(第十一届蓝桥杯省赛第一场C A组/B组) 2、奶酪(NOIP2017提高组) 3、合并集合(模板) 4、连通块中点的数量(模板) 5、格子游戏(《信息学奥赛一本通》…

win10下自由切换多版本JDK操作

1.在window 系统变量 path路径追加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 2.下载多版本jdk zip文件解压到到C:\Program Files\Java\目录下 3.定义切换Java版本的bat文件,内容如下 @echo off @echo -------------------welcome to use Java version switch service------------…

设计模式 之 简单工厂模式+工厂模式

简单工厂模式 创建一个工厂类,对实现了同一个接口的多个类进行实例的创建。 //抽象类 人 public abstract class HuMan {public abstract void Talk(); } //黑人实现类 public class BlackHuman : HuMan {public override void Talk(){Console.WriteLine("I a…

python的ITS 信息平台的设计与实现flask-django-nodejs-php

第二,陈列说明该系统实现所采用的架构、系统搭建采用的服务器、系统开发环境和使用的工具,以及系统后台采用的数据库。 最后,对系统进行全面测试,主要包括功能测试、查询性能测试、安全性能测试。 分析系统存在的不足以及将来改进…

新材料正在加速金属3D打印的应用步伐

在金属3D打印领域,材料性能是影响工件综合表现的关键因素,如强度、硬度、耐腐蚀性、抛光性能以及导热性能等,都与材料息息相关,好的材料是推动金属3D打印向更多领域应用的基础。 在这一背景下,上海毅速新材料推出的多款…

二十二 超级数据查看器 讲解稿 其他高级功能

二十二 超级数据查看器 讲解稿 其他高级功能 ​​点击此处 以新页面 打开B站 播放当前教学视频 点击访问app下载页面 百度手机助手 下载地址 ​ 这节课我们讲超级数据查看器高级功能2,讲的是设置密码以外的其他功能。 进入高级功能,先讲一下列表样…

【MySQL】理解关系型数据库&数据的数据模型

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C Linux的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

优化选址问题 | 基于节约算法求解考虑碳排放及带时间窗的物流选址问题附matlab代码

目录 问题代码问题 节约算法(Savings Algorithm)通常用于解决车辆路径问题(Vehicle Routing Problem, VRP),特别是当需要考虑如何有效地组织车辆的路线以最小化总行驶距离时。然而,当问题扩展到包括碳排放和带时间窗的物流选址问题时,算法需要相应的调整。 在这个扩展…

软考高级:软件架构评估概述和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

WM8978 —— 带扬声器驱动程序的立体声编解码器(6)

接前一篇文章:WM8978 —— 带扬声器驱动程序的立体声编解码器(5) 九、寄存器概览与详解 1. 整体概览 WM8978芯片共有58个寄存器,整体总表如下: 2. 详细说明 在此,只介绍WM8978较为常用的那些寄存器。 &…