标签:第三章 校验 --- 转义字符 链路 接收 数据 链路层
第三章—数据链路层
我们的目标是星辰大海,而非人间烟尘
文章目录
数据链路层概述
调用物理层提供的
不可靠的、透明的比特传输服务
,为网络层的数据传输提供一条无差异的、可靠的
数据链路。计算机
局域网
的绝大多数功能
属于数据链路。数据链路层使用的信道有
点对点信道
和广播信道
两种类型。
数据链路层的简单模型
数据链路层解读
-
物理链路
链路
是指一条无源
的、节点到其相邻节点的物理线路段,中间没有任何其他的交换节点。通信路径
是通信实体之间的物理线路
,由链路和交换设备构成。
1、一条链路只是一条通信路径的一个组成部分;
2、两个主机之间的通信路径由许多的链路串接而成 -
数据链路
数据链路(data link)
:除了物理线路外,还必须有通信协议来控制这些数据的传输。把
实现这些协议的硬件和软件
加到链路上,就构成了数据链路。
通过复用,一条物理链路上可以有多条数据链路;
一条通信路径上也可以有多条数据链路。
-
数据链路层的必要性
因此物理层仅实现了
数据传输
而没有实现有效无差错通信!
要实现真正的通信,还需要做大量的协调工作,如链路管理、流量控制、差错控制
等,这些功能由数据链路
层来完成。数据链路层的主要功能是在
不可靠的物理链路上实现可靠的数据传输,向网络层提供无差异的、可靠的数据传输通路。
数据链路层的主要功能
1、链路管理
2、封装成帧(帧同步)
3、差错检测
4、将数据和控制信息区分开
5、透明传输
6、寻址
7、流量控制
链路管理
1、为确保
接收方处于接收
状态,数据的发送方与数据的接收方在数据交换之前,通过交换必要的信息,确定链路的状态。
2、这些状态分为:链路建立、链路维持和链路释放。
3、完成这些状态的转换的功能,称为链路的管理。
帧的概要描述
帧是
数据链路层数据传输的单位;
帧包含
网络层
需要传输的数据
和传输网络层数据所需的控制信息
;
封装成帧
在一段
数据
的前后分别添加首部和尾部
,就构成了一个帧。
首部和尾部的一个重要作用就是进行帧定界。
MTU (Maximum Transfer Unit) :帧的数据
部分的长度上限。用
控制字符
进行帧定界的方法
文头SOH(Start Of Header):
二进制 00000001
文尾EOT(End Of Transmission):
二进制 00000100以帧为单位便于
差错检测和处理。
透明传输
将数据正确传输到接收方,
称为透明传输;
当传送的帧是文本文件时,数据部分不会出现像SOH、EOT这样的控制字符,因此是透明传输;
当数据部分
是非ASCⅡ码
的文本文件时,如果数据中的某个字节的二进制代码恰好和SOH、EOT这种控制字符一样:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的
前面插入一个转义字符“ESC”
。
字节填充
或字符填充
——接收端的
数据链路层在将数据送往网络层之前删除插入的转义字符。
如果转义字符也出现数据当中
,那么应在转义字符前面再插入一个转义字符
。当接收端收到连续的两个转义字符时
,就删除其中前面的一个。解决方法:
发送端的数据链路层在数据中出现控制字符“SOH”、“EOT”之前插入转义字符“ESC”
(escape):00011011。
接收端的数据链路层先删除这些转义字符,然后再将数据送往网络层。
差错检测控制
差错控制目的:
- 及时发现错误
- 及时处理
差错编码技术分为两大类:
(1)前向纠错:
接收方能检验错误并能纠正错误;
(2)差错检测:只检测错误,不做纠正。
差错控制的具体方法有:
垂直冗余校验(VRC)、水平冗余校验(LRC)、水平垂直冗余校验(TRC)和
循环冗余校验(CRC)。
crc的特点:
检错能力极强、开销很小、易于实现
CRC校验常用场合
奇偶校验
对一个字符校验一次,适合异步通讯
,一个
数据块(frame)校验一次
,适合同步通讯
。在
串行同步通信中
,在所有链路层或网络接口层协议中,几乎都可以使用这种校验方法。
在串行同步通信中
,在所有链路层或网络接口层协议中,几乎都可以使用这种校验方法。
CRC码的生成
CRC码生成和校验基本分为三步:
第一步:在数据单元(k位)的末尾加上r个0。r是一个比预定除数的比特位数(r+1)少1的数。
第二步:采用二进制除法将新的加长的数据单元(k+r位)除以除数。
第三步:求CRC循环冗余校验码
将被除数+余数发送出去
如果余数位数小于r,最左的缺省位数为0。
如果余数为0,则r=0。说明:
1、发送方和接收方必须有一个共同的多项式P(x);
2、除数比余数多1位。
3、余数既为冗余码,又称帧检验序列FCS例子:
多项式P(X)的选择
1、为保证检测错误的概率足够大,必须正确选择P(X);
2、它的最高位和最低位必须是1;—CRC可以做到
无差错接受
将数据和控制信息区分开
1、在数据链路层将
控制信息
和数据
组成在一个数据帧中;
2、在数据的接收端,还需要将它们分开;
3、帧包括
(1)帧起始、结束标志
(2)接收站标志
(3)控制字段(流控制、差错控制)
(4)帧校验序列
(5)数据部分
寻址
1、
地址
作为控制信息
,存在帧中;
2、主机的寻址流程
(1)发送主机将源地址和目的地址
放入帧中;
(2)收到帧的主机将帧中的目的地址与自己的地址比较;
(3)不同,抛弃;相同,进一步处理。
3、寻址的方式
(1)单播 (2)组播 (3)广播
链路层功能之 流量控制
1、发送方和接收方处理数据的
速度必须匹配;
2、当出现不匹配时,数据传输失败;
3、通过接收方控制发送方
发送数据的速度,保证数据传输的成功是计算机网络中常用的流量控制方式;
4、接收方使用反馈机制
,向发送方应答,报告自己当前的接收情况和能力。接收能力由接收设备的处理速度、接收缓冲的容量等影响)
5、常用的流量控制方法有(课本p189-p192):
(1)停止等待协议(Stop-and-Wait)
;——( P189 5.4)
(2)滑动窗口协议(Sliding Window )
——(P197-203 5.6-5.7)详细知识查看ppt和教材
标签:第三章,校验,---,转义字符,链路,接收,数据,链路层 来源: https://blog.csdn.net/weixin_45882303/article/details/120894724
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。