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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014本科电子信息工程专业
1 引言 2 物理层 3 数据链路层 4 介质访问控制子层 5 网络层 5 传输层
2
概述
数据链路层主要内容:两台相邻机器 之间实现可靠有效完整的信息块(帧) 通信的一些算法。
相邻:两台机器通过一条通信信道(同 轴电缆、电话线或者点到点的无线信
道)连接起来。递交的数据位的顺序与 发送的顺序完全相同。
有确认的无连接服务
特点: • 未使用逻辑连接; • 发送的每一帧都需要单独确认; • 若超时,则发送方将再次发送该帧。 应用:
无线系统、Wi-Fi。不可靠信道 注意:
确认是优化,不是要求.光纤不确认
有确认的面向连接服务
特点: • 建立连接; • 发送每帧编号,每帧会且仅会被按顺序接收一次 • 为网络层进程提供了一个可靠的位流。 应用:
接收端:数据链路层将数据送给网络 层之前删除转义字节。 缺点:仅能在字节级填充。 PPP协议例子
含字节填充的分界符法
起始和结束分界符:让每一帧都用一些特殊的 字节作为开始和结束。称为标志字节(flag byte) ,一般为0x7E。
转义处理:当标志字节的位模式出现在数据 中时,在前面插入一个特殊的转义字节(ESC)。接 收端的数据链路层在将数据送给网络层之前删除 转义字节。
管理定时器和序列号,以便保证每一帧最终 都恰好一次地被传递给目标机器的网络层,这是 数据链路层工作的重要组成部分。
3.1.4 流量控制
防止淹没 方法: ①基于反馈的流控制,接收方给发送方送回信息 ,允许它发送更多的数据。 ②基于速率的流控制。限制发送方传输数据的速 率。
基于反馈的流控制方案规定,发送方什么时 候可以发送下一帧,通常在没有得到接收方许可( 隐式或者显式许可)之前,禁止发送方往外发帧。
长距离不可靠链路,卫星或电话系统。 过程: • 建立连接:双方初始化各种变量和计数器 • 传输数据帧。 • 释放连接,所有变量、缓冲区及其他资源。
3.1.2 成帧
目的: 及时发现比特流中的错误。拆分
比特流为帧,分帧进行校验和计算 成帧方法: • 字符计数法 • 含字节填充的分界符法 • 含位填充的分界标志法 • 物理层编码违例法
含位填充的分界标志法
特点 允许数据帧包含任意长度的位,
也允许每个字符有任意长度的位。 有利于同步,减少连“1”
应用 • HDLC协议——高级数据链路控制协议
,思科串行总线 • USB——通用串行总线
物理层编码违例法
应用
适用于那些“物理介质上的编码 方法中包含冗余信息”的网络。可以 用特殊的冗余码字作为分界符。
FLG
字节填充
字节填充
字节填充
字节填充
FLG
发送 在前
ESC FLG
ESC FLG
ESC ESC
ESC FLG
FLG
经过字节填充后发送的数据
含位填充的分界标志法
位填充(bit stutting)机制
每一帧的开始和结束都有一个特 殊的位模式:01111110。发送方数据 链路层对数据中5个连续的位“1”自 动在输出位流中填充一个位“0”。
帧尾部
用标志字符进行帧定界的方法举例
帧开始符
FLG
发送在前
装在帧中的数据部分 帧
帧结束符
FLG
透明传输
出现了“FLG” 完整的帧
发送
数据部分
在前
FLG
FLG
FLG
被接收端 误认为是一个帧
被接收端当作无效帧而丢弃
用字节填充法解决透明传输的问题
帧开始符
原始数据
FLG
FLG
FLG
ESC
帧结束符
FLG
从层次上来看数据的流动
R1 网络层 链路层 物理层
R2 网络层 链路层 物理层
R3 网络层 链路层 物理层
H2
应用层 运输层 网络层 链路层 物理层
数据链路层的简单模型
主机 H1 向 H2 发送数据
主机 H1
路由器 R1
电话网
局域网
路由器 R2
广域网
路由器 R3
主机 H2
局域网
H1
应用层 运输层 网络层 链路层 物理层
主要缺点:依赖于8位字符的模式。例如, UNICODE使用16位字符。
封装成帧
• 封装成帧(framing)就是在一段数据的前后分别添 加首部和尾部,就构成了一个帧。确定帧的界限。
• 首部和尾部的一个重要作用就是进行帧定界。
帧开始
IP 数据报
帧结束
开始 发送 帧首部
帧的数据部分
MTU 数据链路层的帧长
数据链路层
from_physical_layer()
物理层
3.3.1 一个无限制的单工协议
前提
单向传输、双方始终就绪、处理时间可忽略、 存储空间无限大、不会出现错误。完全理想状态
过程
一个发送过程和一个接收过程。分别运行于源 和目标机器的数据链路层上。因无错,则不用序 列号和确认,不需要MAX_SEQ。惟一可能的事件 类型是frame_arrival
• 使用适配器(即网卡)来实现这些协议 的硬件和软件。包括了数据链路层和 物理层这两层的功能。
数据链路层实现
数据链路层帧与网络层数据包的关系
数据链路层帧与网络层数据包的关系
结点 A
网络层
数据 链路层
IP 数据报 装入

物理层
1010… …0110
结点 B IP 数据报
取出 帧
1010… …0110
3.3 基本数据链路层协议
假设 物理层、数据链路层和网络层都是独立进程
。通过消息进行通信。 物理层、数据链路层和网络层的实现
CPU
3.3 基本数据链路层协议
假设 物理层、数据链路层和网络层都是独立进程
。通过消息进行通信。 物理层、数据链路层和网络层的实现
CPU
3.3 基本数据链路层协议
需求:主机A希望用一个可靠的面向连接的服务向 B发送长数据流
理想条件 • A要发的数据总是已经准备好。网络层忙碌 • 机器不会崩溃。只处理通信错误 • 数据链路层对网络层透明。数据链路层不解析
网络层数据
协议公共定义
公共定义
基本数据链路协议公共声明
①初始,接收方挂起。数据链路层调用 wait_for_event(&event)等待(死循环),有事 件发生则返回。event说明发生的事情。事件机 制或中断 ②一帧到达接收方,硬件会计算校验和。
物理层编码违例法
应用例
• 曼彻斯特编码,每一个数据位都有一 个中间电平跃变,接收方很容易定位 到位的边界。
• 快速以太网的4B/5B线性编码。4个数 据位映射成5个信号比特。
• 以太网和Wi-Fi,采用引导码(物理层 编码违例)+帧长度字段(字符计数)
分界符实例
分界符通常采用一种模式,例如以太网和 IEEE 802.11的分界符采用10101010……模式的引 导码,以太网64位,802.11 72位。
帧头
④enable_network_layer和 disable_network_layer,允许对网络层加以控制 ,避免网络层淹没数据链路层 。
基本数据链路协议公共声明
⑤过程控制
网络层
from_network_layer()
数据链路层
to_physical_layer()
物理层
网络层
to_network_layer()
字符计数法
利用头部中的一个域来指定该帧中的字符数。如 果改值错误,则无法同步,也无法重传。
字符计数法
利用头部中的一个域来指定该帧中的字符数。如 果改值错误,则无法同步,也无法重传。
含字节填充的分界符法
起始和结束分界符 让每一帧都用标志字节作为开始和结
束。0x7来自百度文库。 转义处理
发送端:当标志字节位模式出现在数 据中,在前面插入转义字节(ESC)
3.3.3
A
发送 M1
有错信道上的单工停-等式协议
B
A
发送 M1
确认 M1

发送 M2
超时重传 M1 确认 M2
发送 M3
确认 M3
发送 M2
B
丢弃有差错 的报文
确认 M1
t
t
(a) 无差错情况
t
t
(b) 超时重传
3.3.3 有错信道上的单工停-等式协议
A
B
发送 M1

超时 重传 M1
发送 M2
3.1.3 差错控制
需求: 解决如何确保所有的帧最终都被按正确的顺
序递交给目标机器上的网络层。 方式: • 纠错码:前向纠错 • 检错码:检测接收到的数据, • 反馈信息:进行肯定确认或否定确认。
3.1.3 差错控制
特殊处理: ①由于硬件问题,帧完全丢失(比如噪声突发时) 。引入定时器(超时重传机制) ②确认帧丢失导致的重复接收同一帧。分配序列 号,区别原始帧和重传帧。
数据 链路层
结点 A
发送 帧
链路 (a)
链路 (b)
接收 帧
结点 B
3.1.1 提供给网络层的服务
• 无确认的无连接服务 • 有确认的无连接服务 • 有确认的面向连接服务
无确认的无连接服务
特点: • 源机器向目标机器发送独立的帧; • 目标机器不进行确认; • 不建立逻辑连接,不释放逻辑连接。 • 无法检测由于线路噪声引起的丢帧。 应用: • 以太网。错误率很低 • 实时通信(语音)。
A
B
3.3.1 一个无限制的单工协议
3.3.1 一个无限制的单工协议
3.3.2 无错信道上的单工停-等协议
假设
通信无错误,数据流单向,接收方数据链路层缓 冲区受限,非所有帧都会马上处理。考虑淹没
解决方案 接收方将一个分组传递给网络层后,它给发送方
送回一个小的确认帧(允许发送下一帧)。发送方 在送出一帧之后,根据协议要求,它要等待一段时 间直到确认帧到达。利用接收方的反馈信息,让发 送方知道什么时候可以发送更多的数据,达到流控 制。 停-等协议(stop-and-wait)
若校验和错误,则event=cksum_err; 反之event=frame_arrival。 可利用from_physical_layer()获得进来的 帧。如果一切OK,则将分组部分传递给网络层 ,帧头、尾部分不交。
基本数据链路协议公共声明
③frame由4个域组成:帧头(kind、seq、ack)和 info,控制信息和实际数据。
确认 M1
丢弃 重复的 M1 重传确认 M1
t
t
(a) 确认丢失
3.3.3 有错信道上的单工停-等式协议
自动重复请求协议 若在协议中,发送方在准备下一个数
据项目之前先等待一个肯定的确认,则 这样的协议称为PAR (Positive Acknowledgement with Retransmission.支 持重传的肯定确认协议)或者 ARQ(Automatic Repeat reQuest,自动重复 请求协议)。
帧的顺序传输
结点


结点
数据链路层功能
• 向网络层提供一个定义良好的服务接 口。
• 处理传输错误。 • 调节数据流,确保慢速的接收方不会
被快速的发送方淹没。
数据链路层的简单模型
主机 H1 向 H2 发送数据
主机 H1
路由器 R1
电话网
局域网
路由器 R2
广域网
路由器 R3
主机 H2
局域网
H1
应用层 运输层 网络层 链路层 物理层
接收方对5个连续输入位“1”, 且后一位“0”的情况,自动去掉该 “0”位。
含位填充的分界标志法
允许数据帧包含任意长度的位,也允许每个 字符有任意长度的位。每一帧的开始和结束都有 一个特殊的位模式:01111110。当发送方的数据 链路层碰到数据中5个连续的位“1”的时候,它 自动在输出位流中填充一个位“0”。这就是位填 充(bit stutting)机制。当接收方看到5个连续的 输入位“1”,并且后面是位“0”时,它自动去 掉(即删除)该“0”位。
仅从数据链路层观察帧的流动
R1 网络层 链路层 物理层
R2 网络层 链路层 物理层
R3 网络层 链路层 物理层
H2
应用层 运输层 网络层 链路层 物理层
数据链路层实现
• 数据链路(data link) 必须有通信协 议来控制这些数据的传输。若把实现 这些协议的硬件和软件加到链路上, 就构成了数据链路。
发送方送出一帧后,先等待确认,再继续发送。
3.3.2 无错信道上的单工停-等协议
3.3.2 无错信道上的单工停-等协议
3.3.3 有错信道上的单工停-等式协议
假设 信道可能出错。帧(数据帧或确认帧)
可能会损坏或完全丢失。 帧错处理
接收方硬件计算校验和检测,否定确认 帧丢处理
死循环,要依靠定时器,想知道哪一 帧出现了问题,要引入帧序号,避免重 复接收同一帧。停-等式协议1bit
3.3.3 有错信道上的单工停-等式协议
3.3.3 有错信道上的单工停-等式协议
3.3.3 有错信道上的单工停-等式协议
3.4 滑动窗口协议
捎带确认(piggybacking) 当一个数据帧到达时,接收方不立即发送一
个单独的确认帧,而是等待网络层传递给它下 一个分组。并将确认信息附在发送的数据帧上( 使用ack域)。这种“将确认暂时延迟,以便可以 钩到下一个外发数据帧”的技术称为捎带确认 。确认报搭了外发数据帧的便车。
相关文档
最新文档