【计算机网络篇】数据链路层(1)数据链路层的地位,问题


在这里插入图片描述

🍔数据链路层在网络体系结构中的地位

如下图
局域网中的主机H1,经过路由器R1,广域网,以及路由器R2,连接到局域网2中的主机H2
在这里插入图片描述

假设主机H1向H2发送数据,我们从网络体系结构的角度看看该传输过程中的数据流动

路由器在转发数据包的时候,仅使用协议栈的物理层,数据链路层和网络层
待发送的数据在主机H1,按网络体系结构自上而下逐层封装,物理层将数据链路层封装好的协议数据单元看作比特流,并将其转化成相应的电信号发送出去。数据包进入路由器R1后,会从物理层开始被逐层解封,直到解封出网络层协议数据单元PDU。路由器从该PDU的首部中,取出目的地址,根据目的地址在转发表中,找到相应的下一跳地址后,将该PDU向下逐层封装后,通过物理层发送出去。
路由器R2对数据包的处理过程和R1相同
在这里插入图片描述

上述过程,就是数据包按网络体系结构,逐层封装和解封的这个知识点

🍔链路,数据链路,帧

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

🍔数据链路层的三个重要问题

🥚封装成帧和透明传输

在这里插入图片描述

然而,如果在帧的数据载荷部分,恰好出现了与帧首部和尾部的标志字段取值相同的数据。在不采取其他措施的情况下,接收方的数据链路层会出现帧定界的错误。

在这里插入图片描述

如果不解决上述问题,则数据链路层会对上层交付的协议数据单元PDU的内容有所限制,即PDU中不能包含帧定界符。
显然,这样子的数据链路层没有什么应用价值,如果能够采取措施,使得数据链路层对上层交付的PDU的内容没有任何限制,就好像数据链路层不存在一样,就称其为透明传输。

🥚差错检测

如下图,发送方给接收方发送帧
在这里插入图片描述
由于实际的通信链路都不是理想的,表示比特的信号在信道上传输时,不可避免地会产生失真,甚至出现误码,即比特0变成比特1,比特1变成比特0。那么,接收方的数据链路层在收到该帧后,如何才能知道帧中出现了误码呢。
在这里插入图片描述
这就需要采用差错检测机制。
例如:发送方的数据链路层采用某种检错技术,根据帧的内容计算出一个检错码,将检错码填入帧尾部,帧尾部中用来存放检错码的字段称为帧检验序列(FCS)
接收方的数据链路层从帧尾部取出检错码,采用与发送方相同的检错机制,就可以通过检错码检测出帧在传输过程中是否出现了误码
在这里插入图片描述

🥚可靠传输

如果数据链路层向其上层提供的是不可靠传输服务,则接收方的数据链路层丢弃有误码的帧即可
在这里插入图片描述

如果数据链路层向其上层提供的是可靠传输服务,这就需要数据链路层通过某种机制实现发送方发送什么,接收方就能收到什么
例如
接收方的数据链路层收到有误码的帧后,就通知发送方进行重传,发送方给接收方重传该帧。然而,要实现可靠传输,并没有这么简单(在后面的文章中误码会讲解实现可靠传输的机制)
在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 05:52:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 05:52:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 05:52:04       82 阅读
  4. Python语言-面向对象

    2024-03-24 05:52:04       91 阅读

热门阅读

  1. vue3之声明式和编程式导航

    2024-03-24 05:52:04       44 阅读
  2. 5.83 BCC工具之tcplife.py解读

    2024-03-24 05:52:04       38 阅读
  3. creator-webview与Android交互

    2024-03-24 05:52:04       29 阅读
  4. 2024最新华为OD机试试题库全 -【贪心歌手】- C卷

    2024-03-24 05:52:04       35 阅读
  5. Scala第十一章节(Option类型和偏函数)

    2024-03-24 05:52:04       41 阅读
  6. pytorch图像数据集定义

    2024-03-24 05:52:04       33 阅读
  7. 24计算机考研调剂 | 华南师范大学

    2024-03-24 05:52:04       39 阅读
  8. 【保姆级讲解如何在Ubuntu中设置中文输入法】

    2024-03-24 05:52:04       41 阅读
  9. MongoDB聚合运算符:$indexOfArray

    2024-03-24 05:52:04       43 阅读
  10. 小程序中实现轮播图左向堆叠

    2024-03-24 05:52:04       49 阅读
  11. Python学习笔记07

    2024-03-24 05:52:04       34 阅读