通常TCP在接收到数据时并不会立即发送ACK,相反,它推迟发送,以便将ACK与需要沿该方向发送的数据一起发送(有时称这种现象为数据捎带ACK)。绝大多数实现采用时延为200ms,也就是说,TCP将以最大200ms的时延等待是否有数据一起发送。
经受时延是因为TCP使用了一个200ms的定时器,该定时器以相对于内核引导的200ms固定时间溢出。由于将要确认的数据是随机到达的,TCP在内核的200ms定时器的下一次溢出时得到通知。
Host Requiremets RFC声明TCP需要实现一个经受时延的ACK,但时延必须小于500ms。