1. 程式人生 > >TCP和UDP協議的區別

TCP和UDP協議的區別

TCP和UDP都是傳輸層的協議

UDP協議的特點:
  • UDP協議是一種無連線的、不可靠的傳輸層協議(盡力而為的協議)
  • 為什麼說UDP是一種無連線、不可靠的協議呢?UDP協議在傳輸報文之前不需要在雙方之間建立連線。
  • UDP協議對報文只提供了一種保證資料傳輸可靠性的措施——可選的校驗和
  • 如果UDP協議檢測出收到的分組出現錯誤,就丟棄分組,不會確認,也不會通知重傳,這也是UDP最大的缺點,傳輸不可靠。當傳遞資料的時候,網路質量不好,就會發生丟包(資料丟失),無法保證資料的傳輸順序。
  • 在傳輸上UDP的傳輸速度非常快,因為在傳輸之前不需要進行確認,傳輸中沒有擁塞,重傳。
    類似於一個廣播的形式,不管你聽不聽,傳送方一直在傳送資料。UDP的效率高,處理速度快,對網路要求不高的的特點使他應用在P2P會話類。可以一對一,一對多,多對一的通訊。適用於實時的語音和視訊傳輸。
TCP協議的特點:
  • 面向連線的傳輸服務,下面是一段形象的總結:

    UDP像是你郵一封信,信郵丟了不知道,寫信的一直以為信已經郵到,之後還會郵信。而TCP像是打電話,如果對方不接電話,雙方永遠不能交流資訊,對方接電話你知道,對方說了什麼你知道,對方掛了電話你也會知道。
    所以TCP協議的傳輸不會出現差錯,丟失,重複(雙方會有確認)

  • 由於是面向連線的協議,TCP協議提高了資料傳輸的可靠性,TCP會有三次握手來建立連線,在傳輸過程中會有重傳,確認,擁塞控制等機制,傳輸完成後還會斷開連線釋放資源。

  • 相比於UDP協議,TCP傳輸速度上會慢,效率低下,時間都浪費在保證資料傳輸的各種機制上。
  • TCP支援全雙工通訊:第一次聽到這個名詞的時候是在微控制器課上,老師詳細的講述了單工,半雙工,全雙工的區別。全雙工就是雙方可以同時在任何時候傳送資料。
  • TCP協議是將資料看成一連串,無結構的位元組流,UDP是面向報文傳輸的。