接收应用程序如何处理 TCP 数据包有效负载中的错误?收到数据包,但由于各种原因(包括故意发送错误数据包),数据包的有效负载是意外/格式错误,因此应用程序无法处理它(或确实以某种方式处理它,但仍然缺少原始/预期数据)。
应用程序会发送 ACK 吗?是否会像丢包一样处理数据包并发生重传?它通常取决于应用程序还是这种错误处理独立于操作系统或应用程序?
接收应用程序如何处理 TCP 数据包有效负载中的错误?收到数据包,但由于各种原因(包括故意发送错误数据包),数据包的有效负载是意外/格式错误,因此应用程序无法处理它(或确实以某种方式处理它,但仍然缺少原始/预期数据)。
应用程序会发送 ACK 吗?是否会像丢包一样处理数据包并发生重传?它通常取决于应用程序还是这种错误处理独立于操作系统或应用程序?
ACK 在网络/传输层发送,而不是在应用层发送。如果有效载荷被损坏以致 TCP 校验和失败,则该数据包被简单地丢弃,即视为丢失。由于没有收到 ACK,因此对等方将重新传输数据。如果有效负载损坏但校验和没有失败(例如,发送方应用程序中存在错误或网络层错误过多 - TCP 校验和无法处理任意错误),那么这些损坏的数据将传播到应用程序并且它需要来处理这个。