TCP—经受时延、nagle算法、滑动窗口、拥塞窗口



经受时延:

  • TCP在接收到数据时并不立即发送ACK,相反,它推迟发送,以便将ACK与需要沿该方向发送的数据一起发送,时延为200ms,超过时延范围,发送确认。

nagle算法:

  • 该算法主要用于避免过多小分节报文在网 络中传输,从而降低网络容量利用率。比如一个20字节的TCP首部+20字节的IP首部+1个 字节的数据组成的TCP数据报,有效传输通道利用率只有将近1 /40。如果网络充斥着这样 的小分组数据,则网络资源的利用率是相当低下的。
  • 一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组。TCP收集这些少量的分组,在确认到来时以一个分组的方式发出去。

滑动窗口

  • TCP使用滑动窗口协议来实现流量控制。该协议允许发送方在停止并等待 确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等 待确认,因此该协议可以加速数据传输。

  • TCP连接的两端各维护了一个发送窗口和一个接收窗口,发送方窗口的大 小由接收方确定,目的在于控制发送速度,以免接收方的缓存不够大,而 导致溢出,同时也可以避免网络拥塞。如图所示,接收方通告的窗口成为 提出的窗口(offered window),它覆盖了第4字节到第9字节的区域。它表 明第4字节之前的数据已经发送并被对端确认,4-6为已经发送但未被确认 的字节,7-9是等待发送的字节,通告窗口的大小为6,这个窗口值是由接 收端告知的。当接收方确认数据后这个滑动窗口不停地向右移动。

  • 窗口的左边沿向右边沿靠近为窗口合拢。这种现象发生在数据被发送的确认时。

  • 当窗口右边沿向右边移动时,将允许发送更多的数据,称为窗口张开,发生在另一端的接收进程读取已经确认的数据并释放了TCP的接收缓存时。 当右边沿向左移动时,称为窗口,不建议使用这种方式。

拥塞窗口

  • 当与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为1个报文段。每收到一个ACK,拥塞窗口就增加一个报文段。发送方取拥塞窗口与通告窗口中的最小值做为发送上限。

你可能感兴趣的:(unp)