第3章数据链路层 在接收结点: (1)等待。 (2)若收到由发送结点发过来的数据帧, 则将其放入数据链路层的接收缓存。 (3)将接收缓存中的数据帧上交主机。 (4)向发送结点发一确认信息,表示数据帧已 经上交给主机。 (5)转到(1)
第 3 章 数据链路层 在接收结点: (1) 等待。 (2) 若收到由发送结点发过来的数据帧, 则将其放入数据链路层的接收缓存。 (3) 将接收缓存中的数据帧上交主机。 (4) 向发送结点发一确认信息,表示数据帧已 经上交给主机。 (5) 转到(1)
第3章数据链路层 两种情况的对比(传输均无差错) 不需要流量控制 需要流量控制 A B B DATA DATA > DATA 送主机B 送主机B > DATA 送主机B DATA > 送主机B 送主机B DATA 时 送主机B
第 3 章 数据链路层 两种情况的对比(传输均无差错) A B 送主机 B 送主机 B 送主机 B 送主机 B A B 送主机 B 送主机 B 时 间 不需要流量控制 需要流量控制
第3章数据链路层 3.2.3实用的停止等待协议 四种情况 B A B B A B M DATAO式 DATAO 出错 DATAO DATAO WN ACK tout tout ACK -NAK 上 失 主 机 N 重 重 机 DATA1 传 DATAO 传 DATAO 传 DATAOX ACK 丢 ACK ACK 送主机 -ACK 间 机 机 (a)正常情况 (b)数据帧出错 (c)数据帧丢失 (d)确认帧丢失
第 3 章 数据链路层 3.2.3 实用的停止等待协议 时 间 A B 送 主 机 送 主 机 (a) 正常情况 A B 送 主 机 (c) 数据帧丢失 重 传 tout 丢 失 ! A B 送 主 机 丢 弃 (d) 确认帧丢失 重 传 tout 丢 失 ! A B 送 主 机 (b) 数据帧出错 重 传 出错 四种情况
第3章数据链路层 解决死锁现象:设置超时计时器 ·结点A发送完一个数据帧时,就启动一个超时计时器 (timeout timer). 一计时器又称为定时器。 ·若到了超时计时器所设置的重传时间t。t而仍收不到结 点B的任何确认帧,则结点A就重传前面所发送的这 一数据帧。 ·一般可将重传时间t。u选为略大于“从发完数据帧到收 到确认帧所需的平均时间
第 3 章 数据链路层 解决死锁现象:设置超时计时器 • 结点A发送完一个数据帧时,就启动一个超时计时器 (timeout timer)。 – 计时器又称为定时器。 • 若到了超时计时器所设置的重传时间 tout而仍收不到结 点 B 的任何确认帧,则结点 A 就重传前面所发送的这 一数据帧。 • 一般可将重传时间tout选为略大于“从发完数据帧到收 到确认帧所需的平均时间
第3章数据链路层 解决重复帧的问题 ·使每一个数据帧带上不同的发送序号。 ·若结点B收到发送序号相同的数据帧,就表明出现了重复帧。 ·但此时结点B还必须向A发送确认帧ACK,因为B已经知道 A还没有收到上一次发过去的确认帧ACK。 帧的编号问题 。任何一个编号系统的序号所占用的比特数一定是有限的。 。序号占用的比特数越少,数据传输的额外开销就越小。 。对于停止等待协议,由于每发送一个数据帧就停止等待, 因此用一个比特来编号。 一个比特可表示0和1两种不同的序号
第 3 章 数据链路层 解决重复帧的问题 • 使每一个数据帧带上不同的发送序号。 • 若结点 B 收到发送序号相同的数据帧,就表明出现了重复帧。 • 但此时结点 B 还必须向 A 发送确认帧 ACK,因为 B 已经知道 A 还没有收到上一次发过去的确认帧 ACK。 帧的编号问题 ⚫ 任何一个编号系统的序号所占用的比特数一定是有限的。 ⚫ 序号占用的比特数越少,数据传输的额外开销就越小。 ⚫ 对于停止等待协议,由于每发送一个数据帧就停止等待, 因此用一个比特来编号。 一个比特可表示 0 和 1 两种不同的序号