当前位置:文档之家› 第3章数据链路层

第3章数据链路层


结点


结点
数据链路层功能
? 向网络层提供一个定义良好的服务接口。 ? 链路管理
– 差错控制:处理传输错误; – 数据流量控制:确保慢速的接收方不会被 快速的发送方“淹没”。
帧管理
– 成帧:帧格式的形成 – 帧同步:识别帧头、帧尾
数据链路层的简单模型
主机 H1 向 H2 发送数据
主机 H1
路由器 R1
有确认的无连接服务
特点: ?未使用逻辑连接; ?发送的每一帧都需要接收端单独确认 ( 可选项,用于优化服务;光纤不确认 ) ; ?若确认帧超时,则发送方将再次发送该帧。
应用: 不可靠信道,如无线系统、 Wi-Fi。
有确认的面向连接服务
特点: ?建立连接; ?发送的每帧都编号,保证每帧都正确、按顺序接收一次 ?为网络层进程提供了一个可靠的位流( 复杂) 。
数据链路层实现
数据链路层帧与网络层数据包的关系
数据链路层帧与网络层数据包的关系
结点 A
网络层
数据 链路层
IP 数据报 装入

物理层
1010… …0110
结点 B IP 数据报
取出 帧
1010… …0110
数据 链路层
结点 A
发送 帧
链路 (a)
链路 (b)
接收 帧
结点 B
3.1.1 提供给网络层的服务
电话网
局域网
路由器 R2
广域网
路由器 R3
主机 H2 局域网
H1
应用层 运输层 网络层 链路层 物理层
从层次上来看数据的流动
R1
网络层 链路层 物理层
R2
网络层 链路层 物理层
R3
网络层 链路层 物理层
H2
应用层 运输层 网络层 链路层 物理层
数据链路层的简单模型
主机 H1 向 H2 发送数据
主机 H1
– 发送方数据链路层对数据中 5个连续的位“ 1”, 自动在输出位流中 填充一个位“0” 。 – 接收方对 5个连续输入位“1”,且后接一位 “0”的情况,自动删除这个“0”位。 接收方一旦失步,只需在输入数据流中扫描标志序 列,即可重新获得同步。因为标志序列只能是帧界, 不可能出现在数据中。
? 无确认的无连接服务 ? 有确认的无连接服务 ? 有确认的面向连接服务

无确认的无连接服务
特点: ?源机器向目标机器发送独立的帧; ?目标机器不进行确认; ?不建立逻辑连接。 ?数据链路层不处理线路噪声引起的丢帧、错帧, 由上层完成。 应用: ?错误率很低,如以太网,光纤网络 ?实时通信,如语音。
用字节填充法解决透明传输的问题
帧开始符
原始数据
FLG
FLG
FLG
ESC
帧结束符
FLG
FLG
字节填充
字节填充
字节填充
字节填充
FLG
发送 在前
ESC FLG
ESC FLG
ESC ESC
ESC FLG
FLG
经过字节填充后发送的数据
比特填充的标志比特法
位填充(bit stuffing) 机制 每一帧的开始和结束都有一个特殊的位模式 01111110
字节计数法
利用头部中的一个域来指定该帧中的字节数。 对于数值改变的错误,则无法同步和重传。 很少单独使用。
字符计数法
利用头部中的一个域来指定该帧中的字符数。如 果改值错误,则无法同步,也无法重传。
字节填充的标志字节法
标志字节(flag byte) : 考虑出错后的重新同步,用特殊字节flag 表示一帧的开始 和结束,一般为0x7E(01111110。) 目的端丢失帧边界时只需 查找两个连续的flag ,就可以找到前帧的结束,后帧的开始
路由器 R1
电话网
局域网
路由器 R2
广域网
路由器 R3
主机 H2 局域网
H1
应用层 运输层 网络层 链路层 物理层
仅从数据链路层观察帧的流动
R1
网络层 链路层 物理层
R2
网络层 链路层 物理层
R3
网络层 链路层 物理层
H2
应用层 运输层 网络层 链路层 物理层
数据链路层实现
? 数据链路 (data link) :必须有通信协议来控制 这些数据的传输。若把实现这些协议的 硬件和软 件加到物理链路上,就构成了数据链路。 ? 使用适配器( 即网卡) 来实现这些协议的硬件和 软件。包括数据链路层和物理层这两层的功能。 ? 主要讨论 WA中NDL层的问题,属点 -点链路上的 数据传输; LAN的DL层比WA复N杂,属多点链路传 输( 第4章) 。
字节填充: 若传送的用户数据中出现flag 或ESC,会干扰帧界的确定,需 进行字节填充:
– 发送端: DL层在用户数据中的每个flag 或ESC前插入 1个转义字节(ESC) – 接收端: DL层在将数据送给N层前删除ESC。 缺点:依赖于8位字符的模式,增加了额外的传输负荷。 PPP协议例子
起始和结束分界符 : 让每一帧都用一些特殊的 字节作为开始和结束。称为 标志字节(flag byte) , 一般为 0x7E。
1 引言 2 物理层 3 数据链路层 4 介质访问控制子层 5 网络层 5 传输层
1
3.1数据链路层的设计问题
概述
数据链路层主要内容 : 两台 相邻 机器之间实现可靠、有效、完整的 信息块( 帧) 通信的一些算法。
相邻:两台机器通过一条通信信道 ( 同轴 电缆、电话线或点到点的无线信道 ) 连接。 递交数据位的顺序与发送的顺序完全相同。
过程: ?建立连接:双方初始化各种变量和计数器。 ?传输数据帧:记录已收帧及未收帧。 ?释放连接:所有变量、缓冲区及其他资源。
应用:长距离且不可靠链路,卫星或电话系统。
3.1.2 成帧
目的: 及时发现原始比特流中的错误。 比特流拆分为帧,分帧进行校验和计算
成帧方法: ?字节计数法 ?字节填充的标志字节法 ?比特填充的标志比特法 ?物理层编码违禁法
转义处理 :当标志字节的位模式出现在数据 中时,在前面插入一个特殊的转义字节 (ESC)。接 收端的数据链路层在将数据送给网络层之前删除 转义字节。
主要缺点: 依赖于8位字符的模式。例如, UNICOD使E用16位字符。
封装成帧
? 封装成帧(framing):在一段数据的前后分别添加 首部和尾部,构成了一个帧。确定帧的界限。 ? 首部和尾部的一个重要作用就是进行 帧定界。
帧开始 开始 发送 帧首部
IP 数据报
帧的数据部分 ? Max
数据链路层的帧长
帧结束 帧尾部
用标志字节进行帧定界的方法举例
帧开始符
FLG
发送在前
装在帧中的数据部分 帧
帧结束符
FLG
透明传输
出现了“FLG” 完整的帧
发送
数据部分
在前
FLG
FLG
FLG
被接收端 误认为是一个帧
被接收端当作无效帧而丢弃
相关主题