在TCP協(xié)議中业舍,通過慢開始、擁塞避免升酣、快重傳舷暮、快恢復(fù)4個(gè)機(jī)制來實(shí)現(xiàn)TCP的擁塞控制。對(duì)于以上機(jī)制噩茄,數(shù)據(jù)的發(fā)送方需要維護(hù)慢開始門限值下面、擁塞窗口的大小、接收方窗口大小绩聘。
慢開始
TCP連接開始時(shí)沥割,將擁塞窗口的的初始值為1,然后向接收方發(fā)送擁塞窗口大小的數(shù)據(jù)凿菩,當(dāng)受到接收方的確認(rèn)信號(hào)机杜,將擁塞窗口的大小改成之前的兩倍(若擁塞窗口的大小大于接收窗口,則擁塞窗口就等于接收窗口)衅谷。當(dāng)擁塞窗口的大小大于等于慢開始門限值時(shí)椒拗,則擁塞窗口不再指數(shù)增加,而是線性增加。
擁塞避免
當(dāng)網(wǎng)絡(luò)發(fā)送擁塞蚀苛,即發(fā)送方長(zhǎng)時(shí)間未收到接收方的確認(rèn)信號(hào)在验,則會(huì)觸發(fā)超時(shí)重傳。此時(shí)則會(huì)認(rèn)為當(dāng)前網(wǎng)絡(luò)發(fā)生了擁塞堵未,會(huì)將慢開始門限設(shè)置成當(dāng)前擁塞窗口的大小的二分之一腋舌,然后將擁塞窗口的大小重新設(shè)為1,重復(fù)慢開始動(dòng)作渗蟹。
快重傳
所謂快重傳块饺,就是使發(fā)送方盡快進(jìn)行重傳,而不是等超時(shí)重傳計(jì)時(shí)器超時(shí)再重傳拙徽。要求接收方立即發(fā)送確認(rèn)信號(hào)刨沦,即使收到了失序的報(bào)文端也要立即發(fā)送對(duì)已收到的報(bào)文段的重復(fù)確認(rèn)(接收方接收到的報(bào)文序號(hào)不是連續(xù)的诗宣,則會(huì)重復(fù)發(fā)送上一次有序報(bào)文確認(rèn)信號(hào))膘怕。而發(fā)送方一旦收到連續(xù)3個(gè)的重復(fù)確認(rèn),就將相應(yīng)的報(bào)文段立即重傳召庞,而不是等該報(bào)文段的超時(shí)重傳計(jì)時(shí)器超時(shí)再重傳岛心。對(duì)于個(gè)別丟失的報(bào)文段,發(fā)送方不會(huì)出現(xiàn)超時(shí)重傳篮灼,也就不會(huì)誤認(rèn)為當(dāng)前網(wǎng)絡(luò)擁塞而將擁塞窗口置為1忘古。
快恢復(fù)
發(fā)送方一旦收到3個(gè)重復(fù)確認(rèn),就知道現(xiàn)在是某個(gè)報(bào)文段丟失了诅诱,于是不啟動(dòng)慢開始算法髓堪,而執(zhí)行快恢復(fù)算法:發(fā)送方將慢開始門限和擁塞窗口的大小調(diào)整至當(dāng)前窗口的一半,然后開始開始執(zhí)行擁塞避免動(dòng)作娘荡。