day06|计算机网络重难点之 TCP连接如何确保可靠性、拥塞控制如何实现、TCP流量控制如何实现、UDP如何实现可靠传输

day06|计算机网络重难点之 TCP连接如何确保可靠性、拥塞控制如何实现、TCP流量控制如何实现、UDP如何实现可靠传输

    • 14.TCP连接如何确保可靠性
    • 15.既然提到了拥塞控制,那你能说说说拥塞控制是怎么实现的吗
    • 16.TCP流量控制是怎么实现的?
    • 17.UDP怎么实现可靠传输

14.TCP连接如何确保可靠性

TCP 通过 拥塞控制、超时重传、差错控制(序列号、确认应答、数据校验)、流量控制等机制,确保了数据传输的 效率和可靠性

  • 第一个是 拥塞控制:TCP 通过 慢启动、拥塞避免、快速重传和快速恢复等算法,,来控制数据传输的速率,防止网络拥塞
  • 第二个是 确认应答超时重传:接收方 发送ACK 确认收到的数据,而发送发会设置一个 定时器,如果 在定时器超时之前 没有收到确认,发送方会 重传数据
  • 第三个是 序列号:每个 TCP段 都有一个 序列号,确保 数据报的顺序正确
  • 第四个是 数据校验:TCP 使用 校验和 来检测数据在传输过程中是否出现错误。如果出错,则接收方 丢弃该数据报,等待重传
  • 第五个是 流量控制:TCP 通过 滑动窗口 机制进行 流量控制,确保 接收方 能够处理 发送发发送的数据量

15.既然提到了拥塞控制,那你能说说说拥塞控制是怎么实现的吗

TCP 拥塞控制 可以在网络出现拥塞时 调整数据传输速率,防止网络过载。主要包括以下几个方面:

  • 第一个是 慢启动:初始阶段,发送方 会以较小的 发送窗口 传输数据。随着每次 成功收到 确认,发送方会以 指数级 增加 发送窗口的大小,这称为 慢启动。慢启动有助于 在网络刚开始传输时 谨慎地 逐步增加速率,防止引发拥塞

  • 第二个是 拥塞避免:一旦 发送窗口 达到慢启动的阈值,就会进入拥塞避免阶段。在这个时期,发送方 改为 以线性增加 的方式 增加发送窗口的大小,而不再是 指数级的增长。这有助于控制发送速率,防止引发拥塞

  • 第三个是 快速重传:如果发送方 连续收到 相同的确认,它会认为存在数据报的丢失,并快速重传 未确认的数据报,而且不需要等待超时。快速重传 有助于 更快地 恢复因网络拥塞导致的 数据报的丢失

  • 第四个是 快速恢复:在快速重传之后,TCP 进入 快速恢复 阶段。在这个时期,发送方不会回到 慢启动 阶段,而是将 慢启动的阈值 设置成 当前窗口的一半 ,并且 把 拥塞窗口大小 设置成 慢启动的阈值+已经确认但是没有被快速重传的数据报的数量 。这个过程有助于更快从拥塞中恢复

16.TCP流量控制是怎么实现的?

流量控制其实就是 让发送方 发送速率不要太快,让接收方来得及处理。流量控制可以利用 滑动窗口机制 来实现,主要就是 动态调整 发送方 和 接收方 之间的 数据传输速率,包括以下几个方面:

  • 第一个是 发送方窗口大小:每个TCP报文段 都包含 一个窗口字段,该字段 表明了 发送方 可以发送多少字节的数据而不用等待确认。这个窗口是动态调整的

  • 第二个是 接收方窗口大小:接收方 通过 窗口字段 告知 发送方 自己当前的可接受窗口大小,也就是 接收方缓冲区 还有多少可用空间

  • 第三个是 流量控制的目标:流量控制的目标是 确保发送方 不要 发送超过 接收方缓冲区容量的数据。如果接收方 缓冲区满了,它会减小窗口大小,告知发送方暂停发送,防止溢出

  • 第四个是 动态调整:发送方 会根据 接收方窗口的大小 动态调整 数据传输的速率。如果 接收方的窗口大小增加,发送方则会加速发送数据;反之则减小发送速率

  • 第五个是 确认机制:接收方 会定期发送ACK报文,告知发送方 数据已经成功接收,也可用通过 ACK报文中的 窗口字段 来告知发送方 它当前窗口的大小

17.UDP怎么实现可靠传输

UDP不是面向连接的协议,所以 它消耗资源更少,处理速度更快。通常音频、视频和普通数据更多使用UDP,因为它们偶尔丢失一两个数据报,对结果也不会造成很大影响。

UDP的可靠传输可用通过 应用层来实现,关键在于两点:

  • 第一个是 提供 确认序列号,从而对 数据报进行确认和排序
  • 第二个是 提供 超时重传 机制,避免数据报丢失

发送端

  • 首先 在 在UDP数据报 定义一个首部,包含 确认序列号 和 时间戳,时间戳是用来数据报的往返时间,从而的推算出合适的重传的超时时间。
  • 然后 在收到接收端的确认之后,才发送下一个数据报。如果时间超时,发送端则重传数据报,同时将重传的超时时间扩大为原来的2倍,重新计时。

接收端

  • 接收到 一个数据报之后,首先取下该数据报首部的确认序列号和时间戳,并添加 接收端的确认数据报的首部后发送给发送端。
  • 然后根据序列号,对已收到的数据报进行排序,并丢弃重复的数据报

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/59350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何删除react项目的默认图标,使在浏览器中不显示默认图标favicon.ico

要删除 React 项目的默认图标,使在浏览器中不显示默认图标favicon.ico,其实有两种方法: 方法一 方法要点:删除掉 public 目录下的 favicon.ico 文件,再用浏览器访问时,如果加载不到图标文件,就…

计算机网络——路由器构成

算路由表是分布式去算——你算你的,我算我的 输出队列非先来先传 调度发生在哪里 缓存队列一般是应对——来数据方向的速度过快问题

项目活动进度计算题

六个时间参数①最早开始时间ESmax{紧前工作最早完成时间EF}(紧前取大) 最早完成时间EFES工期,从左→右计算,累加取大 ②最迟完成时间LFmin{紧后工作最迟开始时间LS}(紧后取小) 最迟开始时间LSLF-工期&am…

练习LabVIEW第四十题

学习目标: 用labvIEW做一个循环闪烁指示灯,要能够在前面板调节周期和占空比。 开始编写: 前面板 一个布尔指示灯一维数组,两个数值输入控件; 程序框图 添加一个while循环,循环内添加初始化数组&…

工商业储能是什么,工商业储能有什么作用?

随着全球能源结构的转型和“双碳”目标的推进,工商业储能系统作为新型电力系统的重要组成部分,正逐渐成为能源管理和电力市场的关键力量。工商业储能系统通过削峰填谷、需量管理、电力现货交易等多种方式,不仅能够有效降低企业的用电成本&…

DApp开发定制:合约设计与源码搭建支持快速上线

随着区块链技术的飞速发展,去中心化应用(DApp)已经成为区块链生态中不可或缺的一部分。DApp不仅改变了传统互联网应用的运作方式,还通过去中心化的理念和智能合约的支持,赋能了用户和开发者。无论是金融、游戏、社交、…

ssm+vue683基于VUE.js的在线教育系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

多商户电商平台开发指南:基于直播带货系统源码的搭建方案详解

本篇文章,小编将详细解析如何利用直播带货系统源码,快速搭建一套多商户电商平台的解决方案。 一、直播带货系统在多商户电商平台中的应用价值 在多商户电商平台中,直播带货系统可以帮助商家: 1.增加用户互动 2.提升转化率 3.…

登录功能设计(php+mysql)

一 登录功能 1. 创建一个登录页面(login.php),包含一个表单,用户输入用户名和密码。 2. 在表单的提交事件中,使用PHP代码处理用户输入的用户名和密码。 3. 首先,连接MySQL数据库。然后&a…

P3-1.【结构化程序设计】第一节——知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法

讲解视频: P3-1.【结构化程序设计】第一节——知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法 知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法 一、算法、顺序结构程序设计任务分析 知识要点:算法…

18、论文阅读:AOD-Net:一体化除雾网络

AOD-Net: All-in-One Dehazing Network 前言介绍相关工作物理模型传统方法深度学习方法 建模与扩展变换后的公式网络设计与高级特征任务相结合 除雾评价数据集和实现 前言 该论文提出了一种基于卷积神经网络(CNN)的图像去雾模型,称为 All-in…

Golang | Leetcode Golang题解之第538题把二叉搜索树转换为累加树

题目: 题解: func getSuccessor(node *TreeNode) *TreeNode {succ : node.Rightfor succ.Left ! nil && succ.Left ! node {succ succ.Left}return succ }func convertBST(root *TreeNode) *TreeNode {sum : 0node : rootfor node ! nil {if n…

docker+nacos

安装数据库 以docker安装为例(实际建议实体) 初始化数据库 /******************************************/ /* 数据库全名 nacos_config */ /* 表名称 config_info */ /******************************************/ CREATE TABLE config_i…

react18中redux-promise搭配redux-thunk完美简化异步数据操作

用过redux-thunk的应该知道,操作相对繁琐一点,dispatch本只可以出发plain object。redux-thunk让dispatch可以返回一个函数。而redux-promise在此基础上大大简化了操作。 实现效果 关键逻辑代码 store/index.js import { createStore, applyMiddlewar…

汇编语言与接口技术--算术运算程序设计

一、 实验要求 编程实现两个数:#998877H 和 #778899H 的加法运算。编程实现两个数:#998877H 和 #778899H 的减法运算。 二、 实验设计 1.整体思路 无符号角度: (1)加法 1.初始化:设置两个数 998877H 和…

(蓝桥杯C/C++)——基础算法(上)

目录 一、二分法 1.二分法简介 二分法简介-解题步骤 2.整数二分-简介 整数二分-模板 3.浮点二分-简介 浮点二分-模板 4.二分答案-简介 二分答案-模板​​​​​​​ 二、位运算 1.位运算简介 2.常见的位运算 按位与AND(&) 按位或OR( | ) 按位异或…

1-petalinux 问题记录-根文件系统分区问题

在MPSOC上使用SD第二分区配置根文件系统的时候,需要选择对应的bootargs,但是板子上有emmc和sd两个区域,至于配置哪一种mmcblk0就出现了问题,从vivado中的BlockDesign和MLK XCZU2CG原理图来看的话,我使用的SD卡应该属于…

CSS中的背景色和前景色

目录 1 对比度的计算1.1 亮度计算1.2 对比度比率 2 在线计算对比度 在我们的样式设计中,通常会有背景色和前景色的概念。前景色我们通常用来设置文本的颜色,而背景色通常是文本的所在容器的颜色。比如如果我们把文本放在普通容器里,那普通容器…

全面解析:区块链技术及其应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 全面解析:区块链技术及其应用 全面解析:区块链技术及其应用 全面解析:区块链技术及其应用 区…

[Redis] Redis主从复制模式

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…