14、90秒快速“讀懂”TCP、UDP協議及報文格式

傳輸層定義了主機應用程序之間端到端的連通性。傳輸層中最為常見的兩個協議分別是

傳輸控制協議TCP ( Transmission Control Protocol)用戶數據包協議UDP(User Datagram Protocol)。


一、TCP (Transmission Control Protocol)

TCP位於TCP/IP模型的傳輸層,它是一種面向連接的端到端協議。TCP作為傳輸控制協議可以為主機提供可靠的數據傳輸。

14、90秒快速“讀懂”TCP、UDP協議及報文格式

TCP端口號

端口號用來區分不同的網絡服務。

14、90秒快速“讀懂”TCP、UDP協議及報文格式

TCP允許一個主機同時運行多個應用進程。每臺主機可以擁有多個應用端口,每對端口號、 源和目標IP地址的組合唯一地標識了一個會話。

端口分為知名端口動態端口

有些網絡服務會使用固定的端口,這類端口稱為知名端口,端口號範圍為0-1023。如FTPHTTPTelnet, SNMP服務均使用知名端口。

動態端口號範圍從1024到65535,這些端口號一般不固定分配給某個服務。


TCP報文頭部

14、90秒快速“讀懂”TCP、UDP協議及報文格式

源端口: 數據發送方的端口號。

目的端口: 數據接受方的端口號。

序列號:本數據報文中的的第一個字節的序列號。

確認號:希望收到的下一個數據報文中的第一個字節的序號。

URG:值為1時表示次報文段中有需要緊急處理。

ACK:值為1時確認號有效,值為0時確認號無效。

PSH:值為1時有 DATA數據傳輸。

RST:值為1時表示TCP連接存在嚴重的錯誤,需要重新進行連接。

SYN:值為1表示這是一個連接請求或連接接受報文。

FIN: 值為1表示要發送的數據報已經發送完畢,需要斷開連接。

窗口字段:TCP連接的一端根據緩存空間的大小來確定自己接受窗口的大小,限制發送放的窗口上限。

檢驗和:用來檢驗首部和數據兩部分的正確性。

緊急指針字段:本報文緊急數據的最後一個字節的序號。


二、UDP (User Datagram Protocol)

UDP是一種面向無連接的傳輸層協議,傳輸可靠性沒有保證

14、90秒快速“讀懂”TCP、UDP協議及報文格式

當應用程序對傳輸的可靠性要求不高,但是對傳輸速度延退要求較高時,可以用UDP協議來替代TCP協議在傳輸層控制數據的轉發。UDP將數據從源端發送到目的端時,無需事先建立連接。UDP採用了簡單、易操作的機制在應用程序間傳輸數據,沒有使用TCP中的確認技術滑動窗口機制,因此UDP不能保證數據傳輸的可靠性,也無法避免接收到重複數據的情況。


UDP報文頭部

UDP頭部僅佔8字節,傳輸數據時沒有確認機制。

UDP適合於實時數據傳輸,如語音視頻通信。相比於TCP,UDP的傳輸 效率更高、開稍更小,但是無法保障數據傳輸的可靠性。

14、90秒快速“讀懂”TCP、UDP協議及報文格式

源端口: 數據發送方的端口號。

目的端口: 數據接受方的端口號。

UDP長度:UDP報文的字節長度(包括首部和數據)。

UDP校驗和: 檢驗UDP首部和數據部分的正確性。


分享到:


相關文章: