【计算机网络】传输层协议TCP九大特性详解

      最后更新:2022-06-02 16:04:17 手机定位技术交流文章

      文章目录

      • TCP协议格式
        • 源端口和目的端口
        • 报文长度和保留
      • 可靠传输
        • 一、确认应答
          • 序号和确认序号
        • 二、超时重传
          • 丢包的两种情况
            • 发送方的重传步骤
            • 接收方的接收重传
          • 重传次数
        • 三、连接管理?
          • 1.三次握手
            • TCP的状态
            • 如何写入 SYN 和 ACK
          • 2.四次挥手
            • 流程
        • 四、滑动窗口
          • 丢ACK报文
          • 丢传输的数据
        • 五.流量控制
          • 16位窗口大小
        • 六、拥塞控制
        • 七、延时应答
        • 八、捎带应答
        • 九、粘包问题
      • TCP的异常情况
        • 进程终止
        • 机器关机
        • 掉电断网
      • TCP和UDP

      TCP协议格式

      格式:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fdygezQe-1654050422872)(C:Users19625AppDataRoamingTyporatypora-user-imagesimage-20220523214444950.png)]

      上面还有这个TCP

      源端口和目的端口

      与UDP交易的港口相同,但规模在扩大。

      报文长度和保留

      它只有4位长, 从0到15。

      如果是11, 真实的故事是15*4 = 60字节。

      如果报告篇幅今后增加,报告的实际篇幅可以使用报告的长度加上保留来决定。

      可靠传输

      一、确认应答

      答复得到确认,以确定另一方当事人是否收到电文,如果收到,则退回确认函(ACK)**,表明收到。

      序号和确认序号

      在发出若干信息的同时,第一种信息有可能发出,第二种信息有可能在发送时收到。

      因此,TCP交易如何实现反应确认技术?

      TCP建议一个序号以及一个确认性序号:

      要传输的数据需要一定数量的字节,数据用字节编号,一个字节对应一个数字。

      第一个字节代表序列号1,第二个字节代表序列号2, 1 00字节代表序列号100。

      一旦我们把数据与正确的字节号对齐 就会用这个序列号进行传输和回应

      Hosta提供来自序列号1-100的数据,该序列号相当于序号1的1,00字节。

      b 主机以确认方式回复(ACK)1001,表示在1001号之前收到所有字节。

      Hosta 发送1,00 字节的数据(即,在宿主b归还的1001份数据中,1001-200份)

      东道方b 返回2001年,表示在200年1月1日至12月31日期间收到所有数据。

      我们设法通过在数据堆叠时进行编号和重新编号,对每一项数据都作了一对一的回答,所以我们不必害怕回答不匹配的信息。

      二、超时重传

      这是一个成功的转移, 你应该得到一个典型的答案, 但是没有一个答案。 问题是通过实时的再传输来解决的。

      丢包的两种情况

      以下是两个主要的失败:

      一. 在传输数据时, 放下包件 。

      二.ACK返回失败

      发送方的重传步骤

      现在,让我解释一下发件人如何传输信息,然后使用 tcp socket api 重复。

      发送消息:

      要通过插座轴中的funte 操作传递的信息在“ Send缓冲区” 中写入, 从操作系统的发送缓冲地带收集数据, 通过网卡负担, 并发送到接收方 。

      没有定期收到 " ACK " 的答复:

      如果发件人没有收到,信息就会受到怨恨。

      在缓冲区或最后数据传输后,操作系统直接从缓冲区接收数据,用净额卡封起来,再传送给接收者。

      如果你得到一份ACK报告:

      缓冲区内属于发件人的数据将予清理。

      接收方的接收重传

      因为有两种情况导致发送者未能正确接收信息:电文未送达收件人,在传输过程中丢失。

      在第一种情况下,收件人得不到任何信息,发件人立即再次发送。

      然而,在第二种情况下,接收方将收到两条相同的电文,而在第二种情况下,接收方将收到两通电话,造成错误,我们能做些什么?

      接收方还有一个缓冲区,接收方最初收到的所有信息都到达缓冲区,这实际上是阻塞者的排队。

      它将根据上述序号确定它是否是同一信息。

      如果是同一条信息, 将会删除 。

      如果不是同一信息的话,那也会包括进去。

      我很久没有读到套接字了! 这个卡住了的队列非常关键 。

      重传次数

      能否重复一遍?能否从杰克那里得到答复?

      答案是,当然是没有,如果网络倒塌,就永远行不通了。

      因此,我们无法同时重新传送所有信息。时间间隔和再传送频率是必要的。

      1. 如果再传送次数超过某一阈值,则取消再传送。
      2. 两次再传送的时间越长。

      如果一个信息投放袋的机率是20%,再传送的风险是4%。

      三、连接管理?

      三个握手,四个波浪:这是TCP可靠传输中最引人骄傲的元素之一, 也是TCP最著名的特征之一:四个波浪:这是TCP可靠传输中最引人骄傲的元素之一, 也是TCP最著名的特征之一。

      连接管理分为两部分:

      1. 建立连接
      2. 断开连接

      让我们看看这三次握手:

      1.三次握手

      首先,三手握手确认客户和服务器接收和传递信息,即投掷石块的过程,首先确保一切顺利,然后准备传送官方信息。

      1. 三次握手的过程

      1. 首先,客户端将一个同步传送到服务器 。
      2. 服务器将对一组同步解答反应, 同时返回同步 。
      3. 客户对接收的音响用JJ回答。

      这是三握手的方法。

      以下是对每一步骤所取得成就的详细审查:

      客户必须确保客户和服务器都发送和接收信息。

      服务器必须确保它能够传输和接收来自其本身和客户的信息。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DummEW4x-1654050422873)(C:Users19625AppDataRoamingTyporatypora-user-imagesimage-20220526173937750.png)]

      例如,与服务器握手。

      1. 客户是如何提供同步的,测试客户和服务器是如何收到的?
      2. 如果服务器正确接收到信件, 服务器就会知道客户端传输和服务器正确接收信件 。
      3. 当服务器返回 ack=x+1 时,客户知道客户端传输和服务器接收是正常的 。
      4. 此外,服务器还返回了同步、测试服务器发送和客户接收。
      5. 如果客户正常收到信息,它就会知道服务器发送了信息,而且客户收到的信息正确无误。
      6. 服务器知道服务器正在传输, 当客户响应日志=y+1 时客户正在成功接收客户 。

      总结的规律:

      A发送syn进行test-------->B知道A正常-------->B发送ack告知A---------->A知道自己正常

      上面的三次握手就是

      synX—>ackX+1,synY----->ackY+1

      TCP的状态

      tcp 状态各有不同:以下主要为大约两个收听器和固定的收听器。

      听 : 显示服务器是用其端口号码和 IP 地址设置的, 并且可以连接到另一个服务器( 三次握手 ) 。

      estbrish: 表示连接已成功建立, 服务器现在可以与客户正式交谈 。

      如何写入 SYN 和 ACK

      因此,在文章中,TCP如何代表Syn还是Jack?

      我们会利用这份状况表 来证明我们无法完成这个任务

      如果它是杰克,它是在杰克的一 和零其他任何地方。

      音响是Syn的,剩下的是零

      如果杰克和辛同时填一个 剩下的就填零

      如前所述,三次握手的最初职责是投掷石块,要求提供指导,并确定客户与服务器之间是否有沟通。

      第二个作用是服务器和客户谈判设置,有时与材料互动。

      今后将进一步讨论这些问题。

      还有两个握手的问题,也许四个握手?

      两次握手是不可能的, 因为服务器不知道其发件人和客户的接收功能是否正常运行,

      四次握手是可行的,但并不鼓励,因为两次而不是两次传递时,两种信息效率更高。

      2.四次挥手

      上述三种握手方式是相互联系的,一旦连接,服务器和客户端将用特定的数据结构储存五组。

      然而,如果我们打破了连接, 我们当时保存的五组数据将变得毫无价值。 因此,我们会挥手四次, 打破连接并删除数据 。

      流程

      1. 当客户端在套接字上调用 pi 关闭功能时, 它会向服务器发送 FIN 请求 。

      2. 当服务器在操作系统中得到检查时,它会立即发出ACK反应。

        在提供答案后,服务器已输入 **CLOSED_WAIT state ** 以履行服务器关闭功能。

      3. 服务器在运行 comse 函数后向客户端发送 FIN 请求 。

      4. 当客户收到请求时 操作系统会发出ACK反应

        客户在发送回复后必须再等待2次 *MSL 时间段,因为客户在重新发送时必须再次提交 ACK, 因为它担心最后一个时间段会被丢弃 。

      四、滑动窗口

      虽然TCP协议确保可靠的传输,但在传输效率方面也极为安全,即TCP协议在包装传输效率和确保传输安全方面仍然十分全面。

      TCP包件传输效率如何?

      以往的传输

      我们之前一直在这样做, 发送 TCP 信息并等待其 ACK 回复, 一次一次一次一次,一次一次一次。 如果消息和确认被发送一分钟, 需要10分钟才能发送5条信息并确认5条信息 。

      但幻灯片窗口不是这样运作的:

      在一行中发送 N 消息, 当任何 N 消息被确认后, 发送新消息 。

      就像下面这样:

      它这样工作: 10分钟内收到5条回复信息 和10个数据包, 传输速度要快得多。

      那么,如何使幻灯片窗口可见?

      窗口的大小取决于同时发送的 N 信息的数量,而窗口的主要组成部分是等待的回答信息。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UQ2uhpV3-1654050422873)(C:Users19625AppDataRoamingTyporatypora-user-imagesimage-20220529211219983.png)]

      幻灯片窗口的范围包括收到的答复和新提交的数据,以及有待批准的答复的序号。

      收到回应报文----->发送一条新的数据------->滑动窗口向后移动一位

      丢ACK报文

      如前所述,在信息传输过程中有行李损失, 我们将检查如果回程时ACK丢失了会发生什么。

      因此,如前一例,不需要担心丢失的证件。只要我们得到后面的证件,前面的数据就会自动收到。如果它们被丢弃,它不会造成任何偏差。

      丢传输的数据

      但如果传输数据丢失了 我们就有大危险了

      如果我们的幅度之一 包含数字1001,由于200年的数据在传输过程中丢失,答复本应编号为** 航道1001**,表示只接受一次。数据是在100年前丢失的,而不是像我们在评估损失时所做的那样,追溯到2001年。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-84Y9Wn8Y-1654050422874)(C:Users19625AppDataRoamingTyporatypora-user-imagesimage-20220529212736037.png)]

      因此,当有1001个..一旦在200年丢失,其他范围发送的所有数据都显示只收到一个数据。1000之间的数据

      以下是东道主B接受缓冲区的内容:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OSp2JjtY-1654050422874)(C:Users19625AppDataRoamingTyporatypora-user-imagesimage-20220529213636744.png)]

      其余资料正确无误,只有1001-200人失踪。

      因此,在收到1001的答复后,主机A启动汇款时间超时机制,并重新发送数据。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JgFtQBAr-1654050422876)(C:Users19625AppDataRoamingTyporatypora-user-imagesimage-20220529214021624.png)]

      然后我们可以回到7001, 表明 1-700 数据是有效的。

      五.流量控制

      滑动窗口用于调节流量。 如前所述, 窗口的大小等于 N 数字的大小。 N 值越大, 交付速度越快; 但是, 我们不能仅提高窗口的大小; 相反, 我们必须根据接收方接收缓冲带( 即交通控制) 的剩余值来管理 N 的大小 。

      16位窗口大小

      N号号码因接收方缓冲区内的接收空间而异。

      如果缓冲区内没有太多空间接收数据, 发送者会发送更少的数据, 窗口的价值也会更少。

      如果缓冲区内有足够的空间,发送者可发送更多的数据,而且窗口的价值巨大。

      那么,我们如何让接收器识别缓冲区?

      TCP 电文的 16 位窗口大小 + ( 选项) 可用于通知发件人, 使发件人能够根据窗口大小更改发送信息的数量 。

      但是,我们是否确定当窗口为零时不会传送它?如果缓冲区的面积扩大怎么办?

      因此发件人会再次移动, 这一次是连续的窗口搜索, 回答者返回到现有的窗口大小。 如果窗口变大, 发送者可以继续发送信件, 因此这是至关重要的 。

      六、拥塞控制

      上文关于交通管制的一节讨论了接收方限制向发送方转让的数量的能力。

      这一部分是收件人和发件人之间的链条,限制传送给发件人的数据数量。

      换句话说,接收器的处理能力决定了交通窗口的大小——交通控制。

      传输链的长度决定压缩窗口的大小 -- -- 压缩控制。

      对于顶端的两个交通窗口和压缩的窗口,最终的幻灯片窗口大小最小。

      让我们看看几种类型的 抽搐控制:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3jZeGIl0-1654050422877)(C:Users19625AppDataRoamingTyporatypora-user-imagesimage-20220531101036008.png)]

      1. 从最小的压缩窗口开始。

      2. 紧凑的窗户会成倍增加 直到它到达屏障

        为什么要使用指数增长? 所以我们需要尽快达到最有效的传输窗口的大小。

      3. 当防止窗口太大而不能丢弃包件的阈值达到时,就会出现线性上升,因为这一范围内的窗口是最有效的传输。

      4. 当有一个果酱,有两个TCP版本, 一个快速恢复, 一个缓慢开始。

        时间恢复:当窗口继续从新门槛线性上升时 — — 也就是发出被封窗口的门槛值的一半 — —

        因此传输窗口应该是在再放大和投放包之间。

        缓慢开始: 在目前阶段, 窗口以最小的阻塞窗口开始, 然后遵循指数+线性方法 。

        好消息是下降幅度会越小越好 包装必须可以通过

        慢启动窗口的大小也为空投窗口的一半 。

      七、延时应答

      接收方每次了解接收缓冲区内剩余空间的数量时,延误也是交通控制请求,接收方后来对该空间的反应也是延误。

      因此,我们稍后会回覆新闻, 一段时间后空间会大得多。

      八、捎带应答

      答案是延迟答复的更详细变式。

      对客户和服务器可以采取以下做法:

      一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题、一个问题

      因此,在发件人提出请求时,收件人可以回答如下:

      以往报告和业务报告

      报告很快被退回,但业务报告不得不等待部署守则。

      因此,两份报告没有同时提交。

      但是,如果我们迟到才作出答复,这两份文件很可能在某个时候会重新统一。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x97KR79q-1654050422877)(C:Users19625AppDataRoamingTyporatypora-user-imagesimage-20220531225701585.png)]

      因此,由于同时退回两份报告更为有效, 这是一份包含解决方案的报告。

      九、粘包问题

      在发送者向接收缓冲区发送大量数据时,将若干数据连接在一起,造成一个粘糊糊的袋问题。

      当发件人发送的TCP信息到达缓冲区时,它们只用于数据。

      接收器使用读取函数读取字节, 但真正读取的字节是粘粘的。 这是粘粘的包 。

      那么,我们如何解决这个问题?它从应用到应用层面。

      您只需要在数据结尾处有一个有分隔符的应用层; 将不同的数据分开, 然后完成。

      TCP的异常情况

      进程终止

      TCP现在会是什么样子?

      TCP 连接是使用套接字打开的文件。 它实质上是一个打开的文件 。

      因此,只要打开文件,就会添加PCB和文件描述。

      当文件被删除时, 文件描述也会被删除, 文件描述也会被删除 。

      因此,当我们推动进程终止时,正是多氯联苯删除了文件的描述。

      我们调用插座。 接近( ) 的方法返回相同的结果。 它触发了四波 。

      机器关机

      随着流程的结束,系统立即关闭,但在关闭之前,系统将终止所有流程。

      掉电断网

      如果它不在网格上 是个意外的问题

      1. 如果服务器挂了

      服务器已关闭, 客户端在等待 Jack 回复时发送信件 。

      因此,客户将随着时间的推移重新发送。

      然而,对加班重播没有任何反应。

      如果客户重新连接后没有回应,该连接就是断开的。

      1. 如果客户端挂了

        服务器向客户传输一个检测包,没有数据,通常称为心跳包。

        如果您无法接收服务器的 Jack, 您可以在一段时间内改序, 如果您不回答, 可以重新连接, 如果重新连接失败, 可以断开连接 。

      TCP和UDP

      1. TCP更值得信赖。

      2. 传输效率低于UDP。

        如果民进联保证可靠,怎么办?

        申请一级的TCP执行机制

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

          热门文章

          文章分类