TCP 和 UDP 的區別

TCP 和 UDP 的區別

    TCP 和 UDP 協議是屬於 OSI 模型中的傳輸層協議。
    TCP 提供 IP 環境下的數據可靠傳輸,它具有有效流控、全雙工操作、多路復以及端到端和可靠的數據包發送。UDP 提供面向事務的簡單不可靠信息傳送服務.對可靠性要求低、傳輸經濟的應用。

TCP

    TCP 是基於連接的協議,也就是在正式收發數據前,必須和對方建立可靠的連接(在通信的兩端各建立一個Socket),兩端之間就形成網絡虛擬鏈路,那麼就可以通過虛擬鏈路進行通信。一個 TCP 連接必須要經過三次“握手”才能建立起來。三次“握手”的目的是使數據包的發送和接收同步,經過三次“握手”之後,雙方纔正式發送數據。TCP 支持的應用協議主要有:Telnet、FTP、SMTP。

TCP 優點:
    1、TCP 傳送的信息包是按次序存放好再進行傳送的,接送端收到後再將其進行正確的還原。
    2、TCP 爲了保證數據包的傳輸無誤,接收端收到包後會給發送端一個反饋。
    3、TCP 的重發機制。超過一定時間還沒收到接收端的反饋就自動執行超時重發。(這種重發機制爲應用程序的通信提供可靠的連接。)

TCP 缺點:
1、慢(建立連接、確認與重發機制等都會消耗大量的時間)
2、佔用系統資源高(每個連接都會佔用 CPU、內存等硬件的資源)
3、效率低。

UDP

    UDP 提供無連接通信,不對傳送數據包進行可靠性保證。適合於一次傳輸少量數據。然而 UDP 是使用報頭中的校驗值來保證數據的安全。
    UDP 是無連接的,是一個簡單的面向數據報的運輸層協議。它不對傳送數據包進行可靠性保證,只是把應用程序傳給IP層的數據報發送出去,而且並不能保證數據報能到達目的地。由於UDP在傳輸數據報時沒有像 TCP 在客戶和服務器之間建立一個連接,也沒有超時重發等機制,所以 UDP 的傳輸速度很快。UDP 支持的應用協議主要有:NFS、SNMP、DNS、TFTP。

UDP 優點:
1、UDP 無需連接,直接發送,且 UDP協議的控制選項較少,在數據傳輸過程中延遲小、數據傳輸效率高。
2、UDP 由於沒有 TCP 的那些機制,所以被攻擊者利用的扣動要少一些。
3、UDP 對握手過程進行精簡,減少網絡通信往返次數。
4、UDP 對 TLS 加解密過程進行優化。

UDP 缺點:
可靠性無法保證(UDP 沒有 TCP 那些可靠的機制,故在網絡質量不好時很容易丟包。)

根據 TCP 與 UDP 的優缺點我們來說一下兩者的區別。

⊙ TCP 支持的應用協議主要有:Telnet (遠程登錄)、FTP (文件傳輸協議)、SMTP (簡單網絡管理協議)。

   UDP 支持的應用協議主要有:NFS(網絡文件系統)、SNMP(簡單網絡管理協議)、DNS(主域名稱系統)、TFTP(通用文件傳輸協議)。

⊙ TCP 面向連接、傳輸可靠(保證數據順序以及正確性)、主要用於傳輸數據量大,可靠性要求高的應用、速度慢,建立連接需要開銷較多(時間,系統資源)。

   UDP 面向非連接、傳輸不可靠、速度快、主要用於那些對高速傳輸和實時性有較高要求的通信或廣播通信(儘可能提高傳輸效率)。

⊙ TCP 設計過於冗餘,速度難以進一步提升

   UDP 協議以其簡單、傳輸快的優勢

速度:UDP > TCP
安全:TCP > UDP

發佈了40 篇原創文章 · 獲贊 15 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章