TCP传输控制协议

      最后更新:2021-10-21 14:33:58 手机定位技术交流文章

      TCP传输控制协议

      TCP/IP 综合第1卷第2版参考
      您想要快速查看一下 控制拥堵的算法吗?

      引言与TCP概述

      个别渠道或通信媒介可能丢失或修改所传递的信息,用两种方法处理错误,使用错误校正代码(包括多余的比特,以便即使特定比特被销毁,也能够找到真实的信息)来弥补通信问题;另一个是努力重新发送信息,直至最终收到信息,称为自动重复请求(ARQ)。

      • ARQ和重传

        简单停-等协议

        使许多分组能够同时访问网络,使问题复杂化。发送者必须确定何时将一个分组注入网络,注射多少次,注射多少次,如何保持计时器,并必须储存每个分组尚未识别的复制件,以防重新发送。 接收者需要一个更复杂的ACC机制:区分已经收到的分组和尚未收到的分组;以及保存缓存机制。

      • 分组窗口和滑动窗口

        处理由于许多集群同时进入网络而产生的问题。
        发件人: 记录哪些分组可以释放,哪些分组正在等待 ACK,哪些分组不能传送。 收件人: 记录哪些分组已经收到并证实,哪些分组是下一个预期,哪些分组即使由于内存限制而收到也将删除。

        您应该有多大的窗口? 当接收器或网络处理发件人的数据率时会发生什么?

      • 流量控制和拥塞控制

        为了解决接收者过于迟钝而无法跟上发送者时出现的问题,发送者必须放慢速度,使用交通管理。

        使用高速交通管理和窗口交通控制,保护接收器。

        选区控制意味着限制中间网络的传输率,以便不会压碎中间网络与接收器之间的网络。

      • 设置重传超时

        让协议被估算为往返估计时间,这是一个统计过程。 总而言之,最有可能选择一套RRT样本的平均价值。 注意这一平均值会随着时间而自然改变,作为通信旅行的网络路径。

      TCP提供连接的、可靠的字节流服务。 连接导向意味着在两个由TCP驱动的程序能够交换数据之前,它们必须首先通过互联建立TCP连接。

      TCP头部和封装

      基本 TCP 头部( 20 字节), 头字段指定了32位数头大小( 最小值 5 ) 。 与报告发件人端相反方向的数据流的阴影字段( 确认良好、 窗口大小、 欧洲经委会位数 和 ACK 位数 ) 。

      在这里插入图片描述

      8位flags

      • CWR 代表压缩窗口(发送者降低其发送率)。
      • ECE-ECN回声(发射机以前曾收到过关于抽搐的报告)
      • URG——紧急
      • ACK - 致谢(在连接建立后通常活跃)
      • PSH - 过境(接收方应在可行的情况下尽快将这一数据传送给申请方——没有可靠完成或利用)
      • RST - 重置连接(连接终止,通常是由于错误)
      • SYN - 用于建立连接的同步序列号。
      • FIN - 文章的发件人已停止向另一方传送数据。

      " 最大字段大小 " 选项MSS是最常用的选项字段,它指定了此选项发送者希望以相反方式接收的最大值。

      TCP提供可靠、连通、字节流、传输层服务。 TCP 将应用程序数据打包成报告线,在传输数据时设定超时时间,验证其他端点接收的数据,重新安排混乱数据,拒绝重复数据,并提供端对端校验和。

      TCP连接管理

      TCP连接由四个小组、两个IP地址和两个港口号(IP地址、港口号)组成。

      TCP连接分为三个阶段:启动、数据传输(建立连接)和退出(关闭)。

      • TCP连接建立

        三手握手不仅通知双方建立了链接,而且还利用数据集选项传输特定信息和交换初始序列号。

      • TCP连接关闭

        四次挥手

      在这里插入图片描述

      • TCP半关闭

        "我完成了数据传输 并发送一个FIN彼此, 但我仍然希望从彼此接收数据 直到它发送一个FIN给我。"

        为使半封闭作业得以进行,使用关闭()方法,而不是正常关闭()程序。

      • 同时打开与关闭

      • 初始序列号

        如何避免序列号重叠? 应用程序层使用 CRC 或必要的数据来检查和确保传输过程中没有错误。 通常用于大型文件传输 。

        这也表明了TCP的脆弱性:如果使用正确的序列号、IP地址和港口号,任何人都可以伪造TCP条目,中断正常的TCP连接。

      • 连接建立超时

        客户端连接到无法进入的服务提供商, 反复发送 SYN 信息, 并指数返回 。 在 Linux 上, 系统配置变量net. Ipv4. tcp_ syn_ retries 指定了在开放应用程序中重新传送 SYN 段的最大尝试次数 。

        TCP拥堵管理反应包括该指数在再传送之间回报的时间安排。

      • 连接与转换器

        如何使用常规的NAT将地址转换为端口号 。

      • TCP选项

        TCP的头部有几种选择,如NOL、NOP、MMS等,见第451页。

        • 最大段大小选项

        • 选择确认选项

          TCP 发送者可以理解接收者当前的空隙(以及序列空间中持续超过空隙的随机数据区块),从而在收件人丢失或忽略时更好地转发电文。 TCP “确认选择”(SACK)选项提供这一特性。

        • 窗口缩放选项

          TCP 无需修改窗口广告字段的大小以保持16位数值,同时使用 SSCALE/WSOPT 成功地将 TCP 窗口广告字段的范围从 16 个增加到 30 个。

        • 定时邮票和反返回序列号的备选办法

          TSOPT/TSopt要求发送者在每份报告的段落中包括两个四倍时间戳值。

          由于时间戳选项与回调计时器设置直接相关,我们将研究如何在第14章中重新传输时使用该选项,“这种使用”意在说明,虽然时间标记选项允许更频繁地抽样选择返回时间,但它也为收件人提供了一种避免接收过时信息和评估信息准确性的方法。它被称为“保护不受被窃安全号码,PAWS ” 。

        • 用户超时选项

          指定 TCP 发件人愿意在确认接收者未成功接收数据之前等待ACK确认数据的时间。

        • 认证选项

          增强连接的安全性。

      • TCP 路径的最大传输装置被发现

        MTU指两个站点之间频道上所有网络信息中最大传输单位的最小值。为协助TCP避免分割,TCP可以选择其使用文本支持抽象实现字节流的量,从而在很大程度上控制IP数据集的最终生成。

        在组层路径中,发现了最大运输装置。

      • TCP状态转移

        11个州,典型客户-终端和服务器-服务器-终端状态传输

        在这里插入图片描述

        • 时间现状

          TCP 的等待时间将比 2MSL 的最长存活期( 最大保障有限公司, MSL ) 的等待时间长一倍, 或两倍。 在 Linux 中, net. Ipv4. 。 tcp_ fin_ fen_ 超时值记录了等待 2MSL 状态的时间 。

          **作用:**能够让主动关闭的一方重新发送最终的ACK以避免出现丢失的情况。这种情况是因为通信的另一方重传了它的FIN。事实上,**TCP总是重传FIN,直到它收到一个最终的ACK。**即可靠的实现全双工连接断开。一般情况,当前连接处于时间现状,是不允许一条新连接的到达(避免报文段混淆)。如果有充足的理由相信新连接的报文段不会因为序列号、时间戳等问题与之前连接实例的报文段混淆,那么可以允许一条新连接到达。

        • 静默时间

          据RFC0793称,TCP协议应等待相当于MSL的MSL,然后才能建立新的连接,即所谓的安静时间.大多数主机在坠机后需要比MSL更长的时间才能恢复。

        • FIN_WAIT_2

          防止连接到 FIN_WAIT_2 无限等候状态: 如果完全关闭, 设置计时器, 如果计时器超时, 则转到 CLLOSED 状态。 在 Linux 下, 更改 net. Ipv4. tcp_ fin_ timeout 设定计时器的秒数, 默认为 60 秒 。

        • 同时激活和停用

      • 重置( RST) 的报告段落

        就RST字段而言,**一般而言,TCP在认为抵达条目不适合连接时,传送RST字段。

        • 对于不存在的端口的连接请求

          联合民主党协议生成了来自国际CMP目标的无法获取的信息。 TCP 使用 RST 文本 。

        • 终止一条连接

          定期发送的FIN文本,也称为有序解密。 随时可能发送一个 RST 部分来替换 FIN 结束连接 。 这被称为解密 。

          对于应用程序,提供了两个关键的好处:删除任何排队的数据,并立即发送替换信息;收件人将发出信号,表示在另一端停止接触,而不是通常在某一时间关闭。

        • 半开连接

          TCP 连接如果在对话的一端关闭或终止,而不警告另一端,则被视为半开放。 ** 这是电信当事人主机故障的结果,可能导致服务器上大量半开放 TCP 连接,另一端可能没有TCP的保存选项。

        • 时间等待错误

      • TCP服务器选项

      • TCP 与管理有关的TCP连线袭击

        • SYN洪涝 -- -- 服务器保持大量半连接活动。

      TCP超时与重传

      就TCP执行效率而言,TCP再次发送了两个不同的程序,以完成根据时间和对信息构成进行验证的重新传送。

      • 超时重传
      • 快速再传送 - 当TCP累计核实返回新的ACK不可行时,或者当ACK(SACK)所载选择确认信息显示序列损失时,迅速重新推断包件损失。

      快速重传机制

      一般快速传输算法:在检测到至少 dupthresh 重复 ACK 后, TCP 发送者将可能丢失的数据重新分组,而不必等待再传输计时器用完时间。 从重复的 ACK 中推断出来的丢失的包件通常与网络堵塞、用快速再传输启动阻塞控制机制连接。

      窗口和TCP数据流管理

      在交互式 TCP 连接中,用户输入信息需要在客户与服务器之间传输,引入小部分费用更高,演示文稿更大,延迟时间较高。

      TCP 流量控制。 通过动态修改窗口大小来控制发件人端的运行,以保证接收端不会溢出。 虽然大部分用于散装数据传输,但它对交互式应用程序也是有用的。

      • 交互式通信
      • 延时确认
      • Nagle算法

      流量控制与窗口管理

      • 滑动窗口

        在TCP主动连接的两端保持发送和接收窗口结构。

      在这里插入图片描述

      有三种运动:接近、开放和缩小。

      • 并移动窗口的左边框到右侧。
      • 将窗口的右边框拖到右侧 。
      • 将窗口的右边边向左移动

      TCP拥塞控制

      问题在于确定何时和如何减少TCP传输,何时恢复原速度。

      • TCP拥塞检测

      • 减缓TCP发送

        Cwnd 记录为 cwnd 的凝聚窗口是反映网络传输能力的变量。 发送者真正的 W 窗口是较小的接收器通知窗口 awnd 和 cwnd cwnd : W = m i n ( c w n d , a w n d ) W = min(cwnd, awnd) W = m i n ( c w n d , a w n d )

      • 慢启动和拥塞避免

        当cwnd<ssthresh,使用慢启动;当swnd>ssthresh,需要执行拥塞避免,而当两者相等时,任何一种算法都可以使用。

      • 标准TCP

        当创建 TCP 连接时, RFC 5681 中的组合法从缓慢的启动阶段( cwnd = IW) 开始,Ssthresh 通常会得到更大的价值( 至少是 awnd ) 。 当收到好的 ACK 时, cwn 将相应更新 :
        c w n d + = S M S S ( c w n d < s s t h r e s h ) 慢 启 动 c w n d + = S M S S ∗ S M S S / c w n d ( c w n d > s s t h r e s h ) 拥 塞 避 免 cwnd += SMSS (cwnd < ssthresh) 慢启动\ cwnd += SMSS*SMSS/cwnd (cwnd > ssthresh)拥塞避免 c w n d + = S M S S ( c w n d < s s t h r e s h ) c w n d + = S M S S S M S S / c w n d ( c w n d > s s t h r e s h )
        收到三枚ACK重复(或表面需要快速再传输的其他信号)后,将采取下列行动:

        • sthresh 应更新为大于 sshresh=max( 在外部数据中, 值 2, 2* SMSS) 的数值 。
        • 激活快速恢复算法, 并将 cwnd 更改为 (sthresh + 3 * SMSSS ) 。
        • 每次收到ACK后,ACK即刻附于Cwnd
        • 当收到有效的 ACK 时, cwnd 会被重置为 ssthresh 。

      TCP保活机制

      TCP 存续机制在不改变数据流内容的情况下相互检测, 是通过使用实时计时器实现的。 当定时器投入使用时, 在连接的一端发送实时检测信息, 在接收该信息的同时发送 ACK 。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/12069.html

          热门文章

          文章分类