当前位置: 首页 > news >正文

【计算机网络入门】初学计算机网络(七)

目录

1. 滑动窗口机制

2. 停止等待协议(S-W)

2.1 滑动窗口机制

2.2 确认机制

2.3 重传机制

2.4 为什么要给帧编号

3. 后退N帧协议(GBN)

3.1 滑动窗口机制

3.2 确认机制

3.3 重传机制

4.  选择重传协议(SR)

4.2 确认机制

4.3 重传机制


1. 滑动窗口机制

满足发送窗口 + 接受窗口 ≤ 二的n次方,这里的n是用来给帧编号用的。

2. 停止等待协议(S-W)

2.1 滑动窗口机制

        由于停止等待协议的发送端口和接受端口的大小都是1,所以n就取≥1就能满足条件,也就是用一个比特位就能够给帧编号。你可能会有疑问,1个比特位只能表示0或者1如何能给帧进行编号呢?我们往后看看就知道了。

2.2 确认机制

        发送方发送0号数据帧,接收方在核对帧没有出错的情况下返回一个确认帧,并且往后移动一个窗口,此时发送方接受到确认帧之后再向后移动一个窗口。

2.3 重传机制

        ①如果发送方发送0号帧的时候,受到电磁影响,数据帧丢失,那么接收方永远不会接受到这个数据帧,也就不会给发送方发送确认帧,等待一段时间之后,会进行超时重传

        ②如果接收方发送确认帧的时候丢失了,此时接收方会向后移动,但是发送方的计时器超时之后会重传给接收方移动之前的位置如下图所示,接收方的D收到重复帧之后会丢弃,然后发送重复帧的确认帧,在发送方的D的计时器超时之前会接受到重复帧的确认帧,从而顺利后移。

        ③如果当传输的时候数据有差错,那么接收方会把帧丢弃,发送方的计时器必定会超时重传,然后接收方接受到正确帧再进行发送确认帧,接收方再后移一位,至此恢复正常。 

2.4 为什么要给帧编号

        因为如果不给帧编号,那么接收方不知道当前帧是不是重复帧,况且接受窗口和发送窗口的距离不超过1,所以回答上面的问题使用1bit表示帧序号足矣。

3. 后退N帧协议(GBN)

3.1 滑动窗口机制

        发送窗口大于1,接收窗口等于1;取发送窗口为3,那么我们可以使用:满足发送窗口 + 接受窗口 ≤ 二的n次方,确定n是2bit,所以我们可以使用:0,1,2,3,来对帧进行编号。

3.2 确认机制

        当发送方连续发送三个数据帧之后,接收方返回确认帧,表示当前帧以及之前的所有帧已经全部接受

3.3 重传机制

       ① 当发送方发送E的时候数据帧出现了问题,此时会继续发送给F,但是F收到帧之后会直接丢弃,此时接受方的D会发送一个ack表示D之前的所有数据帧已经传输完毕,此时发送端的E的计时器已经超时,所以E之后的F会重传、G第一次传,此时接收到数据的EFG会在G处进行正常返回确认帧ack。

        ②当接收方发送确认帧的时候,确认帧丢失,那么最先发送的A会超时,就会重新发送数据帧ABC给接收方,接收方接收到的帧都是在窗口之外属于“非法帧”,并且这些帧都是重复的会直接被丢弃,由于是“非法帧”,直接返回已接收的最后一个正确帧的确认帧。

4.  选择重传协议(SR)

接收窗口要小于等于发送窗口,如果违反规定则始终有空缺位没有被利用,性能得不到完全发挥。

4.2 确认机制

选择重传协议,接受方可以连续接受多个帧,但是接收方必须每一个帧都必须回复一个ACK。

4.3 重传机制

①当5号帧丢失,其他帧收到数据帧之后,会返回ACK,然后向后挪动一个位置,0号帧已经在发送窗口之内,会直接进行发送,但是发送方的5号帧并没有接受到ACK,于是计时器就会超时重发。

 ②当5号帧出现错误,那么接收方会发送一个NCK让发送方立即重传,这样就可以让发送方在计时器超时之前进行重传,节省时间,此时0号帧也已经进入了窗口内也可以发送。

③BD确认帧丢失的时候,发送方窗口向后移动一格,此时E在窗口内,所以E直接发送数据帧,BD依次超时重传,由于BD在接收窗口之外,所以认定这两个数据帧是重复帧,直接丢弃并且返回ACK。 

再次说明,接收窗口 + 发送窗口的总大小 小于等于2的n次方 ,n是帧编号;如若不满足则无法分辨重复帧。 

相关文章:

【计算机网络入门】初学计算机网络(七)

目录 1. 滑动窗口机制 2. 停止等待协议(S-W) 2.1 滑动窗口机制 2.2 确认机制 2.3 重传机制 2.4 为什么要给帧编号 3. 后退N帧协议(GBN) 3.1 滑动窗口机制 3.2 确认机制 3.3 重传机制 4. 选择重传协议(SR&a…...

Conda 环境搭建实战:从基础到进阶

在当今复杂多变的软件开发与数据科学领域,拥有一个稳定、可复现且易于管理的开发环境是项目成功的基石。Conda 作为一款强大的跨平台环境管理与包管理工具,为开发者提供了便捷高效的环境搭建与依赖管理解决方案。本文将深入探讨 Conda 环境搭建的实战技巧…...

大数据-236 离线数仓 - 会员活跃度 WDS 与 ADS 导出到 MySQL 与 广告业务 需求分析

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop&#xff0…...

fps项目总结:关于攻击与受击

文章目录 战斗交互攻击方命中区间 双方命中响应 攻击方:指定攻击动画指定动画命中区间:在动画中指定攻击范围以及命中响应动画通知:动画中攻击的开关——调用蓝图攻击函数:实现攻击检测以及命中响应通道检测:——自定义…...

coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以

coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以。 很简单。 准备工作,先发布你的工作流,和发布应用。 然后,点击扣子API 。 申请一个&#xff0…...

Windows 10 远程桌面连接使用指南

目录 一、引言 二、准备工作 1、确认系统版本 2、服务器端设置 三、客户端连接 1、打开远程桌面连接程序 2、输入连接信息 3、输入登录凭证 4、开始使用远程桌面 四、移动端连接(以 iOS 为例) 1、下载安装应用 2、添加远程计算机 3、进行连接…...

Difyにboto3を変更したカスタムDockerイメージの構築手順

Difyにboto3を変更したカスタムDockerイメージの構築手順 はじめに1. Dockerfileの作成2. Dockerイメージのビルド3. docker-compose.yamlの更新変更点: 4. コンテナの再起動注意事項まとめ はじめに DifyのDockerイメージに特定バージョンのboto3を変更する手順を…...

C++性能优化常用技巧

一. 选择合适的数据结构 1.1 map与unordered_map的选择 如果仅仅只需要使用到快速查找的特性,那么unordered_map更加合适,他的复杂度是O(1)。如果还需要排序以及范围查找的能力,那么就选择map。 1.2 vector与list的选择 通常情况下&#…...

IntelliJ IDEA集成MarsCode AI

IntelliJ IDEA集成MarsCode AI IDEA中安装插件 安装完毕之后登录自己的账号 点击链接,注册账号 https://www.marscode.cn/events/s/i5DRGqqo/ 可以选择不同的模型...

数据挖掘工程师的技术图谱和学习路径

数据挖掘工程师的技术图谱和学习路径: 1.基础知识 数据挖掘工程师是负责从大量数据中发现潜在模式、趋势和规律的专业人士。以下是数据挖掘工程师需要掌握的基础知识: 数据库知识:熟悉关系数据库和非关系数据库的基本概念和操作,掌握SQL语言。 统计学基础:了解统计学的基…...

Excel基础(详细篇):总结易忽视的知识点,有用的细节操作

目录 基础篇Excel主要功能必会快捷键LotusExcel的文件类型工作表基本操作表项操作选中与缩放边框线 自动添加边框线格式刷设置斜线表头双/多斜线表头不变形的:双/多斜线表头插入多行、多列单元格/行列的移动冻结窗口 方便查看数据打印的常见问题Excel格式数字格式日期格式文本…...

基因枷锁下的太空梦 —— 千钧一发电影观后感

目录 1 人物介绍 2 电影名解读 3 电影开头 3.1 电影开头的两段话 3.2 片头设计 4 电影正文 4.1 “杰罗米”各种诡异的行为 4.2 文森特 – 失败的man 4.3 真正的杰罗米以及假基因身份证 4.4 文森特新征程 4.5 基因人的不容易 4.6 睫毛被查出有问题 4.7 文森特身份初…...

leetcode第40题组合总和Ⅱ

原题出于leetcode第40题https://leetcode.cn/problems/combination-sum-ii/题目如下: 给定一个候选人编号的集合 candidates (candidate中有重复的元素)和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合…...

迷你世界脚本状态接口:Buff

状态接口:Buff 迷你世界 更新时间: 2023-04-26 20:07:54 具体函数名及描述如下: 序号 函数名 函数描述 1 addBuff(...) 给对象附加效果 2 removeBuff(...) 给对象移除指定效果 3 clearAllBuff(...) 给对象清除所有效果 4 clearAllBadBu…...

Java中Stream流的详细使用介绍

Java中Stream流的详细使用介绍 **1. 创建 Stream**从集合创建从数组创建使用 Stream.of 创建创建无限流 **2. 中间操作**过滤:filter映射:map去重:distinct排序:sorted截取:limit 和 skip **3. 终端操作**收集&#xf…...

【重构小程序】升级JDK1.8、SpringBoot2.x 到JDK17、Springboot 3.x(一)

前言 最近想着把大火的deepseek 迁移到小程序里,基于刷题小程序的数据库做一个RAG应用,来进一步扩展答案解析,帮助用户解答相关问题。但是由于之前做的项目都要老了,并不支持spring 的AI模块,因此,我打算先…...

功能丰富的自动化任务软件zTasker_2.1.0_绿色版_屏蔽强制更新闪退

🚀 zTasker 一键式效率倍增器使用指南 🙏 致谢 首先感谢开发者提供如此高效的工具! 软件本身功能强大,但部分机制需特别注意! 📖 软件概述 zTasker 是一款通过自动化脚本/任务流实现效率飞跃的生产力工…...

_ 为什么在python中可以当变量名

在 Python 中,_(下划线)是一个有效的变量名,这主要源于 Python 的命名规则和一些特殊的使用场景。以下是为什么 _ 可以作为变量名的原因和常见用途: --- ### 1. **Python 的命名规则** Python 允许使用字母&#xff…...

Java 9 到 Java 21 新特性全解析:从语法简化到API增强

一、新特性的概述 纵观Java这几年的版本变化,在Java被收入Oracle之后,Java以小步快跑的迭代方式,在功能更新上迈出了更加轻快的步伐。基于时间发布的版本,可以让Java研发团队及时获得开发人员的反馈,因此可以看到最近…...

LeeCode题库第三十九题

39.组合总和 项目场景: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同…...

Phi-4-mini-reasoning部署教程:Nginx反向代理7860端口实现域名访问

Phi-4-mini-reasoning部署教程:Nginx反向代理7860端口实现域名访问 1. 项目介绍 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这款模型主打"小参数、强推理、长上下文、低延迟&q…...

SRWE:打破Windows窗口限制的智能编辑器

SRWE:打破Windows窗口限制的智能编辑器 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE SRWE(Simple Runtime Window Editor)是一款专为Windows系统设计的实时窗口编辑工具&am…...

SOONet模型Keil5开发环境模拟:探索嵌入式设备视频事件检测前瞻

SOONet模型Keil5开发环境模拟:探索嵌入式设备视频事件检测前瞻 最近和几个做嵌入式开发的朋友聊天,大家聊到一个挺有意思的话题:现在AI模型越做越强,但好像都跑在云端或者高性能计算卡上。那些我们天天打交道的单片机、微控制器&…...

阿里云购买域名后解析与申请ssl证书并部署到宝塔

1.购买域名 2.解析域名 我们域名可以拆解为二级域名和三级域名等等 首先进入域名管理 https://dc.console.aliyun.com/next/index?spm5176.12818093_47.overview_recent.2.1c0716d0NpJNj1#/domain-list/all然后我们就拿到了二级域名,但是这个时候需要把二级域名和一…...

Linux shell之for in的使用及说明

一、语法 1 2 3 4 for 变量名 in 列表 do 程序段(command) done 注意1:是变量名而不是$变量! 注意2:列表可以做文章! 二、应用 第一类:数字性循环-->seq在in后面的应用 1 2 3 4 5 6 #!/bin/bash …...

ESP-01 AT固件烧录实战:从接线到调试的完整指南

1. 认识ESP-01模块与AT固件 如果你手头正好有个积灰的ESP-01模块,想用它来做点物联网小项目,那首先要解决的就是固件问题。这个指甲盖大小的WiFi模块出厂时可能不带AT指令集,或者固件版本太旧需要升级。我去年整理实验室时就翻出十几个不同批…...

从毫安预警到安培计量:芯森电子FR系列传感器在储能安全与管理中的协同应用

摘要在储能系统(ESS)的安全架构中,电流传感器不仅是计量工具,更是系统的“免疫细胞”。随着储能系统向高压化、数字化演进,单一的电流检测方案已无法满足从“微小漏电预警”到“电池主回路控制”的全栈需求。本文基于芯…...

HAL_NVIC

文章目录一、NVIC简介   NVIC 做什么?二、NVIC模块详解   1、NVIC 寄存器   2、优先级的定义     1.优先级寄存器NVIC_IPRx     2.优先级分组3、NVIC 工作完整流程   4、F103中断向量表     1.内核异常向量(固定,所有 CM…...

5个必知技巧:用Greasy Fork用户脚本彻底改变你的浏览器体验 [特殊字符]

5个必知技巧:用Greasy Fork用户脚本彻底改变你的浏览器体验 🚀 【免费下载链接】greasyfork An online repository of user scripts. 项目地址: https://gitcode.com/gh_mirrors/gr/greasyfork 你是否曾经想过,为什么别人的浏览器总是…...

终极B站视频下载指南:使用BBDown快速获取高清资源

终极B站视频下载指南:使用BBDown快速获取高清资源 【免费下载链接】BBDown Bilibili Downloader. 一个命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown BBDown是一款强大的命令行式B站视频下载工具,让你轻松保存哔哩…...