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

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

第三节 停-等协议与

  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

相关文章

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析