2
如果我的程序打開一個TCP套接字,但是讀取的速度不夠快,會發生什麼情況。也就是說,我的程序讀取的字節數比客戶端寫入的字節數少。與TCP的Stackoverflow?
當TCP緩衝區被完全填滿會發生什麼?我假設TCP不會將ACK發送回客戶端,因此客戶端(在不斷增加退避時間後)會嘗試再次發送,直到服務器套接字再次接受一些字節。所以我絕不會鬆動字節 - 除非客戶放棄重試(但是他們會知道發送失敗)。它是否正確?
如果我的程序打開一個TCP套接字,但是讀取的速度不夠快,會發生什麼情況。也就是說,我的程序讀取的字節數比客戶端寫入的字節數少。與TCP的Stackoverflow?
當TCP緩衝區被完全填滿會發生什麼?我假設TCP不會將ACK發送回客戶端,因此客戶端(在不斷增加退避時間後)會嘗試再次發送,直到服務器套接字再次接受一些字節。所以我絕不會鬆動字節 - 除非客戶放棄重試(但是他們會知道發送失敗)。它是否正確?
TCP功能內置流量控制信號通過窗口大小到另一邊。該值告訴發送者接收者可以緩衝多少個字節。一旦下降到零,發送者不能發送更多的數據,並等待再次打開。
一旦空間打開,服務器將發送一個新的窗口大小的ACK。但是,爲了處理數據包丟失的情況,客戶端會定期嘗試發送一個數據包。如果接收有空間,它將確認收到的數據(併發送新的窗口大小),並繼續通信。如果窗口仍然已滿,則不會發送任何響應。 – 2015-04-02 03:15:36