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→0,
0
→
1
M
M
M 后面再添加供差错检测用的
n
n
(
+
n
)
(k + n)
(k+n) 位。
CRC 冗余码的计算:
CRC 冗余码的计算举例:
2.4 CSMA/CD:解决子问题4-1
问题:多个站点同时发送时,会产生发送碰撞或冲突,导致发送失败。
A 需要单程传播时延的 2 倍的时间,才能检测到与 B 的发送产生了冲突。
CSMA/CD 协议工作流程:
碰撞后重传的时机:采用截断二进制指数退避 (truncated binary exponential backoff) 确定。
发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据。
- 基本退避时间 =
2
τ
- 从整数集合
{
0
,
1
,
…
,
(
2
k
−
1
)
}
r
r
重传所需的时延 =r
×
- 参数
k
=
{
重传次数
,
10
}
- 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
举例:
- 第 1 次冲突重传时:
k
=
1
k = 1
r
r
{
0
,
1
}
{0,1}
- 第 2 次冲突重传时:
k
=
2
k = 2
r
r
{
0
,
1
,
2
,
3
}
{0,1,2,3}
- 第 3 次冲突重传时:
k
=
3
k = 3
r
r
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
}
{0,1,2,3,4,5,6,7}
若连续多次发生冲突,表明可能有较多的站参与争用信道。
上述退避算法可使重传需要推迟的平均时间随重传次数而增大(称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
2.5 交换机工作原理:解决子问题4-2
问题:碰撞域(collision domain)又称为冲突域,指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。碰撞域越大,发生碰撞的概率越高。
2.5.1 用交换机取代集线器
集线器:
以太网交换机的每个接口都是一个碰撞域:
以太网交换机的优点:每个用户独享带宽,增加了总容量。
2.5.2 以太网交换机的工作原理:自学习(源地址)、转发(目的地址)
2.5.3 自学习和转发总结
原文地址:https://blog.csdn.net/search_129_hr/article/details/134545438
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_8069.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!