瞭解網際網路通訊協定
一般而言,通訊協定 是一種規則系統,容許通訊系統的兩個以上實體傳輸資訊。 網際網路有大量的通訊協定來涵蓋許多狀況。 在建立 Web 型應用程式及程式設計介面時,軟體開發人員通常會使用下列三種通訊協定來說明網路的狀態,以及資料封包在網路中移動的方式:
- ICMP,網際網路控制訊息通訊協定,RFC 792 中定義的網際網路通訊協定套組的一部分。
- TCP,傳輸控制通訊協定
- UDP,使用者資料封包通訊協定
用於特定實作 (例如,API 呼叫) 的通訊協定可以影響網路的整體行為。 因此,他們之間的基本差異是值得理解的。 如果您需要更多資訊,可以在網際網路上取得許多好文章,其中包含通訊協定的詳細說明。
ICMP
ICMP 是 控制通訊協定,表示它設計用來攜帶網路本身狀態的相關資訊。 基本上它是網路的 網路層 (OSI 第 3 層) 錯誤報告及錯誤控制通訊協定。 實際上最著名的 ICMP 範例是 ping
和 traceroute
公用程式。 ping
公用程式會使用 ICMP 來探測遠端主機,以取得探測訊息的回應性及整體來回轉換時間。 traceroute
公用程式使用 ICMP 來探索及追蹤 ICMP 封包在傳送至其目的地時所採用的網路路徑。
開發人員需要知道的是 ICMP 封包沒有相關聯的 TCP 或 UDP 埠號,因為埠號是第 4 層 (傳輸層) 建構。
TCP 及 UDP
「傳輸控制通訊協定 (TCP)」和「使用者資料封包通訊協定 (UDP)」都是 OSI 第 4 層傳輸通訊協定。 這些通訊協定用來傳遞實際資料。 從開發人員的角度來看,TCP 和 UDP 之間的主要差異是它們如何處理封包順序。
TCP 是連線導向通訊協定,可保證所有已傳送的封包都以正確的順序到達目的地。
或者,UDP 是無連線通訊協定。 通訊以資料為導向,因此僅在單一資料封包上保證完整性。 資料封包到達目的地且可能無法正常抵達,或可能根本無法抵達。
通常,UDP 用於即時通訊,其中封包流失率的小百分比優於 TCP 連線的額外負擔。