例如,在TCP Tahoe连接中,如果正在进行大文件传输。突然,接收进程或主机关闭或暂停,我知道我们会有一个超时,在此时窗口大小将被重置等。据我所知,我们会重新发送未确认的数据包,然后再次尝试发送,可能会重复多次?
然而,我想知道,在这样的超时之后,数据会被重新发送多少次,才会假定接收方不再存在,并停止发送数据。如果进程从暂停状态恢复,它是否能够继续接收数据?
我知道在三次重复确认或超时后会重新传输数据。然而,我无法找到更多关于多个重新传输失败会发生什么,或者如果接收进程突然停止接收的信息。
然而,我想知道,在这样的超时之后,数据会被重新发送多少次,才会假定接收方不再存在,并停止发送数据。如果进程从暂停状态恢复,它是否能够继续接收数据?
我知道在三次重复确认或超时后会重新传输数据。然而,我无法找到更多关于多个重新传输失败会发生什么,或者如果接收进程突然停止接收的信息。
send()
如何立即返回?唯一知道接收方已关闭的方法是等待确认超时。在放弃之前,它会重新传输多次,因此需要一两分钟的时间。 - Barmar