首頁>Club>
3
回覆列表
  • 1 # 使用者4928387633707

    UDP套接字

      UDP協議提供了一種不同於TCP協議的端到端服務。實際上UDP協議只實現兩個功能:

      1)在IP協議的基礎上添加了另一層地址(埠)

      2)對資料傳輸過程中可能產生的資料錯誤進行了檢測,並拋棄已經損壞的資料。

      由於其簡單性,UDP套接字具有一些與我們之前所看到的TCP套接字不同的特徵。

      例如,UDP套接字在使用前不需要進行連線。TCP協議與電話通訊相似,而UDP協議則與郵件通訊相似:你寄包裹或信件時不需要進行"連線",但是你得為每個包裹和信件指定目的地址。類似的,每條資訊(即資料報文,datagram)負載了自己的地址資訊,並與其他資訊相互獨立。在接收資訊時,UDP套接字扮演的角色就像是一個信箱,從不同地址傳送來的信件和包裹都可以放到裡面。一旦被建立,UDP套接字就可以用來連續地向不同的地址傳送資訊,或從任何地址接收資訊。

      UDP套接字與TCP套接字的另一個不同點在於他們對資訊邊界的處理方式不同:UDP套接字將保留邊界資訊。這個特性使應用程式在接受資訊時,從某些方面來說比使用TCP套接字更簡單。

      最後一個不同點是,UDP協議所提供的端到端傳輸服務是盡力而為(best-effort)的,即UDP套接字將盡可能地傳送資訊,但並不保證資訊一定能成功到達目的地址,而且資訊到達的順序與其傳送順序不一定一致(就像透過郵政部門寄信一樣)。因此,使用了UDP套接字的程式必須準備好處理資訊的丟失和重排。(稍後我們將給出一個這樣的例子)

      既然UDP協議為程式帶來了這個額外的負擔,為什麼還會使用它而不使用TCP協議呢?

      原因之一是效率:如果應用程式只交換非常少量的資料,例如從客戶端到伺服器端的簡單請求訊息,或一個反方向的響應訊息,TCP連線的建立階段就至少要傳輸其兩倍的資訊量(還有兩倍的往返延遲時間)。

      另一個原因是靈活性:如果除可靠的位元組流服務外,還有其他的需求,UDP協議則提供了一個最小開銷的平臺來滿足任何需求的實現。

  • 中秋節和大豐收的關聯?
  • 金融對數學的要求有多高?