iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0
自我挑戰組

前端補給站,每天一個知識點系列 第 24

Day23【Web】網路通訊協定 TCP/IP

  • 分享至 

  • xImage
  •  

什麼是 TCP/IP?

早期網路剛開始萌芽時,
由於不同公司的硬體產品開發的網路技術,
彼此的連網技術並不相通,
導致不同公司的產品無法互相連線,
為了解決這個問題,
一個統一的協議套組──網際網路協議套組
IPS(Internet Protocol Suite)因此誕生。

在整個網際網路協議套組中
TCP(傳輸控制協定)和 IP(網際網路協定)
是最早制定也最具代表性的協定,
因此 TCP/IP 也漸漸成為
網路通訊協定的代名詞沿用至今。


網路分層

由於網路從實體層(0 與1 的電壓訊號)
到應用層(應用程式接收/傳送資料)
的技術十分複雜,
為了減少開發與維護的成本,
網路技術被分為多個層級,
讓每個層級各自運行、不互相干擾,
當某個環節出問題時,
只要修正該層的問題就好。
如此一來要撰寫、維護程式都變得更容易,
網路的架構概念也因此更加清晰。

目前標準架構被稱為 OSI 七層協定
(開放式系統互連,Open System Interconnection)
TCP/IP 協定將其簡化為四層。

從底層到高層分別為:

  • 網路存取/連結層(Network Access Layer):
    • 負責處理實體網路的介面,如:資料格式化、實體層的資料定址等
    • 如 Tunnels(L2TP)、MAC......
  • 網際網路層(Internet Layer):
    • 負責邏輯位址(即 IP 位址)的資料傳輸
    • 如 IP (IPv4、IPv6)、ICMPv6......
  • 傳輸層(Transport Layer):
    • 負責流程控制、錯誤檢查等
    • 如 TCP、TLS/SSL......
  • 應用層(Application Layer):
    • 負責應用的介面,如檔案傳輸、遠端控制等
    • 如 DNS、FTP、HTTP/HTTPS、SSH......

TCP/IP 對應 OSI 層級

TCP/IP 四層 OSI 七層
1 網路存取層 1 實體層、2 資料連結層
2 網際網路層 3 網際網路層
3 傳輸層 4 傳輸層
4 應用層 5 會談層、6 表現層、7 應用層

網頁的旅程

使用網路傳輸資料時,
最初的資料首先會從 A 電腦的
應用程式端口傳入應用層,
之後逐級往下傳,經過網路每層的處理
到最底層變成電子訊號。

接著藉由電線電纜的實體運送,
抵達 B 電腦的實體層後,
反向重複一開始的過程,
一層層往上傳遞,
將 0 與 1 的電子訊號轉換回應用層,
這樣應用程式就能顯示剛才收到的資料了。


網路的分層

在網路技術複雜的多層架構中,
由於分層讓不同層級的行為不互相干擾,
同時也表示,不同層級的資料是完全不相干的。

比方說如果應用層收到實體層的資料,
就好像果汁機被放進一堆蘋果種子,
兩邊都只能默默無言的看著彼此,
等再久也無法完成一杯蘋果汁。

因此,不同層級網路系統,
都只能認得跟自己同層的資訊。

不過有另一個問題是,
資料在傳送時會被壓縮,
等同於將貨物全部壓平方便運送,
但不同的電腦彼此又無法通靈,
這樣一來當對方收到時,
要如何回復原狀呢?


拆封說明書:Header

如果送出後怕資料對方不會拆,
不知道正確解讀方式是什麼,
那就附上一份拆封說明書吧。

這時候表頭(header)就出馬了,
要傳送資料時,每層在打包好資料後,
都會在資料最前端附上自己的 header,
讓對方在收到時,知道該如何正確打開。

像這樣,網頁就完成一場旅行
藉由 TCP/IP 協定從 A 電腦抵達 B 電腦囉。


參考資料


上一篇
Day22【JS】ES6 動態計算屬性名 Computed property names
下一篇
Day24【Web】網路傳輸協定:TCP 與 UDP
系列文
前端補給站,每天一個知識點30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言