第3章 数据链路层
来源:互联网 发布:海关进口数据查询 编辑:程序博客网 时间:2024/06/07 00:54
3.1 数据链路层的设计问题
数据链路层使用物理层提供的服务在通信信道上发送和接收比特。其完成的功能包括:
(1)向网络层提供一个定义良好的服务接口
(2) 处理传输错误
(3)调节数据流,确保慢速的接收方不会被快速的发送方淹没
3.1.1数据链路层提供的服务
服务包括:
(1) 无确认的无连接服务:以太网,
(2) 有确认的无连接服务
(3) 无确认的有连接服务
3.1.2 成帧
识别比特流开始和结束位置的方法:
(1)字节计数法
(2)字节填充的标志字节法
(3)比特填充的标志比特法
(4)物理层编码违禁法
3.1.3 差错控制
接收方反馈信息,计时器和序号使用
3.1.4 流量控制
解决发送方发送帧的速度超过了接收方能够接受这些帧的速度的方法:
1. 基于反馈的流量控制(feedback-based flow control),接收方给发送方返回信息,允许它发送更多的数据或者至少告诉发送自己的情况如何。
2. 基于速率的流量控制(rate-based flow control),限制发送方传输数据的速率,而无须有高层来处理。
3.2 差错检测和纠正
错处处理的基本策略:
1. 纠错码(error-correcting code):每一个数据块中包含足够多的冗余信息,以便接收方推断出被发送的数据是什么,多用在无线链路等错误发生发生频繁的信道上。
2. 检错码(error-detecting code),冗余信息只能推断是否发送错误,接收方请求重传,多用在高度可靠的信道上(光纤)
3.2.1 纠错码
- 海明码
海明距离(Hamming distance):两个码字中不相同位的个数 - 二进制卷积码
在卷积码中,编码器处理一个输入序列,并生成一个输出序列。卷积吗由其速率和约束长度标识。 - 里德所罗门码
线性码,多项式纠错 - 低密度奇偶校验码(LDPC,Low-Density Parity Check )
3.2.3 检错码
对于偶尔出现的错误采用差错检测和重传的处理方式。
检错码:
1. 奇偶
2. 校验和
3. 循环冗余校验(CRC,Cyclic Redundancy Check),也叫多项式编码,编码的基本思想是:将位看成是系数为0或1的多项式。一个k位帧可以看成是一个k-1次多项式的系数列表,该多项式共有k项,从
4. 使用多项式编码时,发送方和接收方必须事先商定一个**生成多项式(generator polynomial)**G(x).生成多项式的最高位和最低位必须是1.
计算CRC的算法过程:
(1)假设G(x)的阶为r,在帧的最低位端加上r个0位,使得该帧现在包含m+r位,对应多项式为
(2)利用模2除法,用对应于G(x)的位串去除对应于
(3)利用模2减法,对应于
- 第3章 数据链路层
- 第3章 数据链路层
- 《计算机网络》第3章 数据链路层
- 计算机网络第3章 数据链路层
- 3章数据链路层
- 数据链路层3
- 第3章 数据链路
- 《计算机网络原理(谢希仁)》 笔记[3]——第 3 章 数据链路层
- 第三章:数据链路层
- 第二章数据链路层
- 第三章 数据链路层
- 第四章 数据链路层
- 第三章 数据链路层
- 第三章 数据链路层
- 数据链路层-3 ARP
- 计算机网络 3 数据链路层
- 第三章:数据链路层(二)
- 第三章:数据链路层(三)
- OpenTSDB设计解读
- Struts2的简单配置
- android加载速度优化,通过项目的优化过程分析
- [HNOI2008]Cards (polya定理+乘法逆元,费马小定理)
- C++中交换两个数/二叉树的建立
- 第3章 数据链路层
- 【Leetcode】Copy List with Random Pointer
- 网站开发进阶(十五)JS基础知识充电站
- Visual Studio 2015安装心得
- Mac添加环境变量
- 习题3-11 UVa1588 Kickdown
- Android性能优化典范
- CSS进阶3: inline-block 的前世今生
- C++ 01简单工厂模式