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

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

第三节 停-等协议与

  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中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

java 恺撒加密/解密实现原理(附带源码)

《java恺撒加密/解密实现原理(附带源码)》本文介绍Java实现恺撒加密与解密,通过固定位移量对字母进行循环替换,保留大小写及非字母字符,由于其实现简单、易于理解,恺撒加密常被用作学习加密算法的入... 目录Java 恺撒加密/解密实现1. 项目背景与介绍2. 相关知识2.1 恺撒加密算法原理2.2 Ja