网络原理——No.1 传输层_TCP的确认应答机制与超时重传

news2024/11/20 15:23:07
JavaEE传送门

JavaEE

JavaEE——网络原理_应用层

网络原理——传输层_UDP


目录

  • 传输层
    • TCP
    • TCP 的基本特性
      • 确认应答机制
      • 超时重传


传输层

端到端之间的传输, 重点关注的是起点和终点

核心的协议有两个:

UDP: 无连接, 不可靠传输,面向数据报, 全双工

TCP: 有链接, 可靠传输, 面向字节流, 全双工


TCP

TCP协议端格式

实际格式, 他们都在一行

16位源端口 和16位目的端口, 和 UDP 开始的两个字段是一样的. 作为传输层协议, 协议包头中必须要明确源端口和目的端口.

16 位校验和和 UDP 的校验和类似.


TCP 的基本特性

确认应答机制

确认应答机制, TCP 保证可靠性的最核心机制.

我们来看这样一个场景: 小Gujiu 给 大GUJIU 发消息.

通过这样, 我们就可以知道上次发送的数据成功还是失败, 传输就变得可靠了.

回复的 “ok”, 就是"应答报文", 也称为 ack报文

继续来看下一个场景:

很明显, “后发先至”, 这时网络基本结构导致的, 难以避免, 我们只能想办法让含义不被误会.

解决方案: 针对请求和应答报文, 进行编号

在确认应答这个机制中, 引入序号来保证不出现歧义

TCP 是一个字节流协议, 编号的时候, 也是以字节为单位, 进行编号的.

确认应答描述的是, 数据包顺利到达对方, 对方给了个响应. 但是传输过程中, 可能会丢包

网络环境是非常复杂的, 我们上网, 是因为我们接入了运营商的网络, 运营商这边又很多很多的路由器/ 交换机, 共同的组建出一个非常庞大复杂的网络.

某个交换机上面, 不光传输我的数据包, 也在传输别人的数据包, 某个时刻, 很多很多数据包都经过这个交换机.

交换机的转发能力是有上限的, 很多数据包都走到这里了, 导致达到交换机的转发上限, 无法快捷的完成转发了, 就会导致有一部分数据包超时了.


超时重传

通过确认应答, 可以保证可靠性. 如果数据丢包了, 此时就需要考虑通过 “超时重传”

我们来看如下场景:

再看场景2:

在这里插入图片描述

TCP 接收方因为丢失 ACK 就会导致收到重复的消息

TCP 就会针对相同的消息进行去重(根据序号来去重)

超时时间如何确定的?

超时时间并非是均等的, 而是逐渐变大的

  • 一般系统里会有一个配置项, 描述超时的时间阈值.
  • 例如, 第一次出现丢包, 发送方就会在达到超时时间阈值之后, 进行重传. 如果重传的数据仍然无响应, 还会继续超时重传, 第二次的超时时间一般要比第一次时间更长
  • 如果单个数据包丢包的概率较小, 这时, 第二次传输, 大概率是可以顺利到达的. 如果第二次传输也没有到达. 说明当前网络环境比较糟糕 (丢包概率非常大, 可能断网), 如果网都断了, 频繁的重传是无意义的, 不如传的频率降低一些.
  • 这样的重传, 重试几次之后, 任然无法传输, 就会尝试重置 TCP 连接, 如果连不上, 及时就直接释放连接

上述过程中, 并没有带入具体数字, 原因有两点:

  1. 这里的具体参数, 不同的系统不一样, 并且一般也是可配置的
  2. 一旦给出了具体参数, 大家就会过度关注这个数字本身, 导致反而忽略了策略本身

🌷(( ◞•̀д•́)◞⚔◟(•̀д•́◟ ))🌷

以上就是今天要讲的内容了,希望对大家有所帮助,如果有问题欢迎评论指出,会积极改正!!
在这里插入图片描述
加粗样式

这里是Gujiu吖!!感谢你看到这里🌬
祝今天的你也
开心满怀,笑容常在。

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

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

相关文章

黑猫带你学UFS协议第11篇:什么是逻辑单元(LU)与逻辑块(Sector)

本文依据UFS3.1 JEDEC协议及个人工作经验整理而成,如有错误请留言。 文章为个人辛苦整理,付费内容,已加入原创维权,禁止私自转载。 文章所在专栏:《黑猫带你学:UFS协议详解》 1 LU简介 我们对与UFS、emmc一类存储芯片,最重要的功能是什么?无非就是存数据和取出数据,也…

神经网络的输入稀疏矩阵,神经网络中的矩阵运算

1、BP神经网络模型各个参数的选取问题 样本变量不需要那么多,因为神经网络的信息存储能力有限,过多的样本会造成一些有用的信息被丢弃。如果样本数量过多,应增加隐层节点数或隐层数目,才能增强学习能力。 一、隐层数 一般认为&am…

牛客前端刷题(九)—— 打包篇

还在担心面试不通过吗?给大家推荐一个超级好用的刷面试题神器:牛客网,里面涵盖了各个领域的面试题库,还有大厂真题哦! 赶快悄悄的努力起来吧,不苒在这里衷心祝愿各位大佬都能顺利通过面试。 面试专栏分享&a…

greenplum 源码解析 FTS辅助进程--ReadMe

简介 在greenplum数据库中master节点有一个专属进程Fault Tolerance Service (FTS: 容错服务),其主要功能是检测所有segment节点的健康信息,如果其检测到segment节点的primary出现异常[硬件故障/宕机],会在第一时间将其对应的mirror提升为新的…

MySql(50)MySQL日志

文章目录MySQL支持的日志日志类型日志的弊端慢查询日志(slow query log)通用查询日志查看当前状态启动日志永久启动临时启动查看日志删除\刷新日志错误日志(error log)删除\刷新日志二进制日志(bin log)查看默认情况日志参数设置查看日志使用日志恢复数据删除二进制日志PURGE M…

vue3 响应式对象的 api ,你全用过了吗?

文章目录Ⅰ. ref、reactive ( 递归监听 )Ⅱ. isRef、isReactive ( 判断 )Ⅲ. toRef 和 toRefs ( 解构 )Ⅳ. toRaw 、 markRaw ( 解除代理)Ⅴ. unref ( 拷贝 )Ⅵ. shallowRef 、shallowReactive( 非递归监听 )Ⅶ. triggerRef (强制更新&#x…

红黑树原理及旋转

红黑树,本质上来说就是一棵二叉查找树 但它在二叉查找树的基础上增加了着色和相关的性质使得红黑树相对平衡 保证了红黑树的查找、插入、删除的时间复杂度最坏为O(log n) 但它是如何保证一棵n个结点的红黑树的高度始终保持在h logn的呢?这就引出了红黑…

相似度_对抗学习:SimCSE: Simple Contrastive Learning of Sentence Embeddings

SimCSE: Simple Contrastive Learning of Sentence Embeddings 这篇论文,我觉得有意思。在创造对抗学习的正负例时,正例直接使用它本身。将同一个句子传递给预先训练好的编码器两次:通过应用两次dropout,我们可以得到两个不同的嵌…

云计算基础:云计算越来越广泛,我们应该如何去学习云计算

随着时代的发展,云计算越来越普及,越大众化,使用的人越来越多,我们应该如何去学习这门技术呢?这篇文章我们就来介绍如何学习我们的云计算。 学前介绍: 学前介绍 学习资料:HedEX Lite、产品文档、笔记、P…

非科班程序员被裁员后反而涨薪了200%,这两个月他都经历了哪些?

今年年初开始,裁员潮一浪接着一浪翻滚而来,让互联网人胆颤心惊,时刻担心下一波裁员是否就要降临到自己身上。 小帅(化名)是一个原本月薪8k,在小外包公司做政府项目的一名普通员工,前不久就被裁员…

数据仓库建模(四):维度表的设计

数据仓库建模(四):维度表的设计一、维度表的整体结构1.1 维度表的结构设计1.2 维度代理键1.3 自然键、超久键和超自然键1.4 下钻与上卷1.5 维度退化1.6 非规范化的扁平维度1.7 多层次维度1.8 维度属性的标识与状态信息1.9 维度表中的空值属性…

趣学算法(2)

14天阅读挑战赛 目录前言一 几类时间复杂度二 兔子数列1.问题分析2.方法13.方法24.方法3最后前言 这篇文章是《趣学算法》的读书笔记,也对数据结构与算法的初步介绍,阅读这篇文章,我会带你改进一个算法。 一 几类时间复杂度 常见的算法时间复…

Vue项目的记录(十三)

1.登录注册静态组件 assets这个文件夹放所有的组件公用的静态资源 在样式当中也可以使用符号,(src目录的别名),要注意的是在前面你加上~ 2.注册业务 这里的验证码,正常来说应该是要后台发送到用户手机上&#xff0c…

拓端tecdat|R语言辅导配对检验分析案例

全文链接:http://tecdat.cn/?p3424 原文出处:拓端数据部落公众号 什么是检验对? 检验对的形式 (x1,x2) 出现在两种情况中: 对同一实体执行两次测量。例如,一项评估新型胰岛素疗效…

C-文件操作实现数据持久化,帮你快速了解文件操作函数

目录 一.了解文件 二.文件的打开和关闭 三.顺序读写文件函数 fputc字符输入函数 fgetc字符输入函数 fputs文本行输出函数 fgets文本行输入函数 fprintf格式化输出函数 fscanf格式化输入函数 fwrite二进制输出函数 fread二进制输入函数 四. 解析上述的流 五.文件的随机…

Redis 主从安装-Centos

Redis 主从安装-Centos 由于机器有限,所以接下来的教程都是在一台虚拟机中进行部署安装. Redis主从工作原理 如果你为master配置了一个slave,不管这个slave是否是第一次连接上Master,它都会发送一个PSYNC命令给master请求复制数据。master…

计算机网络--传输层

这篇博客博主应该在前天就要完成的,但是博主忙乱了,又堕落几天,希望大家别像我一样最近学习三天打鱼,两个天晒网的。此后博主为了激励自己重头再来,就特意换了个发型,哈哈。回到正题,传输层也是…

操作系统真相还原_第4章:进入保护模式

文章目录实模式的缺陷保护模式的扩展段寄存器的变化寄存器扩展寻址扩展全局描述符表GDT描述符格式字段含义进入保护模式步骤解释示例说明程序编写boot.incmbr.sloader.s编译并写入硬盘启动bochs执行实模式的缺陷 1、实模式下用户程序所引用的地址都是指向真实的物理地址&#…

计算机等级考试Python二级

补记录一下之前考Python二级的一些相关理论记录 数据结构与算法 算法杂度 算法复杂度用来衡量算法的优劣,它包括算法的时间复杂度和算法的空间复杂度 时间复杂度:执行算法所需要的计算量【所需要的计算工作量是用算法所执行的基本运算次数来度量的】 …

子串和子序列问题-动态规划向

1. 子串子序列问题概述 有关于子序列和子串的问题是字符串或者数组经常会遇到的问题,一般我们经常使用多指针,滑动窗口,回溯,动态规划的方式去解决,而本篇重点关注能用动态规划解决或者说明显使用动态规划解决的子串问…