计算机网络(二):数据链路层

Wanda ·
更新时间:2024-11-14
· 564 次阅读

中国大学MOOC网站北京交通大学计算机网络课程笔记 1. 数据链路层定义

    在OSI/RM中明确定义: 数据链路层是在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧在信道上的“透明”传输。

2. 基本概率 (1) 链路(link)

    是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。 一条链路只是一条通路的一个组成部分。
在这里插入图片描述

(2) 数据链路(data link)

    除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

数据链路 = 链路 + 协议     链路中通信双方的信道使用形式不同,会相应有不同的控制协议。
    数据链路层使用的信道主要由以下两种类型:

1. 点对点信道
     这种信道使用一对一的点对点通信方式。
在这里插入图片描述

2. 广播信道
    这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
在这里插入图片描述

(3) 帧 帧:数据链路层的数据单位

在这里插入图片描述

在这里插入图片描述
仅从数据链路层观察帧的流动(绿色箭头)
在这里插入图片描述

3. 数据链路层的基本功能。

1. 封装成帧
     封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,确定帧的界限,也就是进行帧定界。因为在物理层中数据都会转化为比特流,帧定界后就可以在比特流中确定一段数据的开始和结束。
在这里插入图片描述
定界方法举例:用特殊的控制字符
在这里插入图片描述
正常情况下,收到完整的帧;
出错情况下,丢弃不完整的帧。

2. 透明传输
     当一个数据在发送的时候,这个数据也是用比特流呈现的,所以数据中可能会出现和定界控制符一样的编码,尤其在多媒体的数据里边,会出现这样的情况。一旦出现这样的状况,此数据就会出现数据丢失等情况,造成数据错误的解读。(内容相关性冲突——不透明)
在这里插入图片描述

解决办法: 字节填充(或字符填充) 发送端的数据链路层——在内容数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符,如“ESC”(其ASCII编码为00011011)。 接收端的数据链路层——在讲数据送往网络层之前删除插入的转义字符。 如果转义字符也出现数据当中,那么应在转义字符前面也插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
在这里插入图片描述

3. 差错控制
数据传输并不总是一帆风顺,总有时候会出现差错,如下图所示。
在这里插入图片描述
在现有网络实现中,数据链路层只提供比特差错检测。主要因为:
(1) 一旦发生比特差错,很难自动恢复。
(2) 中间通信设备不掌握全部通信内容,所以对帧丢失、重复、失序等问题可能不了解。

解决方法:广泛使用循环冗余检测CRC方法 在发送端,先把数据划分为组。假定每组K个比特。 假设待传送的一组数据M=101001(现在K = 6)。
在M的后面再添加供差错检测用的n位冗余码一起发送。 接收端收到数据后进行检验。
若没有差错,就接收数据。
若由差错,就丢弃数据。
作者:Asia_Wyz



数据链 数据链路层 数据 计算机网络

需要 登录 后方可回复, 如果你还没有账号请 注册新账号