TCP报文结构/三次握手/四次挥手/滑动窗口/拥塞控制

      最后更新:2022-05-07 08:07:12 手机定位技术交流文章

      网络分层模型

      OSI七层模型

      七层协议非常复杂。而且效率低下;制定标准周期太长了。在世界范围内制定OSI标准时,以TCP/IP为基础的因特网已经在全球范围内大规模运作。OSI 7号故事模型是一个失败。然而,有一些合理的理论依据。为了更好地掌握网络的层次OSI七层模型急需教学。

      • 应用层
      • 表现层
      • 会话层
      • 传输层
      • 网络层
      • 数据链路层
      • 物理层

      TCP/IP TCP/IP 四级协议协议

      • 应用层
      • 传输层
      • 网络层
      • 网络接口层

      TCP

      TCP报文首部

      • 每个来源港和目的地港有两个字节。
      • 序号seq,占4个字节,假设主机A和主机B使用TCP进行通信,A向B转交了最初的TCP传输。系统初始化序列号值为随机 ISN 值 。初始序号值)。因此,就传输方向(从A到B)而言,TCP报告中的下列序列号值将配置在系统中,作为ISN加上报告条目中传输的数据的第一个字节,以抵消整个字节流。例如,TCP 条目传输的数据以字节流1025-2048字节的形式出现。因此,该段的序号是ISN+1025,反向传输方向(从B到A)的TCP段序号具有同样的重要性。
      • 确认号ack,占4个字节,用作对另一方TCP信息的回应。数值等于TCP提交材料中收到的段落的序号乘以1。假设主机A和主机B使用TCP进行通信,因此,A广播了TCP文本,不仅有自己的序列号,而且还有自己的序列号。它还包括B发送的TCP文本电文的确认号。反之,还包括B提供的TCP部分的序号,以及A段发送的确认号。
      • (a) 数据偏离小数点后四位数,表明TCP提交数据从TCP提交开始起多远;
      • 已经为今后的使用预留了6个空间,尽管目前应全部为零。
      • 当 URL 是 1 时, 这意味着紧急指针字段是合法的 。 请告知系统, 此报告中有紧急数据 。
      • 只有在确认数字字段中的 ACK=1 得到 ACK 的确认。 TCP 授权连接建立后的所有传输均在 1 上放置 ACK ;
      • 当两个应用程序程序交互交流时,一端的应用程序程序预期在输入命令后立即收到另一端的答复,此时PSH=1;
      • 当RST=1时,重新定位RST意味着TCP连接有重大错误,必须放弃并随后重新加入。
      • 当 SYN = 1, ACK = 0 信号连接请求时, 回复信息应使 SYN = 1, ACK = 1; SYN 提交文件无法传输数据/ ACK 信息无法传输数据 。
      • FIN=1时,提供了报告发件人身份的数据,并要求公布。
      • 窗口的大小为2字节,以将有多少位数据仍保留在缓冲区内的情况自动通知发件人,使另一方能够管理数据传输的速度;
      • (a) 用两个字节测试和验证第一个组成部分和数据;
      • 2字节的紧急指示器,说明本报告中的紧急数据字节数;
      • 选项选项,变量长度,以及定义一些额外的可选参数

      建立TCP连接需要三次握手。

      初次: 离职时的名单状态

      • 客户端: 通过发送带有 SYN 的数据集包( SYN= 1, second=x), 输入 [ SYN- Sent] 状态 。
      • 服务端:发送带有 SYN/ACK 标志的数据包(SYN=1 & ACK=1,ack=x+1 & seq=y)进入【SYN-RCVD】状态
      • 客户端:发送带有带有 ACK 标志的数据包(ACK=1,seq=x+1 & ack=y+1)进入【ESTABLISHED】已建立连接状态

      在得到客户确认后,服务器同样处于[ESTABLISHED]状态,双方可以开始沟通。

      为什么要三次握手?

      这三次握手是为了建立一个可靠的通信渠道,确认双方相互发送和接收是正常的。

      初步握手:客户无法确认任何东西;服务器确认对方交付正确并收到。

      第二手握手:客户确认自己发送、适当接收、适当接收,服务器确认自己发送、适当接收。

      第三手握:客户确认自己发送、接收、发送、接收、发送、接收、服务器确认自己发送、接收、发送、接收、接收。

      因此,需要三次握手才能确定双方有正常的邮件功能。

      断断 TCP 连接 4 次, 然后挥波 。

      • 客户: 向服务器发送 FIN 以停止客户的数据传输( FIN=1, 后续=x) [FIN- WAIT-1]
      • 服务器: 收到FIN, 以 ACK (ACK=1, ACK=x+1, 后继=y) 回应, 然后继续提供数据 [CLOSE-WAIT, FIN-WAIT-2] 。
      • 服务器: 发送剩余数据, 向客户端发送连接发布信息, FIN 向客户端发送信息( FIN=1, 后续=m) [LAST- ACK]
      • 客户端: 确认 ACK 信件, 并设定确认序列号 + 1 [TIME-WAIT], 2*MSL 在关闭后接收 。

      一. 客户程序发送连接发布信息。并且停止发送数据。释放数据报文首部,FIN=1,序号是后序号=u(等于先前交付数据的最后字节)加1。此时,FIN-WAIT-1(终止等待1)由客户输入。 TCP规定,据FIN说,即使他们没有数据,他们也无法这样做。也要消耗一个序号。

      服务器收到了关于该释放的连接的两条信息。发出确认报文,ACK=1,ack=u+1,另外,它的序号是续v,此时,服务供应商的地位已改为CLOSE-WAIT(CLOSE-WAIT)。TCP服务器与高级别应用程序进行通信。客户被放行 并引导到服务器上。这是一个半封闭期。用户无进一步信息可发送 。然而,如果服务器提供数据,客户端依然要接受。目前的状况将持续一段时间。也就是说,CLOSE-WAIT状态的长度。

      2. 当客户从服务器收到确认请求时,它进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接发布信息(服务器提供的最后数据必须先收到)。

      三、服务器传送了最终数据后这篇文章是全球之声在线特稿的一部分。FIN=1,ack=u+1,由于在半关闭状态,服务器最有可能发送更多的数据 。假设目前的序号是后序号 = w,此时,服务器处于 LAST-ACK( 最后确认) 状态 。等待客户端的确认。

      四. 客户收到服务器后无法使用服务器的连接解密。必须发出确认,ACK=1,ack=w+1,此外,他的序列号是后号=u+1。此时,时间-时间(等待)是客户的状态。似乎TCP的连接还没有被放弃在2*MSL(最长报告期)之后,居住在该国的人数将减少。当客户撤回相关TCB时,我们只是现在处于封闭状态。

      四.A 一旦收到客户的确认,服务器就将其状态改为封闭数据交换系统。同样,TCB的退出终止了TCP连接。可以看出,服务器在客户之前终止TCP连接。

      为什么顾客最后要等2MSL?

      客户先前的 ACK 信息保证访问服务器。可以想象这份ACK报告是错的从服务器的角度来说我要求关闭一份FIN+ACK报告我尚未收到顾客的答复。我本想请求你破解这个信息 但它永远无法到达那里因此,服务器将再次发送。客户可以在下一个 2MSL 期间收到此再次发送的信息。接着给出回应报文,此外,将重新启动2MSL时限。

      为什么在断开连接时 3次握手和4次波的交替?

      收到连接请求的 SYN 信息后,服务器在连接建立时向 ListEN 中的客户端发送 ACK 和 SYN 。

      而关闭连接时,在服务器接收了FIN的另一封信后这仅仅表明,相反一方再也不能提供数据,但可能仍然收到数据。另外,并非所有数据都是相互发送的。因此,我们可能立即将其关闭。我们还可以相互交流数据。除了向另一方发送FIN电文,要求立即终止连接。因此,通常,ACK和FIN是单独发送的。从而导致多了一次。

      如果已经建立了连接,但客户意外下降怎么办?

      TCP还有一个实时计时器。显然,如果客户不成功服务器不能再等待了 。白白浪费资源。每次服务器收到客户端请求, 定时器都会重置 。通常,时间固定在两小时。如果你在两小时内没有从客户那里得到数据,将收取费用。服务器将发送检测器消息 。之后每75秒发一次如果一连串的十份检测报告没有反应 很难找到摆脱困境的方法服务器相信客户端失败 。接着就关闭连接。

      TCP确保可靠的通信的方法

      连序确超校流拥

      1. 连通性管理是一种三手冲洗和四波程序,可确保可靠的连通性,这是可靠性的先决条件。
      2. 校验和:在数据传输期间,考虑到以16位数整数表示的所有数据部分。将这些整数加起来。前进的步伐是无法阻止的。补在后面,最后取反,得到校验和。目标是在发送数据时查明数据中的任何变化。如果在段落检查中出现错误,此条目将被丢弃, TCP 不确认收到 。
      3. 序号:每个传送的包件的TCP编号;序列号不仅仅起到反应的作用;序列号允许根据序列号对收到的数据进行分类,并从重复的序列号中删除数据。
      4. 确认回复并再次发送:一旦接收者收到数据,他们都会回覆留言2011年叙利亚抗议活动特别报导,报告载有确认的序号。告诉发送方,接收到了哪些数据,下一个数据来自何处?当TCP发送段落时,它会等待一段时间,等待在目的地尽头收到电文,以便返回确认。如果在合理的时间内未收到确认,将重发这个报文段。Linux的控件在一段时间内以500毫秒完成,但Windows的控件则以500毫秒完成。每重试一次x2,许多努力尚未得到证实。TCP怀疑互联网上或另一边存在违规现象。强制关闭连接。(类似ARQ协议)
      5. 流动控制:每个TCP相关方都有固定规模的缓冲空间。接收终端的TCP只允许传输者发送接收终端缓冲区可以接受的数据。当接收人没有时间消化发送人发送的数据时,通知发货人应缩短装运速度,防止包丢失。TCP, 取决于接收端处理数据的能力,确定发件人的发送速度。
      6. 选区控制:在网络拥挤时减少数据交付。

      ARQ自动重传请求

      自动释放请求(自动重复重复查询)(ARQ)是OSI模型错误纠正数据链层协议的错误之一。它涉及不再等待ARQ和随后的ARQ协议。例如,发现错误、肯定识别、随时间推移再传送、否定确认、再转播等技术就是例子。

      典型的自动再传输请求分为三类:停止等待ARQ,这是用于再传输过程的第一个;再传输ARQ,这是用于再传输过程的第二个;再传输ARQ,是用于再传输过程的第三个;再传输ARQ,是用于再传输过程的第三个。这是世界历史上第一次。这篇文章是全球之声在线特稿的一部分。最后两项协议包括要求重新分配技术的幻灯片窗口技术。因为窗户足够大这是首次每周七天、每天24小时提供因特网。因此,它被视为随后的ARQ协议。两者之间的区别在于处理错误数据包的程序各有不同。三种ARQ协议中,复杂性递增,效率也递增。除了传统的ARQ,还有一个混合的ARQ(Hybrid-ARQ)。

      • ARQ停止方程式:在ARQ停止方程式中,发送和接收窗口的大小相同 。发件人提供的每一个框架必须停止,等待收件人的确认。它只有在接收器核实正确接收时才会发送以下框架。相反,他们不得不等到最后期限过后再提交报告。这种办法使用最小数量的缓冲储存空间。缺点是信任效率低下。
      • 返回到 ARQ 框架: 信件的侧面不必等待信件回复的侧面 。持续的发送多个帧,如果传输的框包含错误,然后,从错误的框架开始, 把所有的框架都送回去。特点:复杂度低,尽管如此,多余的框架将重新出现。因此,大规模使用这种技术效率低下。
      • 选择性重传ARQ:发信侧不用等待收信侧的应答,持续的发送多个帧,如果传输的框包含错误,那么发信侧将只重新发送那个发生错误的帧。特点:复杂度高,但是不需要发送没必要的帧,所以效率高。
      • 混合 ARQ:在混合 ARQ 中,数据电文发送给接收者,如果发生错误,则不删除。接收方指示发送者重新发送部分或全部错误报告的信息,并将再次收到的信息与以前收到的信息合并,以便恢复已经提供的信息。

      ARQ大多在目前无线通信的无线链层使用,例如WCDMA和CDMA200无线通信均对ARQ和混合ARQ进行了有选择的再传输。

      滑动窗口

      Guo Wegowill的博客 — CSDN Blog_arq — TCP 连续的ARQ 和幻灯片窗口协议

      幻灯片窗口协议在发送者和接收者之间保持一个可移动窗口开着。发送方是发送窗口,接收方是接收窗口,此窗口也可以在时间上向前移动 。它使传送器能够同时发送若干组人,而不必等待确认。由于这项协议,数据传输可能加快。字节由 TCP 滑入 。

      Sendend 窗口 = Min 的大小( 条件窗口、 收件人窗口)

      拥塞控制

      TCP 选区控制(在部内) -- -- 方案搜索 -- -- CSDN Blog_tcp 宪法控制

      在某段时间,如果对某一网络资源的需求超过资源的现有部分,对该资源的需求将更大。该网络的运行情况将进一步恶化。这种情况就叫拥塞。拥挤控制的目标是避免将过多的数据注入网络。这样,路由器或网络连接就不会不堪重负。所有人群控制都基于一个概念。这是网络维持目前网络负荷的能力。信仰控制是一种包罗万象的程序。涉及到所有的主机,所有的路由器,以及所有导致网络传输性能下降的因素相反,流动控制经常用于点对点的交通控制。是个端到端的问题。为了管理交通, 停止在发件人端发送数据。以便及时达到接收端。

      TCP 发件人必须保留一个 cwnd (cwnd) 状态变量以进行凝结控制。 压缩控制窗口的大小取决于网络的凝结程度和动态变化。 发件人将自己的发件窗口设置在凝结窗口和收件人接受窗口中较小的发件窗口上。

      TCP有四种交通拥堵控制算法:逐步启动、避免拥堵、快速再传输和快速恢复,在网络一级,路由器还可以进一步利用适当的群体处置程序(例如,为减少网络拥堵的发生,使用主动排队管理)。

      • 慢开始: 慢开始方法背后的目标是当主机尝试传输数据时, 它将会失败 。如果我们立刻将大量的数据字节 发送到网络, 我们必须采取行动。这可能导致网络干扰。目前尚不清楚网络将如何运作。经验表明,最好的办法是事先注意到它。这表示分配窗口随着时间的流逝而从很小的向大发展。凝结窗口的价值正逐渐从微小增加至巨大。cwnd 的起始值为 1 。在每个传播周期之后,cwnd 加倍。压缩窗口 cwnd 的当前值已经等于慢速启动门限制sthresh,为了防止算法,后来用标题取代了算法。
      • 避免选区出现技术是为了逐步提高 cwnd, 即每次RRT通过时, cwnd + 1 发送。

      拥塞避免一直+1,直到达到N时,假设N发布在传输中丢失 x 。只有N-x段落从接收方得到了确认的答复。一段时间后,转播计时器丢失的X部分 时间快用完了根据发送者的评估,可能会出现拥堵。当出现拥堵时,改变(1)和门限制(半=N/2)。然后以缓慢的开始方法重新开始 。

      个人信息会在网络中丢失,但不会出现拥堵,TCP会错误地设定到1,并随着传输效率的降低而缓慢重新启动。 为了提高TCP的性能,引入了快速转播和快速恢复方法。

      • 快速转发:发送者在发送者窗口中发送了六条信息。接收者以1、2和2作答。但是3丢失了,接着收到了4,接收方对此作出了反应,确认了对第二次报告的确认。这篇文章是全球之声在线特稿的一部分。接着收到5、6时,答复了第2号报告中的许多确认。此时,就报告第2段而言,发送者连续收到三次重复确认。这个故事是我们对2011年埃及抗议的特别报导的一部分。接收方收到后,这篇文章是全球之声在线特稿的一部分。表明,所有截至并包括序号6的报告均已收到。这并不要求发件人将第3号信息发回加班,并错误地认为有积压相反,已提前收到复发通知。
      • 快速恢复 : 当发件人开始尽快重新发送数据时, 即当它意识到信息不存在时, 它不会预期拥堵会慢慢恢复。 相反, 它会开始快速恢复算法, 快速恢复算法将门调整到压缩窗口的 shresh 和 cwnd, 调整到当前窗口的一半, 然后开始梳理以避免算法 。

      UDP

      • 互不关联,不可信,效率低下。
      • 不可靠的数据报告传输(一次提交一次),没有粘性 tcp/半包装问题。 ( tcp是一个面向流动、可靠传输协议 - 缓冲区)

      没有必要在传输数据之前先建立连接。在收到联合民主党提交的材料后,远程主机不需要任何确认。虽然联合民主党不能保证交货,但联合民主党不能保证交货。但是正是因为这样,省去和很多的开销,它加快了这一进程。例如,某些服务实时要求更高。经常使用UDP(例如聊天室、现场直播等)。DNS、TFTP、DHCP、SNMP、NFS和其他议定书都有同等应用协议。

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

          热门文章

          文章分类