目錄
UDP
UDP的主要特點
- UDP 是無連接的
- UDP 使用最多交付,即不保證可靠交付,同時也不使用擁塞控制
- UDP 是面向報文的。UDP沒有擁塞控制,很適合多媒體的要求
- UDP 支持1對1、1對多、多對1和多對多的交互通信
- UDP 的頭部開銷小,只有 8個字節。
UDP的首部格式
UDP 的首部共20個字節,其中12個是僞首部(網絡層的的一些數據)
檢驗和:需要僞首部和數據的校驗。
TCP
傳輸控制協議 TCP
TCP 概述
- TCP是面向連接的傳輸協議
- 每條TCP連接只能有兩個端點(endpoint),每條TCP連接只能是點對點的(1對1的)
- TCP提供可靠交付的服務
- TCP提供全雙工通信
- 面向字節流 把文件從一個計算機傳遞到另一個計算機。(文件分成多段,先讀到TCP緩存,然後從緩存裏在分段讀取發送。目標計算機拿到後先在緩存,然後從緩存拿到數據再進行組裝成文件。每次讀取都是面向字節的,讀,存,取 ,發的數據大小沒有關係。)
TCP的首部格式
序號: seq 指發送的數據段的第一個字節在整個文件裏的字節的位置。eg: 1234 爲一個數據段序號爲1;56爲一個數據段序號爲5;……
確認號:ack 指收到數據包後給發送的計算機確認信息,確認下一個應該發送的數據包在文件裏的字節;eg :1234收到後會給發送者下次該發5,確認號爲5;56收到後會給發送者下次該發7,確認號爲7;
數據偏移: 1個字節。中的一個1代表4個字節。最多15*4 = 60 ;60 - 20 = 40 ;選項中的可變長度最多爲40字節。
保留 :無用
URG:優先標記位。發送的緩存裏的優先級的指令,可以不在緩存裏排隊。
ACK:確認標記位。用於標記確認號有無效。1有效
SYN:同步時用到。發起會話的數據包。(發送和同意發送)1時爲主動發起連接是數據包
PSH:同 URG 標記位。接收緩存裏的優先級的指令,可以不在緩存裏排隊。
RST:異常中斷。需重新連接
FIN:釋放連接。
窗口:得到對方發送和接收時的緩存大小,進行同步
檢驗和:校驗範圍首部和數據兩部分。同UDP的校驗,協議號爲7;
緊急指針:標記緊急數據的尾部位置。(從0 到標記)
TCP的連接
TCP 是點到點的通信(iP地址+端口 叫套接字socket)。
套接字socket = iP地址+端口 。
每條TCP連接唯一的被通信兩端的兩個端點(即兩個套接字所確定) 即:TCP連接 = {socket1 ,socket2} = { (IP1:port1),(IP2:port2) }
TCP的主要特點
TCP如何實現可靠傳輸?
停止等待協議。沒有收到回覆就會再次發送重複數據。ARQ(自動重傳機請求)。
優點:簡單。缺點:信道利用率太低。
如和提高信道利用:
1、 流水線傳輸。發送方連續發送多個數據包,不等待收到回覆後在發送後面的數據。利用發送窗口發送數據。
2、累計確認:確定連續收到包的最後一個數據加1(應該發送那個數據了)。
一 、以字節爲單位的滑動窗口
丟失時會選擇性確認,只發送丟失的數據段。
超時重傳時間的選擇。取平均往返時間,因爲受到網速帶寬的影響。
TCP 如何實現流量控制?
通過接收端告訴發送端發送窗口的大小來控制。
當接收端收到的數據快要充滿緩存是,接收端會告訴發送方減緩發送。當處理完全時也會處理,告知快速發送。
TCP 如何避免網絡擁塞?
發送方維護一個擁塞窗口。(開始慢的計算原則)
慢開始和擁塞避免算法(先是值數增長達到16後,在線性增長,丟包後回減少發包,減少到丟失前的一半)
快速重傳:發現丟包後立即確認(發送三次),重傳丟失的數據包。
快恢復:出現擁塞後不回覆到指數增長前,回到線性增長位置
TCP的傳輸連接管理
傳輸的三個階段: 建立連接、數據傳輸和連接釋放。
TCP連接的建立都是採用客戶服務方式。(客戶端Client 主動連接服務器 server)
建立連接
三次握手
第三次確認:非同步信息了。爲了防止服務器等待時間過長而造成的資源浪費。
三次握手建立TCP連接的狀態
1、客戶端發送請求連接後的狀態爲:SYN - SENT
2、服務接收到連接請求後然後發送收到的確認,然後的狀態變更爲SYN-RCVD。 (由LISTEN轉變過來的).
3、客戶端收到服務的請求後的狀態後,再發送確認(非同步信息了),客戶端的狀態變爲ESTAB -LISHED .
4、服務接收到客戶端的再次請求後狀態變更爲ESTAB -LISHE;
都變成ESTAB -LISHE狀態後,然後進行數據傳輸。
TCP的連接釋放
客戶端最後等待2MSL(4分鐘):原因是如果最後一個包丟失,服務會一直處於LAST-ACK的狀態。延遲等待後,當包丟失後服務再次發送是還可以響應。
參考 :《韓立剛老師主講 計算機網絡》視頻筆記。僅供自己複習參考使用,如有問題歡迎指出