2021-05-12 14:32:11
TCP/UDP協定簡要梳理
TCP/UDP協定簡要梳理
TCP
TCP,Transmission Control Protocol,傳輸控制協定是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協定。在因特網協定族中,TCP所在的層位於IP層之上,應用層之下。
TCP面向連線。其實網路上的傳輸是沒有連線的,包括TCP也是如此。而TCP所謂的“連線”,其實只不過是在通訊的雙方維護一個“連線狀態”,從而從應用層看,它們是連線在一起的。所以,TCP的狀態變換非常重要。尤其在進行資料傳遞前的三次握手和資料傳遞完畢之後的四次揮手操作。
可靠性是指TCP協定能確保,傳送資料的一端能知曉資料是否安全到達接收方了。
基於位元組流。TCP不在位元組流中插入記錄識別符號,一個位元組8bit,在8bit中,不會插入資料。因此TCP不知道傳輸的資料位元組流是二進位制資料還是ASCII字元。
報文段結構
其他特點:全雙工協定、半關閉、錯誤檢查、將資料打包成段、排序、確認反饋、流量控制(擁塞控制)。
tcp如何確保資料的可靠性?
要確保資料可靠的到達目的端系統,主要可以從兩方面考慮:一是保證將提交給它的所有資料都傳送出去;二是能夠保證到達目的主機的資料都是可以檢測是否準確的,不受損壞且順序不變。通過以下幾個特點來保證資料可靠傳輸:
- 分割。應用資料被分割成TCP最合適傳送的資料塊
- 反饋。當收到另一端的資料,它將傳送一個確認包。這個確認包有一定的延時性
- 重傳。當TCP發出一個包之後,它啟動一個定時器,等待目的端反動確認收到的包,如果沒有收到確認包,就重發這個報文段
- 差錯檢測
- 排序。可以對收到的封包進行排序,然後提交到應用層
- 去重。對於重複資料,能夠自行丟棄
- 流量控制(擁塞控制)。
- 三次握手和四次揮手過程
UDP
UDP,User Datagram Protocol,使用者資料包協定是OSI參考模型中一種無連線的傳輸層協定,提供面向事務的簡單不可靠資訊傳送服務。
無連線,相對於TCP,傳送資料前沒有三次握手,也沒有資料傳送完成之後的四次揮手過程。
不可靠,不能確保資料是否安全達到接收方
分組首部開銷小。每個TCP報文段都有20個位元組的首部開銷,而UDP僅需要8個位元組
UDP報文段結構:
特點:無連線,不可靠,輕量,支援封包正確性檢測
比較異同
相同點:都屬於傳輸層協定;都沒有提供加密機制,不過有另一種協定——安全通訊端協定SSL(Secure Sockets Layer),有加密機制。支援對封包檢測
不同點:
|
TCP |
UDP |
是否面向連線 |
是,三次握手和四次揮手 |
否 |
可靠性 |
可靠,提供確認反饋、超時重發,丟棄重複資料、流量控制 |
不可靠 |
負載大小 |
20+位元組 負載相對大 |
8個 負載相對小 |
報文段構成 |
序號、確認號、資料偏移、控制標誌視窗、校驗和、緊急指標、選項等 |
長度、校驗 |
使用場景 |
需確保資料完整性,對時效性要求略低。檔案下載和上傳 |
時效性要求很高。像現在的流行的直播,視訊電話 |
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-10/148095.htm
相關文章