0 本节主要内容

问题描述
解决思路

1 问题描述

数据链路层主要面临四个问题

1.1 子问题1:封装成帧

怎么知道数据从哪里开始?到哪里结束?
生活中类似的例子:文件有表示文件开头的标识,还有标识文件结尾的标识

1.2 子问题2:透明传输

这个问题是子问题1带来的,由于要解决子问题1,会引入一些特殊字符,在实际传输数据中,如果出现了这些特殊字符又怎么办?

1.3 子问题3:差错检测

如何知道数据传输过程中出现了错误

1.4 子问题4:实现相邻节点之间的可靠通信

这个问题又存在若干个子问题:

2 解决思路

2.1 封装成帧:解决子问题1

封装成帧 (framing):在一段数据的前后分别添加首部和尾部,构成一个帧。
首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。
在这里插入图片描述
控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。
控制字符 EOT (End Of Transmission) 放在一帧的末尾,表示帧的结束。
在这里插入图片描述

2.2 透明传输解决子问题2

问题:如果数据中的某个字节二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”,导致错误
在这里插入图片描述
用“字节填充”或“字符填充”法解决透明传输的问题:
在这里插入图片描述

2.3 CRC:解决子问题3

问题:在传输过程中可能会产生比特差错,

1

0

1 rightarrow 0

10

0

1

0 rightarrow 1

01
在这里插入图片描述
发送端,先把数据划分为组。假定每组

k

k

k比特。 CRC 运算在每组

M

M

M 后面再添加供差错检测用的

n

n

n 位冗余码,然后构成一个帧发送出去。一共发送

(

k

+

n

)

(k + n)

(k+n) 位。
CRC 冗余码的计算
在这里插入图片描述
CRC 冗余码的计算举例:
在这里插入图片描述

2.4 CSMA/CD:解决子问题4-1

问题:多个站点同时发送时,会产生发送碰撞冲突,导致发送失败
在这里插入图片描述
A 需要单程传播时延的 2 倍的时间,才能检测到与 B 的发送产生了冲突
在这里插入图片描述
CSMA/CD 协议工作流程
在这里插入图片描述
碰撞重传的时机:采用截断二进制指数退避 (truncated binary exponential backoff) 确定。
发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据。

举例:

  • 第 1 次冲突重传时:

    k

    =

    1

    k = 1

    k=1

    r

    r

    r

    {

    0

    1

    }

    {0,1}

    {01} 集合中的任何一个数。

  • 第 2 次冲突重传时:

    k

    =

    2

    k = 2

    k=2

    r

    r

    r

    {

    0

    1

    2

    3

    }

    {0,1,2,3}

    {0123} 集合中的任何一个数。

  • 第 3 次冲突重传时:

    k

    =

    3

    k = 3

    k=3

    r

    r

    r

    {

    0

    1

    2

    3

    4

    5

    6

    7

    }

    {0,1,2,3,4,5,6,7}

    {01234567} 集合中的任何一个数。

若连续多次发生冲突,表明可能有较多的站参与争用信道。
上述退避算法可使重传需要推迟的平均时间随重传次数而增大(称为动态退避),因而减小发生碰撞概率,有利于整个系统的稳定。

2.5 交换机工作原理:解决子问题4-2

问题:碰撞域(collision domain)又称为冲突域,指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络碰撞域越大,发生碰撞概率越高。

2.5.1 用交换机取代集线器

在这里插入图片描述
集线器:

以太网交换机的每个接口都是一个碰撞域:
在这里插入图片描述
以太网交换机的优点:每个用户独享带宽,增加了总容量。

  • 交换机为每个端口提供带宽

    B

    B

    B

  • N

    N

    N 个用户,每个用户独占带宽

    B

    B

    B

  • 交换机总容量达

    B

    ×

    N

    B × N

    B×N

2.5.2 以太网交换机的工作原理:自学习(源地址)、转发(目的地址

在这里插入图片描述
A 先向 B 发送一帧。该帧从接口 1 进入到交换机。
在这里插入图片描述

在这里插入图片描述
交换机自学习和转发帧的步骤归纳:
在这里插入图片描述

2.5.3 自学习和转发总结

自学习:通过收到数据包的源地址进行学习

转发:通过收到的数据包的目的地址进行转发

  • 如果表中无,进行广播(帧进入接口除外);
  • 如果表中有且和帧进入接口不同,向指定接口转发;
  • 如果表中有且和帧进入的接口相同,则丢弃
  • 如果收到的是广播帧,进行广播(帧进入的接口除外)。

原文地址:https://blog.csdn.net/search_129_hr/article/details/134545438

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_8069.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注