TCP报文到达确认(ACK)机制

原创 2011年07月14日 15:29:53
        TCP数据包中的序列号(Sequence Number)不是以报文段来进行编号的,而是将连接生存周期内传输的所有数据当作一个字节流,序列号就是整个字节流中每个字节的编号。一个TCP数据包中包含多个字节流的数据(即数据段),而且每个TCP数据包中的数据大小不一定相同。在建立TCP连接的三次握手过程中,通信双方各自已确定了初始的序号x和y,TCP每次传送的报文段中的序号字段值表示所要传送本报文中的第一个字节的序号。
        TCP的报文到达确认(ACK),是对接收到的数据的最高序列号的确认,并向发送端返回一个下次接收时期望的TCP数据包的序列号(Ack Number)。例如,主机A发送的当前数据序号是400,数据长度是100,则接收端收到后会返回一个确认号是501的确认号给主机A。
        TCP提供的确认机制,可以在通信过程中可以不对每一个TCP数据包发出单独的确认包(Delayed ACK机制),而是在传送数据时,顺便把确认信息传出,这样可以大大提高网络的利用率和传输效率。同时,TCP的确认机制,也可以一次确认多个数据报,例如,接收方收到了201,301,401的数据报,则只需要对401的数据包进行确认即可,对401的数据包的确认也意味着401之前的所有数据包都已经确认,这样也可以提高系统的效率。
        若发送方在规定时间内没有收到接收方的确认信息,就要将未被确认的数据包重新发送。接收方如果收到一个有差错的报文,则丢弃此报文,并不向发送方发送确认信息。因此,TCP报文的重传机制是由设置的超时定时器来决定的,在定时的时间内没有收到确认信息,则进行重传。这个定时的时间值的设定非常重要,太大会使包重传的延时比较大,太小则可能没有来得及收到对方的确认包发送方就再次重传,会使网络陷入无休止的重传过程中。接收方如果收到了重复的报文,将会丢弃重复的报文,但是必须发回确认信息,否则对方会再次发送。
        TCP协议应当保证数据报按序到达接收方。如果接收方收到的数据报文没有错误,只是未按序号,这种现象如何处理呢?TCP协议本身没有规定,而是由TCP协议的实现者自己去确定。通常有两种方法进行处理:一是对没有按序号到达的报文直接丢弃,二是将未按序号到达的数据包先放于缓冲区内,等待它前面的序号包到达后,再将它交给应用进程。后一种方法将会提高系统的效率。例如,发送方连续发送了每个报文中100个字节的TCP数据报,其序号分别是1,101,201,…,701。假如其它7个数据报都收到了,而201这个数据报没有收到,则接收端应当对1和101这两个数据报进行确认,并将数据递交给相关的应用进程,301至701这5个数据报则应当放于缓冲区,等到201这个数据报到达后,然后按序将201至701这些数据报递交给相关应用进程,并对701数据报进行确认,确保了应用进程级的TCP数据的按序到达。

TCP的ACK确认系列 — 快速确认

主要内容:TCP的快速确认、TCP_QUICKACK选项的实现。 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd   快速确认模式   (1) 进入快速确...

TCP的核心系列 — ACK的处理(一)

TCP发送数据包后,会收到对端的ACK。通过处理ACK,TCP可以进行拥塞控制和流控制,所以 ACK的处理是TCP的一个重要内容。tcp_ack()用于处理接收到的ACK。 本文主要内容:TCP接收...
  • zhangskd
  • zhangskd
  • 2013年08月12日 15:58
  • 10558

TCP的ACK原理和延迟确认机制

一、ACK定义TCP协议中,接收方成功接收到数据后,会回复一个ACK数据包,表示已经确认接收到ACK确认号前面的所有数据。ACK字段长度为32位,能表示0~2^32-1之间的值。二、ACK作用发送方在...
  • gamekit
  • gamekit
  • 2016年12月27日 20:27
  • 2577

TCP的ACK确认系列 — 发送状态转换机

主要内容:TCP的ACK发送方式,以及ACK发送状态转换机的实现。 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd   概述   TCP采用两种方式来发送...

TCP协议——SYN/ACK的使用以及滑动窗口机制

TCP协议是传输层协议,提供的是一种面向连接的可靠的服务

协议设计中ACK机制的影响

在TCP/IP中,延时ACK和Nagle算法。 TCP为了同时处理成块数据(通常为512字节的用户数据)和交互数据(通常用户数据比较少,例如不大于10个字节),采用了延时ACK和Nagle算法来处理...
  • tietao
  • tietao
  • 2015年07月05日 16:48
  • 1199

TCP重传与确认机制

TCP片段重传计时器以及重传队列:TCP按照以下特定顺序工作:1.放置于重传队列中,计时器开始 包含数据的片段一经发送,片段的一份复制就放在名为重传队列的数据结构中,此时启动重传计时器。因此,在某些时...

网络基本功(十):细说TCP确认机制

网络基本功(十):细说TCP确认机制   转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese      介绍 ...
  • mxway
  • mxway
  • 2015年01月16日 21:42
  • 2365

TCP的工作机制详解

TCP的特点及其目的为了通过IP数据报实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等,TCP通过校验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制等实现可靠...

TCP/IP 机制的理解

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示: SYN(synchronous同部位),tcp握手的第一次 ACK(ac...
  • asd8705
  • asd8705
  • 2016年07月01日 11:20
  • 556
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCP报文到达确认(ACK)机制
举报原因:
原因补充:

(最多只允许输入30个字)