TCP/IP 其實是兩個協定#

TCP/IP 是現代網路事實上的標準協定。雖然我們常把 TCP/IP 當成單一協定看待,它其實是兩個協定的組合:傳輸控制協定(Transmission Control Protocol, TCP)網際網路協定(Internet Protocol, IP)。這兩者同屬網際網路協定套組(Internet Protocol Suite, IPS)——一個描述網路流量如何在網際網路上傳送的概念模型,它把網路通訊拆成四層。

圖表 1-2:網際網路協定套組的分層

四層協定堆疊#

這四層構成一個協定堆疊(protocol stack),由下而上如下:

名稱職責代表協定
1連結層(Link layer)描述在區域網路上,於節點間傳遞資訊的實體機制Ethernet(有線與無線)、PPP
2網際層(Internet layer)為網路節點提供定址機制,節點不必位於同一區域網路IPv4、IPv6
3傳輸層(Transport layer)負責用戶端與伺服器間的連線,有時確保封包順序並提供服務多工TCP、UDP
4應用層(Application layer)承載各種網路應用協定HTTP、SMTP、DNS

傳輸層的服務多工(service multiplexing),是讓單一節點能同時支援多種服務:每個服務分配一個號碼,這個號碼就是連接埠(port)。本書後續會把重心主要放在應用層。

分層之間如何互動#

每一層只與它上面和下面的層互動,但整個堆疊仍必須和外部世界打交道。堆疊有兩個外部連接點:

  • 底部:連結層對接實體網路連線,用電流或光脈衝等實體介質傳輸資料。
  • 頂部:應用層對接使用者應用程式(application)——一組相關功能的集合,用來提供服務給使用者。

以一個處理電子郵件的應用程式為例,它提供的服務就是透過網路收送訊息。這類應用程式通常包含三個元件:

  • 網路通訊:負責透過網路收送與處理資料,郵件應用多半採用 SMTP 或 POP3 這類標準協定。
  • 內容剖析器(content parser):把網路傳來的內容抽取並處理,內容可能是文字(如信件內文),也可能是圖片或影片。
  • 使用者介面(UI):讓使用者檢視收到的信件、撰寫新信件,例如以 HTML 在瀏覽器中顯示郵件。

圖表 1-3:郵件應用程式範例

和 UI 互動的「使用者」不一定是人。它也可以是另一支透過命令列工具自動收送郵件的程式。分析協定時記得把這種自動化情境也納入考量。