售前電話
135-3656-7657
售前電話 : 135-3656-7657
TCP擁塞控制
TCP擁塞控制也采用窗口機制,稱為擁塞窗口,窗口大小根據(jù)網(wǎng)絡擁塞情況動態(tài)調(diào)整。由于目前通信線路大都采用光纖,誤碼率極低,報文段重發(fā)的原因基本上是傳輸時延過長,因此可以用超時重發(fā)作為網(wǎng)絡擁塞的檢測標志。
擁塞窗口調(diào)整有兩種常用算法:
1.慢速起動算法
擁塞窗口初值置為連接的最大段長。發(fā)送方一開始就發(fā)送一個最大報文段。如果在定時器到時前收到確認,則擁塞窗口大小加倍、發(fā)送方再發(fā)送兩個最大報文段。一般來說,如果擁塞窗口為n個最大段長,發(fā)出n個最大報文段都收到正常確認,則擁塞窗口大小增加為2n;接若如果發(fā)出2n個最大報文段后發(fā)生超時重傳,則擁塞窗口退回n。該算法名為慢速起動,實際上窗口大小呈幾何級數(shù)增長,速度非常快。這是所有TCP實現(xiàn)必須支持的基本算法。
2.門限算法
在慢速算法的基礎上增加一個門限參數(shù)。門限初值為64kB。當發(fā)生超時重傳時,門限值減為當前擁塞窗口的一半,擁塞窗口復位到一個最大段長。然后用慢速起動算法逐漸加大擁塞窗口。當擁塞窗口大小達到門限值后,轉(zhuǎn)為線性增長,也就是每發(fā)出一組長度等于擁塞窗口的報文并正常確認后,擁塞窗口增加一個最大段長。
圖2.40說明這一過程:
設,連接的最大段長為1KB,擁塞窗口初值為64kB,發(fā)生超時重傳,于是門限減半為32kB,擁塞窗口退為1KB,按慢速起動法兒何增長。至第6次發(fā)送時擁塞窗口到達32kB,其后改為線性增長。至第13次發(fā)送40kB報文后發(fā)生重傳,于是門限又減半為16kB,擁塞窗口重新回到1KB,重復以上過程。
需要指出的是,考慮到擁塞控制后,TCP層有兩個窗口:傳輸滑功窗口和擁塞窗口,前者由接收方根據(jù)緩沖區(qū)可用空間動態(tài)調(diào)整,后者由發(fā)送方根據(jù)重傳情況自適應調(diào)整。TCP實際允許發(fā)送的字節(jié)數(shù)為兩個窗口中的較小值。
用戶數(shù)據(jù)協(xié)議(UDP)
UDP提供的是無連接的運輸層服務,過程簡單,但不可靠。許多只包含一次請求和一次響應的客戶-服務器應用都采用UDP,因為它無需建連和拆連。話音、視頻等實時信號傳送只能U用DP,因為它們無法重傳。
UDP的頭部結構如圖2.41所示:
其長度為8個字節(jié)。源和目的端口的意義和TCP相同。由于它們是兩個不同的協(xié)議(NSAP),因此可以獨立分配各自的端口號。如果一個進程既能使用TCP,也能使用UDP服務,一般傾向于在兩個協(xié)議中分配相同的端口號。UDP長UDP段的頭部結構度包括頭部和數(shù)據(jù)部分。UDP校驗和的計算和TCP相同,校驗對象包括段頭部、數(shù)據(jù)部分和圖2.33所示的偽頭部。