(其實我不是很會排版,所以我的文章寫完都會經過AI幫我重新排版,不過基本上這些還是我自己本身寫出來的東西,請各位安心服用)
Day 1: 網路世界的基石——TCP/IP四層架構
各位午安!在我們正式進入主題之前,我覺得需要先理解一個最基礎的框架——TCP/IP四層架構。
我們每天使用的網路,並不是靠著什麼神秘力量在運作的XD。事實上,網路運作的原理基本上都包含在TCP/IP這個框架內。今天,我們就來簡單說明一下這四層架構的運作原理。
這四層的主要工作職責分明,每一層都專注於自己的任務。不會發生應用層需要處理傳輸層或網路層的事情,這就像一間公司的RD部門不需要兼職網管或資安一樣。這四層的架構分工是非常明確的。
在開始之前:什麼是「協定(Protocol)」?
在了解四層架構之前,我們先來談談「協定」是什麼。
當我們在網際網路上傳輸資料時,資料的格式(也就是封包)都必須遵守一個固定的規範。如果沒有這個規範,可能會發生一個封包在我這邊可以解析,但到你那邊卻讀不出來的窘境。
因此,協定就是一套共同的規則,確保所有設備在傳輸資料時都遵守特定的格式與順序,才能順利溝通。
TCP/IP 四層架構詳解
常見協定範例:
HTTP/HTTPS:瀏覽網站
FTP:檔案傳輸
SMTP/POP3:收發電子郵件
DNS:將我們好記的網址(如 google.com)轉換成電腦看得懂的IP位址
主要功能:
資料分段 (Segmentation):將來自應用層的大塊資料切割成較小的資料段 (Segment)。
埠號 (Port Numbers):為每個資料段加上來源埠號和目的埠號,確保資料能正確送達對方主機上的特定應用程式(例如,HTTP伺服器通常使用80埠)。
可靠性控制 (TCP):提供可靠的傳輸,確保資料無誤、無失、依序到達。
流量控制與擁塞控制。
兩大核心協定:
TCP (Transmission Control Protocol):傳輸控制協定。提供可靠、有序、面向連接的服務。我們常聽到的「三次交握」(SYN, SYN/ACK, ACK) 就是TCP建立連線的過程。適用於資料絕對不能漏掉的場景,如網頁瀏覽、檔案傳輸。
UDP (User Datagram Protocol):使用者資料包協定。提供不可靠、無連接的服務,但優點是速度快。適用於偶爾掉幾個封包也沒關係的場景,如即時通訊、線上遊戲、影音串流,因為這些應用更重視即時性。
可以想像成我們要將一個國內包裹寄送到國外,網路層的任務就是找出那條可以順利送達的最佳路徑。
主要功能:
邏輯定址 (Logical Addressing):為每個封包加上來源和目的地的IP位址。這就像是信件上的詳細地址,用於在整個網際網路中找到目標電腦。
路由 (Routing):決定資料封包從來源到目的地的最佳路徑。路由器 (Router) 就是主要工作在這一層的設備。
主要通訊協定:
IP (Internet Protocol):網際網路協定,是此層的核心,負責定址和路由。包含我們熟悉的 IPv4 和新一代的 IPv6。
ICMP (Internet Control Message Protocol):用於回報錯誤訊息和網路狀況,例如我們常用的 ping 指令就是使用ICMP。
主要功能:
實體定址 (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的基礎架構!