滑動窗口、超時重傳、選擇確認SACK
滑動窗口
滑動窗口:發(fā)送窗口、接收窗口。
發(fā)送窗口內(nèi)的數(shù)據(jù)都可以發(fā)送,在收到新的確認請求后可變化后沿。發(fā)送窗口里存在2部分數(shù)據(jù):已經(jīng)發(fā)送到?jīng)]有接受到確認,允許發(fā)送但尚未發(fā)送。發(fā)送方根據(jù)接收到的窗口大小、確認序號來確認窗口的大小。
接收窗口,是接受端的,接受的數(shù)據(jù)不一定按序到達,接收必須收到從窗口第一個字節(jié)連續(xù)的數(shù)據(jù)后才能發(fā)送確認信息。
可以通過設置滑動窗口大小來進行流量控制。
可靠性傳輸
TCP通過超時重傳來實現(xiàn)可靠傳輸。當一個已經(jīng)發(fā)送報文在超時時間內(nèi)沒有收到確認,那么就重傳這個報文
關鍵在于超時時間RTO的選擇
RTT:一個報文段從發(fā)送再到接收到確認所經(jīng)過的時間稱為往返時間,即RTT。
RTTs:加權往返時間
RTTs = (1-a)(RTTs)+aRTT
a選擇0.125
RTO=RTTs+4 * RTTd
RTTd為RTT偏差的加權平均值,與RTTs和新的RTT樣本有關
重傳后,收到的確認信號,不知道是第一次發(fā)的還是第二次的的的確認怎么辦?
重傳的不考慮進去,計算rto時。
選擇確認SACK
確認不連續(xù)到到達的數(shù)據(jù),減少重傳的數(shù)據(jù)量
擁塞控制
通過控制發(fā)送的發(fā)送速率,降低網(wǎng)絡的擁塞程度。
發(fā)送方維護一個叫擁塞窗口(cwnd)的狀態(tài)變量。
慢開始和擁塞避免
慢開始是值,發(fā)送的最初階段速度很慢