如果接收进程停止或暂停,TCP连接会发生什么?

Cor*_*oss 1 networking tcp

例如,在TCP Tahoe连接中,如果发生大文件传输.突然接收进程或主机被关闭或暂停,我知道我们将有一个超时,此时窗口大小将被重置等.据我所知,我们将重新发送未确认的数据包,然后再试一次,又可能呢?

我想知道,在这样的超时之后,在假定接收器不再存在并且数据将停止发送之前,将重新发送数据的次数.如果从暂停状态恢复进程,它是否能够继续接收数据?

我知道在三次重复确认或超时后重新传输数据.但是,如果有多次重传失败,或者接收过程突然停止接收,我发现会发生什么事情,我找不到太多内容.

Bar*_*mar 6

如果接收进程退出或被终止,则其末端的套接字将被关闭.当发送方继续发送数据包时,它们应该提示RST数据包,这将立即导致错误(ECONNRESET).

如果接收主机干净地关闭,它应该杀死所有进程,这将导致上述情况发生.

如果接收主机和进程处于活动状态,但进程暂停(例如Ctl-z),则不会在TCP级别检测到任何问题.窗口最终将填满,但接收系统将继续确认零窗口探测器.要检测此情况,您需要一个应用程序层保持活动机制.

如果接收主机崩溃,断电或其网络连接失败,那么重传超时变得相关.重传的数量和频率取决于实现,也可以由系统配置参数控制.我不知道什么是典型的参数.

如果接收系统在超时发生之前重新启动,它将使用RST数据包重新进入下一次重传,这将导致ECONNRESET错误.