iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
Security

跨出第一步:D 從0到0.1的Web security 系列 第 2

Day 1: 我在瀏覽器點下一個網址後,發生了什麼事? (Web架構與TCP/IP 概覽)

  • 分享至 

  • xImage
  •  

(其實我不是很會排版,所以我的文章寫完都會經過AI幫我重新排版,不過基本上這些還是我自己本身寫出來的東西,請各位安心服用)

Day 1: 網路世界的基石——TCP/IP四層架構
各位午安!在我們正式進入主題之前,我覺得需要先理解一個最基礎的框架——TCP/IP四層架構。

我們每天使用的網路,並不是靠著什麼神秘力量在運作的XD。事實上,網路運作的原理基本上都包含在TCP/IP這個框架內。今天,我們就來簡單說明一下這四層架構的運作原理。
https://ithelp.ithome.com.tw/upload/images/20250915/20169408TUxpgRHd4j.png

這四層的主要工作職責分明,每一層都專注於自己的任務。不會發生應用層需要處理傳輸層或網路層的事情,這就像一間公司的RD部門不需要兼職網管或資安一樣。這四層的架構分工是非常明確的。

在開始之前:什麼是「協定(Protocol)」?
在了解四層架構之前,我們先來談談「協定」是什麼。

當我們在網際網路上傳輸資料時,資料的格式(也就是封包)都必須遵守一個固定的規範。如果沒有這個規範,可能會發生一個封包在我這邊可以解析,但到你那邊卻讀不出來的窘境。

因此,協定就是一套共同的規則,確保所有設備在傳輸資料時都遵守特定的格式與順序,才能順利溝通。

TCP/IP 四層架構詳解

  1. 應用層 (Application Layer)
    這是我們使用者最直接接觸的一層。所有與網路應用程式相關的通訊協定都在這一層運作。我們在使用不同的網路功能時,就會使用到不同的應用層協定。

常見協定範例:

HTTP/HTTPS:瀏覽網站

FTP:檔案傳輸

SMTP/POP3:收發電子郵件

DNS:將我們好記的網址(如 google.com)轉換成電腦看得懂的IP位址

  1. 傳輸層 (Transport Layer)
    傳輸層主要負責在「兩台主機的應用程式之間」建立端對端 (end-to-end) 的連線與資料傳輸。

主要功能:

資料分段 (Segmentation):將來自應用層的大塊資料切割成較小的資料段 (Segment)。

埠號 (Port Numbers):為每個資料段加上來源埠號和目的埠號,確保資料能正確送達對方主機上的特定應用程式(例如,HTTP伺服器通常使用80埠)。

可靠性控制 (TCP):提供可靠的傳輸,確保資料無誤、無失、依序到達。

流量控制與擁塞控制。

兩大核心協定:

TCP (Transmission Control Protocol):傳輸控制協定。提供可靠、有序、面向連接的服務。我們常聽到的「三次交握」(SYN, SYN/ACK, ACK) 就是TCP建立連線的過程。適用於資料絕對不能漏掉的場景,如網頁瀏覽、檔案傳輸。

UDP (User Datagram Protocol):使用者資料包協定。提供不可靠、無連接的服務,但優點是速度快。適用於偶爾掉幾個封包也沒關係的場景,如即時通訊、線上遊戲、影音串流,因為這些應用更重視即時性。

  1. 網路層 (Network Layer / Internet Layer)
    這一層的核心任務是將資料封包 (Packet) 從來源主機,經過層層網路,傳送到目的主機,即使它們位於不同的網段中也一樣。

可以想像成我們要將一個國內包裹寄送到國外,網路層的任務就是找出那條可以順利送達的最佳路徑。

主要功能:

邏輯定址 (Logical Addressing):為每個封包加上來源和目的地的IP位址。這就像是信件上的詳細地址,用於在整個網際網路中找到目標電腦。

路由 (Routing):決定資料封包從來源到目的地的最佳路徑。路由器 (Router) 就是主要工作在這一層的設備。

主要通訊協定:

IP (Internet Protocol):網際網路協定,是此層的核心,負責定址和路由。包含我們熟悉的 IPv4 和新一代的 IPv6。

ICMP (Internet Control Message Protocol):用於回報錯誤訊息和網路狀況,例如我們常用的 ping 指令就是使用ICMP。

  1. 資料連結層 (Data Link Layer)
    這一層處理在同一個實體網路內(例如,同一個區域網路 LAN 或 Wi-Fi 環境)的設備之間的通訊。

主要功能:

實體定址 (Physical Addressing):將IP位址轉譯成實體的MAC位址(媒體存取控制位址),並將其加入訊框標頭中。MAC位址是每張網卡獨一無二的硬體位址。

資料成幀 (Framing):將來自網路層的IP封包,打包成訊框 (Frame),並在訊框的尾部加上錯誤偵測碼 (FCS)。

媒體存取控制 (MAC):控制硬體設備如何存取實體傳輸媒介(例如,避免多台設備同時發送訊號導致碰撞)。

常見通訊協定/標準:

Ethernet (乙太網路)

Wi-Fi (802.11 無線網路)

PPP (點對點協定)

總結:封裝 (Encapsulation) 與解封裝 (Decapsulation)
當我們要向目標主機請求資源時,資料會經歷一個由上到下的打包過程,我們稱之為「封裝」:
應用層 (產生資料) → 傳輸層 (加上TCP/UDP標頭) → 網路層 (加上IP標頭) → 資料連結層 (加上MAC標頭與結尾)。

而當資料到達目標主機時,則會經歷一個由下到上的拆解過程,稱為「解封裝」。

所以,當我們在瀏覽器上點下一個連結時,背後就發生了這些事:我們的電腦發出了一個HTTP請求,透過DNS解析找到IP位址,然後一路向下「封裝」成可以在網路上傳輸的格式,經過路由器等設備向外發送。目標主機收到後,會一路向上「解封裝」,解析我們的請求,最後再將我們需要的資源(例如網頁內容)透過同樣的封裝流程傳送回來。

這就是TCP/IP的運作架構與原理。

明天我們就會正式開始探討Web的基礎架構!


上一篇
Day 0: 鐵人賽開賽!從零開始了解一個網站的30天冒險藍圖
下一篇
Day 2: 網站的接待員與廚房:瀏覽器、網站伺服器與後端語言
系列文
跨出第一步:D 從0到0.1的Web security 9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言