例如,在TCP Tahoe連接中,如果發生大文件傳輸。突然,接收進程或主機被關閉或暫停,我知道我們將有一個超時,此時窗口大小將被重置,等等。據我瞭解,我們將重新發送未被確認的數據包,然後再試一次,並可能再次?如果接收進程停止或掛起,TCP連接會發生什麼?
我很想知道,在這樣的超時之後,如果在假定接收器不再存在並且數據將停止發送之前有多少次數據將被重新發送,那麼會發生多少次數據。如果進程從暫停狀態恢復,它是否能夠繼續接收數據?
我知道數據在三重複確認或超時後重新發送。但是,如果發生多次重新傳輸失敗,或者接收過程突然停止接收,會發生什麼情況,我找不到太多內容。
如果接收器失去電源,我認爲send()會立即返回-1,並且還得到一個SIGPIPE?重播會在那之前發生嗎? –
@ BinTAN-Victor如果發生這種情況,send()會立即返回嗎?知道接收機關閉的唯一方法是等待確認超時。這需要一兩分鐘,因爲在放棄之前它會重傳幾次。 – Barmar
謝謝你現在對我有意義。如果接收器關閉,阻塞send()是否會立即返回? –