第三章数据链路层资料
计算机网络原理第三章数据链路层
![计算机网络原理第三章数据链路层](https://img.taocdn.com/s3/m/31fc991a10661ed9ad51f3fa.png)
有确认的面向连接的服务
数据链路层为网络层提供的最复杂的服务 源机器和目的机器在传递任何数据之前,先建立一条
连接。在这条连接上所发送的每一帧都被编上号,数 据链路层保证所发送的每一帧都确实已收到。 保证每帧只收到一次,而且所有的帧都是按正确顺序 收到 为网络层进程间提供可靠传送比特流的服务
接收方也会因无力处理收到的帧而会丢失一些帧。 解决方法:引入流量控制来限制发送方发出的数
据流量,使之不超过接收方的能力。 需要某种反馈机制使发送方知道接收方的情况。 大部分流量控制方案的基本原理相同。
差错检验和纠正
通常数字传输时,差错很少发生 模拟传输经常发生差错 光纤干线差错率很小 无线通信差错率较大 两种基本的处理差错策略: 纠错码 检错码
帧界的确定。2、完全依赖于8位字符,特别是ASCII字 符。 第1点的解决方法:采用字符填充,即在数据中的每个 偶然遇到的DLE字符前,插入一个DLE的ASCII代码。
第2点的解决方法:采用位填充
允许数据帧包含任意个数的比特,而且也允 许每个字符的编码包含任意个数的比特。
工作方式如下:每一帧使用一个特殊的位模 式,即01111110作为开始和结束标志字节。 当发送方的数据链路层在数据中遇到5个连 续的1时,它自动在其后插入一个0到输出比 特流中。
在实际环境中,可能会通过中断来处理,这里 作了简化,忽略了并行活动的细节。
当一个帧到达接收方时,硬件会计算校 验和。若有传输错误,会收到通知 ( event =cksum_err),若无错误,则 收到通知( event =frame_arrival),利 用from_physical_layer接收进来的帧并做处理。
第三章数据链路层
![第三章数据链路层](https://img.taocdn.com/s3/m/3e4d3542be1e650e52ea9954.png)
定义:在星形拓扑中, 每个设备只与中心控 制器有点到点专用链 路。设备并不互相连 接。中心控制器通常 为集线器Hub。 HUB是一个共享设备,主要提供信号放大和中转 的功能,它把一个端口接收的所有信号向所有端 口分发出去。一些集线器在分发之前将弱信号加 强后重新发出,一些集线器则排列信号的时序以 提供所有端口间的同步数据通信。
连接中设备间相互关系:
对等式:设备平等地共享链路。如环形、 网状拓扑。
主从式:由一个设备控制通话而其他设备 必须通过它进行传输。如星形、树形拓扑。 总线式拓扑适合于任意一种模式。
1、Mesh Topology(网状拓扑) 定义:在网状拓扑中,设备之间实现点对点连接, 每条链路只承载所连接的两站点之 间的通信流量。
CRC是基于二进制除法的。 定义
CRC是通过在数据单元末尾附加一串循环冗余码 或循环冗余校验余数使得整个数据单元可被另一个预 定二进制数(生成函数)所整除。在传输终点,用同一 个数去除输入的数据单元。如果此时不产生余数,则 认为数据单元完全正确,接受该数据单元。有余数则 意味着该数据单元在传输过程中被破坏而拒绝该数据 单元。
余数为0, 所以码字正确。
② 因生成码共5位,所以: 冗余码有4பைடு நூலகம்,为1001 ;
信息码是:110011。
注意:
循环冗余校验CRC只能做到差错检测而不能进行 差错纠错。 循环冗余校验CRC只能做到无差错接受,即“凡 是接收端数据链路层接受的帧,都以非常接近于1的 概率认为这些帧在传输过程中没有产生差错”。 但要使传输到接收端的帧无差错、无丢失、无重 复,按发送顺序接受,就必须加上确认和重传机制。
到达接收方的数据单元首先是数据,然后是 CRC码,接收方将整个数据串(数据+CRC码)当作 一个整体去除以用来产生CRC码的同一个除数。 如果数据串无差错到达接收方,则产生余数0, 数据单元将通过校验;如果在传输中数据单元被改 变,则除法将产生非零余数,数据单元将不能通过 校验。
408考研计算机网络——第三章 数据链路层
![408考研计算机网络——第三章 数据链路层](https://img.taocdn.com/s3/m/fffecbb218e8b8f67c1cfad6195f312b3169eb83.png)
408考研计算机网络——第三章数据链路层第3章数据链路层结点:主机、路由器链路:网络中两个结点之间的物理通道,传输介质有双绞线、光纤和微波。
分为有线、无线链路数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路帧:链路层的协议数据单元,封装网络层数据报功能:为网络层提供服务、链路管理、组帧、流量控制、差错控制3.1 数据链路层的功能数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路·为网络层提供服务无确认无连接服务有确认无连接服务有确认面向连接服务·链路管理即连接的建立、维持、释放(用于面向连接的服务)·组帧(帧定界、帧同步、透明传输)封装成帧:在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。
接收端在收到物理层上交的比特流后,根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
最大传送单元MTU:帧的数据部分的长度上限透明传输:当所传数据中的比特组合恰巧与某一个控制信息完全一样时,采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。
保证数据链路层的传输是透明的组帧的四种方法:字符计数法、字符(节)填充法、零比特填充法、违规编码法·流量控制限制发送方的数据流量,使其发送速率不超过接收方的接受能力✳对于数据链路层:控制的是相邻两结点之间数据链路上的流量对于传输层:控制源端到目的端之间的流量·差错控制位错:循环冗余校验CRC差错控制:自动重传请求ARQ帧错:定时器、编号机制*三个基本问题:封装成帧、透明传输、差错检测3.2 组帧·字符计数法帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
数据链路层PPT课件
![数据链路层PPT课件](https://img.taocdn.com/s3/m/396f6487250c844769eae009581b6bd97f19bc0e.png)
3.2 点对点协议 PPP—4帧格式
先发送
首部
FAC 7E FF 03
字节 1 1 1
协议 2
IP 数据报
信息部分 不超过 1500 字节 PPP 帧
尾部
FCS
F 7E
2
1
3.2 点对点协议 PPP—4帧格式
当 PPP 用在同步传输链路时 ,采用比特填充。
在发送端,只要发现有 5 个 连续 1,则立即填入一个 0 。接收端对帧中的比特流进 行扫描。每当发现 5 个连续 1时,就把这 5 个连续 1 后 的一个 0 删除,
1. 进行串行/并行转换 2. 对数据进行缓存 3. 在计算机的操作系统安装设备驱动程序 4. 实现以太网协议
40
3.3 使用广播信道的数据链路层—概述
IP 地址
计算机
硬件地址
CPU 和 存储器
并行 通信
适配器 (网卡)
至局域网 串行通信
生成发送的数据 把帧发送到局域网 处理收到的数据 从局域网接收帧
(1) 封装成帧 (2) 透明传输 (3) 差错控制 (4)最大传送单元 (5)网络层地址协商
1. PPP 协议不需满足的需求 (1) 纠错
(2) 流量控制
3.2 点对点协议 PPP—3组成部分
PPP 协议有三个组成部分 1. 一个将 IP 数据报封装到串行链路的方法 2. 链路控制协议 LCP (Link Control Protocol) 3. 网络控制协议 NCP (Network Control Protocol)
3.2 点对点协议 PPP—1应用范围
现在全世界使用得最多的数据链路层协议是点对 点协议 PPP (Point-to-Point Protocol)。
第三章数据链路层
![第三章数据链路层](https://img.taocdn.com/s3/m/56010b360622192e453610661ed9ad51f01d5476.png)
第三章数据链路层重点内容(⼀)数据链路层的功能(⼆)组帧(三)差错控制1、检错编码2、纠错编码(四)流量控制与可靠传输机制1、流量控制、可靠传输与滑动窗⼝机制2、停⽌-等待协议3、后退N帧协议(GBN)4、选择重传协议(SR)⼀、使⽤点对点信道的数据链路层1、数据链路和帧链路是⼀条⽆源的点到点的物理线路段,中间没有任何其他的交换结点数据链路除了物理线路外,还必须有通信协议来控制这些数据的传输。
若把实现这些协议的硬件和软件加到链路上,就构成了数据链路常常在两个对等的数据链路层之间有⼀个数字管道,⽽在这条数字管道上传输的数据是帧2、基本问题(功能)(1)封装成帧封装成帧就是在⼀段数据的前后分别添加⾸部和尾部,这样就构成了⼀个帧。
接收端在收到物理层上交的⽐特流,就能根据⾸部和尾部的标记,从收到的⽐特流区别帧的开始和结束(⾸部和尾部还夹杂着控制信息)数据链路帧的特点数据部分的前⾯和后⾯分别添加上⾸部和尾部,构成⼀个完整的帧。
帧是数据链路层的数据传送单元。
⾸部和尾部还包括许多必要的控制信息每⼀种链路层协议都规定了所能传送的帧的数据部分长度上限——最⼤传送单元MTU⼀个控制字符SOH放在⼀个帧的最前⾯,表⽰帧的⾸部开始。
另⼀个控制字符EOT表⽰帧的结束(⼀般情况下,⾸部和尾部的长度加起来⼀般⼩于原始报⽂的长度)(2)透明传输“在数据链路层透明传输数据”表⽰⽆论什么样的⽐特组合的数据都能够通过这个数据链路层链路采⽤字节填充法,来确保上⽅情况的发⽣(3)差错检测传输错误的⽐特占所传输⽐特总数的⽐率称为误码率BER。
例如,误码率为10的负⼗次⽅时,表⽰平均每传送10的⼗次⽅个⽐特就会出现⼀个⽐特的差错在计算机⽹络传输数据时,必须采⽤各种差错检测措施。
⽬的在数据链路层⼴泛使⽤了循环冗余校验技术(CRC)CRC①在发送端,先把数据划分组,假定每组k个⽐特。
现假定待传送的数据M=1010001101(k=10)。
CRC运算就是在数据M的后⾯添加供差错检验⽤的冗余吗,然后构成⼀个帧发送出去,⼀共发送(k+n)位设n=5,P=110101(P是除数),模2运算的结果是:Q=1101010110余数R=01110将余数R作为冗余码添加在数据M的后⾯发送出去,即发送的数据是101000110101110,或2的n次⽅乘以M+R在数据后⾯添加上的冗余码称为帧检验序列FCS循环冗余检验CRC和帧检验序列FCS并不等同CRC是⼀种常⽤的检错⽅法,⽽FCS是添加在数据后⾯的冗余码FCS可以⽤CRC这种⽅法得出,但CRC并⾮⽤来获得到FCS的唯⼀⽅法②在接收端把接收到的数据以帧为单位进⾏CRC检验:把收到的每⼀个帧都除以同样的除数P(摸2运算),然后检验得到的余数R③在接收端对收到的每⼀帧经过CRC检验后,有以下两种情况:(a)若得出的余数R=0,则判定这个帧没有差错,就接受(b)若余数R≠0,则判定这个帧有差错,(但⽆法确定究竟是哪⼀位或哪⼏位出现了差错),就丢弃仅⽤循环冗余检验CRC差错检测技术只能做到⽆差错接受“⽆差错接受”是指:“凡是接受的帧(不包括丢弃的帧),我们都能以⾮常接近于1的概率认为这些帧在传输过程中没有产⽣差错”。
计算机网络第三章数据链路层
![计算机网络第三章数据链路层](https://img.taocdn.com/s3/m/bed8e1d280eb6294dd886cc9.png)
停止等待协议的定量分析 (图3-5)
两个发送成功的数据帧间的最小时间间 隔tT为:
tT= tf+tout= tf+2tp
正确传送一个数据帧所需的平均时间t 正确传送一个数据帧所需的平均时间tav 为:
tav=tT/(1-p) /(1最大吞吐量λmax=
(3(3-5)
(1(1-p)/ tT
(念
数据链路: 把实现用来控制数据传输的规程的硬件 和软件加到链路上,就构成了数据链路。 链路: 一条无源的点到点的物理线路段,中间 无交换结点。(物理链路)
数据链路层的功能
1. 2. 3. 4. 5. 6. 7. 链路管理 帧同步 流量控制 差错控制 将数据和控制信息区分开 透明传输 寻址
发送窗口
接收窗口
发送窗口的最大值
WT≤
n-1 2
3.4 选择重传ARQ协议
可以避免重复传送已正确到达接收端的数 据帧。但要在接收端设置缓存空间。
WR≤ WR(max) WT= WR=2n/2 n=4 WT= WR=4
n/2 2
3.5面向比特的链路控制规程HDLC
面向字符 在链路上所传送的数据是规定的字符集 (如ASCII码)中的字符所组成;并且, (如ASCII码)中的字符所组成;并且, 传送的控制信息也是同一个字符集中的 若干控制字符构成。 缺点与发展
标志 8
地址 8
控制 8
信息 可变
FCS 16
标志 8
地址: 在用非平衡方式传送数据时,地址字段总是 写入次站的地址; 在平衡方式(采用ABM),总是填入应答站 在平衡方式(采用ABM),总是填入应答站 的地址。 全1地址:广播方式 全0地址:无效地址 扩展地址:第1 扩展地址:第1位表扩展位,其余表地址位。 (0 或1)
第3章数据链路层
![第3章数据链路层](https://img.taocdn.com/s3/m/2e3cef555901020206409c72.png)
物理层用不同的信号表示二进制数据位,从而把帧用一 段连续的信号串表示并传送到目的主机
目的主机的物理层将信号还原成比特串交数据链路层, 井数据链路层确认正确后送到网络层
数据链路层为源和目的主机的网络层之间提供一条可靠
的数据链路
第3章 数据链路层 3 / 169
《Computer Networks v5》 cs.sjtu 1/16/2020
第3章 数据链路层 28 / 169
《Computer Networks v5》 cs.sjtu 1/16/2020
差错检测和校正
《Computer Networks v5》 cs.sjtu 1/16/2020
第3章 数据链路层
定义和功能 数据帧的组成 可靠性传输 数据链路层示例
第3章 数据链路层 1 / 169
《Computer Networks v5》 cs.sjtu 1/16/2020
数据链路层的定义
数据链路层的上层是网络层,数据链路层 将借助于物理层为网络层提供服务
确认和连接
确认:接收方在收到数据帧后,必须给 发送方发回一个确认
面向连接:发送方和接收方在传输数据 之前必须建立一条数据链路,传输结束 后必须释放该链路
第3章 数据链路层 6 / 169
《Computer Networks v5》 cs.sjtu 1/16/2020
数据链路层的服务
无确认无连接的服务 有确认无连接的服务 有确认有连接的服务
第3章 数据链路层
定义和功能 数据帧的组成 可靠性传输 数据链路层示例
第3章 数据链路层 14 / 169
《Computer Networks v5》 cs.sjtu 1/16/2020
计算机网络第3部分-数据链路层
![计算机网络第3部分-数据链路层](https://img.taocdn.com/s3/m/dbcf19799a6648d7c1c708a1284ac850ad02046d.png)
结点 端到端
链路
点到点 点到点
端到端
数据链路层的主要功能
(1)向网络层提供服务接口 (2)帧定界 /组帧/帧同步 (3)差错控制 (4)流量控制 (5)向帧中插入地址或协议控制信息
3.1.1 为网络层提供的服务
帧1
帧2
帧3
帧4
错误
6 01234 7 56 789 9 01 2345 67 9 89 0123 45
帧1
帧2
错误的字符计数
组帧的方法(2)
带字符填充的首尾字符定界法
组帧的方法(3)
带位填充的首尾标记定界法
帧的起始和结束都用一个特殊的位串 “01111110”,称为标记(flag)
“0”比特插入删除技术
3.4 介质访问控制
3.4.1 信道分配问题 3.4.2 多路随机访问协议 3.4.3 轮流协议
内容提要
3.5 局域网
3.5.1 局域网的基本概念与体系结构 3.5.2 以太网 3.5.3 无线局域网 3.5.4 令牌环网
内容提要
3.6 广域网
3.6.1 广域网的基本概念 3.6.2 点对点协议PPP 3.6.3 HDLC协议 3.6.4 ATM网络基本原理
发
011011111111111111110010
送 01111110 011011111 011111 101111 10010 01111110 方
填充“0”比特
接 01111110 011011111 011111 101111 100010 01111110 收
方
011011111111111111110010
第3章 数据链路层
![第3章 数据链路层](https://img.taocdn.com/s3/m/149574d76137ee06eff918ae.png)
第3章 数据链路层
应当注意
仅用循环冗余检验 CRC 差错检测技术只能做到 无差错接受(accept)。 “无差错接受”是指:“凡是接受的帧(即不 包括丢弃的帧),我们都能以非常接近于 1 的 概率认为这些帧在传输过程中没有产生差错”。 也就是说:“凡是接收端数据链路层接受的帧 都没有传输差错”(有差错的帧就丢弃)。 要做到“可靠传输”(即发送什么就收到什么) 就必须再加上确认和重传机制。 注意“无比特差错”和“无传输差错”的区别。
传输差错的种类
例如发送方连续发送三个帧: [#1]-[#2]-[#3] ,以下 情况属于传输差错: 帧丢失。 接收方收到[#1]-[#3],即丢失[#2]。 帧重复。 接收方收到[#1]-[#2]-[#2]-[#3],即重复[#2]。 帧失序。 接收方收到[#1]-[#3]-[#2],即[#2]与[#3]颠倒。
第3章 数据链路层
标准的CRC生成多项式
CRC-12 CRC-16
G(x)=x12+x11+x3+x2+x+1 G(x)=x16+x15+x2+1
CRC-CCITT G(x)=x16+x12+x5+1 CRC-32 G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8 +x7+x5+x4+x2+x+1
仅从数据链路层观察帧的流动
第3章 数据链路层
3.1 使用点对点信道的数据链路层 3.1.1 数据链路和帧
链路(link)是一条无源的点到点的物理线路段, 中间没有任何其他的交换结点。 一条链路只是一条通路的一个组成部分。 数据链路(data link) 除了物理线路外,还必须 有通信协议来控制这些数据的传输。若把实现 这些协议的硬件和软件加到链路上,就构成了 数据链路。 现在最常用的方法是使用适配器(即网卡) 来实现这些协议的硬件和软件。 一般的适配器都包括了数据链路层和物理层 这两层的功能。
第3章数据链路层
![第3章数据链路层](https://img.taocdn.com/s3/m/e4256847b307e87101f69602.png)
3.3 基本数据链路协议
一种无限制的单工协议(An Unrestricted Simplex Protocol) 停-等协议(A Simplex Stop-and-Wait Protocol) 有噪音信道的停-等协议(A Simplex Protocol for a Noisy Channel)
Simplex Stop-andWait Protocol
有噪音信道所涉及的问题
进一步考虑实际的会出错的信道,帧既可能损坏(接收端可通 过校验检查出错误),也可能完全丢失。
发送端仍通过接收端的反馈来决定怎么做。但由于帧会丢失, 发送端可能收不到反馈的确认帧,因此发送端必须引入超时机 制(time out),即增加一个定时计数器,在一定时间后对没有 确认的帧进行重发,也称作ARQ(Automatic Retransmit reQuest)。
差错检测
流量控制
Relationship between packets and frames
Services Provided to Network Layer
(a) Virtual communication. (b) Actual communication.
为网络层提供服务
无确认、无连接的服务
Protocol Definitions
Continued Some definitions needed in the protocols to follow. These are located in the file protocol.h.
Protocol Definitions (ctd.)
4. 物理层编码
在物理层用1.5或2个物理位表示一个数据位来 表示帧的起始与结尾。 表示0
计算机网络 第三章数据链路层(1)
![计算机网络 第三章数据链路层(1)](https://img.taocdn.com/s3/m/b244d95e591b6bd97f192279168884868662b857.png)
§3.4 基本数据链路协议
• 一种无限制的单工协议(An Unrestricted Simplex Protocol)
• 停-等协议(Stop-and-Wait Protocol) • 有噪音信道的停-等协议(Stop-and-Wait
Protocol for a Noisy Channel)
协议1:一种无限制的单工协议(乌托邦)
差错控制策略
• 检/纠错码的检/纠错能力与编码集的海明距离有关,海 明距离越大,检/纠错能力就越强,但所需的冗余信息 就越多,编码效率就越低。
• 由于纠错码比检错码要求更大的海明距离,且技术复 杂,纠正可靠性不高,所以一般很少使用,只有在没 有反馈信道的单工通信中,为了确保可靠才会采用。
• 在大多数通信中采用的是检错编码。接收方收到帧后, 对其进行校验检查,并发回相应的反馈信息。发送方 根据反馈信息来决定是继续发送新帧(肯定应答), 还是重发出错的旧帧(否定应答)。
• 两个码字中对应比特位取值不同的位的个数称作海明距离 (Hamming Distance)。如10001001和10110001的海明距离为3。
• 在一个编码集中,任意两个有效码字的海明距离的最小值称作该 编码集的海明距离。检错与纠错的能力取决于海明距离。
有关检错和纠错的两个重要结论
• 如果要检测出d个比特错误,则编码集的海明距离至少应为d+1。 – 说(证)明:若一个有效码字只出错< d+1个比特,则肯定变 为一个无效码字,从而被检测出来。若出错d+1,则变为有效 码字,不能检出。
• 帧的其它地方绝对不会出现这样的边界码字。
§3.3 差错的检测和纠正
涉及两方面理论与技术: • 差错检测
– 差错控制编码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结束在什么地方。(数据按帧传送,可在出错时仅重传错帧。)
流量控制:发方发送数据的速率必须使收方来得及接收。当收方来
不及接收时,就必须及时控制发方发送数据的速率。
差错控制:计算机通信中,要求有极低的比特差错率,一旦有错时,
计算机网络课程
1
3.1 数据链路层的基本概念
数据链路层的基本概念 链路(物理链路):就是一条无源的点到点的物理线路段,
中间没有任何其它的交换结点。
数据链路(逻辑链路):把实现控制数据传输规程的软
件、硬件加到链路上,就形成了数据链路
数据链路层的主要功能:(在不太可靠的物理链路上实现可靠的
数据传输)
11
3.2 停止等待协议
(5)将收到的数据帧中的数据送交主机。 (6)V(R)=1-V(R);{更新接收状态变量,准
备接收下一个数据帧 (7)发送确认帧ACK,并转到(2)。 (8)发送否认帧NAK,并转到(2)。 几点需要注意的地方: (1)收发两端各设置一个本地状态变量(仅占1个比
特)。
12
3.2 停止等待协议
帧,转到 2)
5
3.2 停止等待协议
❖ 由收方控制发方的数据流量是计算机网络中流量控制的一个基本方法
A
B
A
B
时
送主机B
间
送主机B
送主机B
送主机B
不需要数据链路层协议的数据传输
时
送主机B
间
送主机B
具有简单流量控制的数据链路层协议
6
3.2 停止等待协议
实用的停止等待协议(去掉之前的两个假设条件)
1、数据帧在链路上传输的几种情况
➢ 假定1:数据既不会出差错也不会丢失 ➢ 假定2:接收缓冲区的容量为无限大,接收速率与发送速率绝
对相等
❖ 在这两 个假定条件下,数据链路层不需要任何协议
4
3.2 停止等待协议
具有简单流量控制的数据链路层协议
假定:链路是理想的传输信道,数据既不会出差错
也不会丢失,但收方的缓冲区的容量是有限的。
算法:由收方控制发方的数据流量
一般采用检错重发来解决,即收方可以检测出收到的帧中有差错(但
2
3.1 数据链路层的基本概念
并不知道哪几个比特错了),于是就让发主重复发送这一帧。 常采用CRC方法。
将数据和控制信息分开:传送时数据和控制信息在同一
帧中,故一定要有相应的措施使收方能将它们区分开来。
透明传输 :即不管所传数据是什么样的比特组合,都应当
丢失
tout
丢失
送 主 机
时间
送 主 应答帧丢失, 机 发方重发,出
现重复帧。为 每一帧加上发 送序号 送 主 机
(d)应答帧丢失
8
3.2 停止等待协议
2、停止等待协议的算法 1)、在发送结点:
(1)从主机收一个数据帧 (2)V(S)=0。 {发送状态变量初始化} (3)N(S)=V(S) {将发送状态变量的数值写入发送序号}
14
3.2 自动重复请求
3.2.2 回退N式ARQ
回退N式ARQ又称为连续重发请求,连续重发请求方案是 指发送方可以连续发送一系列信息帧,即不用等前一帧 被确认便可发送下一帧。这就需要在发送方设置一个 较大的缓冲存储空间(称作重发表),用以存放若干待确 认的信息帧。当发送方收到对某信息帧的确认帧后,便 可从重发表中将该信息帧删除。所以,连续式ARQ方案 的链路传输效率大大提高,但相应地需要更大的缓冲存 储空间。连续ARQ方案的实现过程如下:
将数据帧送往缓冲区 (4)将发送缓冲区中的数据帧发送出去 (5)设置超时定时器
9
3.2 停止等待协议
(6)等待。 {等待以下3个事件中最先出现的一个} (7)若收到确认帧ACK,则:
从主机取一个新的数据帧; V(S)=1-V(S); {更新发送状态变量,变为下一个
序号} 转到(3) (8)若收到否认帧NAK,则转到(4) (9)若超时定时器时间到,则转到(4)。
能在链路上传送。当所传数据中比特组合刚好与一个控制信 息一样时,要加以控制。
寻址:多点连接的情况下,必须保证每一帧都能送到正确的
目的站,收方也应当知道发方是哪一个站。
3
3.2 停止等待协议
主机A
AP1
主机B
AP2
链路层
链路
两台计算机通过一条链路进行通信的简化模型
不需要数据链路层协议的数据传输(完全理想的数据传输)
在发送结点:
在接收结点:
1) 从主机取一个帧,将该帧送到 发送缓存
1) 等待,若收到由发送结点发过来 的帧,将其放入接收缓存区
2) 将缓存中的帧发送出去,等待。
3) 收到由接收结点发过来的确认 信息后,从主机取下一个新的
2) 将接收将缓存中的帧上交主机, 向发送结点发一确认信息,
3) 转到 1)
链路无差 错,用 ACK进行 流量控制
时间
(a)正常情况
出错
送 主 机
送 主 机 时间
链路不可靠, CRC校验出差 错,为此,收 方发出否认帧 NAK,要求发 方重发
送 主 机
(b)数据帧出错
7
3.2 停止等待协议
链路干扰严
重,数据帧 tout
丢失,双方 互等,死锁 出现。引入 超时定时器
时间
(c)数据帧丢失
(2)每发送一个数据帧,都必须将发送状态变量V(S) 的值(0或1)写到数据帧的发送序号N(S)上。但只 有收到一个确认帧ACK后,才更新发送状态变量V(S) 一次(将1变成0或0变成1)并发送新的数据帧。
(3)在接收端,每接收到一个重复帧,就要将发方在数 据帧上设置的发送序号N(S)与本地的接收状态变量 V(R)相比较。若二者相等就表明是新的数据帧,否 则为重复帧。
2)、在接收结点
10
3.2 停止等待协议
(1)V(R)=0。 {接收状态变量初始化,其数值等于欲接收的 数据帧的发送序号}
(2)等待。 (3)当收到一个数据帧,就检查有无产生传输差错(如CRC)。
若检查结果正确无误,则执行后续算法; 否则转到(8)
(4)若N(S)=V(R),则执行后续算法;{收到发送序号正确的数据帧} 否则丢弃此数据帧,然后转到(7)。
(4)在接收端,若收到一个重复帧,则丢弃之(不做任 何处理),且接收状态变量不变,但此时仍须向发送 端发送一个确认帧ACK。
13
3.2 停止等待协议
(5)发送端在发送完数据帧时,必须在其发送 缓冲区中保留此数据帧的副本,这样才能在出 差错时进行重发,只有在收到对方发来的确认 帧ACK时,方可清除此副本。 由于发送端对出错的数据帧进行重发是自动进 行的,所以这种差错控制体制常简称为自动请 求重发ARQ。பைடு நூலகம்