计算机网络原原理学习资料分享笔记---第三章/第三节(为有梦想的自己加油!)

本文主要是介绍计算机网络原原理学习资料分享笔记---第三章/第三节(为有梦想的自己加油!),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第三节 停-等协议与

  1. 滑动窗口协议
    在这里插入图片描述
    第三节 停-等协议与滑动窗口协议
    知识点 1 可靠数据传输基本原理
    1 、internet传输层的两个协议:TCP 、UDP。
    TCP:可靠数据传输服务。将报文段交给IP传送,而IP只能提供“尽
    力”服务,也就是不可靠的服务。必须采取措施才能使其在基于不
    可靠的网络层上实现可靠传输。

第三节 停-等协议与滑动窗口协议
知识点 1 可靠数据传输基本原理
2 、不可靠传输信道的不可靠性主要表现在以下几方面:
1 )比特差错: 1100 —— 0110
2 )乱序(先发的数据包后到达,后发的数据包先到达):
发送: 1 、 2 、 3 、 4 、 5
接收: 2 、 1 、 5 、 4 、 3
3 )数据丢失(中途丢失,不能达到目的地):
发送: 1 、 2 、 3 、 4 、 5
接收: 1 、 3 、 4 、 5

第三节 停-等协议与滑动窗口协议
知识点 1 可靠数据传输基本原理
3 、基于不可靠信道实现可靠数据传输采取的措施( 5 种):
1 )差错检测:利用差错编码实现数据包传输过程中的比特差错检测
(甚至纠正)。(第五章详细介绍)
2 )确认:接收方向发送方反馈接收状态。
ACK(肯定确认);NAK(否定确认)
肯定确认:Positive Acknowledgement,正确接收数据。
否定确认:Negative Acknowledgement,没有正确接收数据。

第三节 停-等协议与滑动窗口协议
知识点 1 可靠数据传输基本原理
3 )重传:发送方重新发送接收方没有正确接收的数据。
发送方接收到NAK,表示接收方没有正确接收数据,则将出错的数据重
新向接收方发送。
4 )序号:确保数据按序提交。
对数据包进行编号。可以避免由于重传引起的重复数据被提交的问题。
5 )计时器:解决数据丢失问题。
发送方发送数据后启动计时器,如超时还未收到接收方的确认。主动重
发数据包,从而纠正数据丢失问题。

第三节 停-等协议与滑动窗口协议
知识点 1 可靠数据传输基本原理
4 、有效、合理地综合应用上述措施,可以设计实现可靠数据传输的协议:
例如:停-等协议与滑动窗口协议。

第三节 停-等协议与滑动窗口协议
讲解归纳与举例
例:【简答题】 1 、不可靠传输信道的不可靠性主要表现在以下几方面?

【参考答案】
1 )比特差错
2 )乱序
3 )数据丢失
【答案解析】:P 98 可靠数据传输基本原理

第三节 停-等协议与滑动窗口协议
讲解归纳与举例
例:【选择题】
2 、在实现可靠数据传输的措施中,能解决数据丢失问题的是( )
A.序号
B.确认
C.重传
D.计时器

【正确答案:D】
【答案解析】:P 98 实现可靠数据传输的措施
在这里插入图片描述
第三节 停-等协议与滑动窗口协议
知识点 2 停-等协议
2 、停-等协议的特点:
每发送一个报文段后就停下来等待接收方的确认。

第三节 停-等协议与滑动窗口协议
知识点 2 停-等协议
3 、停-等协议的工作过程:
1 )发送方发送经过差错编码和编号的报文段,等待接收方的确认。
2 )接收方如果差错检测无误且序号正确,则接收报文段,并向发送方
发送ACK,否则丢弃报文段,并向发送方发送NAK。
3 )发送方如果收到ACK,则继续发送后续报文段,否则重发刚刚发送
的报文段。

第三节 停-等协议与滑动窗口协议
知识点 2 停-等协议
4 、几点细节讨论
1 )差错控制:
报文段、ACK、NAK数据包均需要进程差错编码以便进行差错控制。
2 )序列号:
只需要 1 位就够了(区分是新发的报文还是重传的报文)。
3 )ACK和NAK:
利用重复ACK代替NAK。(对上一个正确接收的报文段再次进行确认)
4 )ACK和NAK差错:有错推断。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标题第三节 停-等协议与滑动窗口协议

讲解归纳与举例
例:【简答题】 1 、简述停一等协议的基本工作过程。

【参考答案】
1 )发送方发送经过差错编码和编号的报文段,等待接收方的确认。
2 )接收方如果差错检测无误且序号正确,则接收报文段,并向发送方
发送ACK,否则丢弃报文段,并向发送方发送NAK。
3 )发送方如果收到ACK,则继续发送后续报文段,否则重发刚刚发送
的报文段。
【答案解析】:P 99 停-等协议

第三节 停-等协议与滑动窗口协议
讲解归纳与举例
例:【选择题】 2 、最简单的自动重传请求协议是( )
A.UDP协议
B.SR协议
C.GBN协议
D.停-等协议

【正确答案:D】
【答案解析】:P 99 停-等协议
在这里插入图片描述
在这里插入图片描述
第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
2 、流水线协议实现可靠数据传输,做如下改进:
1 )增加分组序号(多位)。
2 )发送方和接收方可以缓存多个分组。

第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
3 、滑动窗口协议的工作特点:
发送方依序按流水线方式发送分组,接收方接收分组,按序向上
提交。
发送方对于已发送未收到确认的分组,必须缓存,必要时重发。
发送方可以连续发送多个未收到确认的分组(取决于缓存能力)。
接收方对未按序到达的分组,必须缓存或者丢弃并确认(取决于
缓存能力)。

第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
4 、滑动窗口协议的窗口:
发送窗口(Ws):发送方可以发送未被确认分组的最大数量;
接收窗口(Wr):接收方可以缓存的正确到达的分组的最大数量;
在这里插入图片描述
第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
6 、滑动窗口协议,根据窗口的大小,两种代表性的滑动窗口协议:
1 )回退N步协议:GBN协议(Go-Back-N)
2 )选择重传协议:SR协议(Selective Repeat)

第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
1 )GBN协议
发送窗口WS≥ 1 ,接收窗口Wr= 1 。
发送端缓存能力高,可以在没有得到确认前发送多个分组。
接收端缓存能力很低,只能接收 1 个按序到达的分组,不能缓存未
按序到达的分组。

第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
GBN发送方响应的 3 类事件:
1 、上层调:窗口未满,用“下一个可以序号”编号并发送分组,否则
拒绝发送新的数据。
2 、收到 1 个ACKn。GBN采用累积确认方式,即发送方收到ACKn时,表明
接收方正确接收序号n以及序号小于n的所有分组。
3 、计时器超时。发送方只使用一个计时器,对“基序号”指向的分组
计时。如超时,重发当前发送窗口中所有已发送但未确认的分组,即
“回退N步”,因为接收方Wr= 1 ,无缓存能力。

第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
GBN的接收方操作:
Wr= 1 ,只能接收“基序号”所指向的分组。如接收方正确接收到
序号为基序号,则发送一个ACKn,接收窗口滑动到序号n+ 1 的位置。接
收到的序号不是n或者分组差错等,则发送ACKn- 1 。
在这里插入图片描述
第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
GBN协议总结:
在差错较低的情况下,信道利用率会得到很大提高。如果信道误
码率或者丢包率较高,导致大量重发,信道传输能力降低。
GBN适合低误码率、低丢包率、带宽高时延积信道,且对接收方缓
存能力要求低。

第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
2 )SR协议
选择重传(SR)通过让发送方仅重传那些未被接收确认(出错或
者丢失)的分组,避免了不必要的重传。
发送窗口WS> 1 ,接收窗口Wr> 1 。很多SR协议WS 、Wr大小相等。
发送端缓存能力高。
接收端缓存能力高。在这里插入图片描述
第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
SR发送方响应事件:
1 、上层调用,请求发送数据:检查“下一个可用序号”,位于发送窗
口内则发送,否则缓存或者返回给上层。
2 、计时器超时。发送方对每个分组进行计时,超时则重发该分组。
3 、收到ACKn。SR协议对n进行判断。如n在当前窗口内,则标记已接收
(刚好是基序号,窗口向右滑动到最小未被确认序号处);其他情形
不做响应。

第三节 停-等协议与滑动窗口协议
知识点 3 滑动窗口协议
SR接收方主要操作:
1 、正确接收到序号在接收窗口范围内的分组PTKn,发送ACKn,窗口滑动。
2 、正确接收到序号在接收窗口左侧的分组PTKn,这些分组在之前已经正确
接收并提交,丢弃PTKn,并发送ACKn,窗口不滑动。
3 、其他情况,直接丢弃分组,不做任何响应。

第三节 停-等协议与滑动窗口协议
讲解归纳与举例
例:【选择题】
1 、从滑动窗口的观点来看SR协议,其窗口尺寸的大小为( )
A.发送窗口> 1 ,接收窗口> 1
B.发送窗口> 1 ,接收窗口= 1
C.发送窗口= 1 ,接收窗口> 1
D.发送窗口= 1 ,接收窗口= 1

【正确答案:A】
【答案解析】:P 107 SR协议

第三节 停-等协议与滑动窗口协议
讲解归纳与举例
例:【填空题】
2 、两种最具有代表性的滑动窗口协议是____和____。

【正确答案:GBN SR】
【答案解析】:P 105 两个典型的滑动窗口协议

第三节 停-等协议与滑动窗口协议
讲解归纳与举例
例:【填空题】 3 、最典型的流水线可靠传输协议是____。

【正确答案:滑动窗口协议】
【答案解析】:P 105 两个典型的滑动窗口协议

第三节 停-等协议与滑动窗口协议
讲解归纳与举例
例:【简答题】 4 、简述从滑动窗口的观点看,停等、G 0 —back—N及选择
重传三个协议的区别。

【参考答案】
停等:发送窗口= 1 ,接收窗口= 1 ;( 1 分)
Go-back-N:发送窗口WS≥ 1 ,接收窗口Wr= 1 :( 2 分)
选择重传:发送窗口WS> 1 ,接收窗口Wr> 1 ;( 3 分)
【答案解析】:综合理解三种协议在这里插入图片描述

这篇关于计算机网络原原理学习资料分享笔记---第三章/第三节(为有梦想的自己加油!)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988678

相关文章

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

MySQL的隐式锁(Implicit Lock)原理实现

《MySQL的隐式锁(ImplicitLock)原理实现》MySQL的InnoDB存储引擎中隐式锁是一种自动管理的锁,用于保证事务在行级别操作时的数据一致性和安全性,本文主要介绍了MySQL的隐式锁... 目录1. 背景:什么是隐式锁?2. 隐式锁的工作原理3. 隐式锁的类型4. 隐式锁的实现与源代码分析4

MySQL中Next-Key Lock底层原理实现

《MySQL中Next-KeyLock底层原理实现》Next-KeyLock是MySQLInnoDB存储引擎中的一种锁机制,结合记录锁和间隙锁,用于高效并发控制并避免幻读,本文主要介绍了MySQL中... 目录一、Next-Key Lock 的定义与作用二、底层原理三、源代码解析四、总结Next-Key L

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Spring Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操