一、概念
傳輸層位於通信子網和資源子網之間,提供端到端,可靠,全雙工的通信。
二、尋址
TCP協議中傳輸層地址就是TCP端口號,比如FTP: 20/21, TELNET: 23, SMTP: 25, DNS: 53, HTTP: 80
三、連接
三次握手建立連接,四次揮手釋放連接
四、傳輸層協議
(1)UDP
面向報文,只在IP的數據報服務上增加了端口和差錯檢測的功能,是一種不可靠的傳輸。
UDP的報頭只有8個字節:源端口+目的端口+長度+校驗和
(2)TCP
1. 概念
面向字節流,面向連接,提供點對點的可靠全雙工通信。
面向字節表示TCP根據對方的窗口值和擁塞程度來決定一個報文段需要多少字節,而UDP的報文長度是由應用進程決定的。
2. 連接
TCP連接的端點叫做套接字
套接字socket =(IP地址:端口號)
3. 超時重傳
TCP每發送一個報文段,就對該報文段設置一次超時計時器,超時即重傳。
4. 流量控制
採用滑動窗口機制,發送窗口受到接收窗口的調製
一旦收到零窗口通知,就啓動持續計時器,一旦時間到期,則發送零窗口檢測報文,防止死鎖僵局。
5. 擁塞控制
TCP基於窗口進行擁塞控制,維護擁塞窗口cwnd
慢開始:cwnd初始爲1,每經過一個傳輸輪次,翻倍。
當cwnd達到慢開始門限ssthresh之後,進入擁塞避免算法:
擁塞避免算法:cwnd每經過一個傳輸輪次加1
當沒有按時收到確認時,認爲發生擁塞,則進入乘法減小
乘法減小:將ssthresh設置爲出現擁塞時的擁塞窗口的一半,將cwnd的值重新設置爲1,執行慢開始
在TCP Reno協議中,加入了快重傳算法
快重傳算法:在收到3個重複的確認之後執行快重傳算法,將ssthresh設置爲當前cwnd的一半,將cwnd的值設置爲減半後的ssthresh,然後執行擁塞避免算法,讓cwnd線性增加