计网Lesson15 - TCP可靠传输

文章目录

  • 1. 停止等待ARQ协议
  • 2. 连续ARQ协议与滑动窗口协议



1. 停止等待ARQ协议

  • ARQ(Automatic Repeat–reQuest)自动重传请求

  • 几种重传情况

    • 发送端丢失
      发送方过久没有接收到接收方的确认报,这种情况会触发超时重传机制,发送方重新发送报文。

    • 确认报丢失
      发送方依然没有收到确认报,所以会触发重传,而接收方接收到两个重复的包,直接将后来的包丢掉。

    • 延迟确认
      发送方迟迟没收到确认报,于是重传,重传的接收到确认报了,之后前面的确认报才来,这时候无事发生。

  • 问题:若有个包重传了N次还是失败,会⼀直持续重传到成功为止吗?

    答:在网络通信中,如果一个数据包重传了N次仍然失败,它是否会一直持续重传直到成功,这取决于具体的协议和设置。例如,在TCP(传输控制协议)中,重传5次还未成功就会发送RST报文,连接将被断开。这是为了防止网络拥塞和无效通信。


2. 连续ARQ协议与滑动窗口协议

  • 在停止等待协议的基础上改进,发送方发一个窗口大小内的数据,接收方只回一次确认报。
  • 如果接收窗口最多能接4个包,但发送方只发了2个包:
    • 发送方可能一次发送一个窗口的包,也有可能不发,不一定的,得看发送方的协议约定。
    • 接收方的确认报只确认收到两个包。
  • 每个包多大,这个在一开始建立连接的时候就会约定好
    • 就是选项段的第一个:最大报文段长度(Maximum Segment Size)
    • 如果建立连接时约定的MSS大小不一,取最小的。
  • 最大报文段长度在一开始就约定好了
  • 窗口的大小并非固定死的,是由接收端控制的,这关系到流量控制:
    • 接收端如果缓存区不够用或者想控制流量,就在确认报中将窗口大小改小。
  • 序号和确认号
    • 当发送方发出一连串数据,但是其中丢了几个包,接收方会确认第一个丢失的包的位置(ACK),之后会在选项中标注出哪些包丢失了,也就是选择性确认技术(SACK)。

      • 发送方会滑到ACK的位置,开始重新发送这个窗口内没有传输过的包,传过的不会再发。
    • 此处应当辨析超时重传与连续ARQ协议:为什么超时就整段重传,而这个ARQ滑动窗口仅仅只重传未发送的包?

      • 超时重传:在TCP中,传输层分包超时会导致包重传;在给包分片的IP层中,片超时(或丢失)会直接将整个包的片丢掉不管,然后发送方触发超时重传。
      • 连续ARQ:只重发丢掉的包。
      • 为什么:因为网络层是在路由之间传输的,如果一直等待错包重传很占用路由的空间,所以选择直接扔掉重传;而传输层可以看作是管道直连(网络层掩盖了底层逻辑),所以占用的空间资源是各主机的,并无太大影响。

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

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

相关文章

【统计分析数学模型】判别分析(四):机器学习分类算法

【统计分析数学模型】判别分析(四):机器学习分类算法 一、机器学习分类算法1. 交叉验证方法2. 案例数据集3. 数据标准化 二、决策树模型1. 基本原理2. 计算步骤3. R语言实现 三、K最邻近分类1. 基本原理2. K值的选择3. R语言实现 四、支持向量…

CrackRTF1

由此可知为六位密码且<100000自动退出 发现是哈希加密&#xff0c;经过网上查找后了解到 0x8004u 为 SHA1 加密&#xff0c;故从网上寻找脚本并进行爆破 密码为123321 找到一个取巧的网站 MD5免费在线解密破解_MD5在线加密-SOMD5 Flag{N0_M0re_Free_Bugs}

leet hot 100-7 无重复字符的最长子串

无重复字符的最长子串 原题链接思路代码 原题链接 leet hot 100-7 3. 无重复字符的最长子串 思路 声明一个无序map容器&#xff0c;容器里面记录着窗口里面字符的数量 &#xff0c;如果字符的数量大于1 遍历到s[i]的时候 数量1 此时如果map里面相关的数量大于1 说明窗口里面…

架构设计:流式处理与实时计算

引言 随着大数据技术的不断发展&#xff0c;流式处理和实时计算在各行各业中变得越来越重要。那么什么是流式处理呢&#xff1f;我们又该怎么使用它&#xff1f;流式处理允许我们对数据流进行实时分析和处理&#xff0c;而实时计算则使我们能够以低延迟和高吞吐量处理数据。本…

Python字符串访问与拼接你搞懂了吗?

使用下标访问字符串&#xff0c;从0开始计数&#xff0c;-1表示最后一个字符。三种遍历字符串的方法&#xff1a;for循环、len()和enumerate()。字符串拼接只能是字符串之间使用&#xff0c;不能与数字拼接。 1.下标访问字符串 通过下标访问字符串的内容&#xff0c;下标从 0 …

typecho 给文章创建目录树

受益于 shortcode 短代码插件和泽泽短代码中目录树的显示样式&#xff0c;形成了自己实现添加文章目录的思路&#xff1a; 一、文章目录树的结构 <div id"toc"><div class"toc-left"><div class"toc-btn" type"button&quo…

2023年Q4 Coremail管理员社区季刊发布

2023年Q4季刊新鲜出炉&#xff0c;本期内容涵盖了Coremail管理员社区Q4征稿活动、社区热门内容以及直播活动的总结。 本文为2023年Q4 Coremail管理员社区季刊精彩内容的节选&#xff0c;完整内容请上Coremail管理员社区进行查看。 1、Coremail管理员社区季刊介绍 2023 年4月&a…

【代码随想录python笔记整理】第十四课 · 链表的基础操作 2

前言:本笔记仅仅只是对内容的整理和自行消化&#xff0c;并不是完整内容&#xff0c;如有侵权&#xff0c;联系立删。 一、分析题目要求 在前面一课中&#xff0c;我们学习了链表的创建以及新元素的插入&#xff0c;并且我们学会了打印链表中的元素。这节课我们依托上节课的基础…

【论文精读】LLaMA1

摘要 以往的LLM&#xff08;Large Languages Models&#xff09;研究都遵从一个假设&#xff0c;即更多的参数将导致更好的性能。但也发现&#xff0c;给定计算预算限制后&#xff0c;最佳性能的模型不是参数最大的&#xff0c;而是数据更多的。对于实际场景&#xff0c;首选的…

IT行业风向让人琢磨不透,一端狂裁,一端狂吸收……

2024年伊始&#xff0c;全球科技行业显然又掀起了新一波的裁员潮。尽管这轮裁员潮来得不如去年年初那样猛烈&#xff0c;但依然不免令不少人感到措手不及…… 甚至有人开工第一天收到的并不是开门红包&#xff0c;而是裁员说明书&#xff1a; 以前一直以为年前被裁&#xff0c;…

PureFlash v1.9.1特性介绍

PureFlashv1.9.1版本特性主要有3个&#xff1a; 1. 支持RDMA网络 使用RDMA协议可以大大减少对CPU的消耗&#xff0c;性能提升30%以上。 PureFlash的网络配置分为存储节点间网络&#xff08;存储后端网&#xff09;和客户端网络&#xff08;前端网&#xff09;。都支持使用RD…

路坦利集群虚拟机断网处理方法

路坦利集群虚拟机断网处理方法 问题描述&#xff1a; 在路坦利集群中&#xff0c;虚拟机时不时断网&#xff0c;导致业务中断&#xff0c;临时解决办法为新增网卡配置相同IP&#xff0c;然后禁用旧网卡网络临时恢复。 注&#xff1a; 该配置必须让虚拟化平台上层交换机和宿…