欢迎来到山村网

TCP超时/丢失重传

2019-03-09 08:35:07浏览:640 来源:山村网   
核心摘要:  Nagle算法要求一条TCP连接上最多只有一个未被确认的报文,发送方发送一个TCP报文,接收方确认该报文,发送方再发送下一个报

  Nagle算法要求一条TCP连接上最多只有一个未被确认的报文,发送方发送一个TCP报文,接收方确认该报文,发送方再发送下一个报文,若发送方在一定时间内未收到确认,则再重发报文。相对来说Nagle算法相对简单且不容易出错,但却降低了网络的吞吐量,也增加了网络流量。

  在实际的TCP实现中,接收方往往一次确认一批的TCP报文,且确认报文与接收方发往发送方的报文一同回复,以减少网络流量,从另一方面说也就允许发送方在前一报文未确认时,可以继续发送下一个报文,虽然这种实现提高了吞吐量,但却带来了另一个问题,即发送文如何确认报文被接收方正确接收?

  TCP有两种方式来保证报文被正确接收:

  1:发送端在一定时期内未收到报文确认,报文重发

  2:接收端检测到某一报文丢失,重复发送ACK报文(3个以上),以促使发送端重发丢失报文。这就是快速重传机制。

  通常,发送端会重传接收方未收到的报文,但不会重传已经被接收方收到但并未确认的包,然后接收方将收到的报文排序后进行一并确认,

  如上图,由于某种原因,发送端发给接收端的数据包序号1025,丢失了序号为1的包(250839)

  此时接收端对序号1进行了确认,发送端重发了序号1,此时接收端已经有了2484个字节,序号1中有1024个字节,序号1025中的1460个字节,接收端这时回复一个确认2485的AC包。

(责任编辑:豆豆)
下一篇:

电信、联通宽带不能共享上网的解决方法

上一篇:

linux中php如何安装CURL扩展方法示例教程

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com