第三章 数据链路层

3.1 数据链路层设计要点

帧管理构成了数据链路层工作的核心

3.1.1 为网络层提供的服务



数据链路层为网络层提供服务,最主要的服务是将数据从源机器的网络层传输到目标机器的网络层。
主要以下三种:
1.无确认的无连接服务 
2.有确认的无连接服务
3.有确认的面向连接服务

3.1.2 成帧

服务:物理层->数据链路层->网络层
物理层接收原始位流,递交给目标主机,位流可能出错。检测和纠错则是数据链路层的任务。为完成该任务,需要将位流分解成离散的帧 (就是把数据分成一小块一小块以检查其在传输过程中是否发生了错误->标识每一帧的起始和结束位置)

成帧方法:
1.字符计数法
2.含字节填充的分界符法
3.含位填充的分界标识法
4.物理层编码违例法
说明:很多数据链路层协议使用字符计数法和其他某一种方法,以保证额外的安全性

字符计数法:
如图所示,每一帧第一个数字表示该帧的位数
一旦出错,目标方就会失去同步。


含字节填充的分界符法:
使用标志字节作为开始和结束。
若接收方失去同步,则只需搜索标志字节就能找到当前帧的结束位置。两个连续的标志字节代表了当前帧的结束和下一个帧的开始。
若数据段出现了标志字节则使用字节填充技术来区分,如图所示。若FLAG出现在数据段中,则在其前面填充ESC表示这个FLAG是数据,若ESC也出现在数据段中,则在其前面再填充一个ESC表示第二个ESC是数据。
缺点:紧紧地依赖于8位字符的模式

说明:这里用的字节填充方法是ppp协议中使用的填充方法的一个略微简化的形式。



含位填充的分界标识法:
允许数据帧包含任意长度的位,也允许每个字符有任意长度的位。
开始结束都使用标识字节:01111110
为避免数据段中出现标识字符,遇到5个连续的1自动在位输出流中填充一个0.接收方遇到5个连续的1且其后一位是0时,会自动去掉0。



物理层编码违例法:
适用于物理介质上的编码方法中包含冗余信息的网络。

3.1.3 错误控制

在可靠的,面向连接的服务中,发送方需要确认数据是否送达。
通常使用的方法是接收方反馈一些特殊的控制帧,对于它所接收到的帧进行肯定的或者否定的确认。
发送方需要管理定时器(避免永远等待确认报文)和序列号(避免同一个帧多次传递到网络层)。

3.1.4 流控制

目的:防止发送方发送帧的速度超过接收方能够接收这些帧的速度,使接收方被淹没
方法:基于反馈的流控制
            基于速率的流控制
数据链路层使用的是基于反馈的流控制

3.2 错误检测和纠正

由于物理过程而产生的错误,在有些介质上常常是突发性的,而不是单个的。突发性的错误与孤立的,单个位的错误相比,既有优点也有缺点。
突发性的错误往往是连续的多位 ,但是可能许多个数据帧中,只有一帧出错。因此它更难以纠正。

3.2.1纠错码

使用纠错码的技术通常也称为 前向纠错
适用于错误发生较频繁的信道上。

3.2.2检错码

适用于高可靠信道。

3.3 基本数据链路协议







### 计算机网络中的数据链路层 #### 数据链路层的功能概述 数据链路层位于物理层之上,主要负责节点间的数据帧传输。该层的主要功能包括成帧、差错控制、流量控制和介质访问控制等[^1]。 #### 链路层的两种信道 在讨论数据链路层时,通常会涉及到两类不同的通信信道:广播信道和点对点信道。前者允许多个设备共享同一物理媒介;后者则是两个端点之间的专用连接路径。 #### 局域网与广域网的区别 局域网(LAN)指的是在一个较小地理范围内互连的一组计算机或其他数字装置组成的网络,而广域网(WAN)则覆盖更大的区域,如城市之间甚至跨国界。两者在网络拓扑结构和技术实现上有显著差异。 #### 链路层的关键设备 为了支持不同类型的网络需求,在实际应用中存在多种用于构建和管理这些链接的技术装备,比如交换机、路由器接口卡等都是属于这一层次的重要组成部分。 对于有线链路而言,由于其固有的较低误码特性,往往不需要额外增加过多复杂度来确保可靠性,因此在这种环境下工作的协议设计可以更加注重效率而非绝对准确性[^4]。 ```python # Python伪代码展示如何模拟简单的MAC地址分配机制 def assign_mac_address(): mac_prefixes = ["00:A0:C9", "08:00:2B"] unique_identifier = hex(random.randint(0, 2 ** 24 - 1))[2:].zfill(6).upper() return f"{random.choice(mac_prefixes)}:{unique_identifier[:2]}:{unique_identifier[2:]}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值