linux tcp / ip:有没有机会确认数据包但出于任何原因掉线?

时间:2015-06-23 06:37:06

标签: linux tcp

我假设网卡处理tcp确认。但是在确认之后,直到数据包到达应用层,有任何机会,数据包因任何原因被丢弃。

2 个答案:

答案 0 :(得分:0)

  
    

我假设网卡处理tcp确认。但是在确认之后,直到数据包到达应用层,有任何机会,数据包因任何原因被丢弃。

  

没有。网卡不处理TCP确认。它是TCP层本身。数据包将在到达时被确认。应用程序甚至需要调用recv。一旦应用程序从缓冲区中读取,它将从缓冲区中删除。

答案 1 :(得分:0)

网卡不处理TCP确认(除了offload the entire stack到硬件中的一些非常昂贵的设备外。

充其量只是accelerating the calculation的网络校验和,但除了核心datalinkphysical layer MAC和PHY任务之外,其他任何事情都不多。

acks由第4层的TCP模块处理,不存在,第4层和应用层之间不可能丢弃数据。如果您从应用程序API中消耗数据的速度太慢,那么TCP会通过“closing the window”对发送方实施流量控制,以防止它发送的数据超过您在网络缓冲区中可用的数据。