当前位置:首页 > 数码 > TCP-接收窗口及其工作原理-发送窗口-TCP流量控制-深入理解 (tcp接收数据不完整如何解决)

TCP-接收窗口及其工作原理-发送窗口-TCP流量控制-深入理解 (tcp接收数据不完整如何解决)

admin4个月前 (05-11)数码30

简介

可用窗口是理解TCP滑动窗口的关键概念。要了解可用窗口的计算,我们需要理解三个指针: SND.UNA:已发送数据段的第一个字节的序号 SND.NXT:下一个要发送的数据段的序号 RCV.NXT:接收数据段的第一个字节的序号 TCP

发送窗口

发送窗口定义了发送方可以发送的数据范围。它由SND.UNA和SND.NXT指向的字节组成,并分为以下几类: 已发送字节(黄色):已发送但尚未得到确认的字节 可发送字节(绿色):可以发送的字节 可用窗口(第3类):已发送和可发送字节的总和

示例:发送窗口的计算

当发送方发送了21-25字节的数据并使用了所有可用窗口的字节时,可用窗口可能会为空。发送窗口保持不变。 当发送方接收到16-19字节的确认时,发送窗口向右滑动4个字节。队列中的下一个字节会有一个更新的可用窗口。

接收窗口

接收窗口定义了接收方可以接收的数据范围。它由RCV.NXT和以下几类组成: 已接收字节(蓝色):已接收但尚未从队列中删除的字节 可接收字节(灰色):可以接收的字节 接收窗口(第2类):已接收和可接收字节的总和

示例:接收窗口的计算

接收窗口并非静态。如果服务器运行得高效,接收窗口可以扩展。否则,它可能会缩小。 接收方通过在TCP段头中的窗口字段中指示大小来传达其接收窗口。接收窗口在特定时刻不等于可用窗口,因为发送和接收段需要时间。

可用窗口

可用窗口是发送方可以发送的数据量,它由接收方的接收窗口决定。可用窗口的大小由以下公式计算: ``` 可用窗口 = RCV.NXT - SND.UNA ```

示例:滑动窗口的工作原理

客户端向服务器请求一个资源,服务器以三个段响应。 客户端的发送窗口(SND.WND)为300字节,接收窗口(RCV.WND)为150字节。服务器的SND.WND为150字节,RCV.WND为300字节。 客户端发送了第一个100字节的请求,可用窗口变为200字节。 服务器发送了第一个80字节的响应,可用窗口变为100字节。 客户端接收了文件的第一个部分,可用窗口保持为300字节。 服务器接收到确认时,可用窗口变为20字节。

结论

可用窗口的计算是理解TCP滑动窗口的关键。通过理解SND.UNA、SND.NXT和RCV.NXT指针以及发送和接收窗口的概念,我们可以确定发送方可以发送的数据量,并优化TCP通信的效率。

tcp用什么进行流量控制,机制是什么

所谓流量控制就是让发送发送速率不要过快,让接收方来得及接收。利用滑动窗口机制就可以实施流量控制。

原理这就是运用TCP报文段中的窗口大小字段来控制,发送方的发送窗口不可以大于接收方发回的窗口大小。考虑一种特殊的情况,就是接收方若没有缓存足够使用,就会发送零窗口大小的报文,此时发送放将发送窗口设置为0,停止发送数据。

之后接收方有足够的缓存,发送了非零窗口大小的报文,但是这个报文在中途丢失的,那么发送方的发送窗口就一直为零导致死锁。解决这个问题,TCP为每一个连接设置一个持续计时器(persistence timer)。

只要TCP的一方收到对方的零窗口通知,就启动该计时器,周期性的发送一个零窗口探测报文段。对方就在确认这个报文的时候给出现在的窗口大小

(注意:TCP规定,即使设置为零窗口,也必须接收以下几种报文段:零窗口探测报文段、确认报文段和携带紧急数据的报文段)。

TCP原理

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。

TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

解释

1、比如发送端能发送5个数据,接收端也能收到5个数据,给个确认(ack)给发送端,确认我收到5个数据。如果网络通信出现繁忙或者拥塞的时候,接收端只能收3个数据,接受端给个确认我只能收3个数据,那么发送端就自动调整发送的窗口为3,当线路又恢复通畅的时候,接受端又可以受到5个数据,那它会给确认给发送端,告诉它我的窗口为5,那发送端就把窗口又调整会5,这样进行流量控制的

2、比如说发送端窗口为3,发送到接收端,接收端的接收窗口为5的话,接受数据,并且会给发送端一个ack(确认)告诉发送端我的窗口为5,发送端收到确认后会把自己的发送端窗口调整为5~~这样就可以加速数据传输了

拓展资料

TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

参考资料:TCP—网络百科

tcp可靠传输工作原理中的协议

TCP可靠传输工作原理中的协议是通过滑动窗口协议实现流量控制和差错控制,通过拥塞控制协议实现网络拥塞控制,通过可靠传输协议实现数据的可靠传输。这些协议协同工作,确保了TCP的可靠传输。

TCP窗口协议是TCP可靠传输的核心部分,它通过确认、超时和重传等机制来保证数据包的可靠传输。滑动窗口协议是一种流量控制和差错控制机制,它允许发送方在未收到接收方确认的情况下连续发送多个数据包。

在滑动窗口协议中,发送方维护一个窗口,窗口的大小表示在没有收到确认的情况下可以发送的数据包数量。当接收方收到数据包后,会向发送方发送确认信息,以便让发送方继续发送下一个窗口的数据包。

TCP拥塞控制协议是一种网络拥塞控制机制,它通过监测网络状态和调整发送速率来避免网络拥塞。当网络出现拥塞时,TCP会降低发送速率,以避免网络过载。TCP拥塞控制协议包括慢启动、拥塞避免、快速重传和快速恢复等机制。

TCP可靠传输协议是一种面向连接的协议,它在建立连接后使用一系列的机制来保证数据的可靠传输。TCP可靠传输协议包括确认、超时、重传等机制。确认机制是指接收方在收到数据包后向发送方发送确认信息,以表示数据包已经成功接收。

超时机制是指发送方在一定时间内未收到接收方的确认信息,会重新发送数据包。重传机制是指接收方在收到重复的数据包时,会将其丢弃并向发送方发送确认信息。

TCP(Transmission Control Protocol,传输控制协议)工作原理:

1、连接建立:TCP通过三次握手建立连接。在通信双方准备建立连接时,发送方先向接收方发送一个SYN(Synchronize)报文段,其中一个随机的初始序列号。接收方收到SYN报文段后,会回复一个SYN-ACK(Acknowledgement)报文段,确认收到了SYN,并指定自己的初始序列号。

2、数据传输:TCP通过序列号和确认应答机制保证数据的可靠性。在数据传输过程中,发送方将数据分割成多个报文段,并每个报文段都附带一个序列号。接收方收到报文段后,会发送一个确认应答报文段,其中包含一个确认号,表示已成功收到了前面的报文段。

3、连接终止:TCP通过四次挥手终止连接。当通信双方中的任意一方想要关闭连接时,会发送一个FIN(Finish)报文段,表示不再发送数据了。接收方收到FIN报文段后,会发送一个ACK报文段进行确认。然后,接收方也会发送一个FIN报文段,表示自己也不再发送数据了。

以上内容参考:网络百科-TCP

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: TCP

“TCP-接收窗口及其工作原理-发送窗口-TCP流量控制-深入理解 (tcp接收数据不完整如何解决)” 的相关文章

TCP-网络协议基础之旅-从零开始掌握 (tcp网络分层)

TCP-网络协议基础之旅-从零开始掌握 (tcp网络分层)

一、TCP/IP协议概述 TCP/IP协议是一组通信协议的集合,其中TCP(传输控制协议)和IP(互联网协议)是最核心的两个协议。TCP负责数据的可靠传输,而IP则负责数据的路由和寻址。通过...

IP-层内存限制的利器-和-MAC-化解-TCP-分段技术 (ip存储空间)

IP-层内存限制的利器-和-MAC-化解-TCP-分段技术 (ip存储空间)

引言 在数据通信中,IP 和 MAC 层在发送数据包时都面临内存受限的问题。这导致了对消息长度的限制,进而对数据传输带来了挑战。为了克服这一限制,TCP 协议在将数据传递给 IP 层之前,需要将...