TCP 和 UDP 的區別

來源:互聯網
上載者:User

TCP 和 UDP 的區別

     TCP和UDP是TCP/IP協議中的兩個傳輸層協議,它們使用IP路由功能把資料包發送到目的地,從而為應用程式及應用程式層協議(包括:HTTP、SMTP、SNMP、FTP和Telnet)提供網路服務。TCP提供的是連線導向的、可靠的資料流傳輸,而UDP提供的是非連線導向的、不可靠的資料流傳輸。連線導向的協議在任何資料轉送前就建立好了點到點的串連。ATM和框架轉送是連線導向的協議,但它們工作在資料連結層,而不是在傳輸層。普通的音頻電話也是連線導向的。

      可靠的傳輸協議可避免資料轉送錯誤。其實現方式是:在構造資料包時在其中設定校正碼,到達目的地後再採用一定的演算法重新計算校正碼,通過比較二者,就可以找出被破壞了的資料。因為需要重發被破壞了的和已經丟失的資料,所以在需要重發資料時協議必須能夠使目的地給出源頭的一個確認訊號。有些資料包不一定按照順序到達,所以協議必須能夠探測出亂序的包,暫存起來,然後把它們按正確的次序送到應用程式層中去。另外,協議還必須能夠找出並丟棄重複發送的資料。一組定時器可以限制針對不同確認的等待時間,這樣就可以開始重新發送或重建立立串連。 

     資料流傳輸協議不支援位傳輸。TCP不能在一個包內以位元組或位為單位構造資料,它只負責傳輸未經構造的8位字串。 

     非連線導向的傳輸協議在資料轉送之前不建立串連,而是在每個中間節點對非連線導向的包和資料包進行路由。沒有點到點的串連,非連線導向的協議,如UDP,是不可靠的串連。當一個UDP資料包在網路中移動時,發送過程並不知道它是否到達了目的地,除非應用程式層已經確認了它已到達的事實。非連線導向的協議也不能探測重複的和亂序的包。標準的專業術語用“不可靠”來描述UDP。在現代網路中,UDP並不易於導致傳輸失敗,但是你也不能肯定地說它是可靠的。 

連線導向的TCP
     TCP(Transmission Control Protocol,傳輸控制通訊協定)是基於串連的協議,也就是說,在正式收發資料前,必須和對方建立可靠的串連。一個TCP串連必須要經過三次“對話”才能建立起來,其中的過程非常複雜,我們這裡只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機A向主機B發出串連請求資料包:“我想給你發資料,可以嗎?”,這是第一次對話;主機B向主機A發送同意串連和要求同步(同步就是兩台主機一個在發送,一個在接收,協調工作)的資料包:“可以,你什麼時候發?”,這是第二次對話;主機A再發出一個資料包確認主機B的要求同步:“我現在就發,你接著吧!”,這是第三次對話。三次“對話”的目的是使資料包的發送和接收同步,經過三次“對話”之後,主機A才向主機B正式發送資料。 
     TCP協議能為應用程式提供可靠的通訊串連,使一台電腦發出的位元組流無差錯地發往網路上的其他電腦,對可靠性要求高的資料通訊系統往往使用TCP協議傳輸資料。

面向非串連的UDP協議
      UDP(User Data Protocol,使用者資料包通訊協定)是與TCP相對應的協議。它是面向非串連的協議,它不與對方建立串連,而是直接就把資料包發送過去! 這與現在風行的手機簡訊非常相似:你在發簡訊的時候,只需要輸入對方手機號就OK了。
     UDP適用於一次只傳送少量資料、對可靠性要求不高的應用環境。比如,我們經常使用“ping”命令來測試兩台主機之間TCP/IP通訊是否正常,其實 “ping”命令的原理就是向對方主機發送UDP資料包,然後對方主機確認收到資料包,如果資料包是否到達的訊息及時反饋回來,那麼網路就是通的。例如,在預設狀態下,一次“ping”操作發送4個資料包(2所示)。大家可以看到,發送的資料包數量是4包,收到的也是4包(因為對方主機收到後會發回一個確認收到的資料包)。這充分說明了UDP協議是面向非串連的協議,沒有建立串連的過程。正因為UDP協議沒有串連的過程,所以它的通訊效果高;但也正因為如此,它的可靠性不如TCP協議高。QQ就使用UDP發訊息,因此有時會出現收不到訊息的情況。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.