計算機網絡中TCP、IP協議的對比

在OSI模型中,運輸層的作用是向它的上層提供通信服務,它是面向通信部分的最高層,同時也是用戶功能中的最底層。運輸層爲應用進程之間提供端到端的邏輯通信,而網絡層是以主機爲個體的概念。運輸層還需要對收到的報文進行差錯檢測。運輸層有兩種不同的運輸協議:

用戶數據報協議UDP(User Datagram Protocol)
UDP在傳送數據之前不需要建立連接。接收方在收到UDP報文後,不需要給出任何確認。正因爲如此,UDP無法提供可靠的交付,但是在某些場景下,比如在線視頻等對數據的精確度要求不高而對效率要求較高的情況下,UDP是一種更好的傳輸協議。

UDP協議有如下特點:

  1. UDP是一個非連接的協議,傳輸數據之前源端和終端不需要建立連接,當它想傳送時就簡單地區抓取來自應用程序的數據,並儘可能快地把它扔到網絡上。在發送端,UDP傳送數據的速度僅僅是受應用程序生成數據的速度、計算機的能力和傳輸帶寬的限制;在接收端,UDP把每個消息段放在隊列中,應用程序每次從隊列中讀一個消息段。
  2. 由於傳輸數據不建立連接,因此也就不需要維護連接狀態,包括收發狀態等,因此一臺服務機可同時向多個客戶機傳輸相同的消息。
  3. UDP信息包的標題很短,只有8個字節,相對於TCP的20個字節信息包的額外開銷很小。
  4. 吞吐量不受擁擠控制算法的調節,只受應用軟件生成數據的速率、傳輸帶寬、源端和終端主機性能的限制。
  5. UDP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的鏈接狀態表(這裏面有許多參數)。
  6. UDP是面向報文的。發送方的UDP對應用程序交下來的報文,在添加首部後就向下交付給IP層。既不拆分,也不合並,而是保留這些報文的邊界,因此,應用程序需要選擇合適的報文大小。

我們經常使用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常,其實“ping”命令的原理就是向對方主機發送UDP數據包,然後對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那麼網絡就是通的。

傳輸控制協議TCP(Transmission Control Protocol)
TCP(Transmission Control Protocol,傳輸控制協議)是面向連接的協議,也就是說,在收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次“對話”才能建立起來,其中的過程非常複雜,只簡單的描述下這三次對話的簡單過程:主機A向主機B發出連接請求數據包:“我想給你發數據,可以嗎?”,這是第一次對話;主機B向主機A發送同意連接和要求同步(同步就是兩臺主機一個在發送,一個在接收,協調工作)的數據包:“可以,你什麼時候發?”,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:“我現在就發,你接着吧!”,這是第三次對話。三次“對話”的目的是使數據包的發送和接收同步,經過三次“對話”之後,主機A才向主機B正式發送數據。

對比小結
1. 基於連接與無連接;
2. 對系統資源的要求(TCP較多,UDP少);
3. UDP程序結構較簡單;
4. 流模式與數據報模式 ;
5. TCP保證數據正確性,UDP可能丟包,TCP保證數據順序,UDP不保證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章