3.1、数据链路层概述

news2024/9/20 16:50:21

3.1、数据链路层概述

3.1.1、数据链路层在网络体系结构中所处的地位

如下所示,主机 H1 给主机 H2 发送数据,中间要经过三个路由器和电话网、局域网以及广域网等多种网络

从五层协议原理体系结构的角度来看:

  • 主机应具有体系结构中的各个层次
  • 而路由器只需具有体系结构中的下面三层
  • 各设备通过物理层下面的传输媒体进行互连

image-20221123231921860

当主机 H1H2 发送数据时

  • 主机 H1 将待发送的数据逐层封装后,通过物理层将构成数据包的各比特,转换为电信号发送到传输媒体
  • 数据包进入路由器后,由上往下逐层解封到网络层。路由器根据数据包的目的网络地址和自身转发表,确定数据包的转发端口,然后从网络层向下逐层封装数据包,并通过物理层将数据包发送到传输媒体。
  • 数据包最终到达主机 H2 时,还要由下往上逐层解封,最终解封出主机 H1 所发送的数据

image-20221123232333113


我们可以想象数据包只在数据链路层从左向右沿水平方向传送。

从数据链路层来看,主机 H1H2 的通信,可以看成是在 4 段不同的链路上的通信组成的

image-20221123232520712

链 路 \color{red}链路 Link

  • 就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。

要在链路上传输数据,还需要通信协议来控制这些数据传输

数 据 链 路 \color{red}数据链路 (Data Link

  • 是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。

在数据链路层上传输的数据包,又称为帧

数据链路层以 帧 \color{red}帧 为单位传输和处理数据

3.1.2、三个重要问题

3.1.2.1、封装成帧

如下所示,两台主机通过一段链路相连,两台主机都会对发送或接收的数据包进行五个层次的封装或解封。

  • 通过应用层封装成为应用层协议数据单元,然后交付给运输层

  • 运输层为其添加运输层协议首部,使之成为运输层协议数据单元,然后交付给网络层

  • 网络层为其添加网络层协议首部,使之成为网络层协议数据单元,然后交付给数据链路层

  • 数据链路层为其添加数据链路层协议首部(帧头),还要给其添加一个帧尾。

    image-20221123233317899

    • 我们将数据链路层给网络层交付的协议数据单元添加帧头和帧尾的操作,称为封装成帧

    • 添加帧头和帧尾的目的,都是为了在链路上以帧为单元来传送数据。

    • 也就是为了实现数据链路层本身的功能

    • 例如,以太网版本 2MAC 帧格式

      image-20221123233653082

3.1.2.2、差错检测

发送方将封装好的帧通过物理层发送到传输媒体。

帧在传输过程中遭遇干扰后可能会出现误码

  • 也就是比特 0 可能变成了比特 1,反之亦然

image-20221123233901836

接受方主机如何判断帧在传输过程中是否出现了误码呢?

  • 可以通过检错码来发现

  • 发送方在发送帧之前,基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾

  • 例如:以太网版本 2 的 MAC 的帧尾,就是 4 字节的帧检验序列 FCS 字段,

    要写入该字段的内容,也就是检测码。

    接收方主机收到帧后,就可以判断出帧在传输过程中是否出现了误码

image-20221123234255725

3.1.2.3、可靠传输

接收方主机收到有误码的帧后,是不会接受该帧的,将其丢弃。

  • 若数据链路层向上层提供的是不可靠的服务,那么丢弃就丢弃了,不会再有更多措施。

  • 若数据链路层向上层提供的是可靠的服务,那就需要其他措施,来确保接受方主机还可以重新受到被丢弃的这个帧的正确副本

image-20221123234522093

注意:以上内容使用点对点信道的数据链路层

3.1.3、其他需要解决的问题


广播信道的数据链路层共享式局域网

目的地址问题

主机A,B,C,D,E 通过一根总线进行互连。主机 A 要给主机 C 发送帧。

  • 代表帧的信号会通过总线传输到总线上的其他各主机

那么主机 B,D,E 如何知道所收到的帧不是发送给它们的,而主机 C 又如何知道所受到的帧恰恰是给自己的呢?

  • 就是将帧的目的地址添加在帧中一起传输。

    • 例如,以太网版本 2MAC 帧格式

      image-20221123233653082

    • 其首部中的三个字段中,又两个字段和地址相关。一个是目的地址字段,一个是源地址字段

      image-20221123235033685

源地址问题

当总线上多台主机同时使用总线来传输帧时,传输信号就会产生碰撞。

这是采用广播信道的共享式局域网不回避免的。

以太网采用的协调方法是:使用一种特殊的协议 CSMA/CD(载波监听多点接入/碰撞检测)

image-20221123235323527


交换式局域网

随着交换技术的成熟和成本的降低,具有更高性能的,使用点对点链路和链路层交换机的交换式局域网,在有线局域网)领域已完全取代了共享局域网

那么网络中的交换机是如何转发帧的呢?

image-20221123235624272


无线局域网

另外,由于无线信道的广播天性,无线局域网仍然使用的是共享信道技术。

例如:802.11 局域网采用的媒体接入控制协议是 CSMA/CA(载波监听多点接入/碰撞避免)。

image-20221124000249872

其工作原理又是怎样的呢?

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

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

相关文章

使用HTML制作静态网站:传统文化戏剧锡剧带psd设计图(2个页面)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

【项目_01】搭建项目基本框架、底部tabbar、头部banner | 旅途拾景 | 基于Vue3全家桶

💭💭 ✨:搭建项目基本框架、底部tabbar、头部banner| 路途拾景 | 基于Vue3全家桶   💟:东非不开森的主页   💜: 因为很多东西来不及去做去看可是时间很快总是赶不上,所以要去成长呀&#x1f4…

作业-11.23

1、广播 接收端 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <stdlib.h> #include <netinet/in.h> #include <netinet/ip.h> #include <arpa/inet.h> #include <unistd.h> #include <str…

Diffusion Autoencoders: Toward a Meaningful and Decodable Representation

​ Diffusion Autoencoders: Toward a Meaningful and Decodable Representation 扩散自编码器:面向有意义和可解码的表示 code&#xff1a;https://github.com/phizaz/diffae A CVPR 2022 (ORAL) paper (paper, site, 5-min video) Diffusion probabilistic models (DPMs) hav…

算法设计与分析 SCAU17089 最大m子段和

17089 最大m子段和 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: G;GCC;VC;JAVA Description “最大m子段和”问题&#xff1a;给定由n个整数&#xff08;可能为负&#xff09;组成的序列a1、a2、a3、…、an&#xff0c;以及一个正整数m&a…

【Java】初识IO流【附导航】

文章目录01 什么是IO02 数据源03 什么是流04 IO流原理⇩➩ 导航01 什么是IO 对于任何程序设计语言而言&#xff0c;输入输出&#xff08;Input / Output&#xff09;系统都是非常核心的功能。程序运行需要数据&#xff0c;数据的获取往往需要跟系统外部进行通信&#xff0c;外部…

论文复现|Panoptic Deeplab(全景分割PyTorch)

摘要&#xff1a;这是发表于CVPR 2020的一篇论文的复现模型。本文分享自华为云社区《Panoptic Deeplab(全景分割PyTorch)》&#xff0c;作者&#xff1a;HWCloudAI 。 这是发表于CVPR 2020的一篇论文的复现模型&#xff0c;B. Cheng et al, “Panoptic-DeepLab: A Simple, Str…

63. 不同路径 II

题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑网格中有障碍物。那么从左上角到…

MySQL主/从-主/主集群安装部署

MySQL集群架构的介绍 我们在使用到MySQL数据库的时候&#xff0c;只是一个单机的数据库服务。在实际的生产环境中&#xff0c;数据量可能会非常庞大&#xff0c;这样单机服务的MySQL在使用的时候&#xff0c;性能会受到影响影响。并且单机服务的MySQL的数据安全性也会受到影响…

数字信号处理-09-串行FIR滤波器MATLAB与FPGA实现

前言 本文介绍了设计滤波器的FPGA实现步骤&#xff0c;并结合杜勇老师的书籍中的串行FIR滤波器部分进行一步步实现硬件设计&#xff0c;对书中的架构做了简单的优化&#xff0c;并进行了仿真验证。 FIR滤波器的FPGA实现步骤 从工程角度分析FIR滤波器的FPGA实现步骤如下&…

Vim简洁教程

Vim简洁教程Vim简介使用方法命令模式输入模式底线命令模式模式转换使用流程Vim键盘图Vim简介 在Linux系统中&#xff0c;Vim是一款自带的文本编辑器&#xff0c;因此Vim常用于Linux系统中。Vim是从 vi 发展出来的&#xff0c;包含代码补全、编译及错误跳转等方便编程的功能&am…

【LeetCode每日一题】——78.子集

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 数组 二【题目难度】 中等 三【题目编号】 78.子集 四【题目描述】 给你一个整数数组 nums &…

亚太C题详细版思路修改版(精)

今年的亚太A、B题的感觉难度不低&#xff0c;其难度已经可以与电工妈杯这种比赛的赛题难度相提并论了。因此&#xff0c;这次预计选C题的人数可能不少&#xff0c;这对于大家来说也是个好消息。塞翁失马焉知非福&#xff0c;难对于大家来说都难&#xff0c;只要自己放平心态&am…

计算机组成原理习题课第一章-1(唐朔飞)

计算机组成原理习题课第一章-1&#xff08;唐朔飞&#xff09; ✨欢迎关注&#x1f5b1;点赞&#x1f380;收藏⭐留言✒ &#x1f52e;本文由京与旧铺原创&#xff0c;csdn首发&#xff01; &#x1f618;系列专栏&#xff1a;java学习 &#x1f4bb;首发时间&#xff1a;&…

【Pygame实战】这游戏有毒,刷爆朋友圈:小编已与病毒版贪吃蛇大战了三百回合,最高分339?

导语 Hello&#xff0c;大家好呀&#xff01;我是木木子吖&#xff5e; 一个集美貌幽默风趣善良可爱并努力码代码的程序媛一枚。 听说关注我的人会一夜暴富发大财哦~ &#xff08;哇哇哇 这真的爱&#x1f60d;&#x1f60d;&#xff09; 所有文章完整的素材源码都在&#…

Android中JVM七大垃圾收集器【解析】

概述 GC垃圾收集器的种类 新生代&#xff1a;年轻代用来存放最近创建的对象老年代&#xff1a;主要存放应用程序中生命周期长的内存对象永久代&#xff1a;内存的永久保存区域&#xff08;类和元数据&#xff09;&#xff0c;GC不参与回收Serial收集器&#xff1a;串行收集器…

web网页设计—— 中国餐饮协会(HTML+CSS)

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

CentOS8使用阿里云yum源异常问题及解决方法

镜像下载、域名解析、时间同步请点击 阿里云开源镜像站 Linux安装git时发生如下错误 [rootraoyuuuu maven]# dnf install git Repository extras is listed more than once in the configuration Repository epel is listed more than once in the configuration CentOS-8 - B…

关于windows的文件监控管理系统(Java)

目 录 摘 要 I Abstract II 1.绪论 1 1.1课题背景 1 1.2系统开发的目的和意义 2 1.3国内外概况 3 1.4研究主要内容 3 2.windows文件监控管理系统相关技术介绍 4 2.1 API 4 2.2 API HOOK 5 2.3 Java 5 2.4 DLL 6 2.4 Windows系统的Socket编程 6 2.4.1使用WinSock API 6 2.4.2 使…

【 C++ 】IO流

目录 1、C语言的输入输出 2、流是什么 3、CIO流 3.1、C标准IO流 3.2、C文件IO流 文件操作步骤 以二进制的形式操作文件 以文本的形式操作文件 4、stringstream的介绍 1、C语言的输入输出 C语言中我们用到的最频繁的输入输出方式就是scanf()和printf()。 scanf()&#xff1a…