TCP超时/丢失重传

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

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

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

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

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



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

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

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

(0)

相关推荐

  • TCP协议的一些认识及实践知识简介

    一、简介 引用《TCP/IP详解-卷1》中的介绍,TCP与UDP使用相同的网络层(IP层),TCP却向应用层提供了与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。 所谓面向连接的, ...

  • 网件路由器的正确设置方法

    一、家庭或小型办公室所用的宽带多为ADSL拨号,线路是有网络提供商供应一条宽带光纤、电话线或网线直接到家,我们在设置前先要将外接的线路接到路由器上,如果有ADSL猫的,那么就将电话接到猫上,连接到路由 ...

  • 快速配置网件无线路由器的过程介绍

    一、设置广域网上网 在该选项里有PPPOE拨号、即固定ip、DHCP等,大多为PPPOE拨号和固定ip,对应选择就可以了,无论选择哪一种,必然要确保填写准确,另外不要遗忘填写静态DNS,不清楚的可以咨 ...

  • TCP是什么意思以及服务特点介绍

    网友提问:TCP是什么意思?TCP协议含义全解析 TCP指的是传输控制协议。它是一种面向连接导向的、可靠地及基于字节流的运输层通信协议。而在接触TCP中还有UDP,UDP也是一项重要的传输协议。TCP ...

  • 图解TCP通信三次握手和四次分手

    TCP协议非常重要,这里把它的连接和释放整理一下。 首先是三次握手: 1、 客户端发起,像服务器发送的报文SYN=1,ACK=0,然后选择了一个初始序号:seq=x。 SYN是干什么用的? 在链接的时 ...

  • tcp四种定时器详解

    大家都知道,定时器在TCP可靠传输的过程中起着举足轻重的作用。TCP在建立连接之后可能(保活keep-alive定时器是可选的)会启动四个定时器。 TCP使用四种定时器(Timer,也称为“计时器”) ...

  • TCP是什么意思?

    网友提问:TCP是什么意思?TCP协议含义全解析 TCP指的是传输控制协议。它是一种面向连接导向的、可靠地及基于字节流的运输层通信协议。而在接触TCP中还有UDP,UDP也是一项重要的传输协议。TCP ...

  • 如何解决TCP窗口与拥塞? TCP窗口与拥塞控制的解决办法

    计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。拥塞控制就是防止过多的数据注 ...

  • cisco路由器上配置TCP拦截

     大家先回顾一下我之前发的“ACL中的established选项”中关于TCP的内容。 之前说过,TCP建立连接的三次握手过程中,一方向另一方发送的第一个报文设置了SYN位,当某台设备接收到一个请求服 ...