# [知識篇]TCP/IP

網際網路協議,為網際網路的基礎通訊架構,也就是我們所熟知的TCP/IP,其核心就是TCP(傳輸控制協定Transmission Control Protocol)與IP(網際網路協定Internet Protocol)。

# 介紹

TCP/IP為我們提供了端點對端點間的連線機制,將資料應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化。

舉個我們最常用的HTTP request,就是實作在該協定上,每個request及response的header上都會包含基本如method,content-type...等屬性,這就是依賴TCP/IP的標準所實作的。

為了各式軟體通訊應用,它將軟體通訊過程抽象化為四個抽象層,採取協定堆疊的方式,分別實作出不同通訊協定。

協定套組下的各種協定,依其功能不同,被分別歸屬到這四個階層之中。

tcp/ip

圖片擷取自:Medium

如圖所示,每一層都有其負責的功用,這邊稍為舉個例子來深化概念,例子:

# 舉例:包裹宅配

網購最流行的現下,包裹物流肯定再熟悉不過, 我們將包裹宅配流程一一分化:

  • 應用層:

    包裹宅配

    包裹宅配就是這次主要的應用,包裹宅配都必須附上填單,單子上面都會有包裹規定格式,

  • 傳輸層:

    寄送方式(例如:宅配,店取,郵寄...)

    依照寄送方式不同,會有不同情形,像是:

    1. 宅配:一定需要直接交由收貨人簽收,也能安排時間,最終彼此都能確保交貨。

    2. 店取:這就有可能發生忘記取貨或是被別人取錯包裹...等,也不能安排哪時候收貨,其不能穩定確保交貨。

    因此也就有了兩種形式,在傳輸層上,稱為可靠性與不可靠性,其中TCP就屬於可靠性,UDP就屬於不可靠性。

    後續會單獨一張來述說TCP與UDP的差異,目前僅了解傳輸層的作用~

  • 網路互連層:

    寄送時一定要確認寄發人資訊及收貨人資訊,才能知道商品來自何處並且要交付於何處

    寄發包裹一定要填寫收貨人地址,這樣物流才能知道包裹目的地,而這就是網路互連層的主要作用, 將資料從源網路傳輸到目的網路,也就是IP(Internet Protocol)。

  • 網路存取層:

    物流業者將駕駛交通工具將包裹送到收貨人手中

    最終送貨必須要靠交通工具,可能是汽車或機車...等,在網際網路上,要彼此溝通就一定要透過網路(例如:乙太網路...等); 電腦要上網就一定要透過網路線或網卡...等例子。

延伸:

  • 在WebRTC中包含哪些通訊協議?
  • 這些通訊協議他們各自的作用又是屬於哪一層?

# 總結

這次通過舉例日常生活的例子來認識TCP/IP 網際網路協議,及架構中四層的作用:

  • 應用層(Application): 定義應用專屬資料格式,如:HTTP/HTTPS,SMTP,FTP,SSH...。
  • 傳輸層(Transport): 定義傳輸方式,也是我們熟知的TCP與UDP。
  • 網路互連層(Internet): 定義收發位置(IP),才能將資料從源網路傳輸到目的網路。
  • 網路存取(連結)層(Network Access(link)): 定義裝置間網路的連線方式。

# 參考