计算机网络期末复习-Part3
1、rdt1.0,rdt2.0,rdt3.0的底层信道模型
RDT 1.0: 完全可靠的底层信道,没有比特差错,也没有分组丢失。
RDT 2.0: 具有比特差错的底层信道,有比特差错,但没有分组丢失。
RDT 3.0: 具有差错和丢包的底层信道,有比特差错,又有分组丢失。
2、rdt2.0比rdt0增加的机制:检错(校验和或CRC)、反馈(ACK, NAK)、重传;
rdt3.0比rdt2.0增加的机制有:定时,发送方会在发送数据后启动一个定时器,如果在规定的时间内未收到确认(ACK),则认为数据丢失,触发重传。
3、rdt2.0,rdt3.0属于:停等协议;GBN,SR,TCP属于:流水线协议
在停等协议中,发送方发送一个分组,然后等待接收方的确认。只有在收到确认之后,发送方才会发送下一个分组;在流水线协议中,发送方可以发送多个分组,而不必等待每个分组的确认。接收方可以按顺序接收这些分组,并发送累积确认。
4、对滑动窗口协议发送窗口、接收窗口如何滑动的理解
回退N帧法(Go-Back-N), 选择性重传(SR)都是滑动窗口协议
位于发送窗口内的分组才允许被发送,位于接收窗口内的分组才能被接收
接收方发送一个 ACK(确认),指示成功接收到的最后一个无误分组的序号。这个 ACK 是累计的,意味着如果接收方成功接收了序号为 N 的分组,那么 ACK 中就包含 N 及之前所有分组的确认信息。如果有分组丢失,接收方将等待并且只发送最后一个正确接收的分组的 ACK,触发发送方重新发送从该分组开始的所有未确认的分组。
每个 ACK 指示成功接收的特定分组的序号。接收方可以选择性地确认接收到的分组,而不是像 GBN 那样累积确认。这允许发送方只重新发送丢失的分组,而不必重新发送整个窗口的数据。
5、检查和(Checksum)的计算,例:两个16-bit二进制数的检查和。
注意:最高位进比特位的进位需要加到结果中(也就将最高位进位的1加到结尾)
看上述例子:
6、TCP的三次握手过程
第一次握手 - SYN(同步):
客户端向服务器发送一个TCP报文,其中设置了SYN标志位,并选择一个初始的序列号(SEQ,通常由客户端随机选择)。这表明客户端请求建立连接。
客户端 -------------------> 服务器
| |
| ------- SYN = 1 ----------> |
第二次握手 - SYN + ACK:
服务器收到客户端的SYN报文后,会回复一个包含SYN和ACK标志位的报文,同时也选择一个初始的序列号。这表明服务器接受了客户端的请求,并表示自己也准备好建立连接。
客户端 <-------------------> 服务器
| |
| <------ SYN = 1, ACK = 1 ---|
第三次握手 - ACK:
客户端收到服务器的SYN + ACK报文后,会向服务器发送一个确认报文,其中设置了ACK标志位。这表明客户端确认了服务器的响应。此时,连接已经建立起来,可以开始进行数据传输。
客户端 -------------------> 服务器
| |
| ------- ACK = 1 ----------> |
来看个例题:
那么:
① SYN = 1
② SYN = 1 ; SEQ(由③中的ACK反推)= 2001 ;ACK(由①中的SEQ推出)= 1001
③ SEQ(等于上一次的ACK) = 1001
7、流量控制
发送方发送数据太快,导致接收方来不及接收时,需进行流量控制。(接收方对发送方的控制)
基本思想:接收方告诉发送方它目前的接收能力,发送方根据这个信息来控制发送的速率。
发送方:
发送方根据接收方的窗口大小,决定发送多少数据。
发送数据,并等待接收方的确认。
接收方:
接收方收到数据后,将其存储在接收缓冲区中。
接收方发送一个带有确认号和新的窗口大小的 ACK 给发送方。
如果接收方的缓冲区已满,它可以选择不立即确认,从而限制发送方的速率。
8、控制拥塞的两类方法:端到端的拥塞控制,如TCP;网络辅助的控制拥塞,如ATM。
相关文章:

计算机网络期末复习-Part3
1、rdt1.0,rdt2.0,rdt3.0的底层信道模型 RDT 1.0: 完全可靠的底层信道,没有比特差错,也没有分组丢失。 RDT 2.0: 具有比特差错的底层信道,有比特差错,但没有分组丢失。 RDT 3.0: 具有差错和丢包的底层信道…...
docker在虚拟机中的应用
文章目录 Docker的基础概念与入门docker与docker镜像的理解虚拟机下[ubantu系统下]Docker的安装Docker-engine 的常用命令Docker 的 Example配置Docker的国内源虚拟机安装Postgresql的Docker物理机访问Postgresql数据库利用Docker-engine容器化前端项目工程1. 编写项目电器2. 构…...
小程序样式淡入淡出效果
小程序切换下一个文章或者页面,淡入淡出效果 // detail.js getArticleData: function(articleId) {// 开始淡出效果this.animate(.detail-page, [{ opacity: 1.0, ease: ease-out },{ opacity: 0.0, ease: ease-out }], 500, () > {// 在淡出动画完成后请求文章…...

虚幻5 删除C盘缓存及修改缓存路径
一.修改C盘缓存 C盘缓存路径为: C:\Users\xx(这里是你的用户名)\AppData\Local\UnrealEngine\Common\DerivedDataCache 注意,如果没有AppData文件夹,请依次点击查看-勾选显示隐藏的项目,即可 可删除里面的所有文件即可 二.修改…...

手写C++ 实现链表的反转、删除、合并
目录 一、手写List成员方法 1.1 打印链表 1.2 删除链表节点 1.3 链表中倒数第k个节点 1.4 反转链表 1.5 合并两个排序链表 二、完整代码 一、C实现链表成员方法 在上一篇博客《手写链表C》,实现了基本的List类。在面试中,经常被问到List如何反转、…...

虚幻C++基础 day4
虚幻中的UI 虚幻中的比较常用的UI:Widget Blueprint又称UMG虚幻中的两种布局: 网格布局锚布局 创建Widget Blueprint 网格布局 有点类似Qt中的网格布局,将UI面板进行行列切分Horizontal Box:水平分布Vertical Box:…...

【Vue】【uni-app】工单管理页面实现
用的是uni-app的uni-ui拓展组件实现的 功能是对工单进行一个展示,并对工单根据一些筛选条件进行搜索 目前是实现了除了日期之外的搜索功能,测试数据是下面这个tableData.js,都是我自己手写的,后端请求也稍微写了一些,…...
【系统架构设计】架构核心知识: 2.1 软件过程模型
目录 一 软件过程模型 1 瀑布模型 2 V模型 3 喷泉模型 4 增量模型 5 原型模型...

数据管理系统-week1-文件系统、数据库和数据库管理系统
文章目录 前言一、 文件系统文件系统的限制 二、 数据库系统三、 数据库管理系统参考文献 前言 一、 文件系统 对于更高级的数据处理应用程序来说,基于数据块的持久存储逻辑模型过于简单数据块序列被划分为称为文件的数据块的可变子序列,与文件相关的名…...
探索OpenCV中直方图的神奇之处:应用与实现
文章目录 导言:直方图概述:函数原型参数说明:代码示例 应用场景:结语: 导言: 直方图是数字图像处理中一个强大而重要的工具,它通过可视化数据的分布情况,帮助我们更好地理解图像的特…...
MapReduce编程——矩阵乘法(Python版本)
数据格式 对于矩阵元素 A i j A_{ij} Aij,将其处理为 < i , j , M a t r i x N a m e , v a l u e > <i,j,MatrixName,value> <i,j,MatrixName,value>的四元组格式,例如矩阵[[2, 1, 3, 4], [10, -8, 7, 2], [9, 1, 6, -2]]可被转化…...

nature日报:为什么印度德里现在的空气污染如此严重?
为什么印度德里现在的空气污染如此严重? 后季风季节为印度大城市的空气污染积累创造了理想的条件。 本文整理扩展自2023年11月10日nature杂志的NEWS EXPLAINER——Why is Delhi’s air pollution so bad right now? (nature.com) Highlights 季风期间࿰…...

ChatGPT、GPT-4 Turbo接口调用
接口地址 https://chat.xutongbao.top/api/light/chat/createChatCompletion 请求方式 post 请求参数 model可选值: “gpt-3.5-turbo-1106”、 “gpt-3.5-turbo-16k” 、 “gpt-4”、“gpt-4-1106-preview”。 默认值为: “gpt-3.5-turbo-1106” to…...
IDEA中常用的调试快捷键
启动调试 对于Maven项目:Shift F9 对于普通项目:Shift F10 进入调试模式 Shift F9 逐行执行 逐行跳过:F8 逐行步入:F7 逐行步出:Shift F8 继续执行 F9 停止调试 Ctrl F2 设置断点 在代码行号左侧双击&#x…...
需要设计易清洗的口琴
我发现口琴很容易被异物影响。然后就需要清洗。正好手头有一个合适的螺丝刀,还比较方便。 反之一想,应该设计一种口琴,可以方便的拆开,用水清洗。晾干后就能组装。设计上当然会面临一些问题,比如音簧容易变音等。这个可…...

贝锐蒲公英智慧运维方案:实现远程网络监控、管理、维护工业设备
为了提升运维效率,能够及时发现和响应设备的故障、异常和潜在问题。 越来越多的企业都在搭建“集中式”的远程智慧运维体系,以提高运维效率和降低成本。 但是,受限于网络,将不同地域的资源和信息进行整合,实现统一管理…...

Intel oneAPI笔记(4)--jupyter官方文档(Unified Shared Memory)学习笔记
前言 本文是对jupyterlab中oneAPI_Essentials/03_Unified_Shared_Memory文档的学习记录,主要包含对统一共享内存的讲解 USM概述 USM (Unified Shared Memory)是SYCL中基于指针的内存管理。对于使用malloc或new来分配数据的C和C程序员来说应该很熟悉。当将现有的C…...

dRep-基因组质控、去冗余及物种界定
文章目录 Install依赖关系 常用命令常见问题pplacer线程超过30报错当比较基因组很多(>4096)有了Bdv.csv文件后无需输入基因组list 超多基因组为什么需要界定种?dRep重要概念次级ANI的选择Minimum alignment coverage3. 选择有代表性的基因…...
截图贴图软件推荐 - 附下载链接 | Snipaste | Steuna
截图贴图软件推荐 - 附下载链接 | Snipaste | Steuna 前言下载链接Snipaste(推荐)Steuna 前言 Win系统下截图软件多种多样,但贴图软件少之又少,本文介绍2个带有贴图功能的截图软件,分别是Snipaste和Steuna。可将截图固…...

python调用chrome实现网页自动操作
一. 内容简介 python调用chrome实现网页自动操作。 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接: 三.主要流程 3.1 下载驱动和插件 调用谷歌浏览器,需要下载浏览器驱动(https://registry.npmmirror.co…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...