TCP 协议

      最后更新:2022-03-18 09:21:48 手机定位技术交流文章

      文章目录

        • 报文段
          • TCP 头部
          • TCP 数据
        • TCP 连接
          • 三次握手
          • 四次挥手
          • 如何实现可靠性?
        • 滑动窗口
          • 发送窗口
          • 接收窗口
        • ARQ(自动调回请求)
        • 拥塞控制
          • 拥塞控制算法
          • 慢启动
          • 拥塞避免
          • 快重传
        • 失序
          • 失序的2种情况
          • TCP TCP 数据传输方法

      TCP是连接的、可靠的、以字节为基础的传输层协议,TCP是主要为了在不稳定的互联网上提供可靠的端对端流而创建的转让协议。

      应用层向 TCP 层提供八字节的数据流,用于网络间传输, TCP 将数据流分割成适当的长度。 TCP 然后将信息传输到 IP 级别, 通过网络将软件包发送到接收实体的 TCP 一级 。

      报文段

      报告期为TCP协议传输数据单位,TCP条目=TCP第一+TCP数据。

      IP数据报告,IP数据报告=IP 1+IP数据部分(完整的TCP部分),IP数据报告=IP 1+IP数据部分(完整的TCP部分),IP数据报告=IP 1+IP数据部分(完整的TCP部分),IP数据报告=IP 1+IP数据部分(完整的TCP部分)。

      以下是TCP条目格式:

      img

      (图片来源于网络)

      TCP 头部

      TCP 头的长度为 20 字节( 没有选项, 长度未知) 。 TCP 头带的长度可以是 60 字节 。

      • 连接双方的端口号在数据报告标题中注明。IP 源 IP 地址和目的 IP 地址包含在数据报告标题中。 IP 地址和端口号对连接有独特的标记。 IP 地址和端口号通常被称为终点。endpoint)或套接字(Socket对不起,但我不知道。因此,每个 TCP 连接都是由一对填字游戏或终点(四倍组合) 所独有的。

      • 一个序列号是一个32位数的无符号数字,从0到255不等。 ⟶ longrightarrow 2 32 − 1 2^{32}-1 2 3 2 1 ⟶ longrightarrow TCP传输过程中文本部分所载数据可由序号确认为数据的第一个字节。TCP将为每个字节指定一个序号。初始序号是随机选择的,随着时间的推移而变化。

      • ACK: 确认编号,其值是收件人(包括发送ACK的一方)希望收到的下一个序列号。因此,除了第一段和最后一段外,它可能被用于纸张的其他部分。发送ACK与发送TCP条目相同,使用同样的费用。

      • Opforth 长度可以接近 40 字节。 典型的选项包括最大区段大小、 时间戳、 窗口缩放、 选择性的 ACK 等 。

      TCP 数据

      拟转移的数据称为TCP数据,TCP数据部分的长度计算如下:
      I P 计数 据当局称, 报告! 长长 摄度度 − I P 计数 据当局称, 包包 包包 包包 包包 Bag. Bag. 第一届 该司 ( 20 单词单词单词单词单词 科科 或 40 单词单词单词单词单词 科科 ) − T C P 报告! 男人。 男人。 男人。 段 次 段 次 段 次 段 次 第一届 该司 ( 20 单词单词单词单词单词 科科 ) TCP 第一字段(20字节) - IP数据长度 - IP 第一数据包(20或40字节) I P I P 2 0 4 0 T C P 2 0
      IP 数据表的总长度字段指定了数据报告的总长度(单位为字节),是一个16位数字段。因此,IP 数据报告的最大长度是.. 2 16 − 1 = 65535 2^{16}-1=65535 2 1 6 1 = 6 5 5 3 5 然后可以确定TCP数据部分的最长长度。

      TCP 连接

      TCP连接分为三个阶段:启动、数据传输和关闭。为了建立连接,TCP协议采用三个握手协议,包括启动期。

      TCP 连接时存在连接。 此连接的唯一标志是一对字符串 。

      每个TCP连接用一对填字词(来源IP、目的IP、源端端口号、目的端口号)来识别。SocketIP 地址和端口号 。

      三次握手

      三个握手用于建立可信赖的连接(通信两侧的发送/接收没有困难)。当活跃方要求连接SYN时,我在等待对SYN+ACK的反应最后,对立方的SYN进行ACK确认这种加入方法有助于避免产生不正确的连接。

      img

      (图片来源于网络)

      当TCP连接起来时,三个握手会避免建立历史联系,减少双方的过度资源支出,并帮助双方的序列号初始化同步。 序列号可以保证数据包不会重复、删除和连续传输。

      四次挥手

      数据传输完成后,任何一方均可提供连接释放通知,并在另一方确认后进入半封闭状态。 如果另一方没有数据可以再次传输,则发出连接释放通知,另一方承认TCP连接已完全关闭。

      img

      (图片来源于网络)

      要断开 TCP, 需要“ 四波” :

      • 客户端: 向服务器发送 FIN 以停止客户的数据传输 。
      • 服务器: 收到FIN, 并发送了 ACK 校验收到序列号 + 1.A FIN, 与 SYN 一样, 将接受序列号 。
      • 服务器: 从客户端断开连接, 发送 FIN, 并包含一个 ACK 来验证上一个 FIN 。
      • 客户端 : 发回 ACK 电文供确认, 确认号码设置在收件号加1上 。

      如何实现可靠性?

      1. 在传输数据之前,进行三次握手,以确保安全连接。

      2. 以下数据传输:按波断开四次。

      3. 传输数据之中

        编号; 区块; 校验总和( 传输时进行修改); 重复数据( 丢弃) ;

        停止等待ARQ协议(收到接收,重复超时);

        控制发送率; 控制拥堵:在出现网络拥堵时采取补救措施;

      如何确保传播的可靠性?

      • 数据分为TCP认为最适合传输的数据区块。

      • TCP 为交付的每个包件指定一个独特的标识符, 接收方对包件进行排序, 并将序列数据发送到应用层 。

      • TCP将保留其第一个和数据核对和总和,这是一个端对端测试,旨在识别传输期间数据的任何变化,如果收到此段是为了检查和错误,TCP将拒绝这一段,不承认收到。

      • 重复数据被TCP接收者丢弃。

      • 流动控制:每个 TCP 连接都有一定的缓冲大小。接收端的TCP仅接收接收端缓冲区(内核)的数据。当接收人没有时间消化发送人发送的数据时,通知发货人应缩短装运速度,防止包丢失。TCP 的流量控制协议是一个可配置大小的滑动窗口协议 。(为了完成交通管理,请使用 TCP 幻灯片窗口。 )

      • 选区控制:在网络拥挤时减少数据交付。

      • ARQ协议:同样,它也是为了确保可靠的传输,其推理是停止在每一组完成后发送,等待对方确认。收到确认后,下一个分组即发送。

      • 超时转播: 当 TCP 完成一个段段时, 它会启动一个计时器, 等待从电文结尾处确认收到。 如果无法及时获得确认, 则重新发布该段落 。

      滑动窗口

      当收件人无法跟上发件人,发件人被迫放慢速度,这变成了交通控制。

      流动可以用两种方式加以控制。第一是速控交通控制。为寄件人设定费用 。不能超过这个速率,最适合流应用程序,它可以用于广播和发现组织。根据时间框架,将有两小时的交通控制。使用滑动窗口实现,收件人确认信息中的窗口字段可用于更改发件人窗口的大小。这影响到发送者的发送率。

      TCP 使用幻灯片窗口来进行流量控制。每个 TCP 信头的窗口字段长度反映了接收端可用缓存空间的大小, 以字节表示 。

      每个TCP连接都有一个由双方维持的发送和接收窗口的结构,发送者维持发送窗口的结构,接收者维持接收窗口的结构。

      发送窗口

      传送窗口的完整结构轨迹,其中序列号已经确认,正在传送,但没有传送。

      img

      (图片来源于网络)

      以上图为例,发件人的窗口大小为20字节。窗口显示已发送但尚未确认的序列号或组 。和尚未发送的部分序号当接收方确认数据,发件人收到了确认函。窗口也会右移,我们要复制一个组的复制品, 并公布它。也可以使窗口变大或缩小(根据报告中的窗口信息)。

      接收窗口

      接收端保持接收窗口,在记录和核实所获数据后,以及可以指定给它的最大序列号。只有属于窗口顶端或更高边框的序列号才能收到和确认。窗口才会前移。该窗口保证从接收端收到的数据准确无误。为了防止获得已经确认的经核实的数据,或获取没有的数据( 窗口边界之外的数据不存在 ) 。

      接收窗口

      (取自TCP/IP综合卷第1号议定书)

      你怎么知道数据是否重复?

      当到达的序号小于窗口的左边缘时,该序号被视为重复,因此被丢弃。

      此外,如果实现的序列号大于窗口的右边框,而接收端无法接受,则会被拒绝。

      ARQ(自动调回请求)

      ARQ协议是OSI模型对数据链和传输层的错误更正方法之一。查明了这两种方法并定了时间,利用不可靠的服务实现可信赖的信息传输。如果发送者在发送后某一时间内未收到确认框架,通常会重新发送。ARQ能够不再等待ARQ协议和随后的ARQ协议。相比较来说,经常ARQ协议可以促进频道的使用。

      1. 停止等待执行ARQ协议。

      每次分发后,该组停止发送,等待对方确认(反反包件)。如果时间已过(过了一段时间后),则未收到反包件确认,表明发送不成功,必须在收到确认书后再发回后再发回。

      出错情况:

      • 错误:随时间推移再次传送;

      • 确认丢失

      • 确认迟到

      不止一次发送的信件和确认将被删除。

      1. 连续 ARQ 协议

      保持发件人窗口的打开,以便发件人窗口中的组可以在不等待对方确认的情况下连续发送。 收件人通常使用累积确认,向连续到达的最后组提供确认,表明所有到达集团位置的分组都得到适当的接收。

      不足:发送者发送了5封邮件,第三次中途死亡(第3次),接收方此时只能向前两个方发送确认书。发送者不知道最后三个分组在哪里。那最后三个也得重新传送这个叫做Go-Back-N。这篇文章是全球之声在线特稿的一部分。

      拥塞控制

      当对网络中某一资源的需求超过资源可用部分时,就会产生共鸣。 一致性控制意在防止将额外数据注入网络,从而使网络中的路由器或连接不会负担过重。

      选区控制是一个世界性的进程,涉及所有东道主、路由器以及影响网络传输性能的其他因素。

      TCP 发件人希望保持 cwnd 凝结窗口状态可更改。 压缩控制窗口的大小取决于网络的凝结程度和动态变化。 发件人将自己的发件窗口移到凝结窗口和收件人接受窗口中较小的发件窗口。
      发 发送发送 窗口窗口窗口窗口窗口窗口 舌头 大型 小 = m i n ( 动作快 赛伊 Cy. 窗口窗口窗口窗口窗口窗口 舌头 , 回答我 回答我 回答我 回答我 回答我 回答我 回答我 回答我 回答我 回答我 回答我 回答我 拿着 窗口窗口窗口窗口窗口窗口 舌头 ) 发送窗口 = Min 的大小( 条件窗口、 接收窗口) = m i n ( , )

      拥塞控制算法

      TCP有四种算法:逐步开始(从小到大)、避免(缓慢增加)、快速再传输和快速恢复。

      慢启动

      当连接建立或丢失的包件随着时间推移再传送时,TCP开始缓慢,因为传输开始时网络的传输能力未知,使大量数据无法注入网络,并造成拥堵。

      拥塞避免

      在启动缓慢之后,已经达到了一个门槛值,表明有更多的传输资源。 为了避免TCP将过多的传输资源用于其他连接,TCP将进入避免抽搐的阶段,并逐渐提高压缩窗口的价值。

      快重传

      接收复制的 ACK 以丢弃包并启动再传输, 而不等待再传输计时器用完时间, 就可以决定快速重现 。

      快重传和快恢复,没有 FRR,如果数据包丢失了,为了申请转让,TCP将使用计时器。在这个停顿的时刻,没有提供新的或重复的数据集。如果接收方收到异常数据部分,它立即向发件人发送一份重复的确认书。如果发件人收到三份相同的确认书,假定确认书中指明的数据部分不存在。任何缺失的数据线 都会被立即重新传送重新传送期间要求的暂停不会推迟。当缺少单独的数据集时,最成功的方法是快速再传播和恢复。当一个以上的数据包在短时间内丢失时,找不到该数据包。它不会工作 非常好。

      失序

      失序的2种情况

      软件包在 IP 网络中不合秩序, 因为 IP 层无法确保软件包以有序的方式执行。 麻烦问题可能发生在 TCP 连接的直接或反向链接中。 数据段的混乱和ACK 软件包的混乱对 TCP 具有明显的影响 。

      如果疾病发生在反向(ACK)链接上,TCP发送的窗口可以快速向前移动,然后接收一些应该删除的重复的ACK。 由于拥堵管理行为,这种情况可能导致发件人端发生浪费性交通激增,影响现有网络能力。

      如果病情是由直接关系引起的,因此,TCP可能无法适当识别混乱症和抛弃物包件。数据的分解和包件的下降导致接收端的包件混乱。这就造成数据缺口。当无组织的程度不是太高的时候在交换的顺序, 它就像两个相邻的包裹。这是可以迅速解决的情景。当失序严重时,TCP本来会错误地假定数据丢失了。会导致伪重传,这主要是因为快速改道算法。

      接收复制的 ACK 以丢弃包并启动再传输, 而不等待再传输计时器用完时间, 就可以决定快速重现 。

      TCP TCP 数据传输方法

      • 发送者与接收者一样通过三个连接连接,数据传输在连接建立后进行。
      • TCP将数据分为几个数据区块,每个区块都有序列号,可以识别数据区块。
      • 发送者在发送者窗口中传输数据,接收者收到数据,如果在接收者窗口内接收数据,则接收数据并将其发回确认。
      • 如果数据不是按顺序运抵,并且不符合顺序,则可以对数据进行较窄的修改,以激活快速再传输机制,而不必等待时间计时器来重新传输数据。如果混乱程度更大,发送者将获得三次重复的 ACK,则数据段将被视为缺失,数据段将再次传输。
      • 在传输者收到ACK确认后,他将窗口向右移动并继续发送数据。
      • TCP在数据传输后中断连接四次。

      参考资料:

      • TCP/IP议定书第1卷:协定第2版(书本)

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

          热门文章

          文章分类