今天來繼續昨天提到的封裝和TELNET
Encapsulation 封裝
封裝(Encapsulation)是指每一層在接收到的資料單元上添加頭部(有時也添加尾部),並將**「封裝好的」**單元發送到下一層的過程
每個封包都包含了兩大部分:
-
資料本身(Payload,像是網頁的文字或圖片片段)
-
控制資訊(Header,例如來源 IP、目的地 IP、協定類型等等)
封裝是一個至關重要的概念,因為它允許每一層專注於其預期功能
封裝有四步:
-
Application data(應用程式資料)
- OSI:應用層
- 使用者輸入的原始資料(例如一封 Email、一張圖片、一段訊息)
-
Transport segment/datagram(傳輸層段)
- OSI:傳輸層
- 加上 TCP/UDP Header,包含來源/目的 Port 號用以建立TCP segment/UDP datagram
-
Network packet(網路封包)
- OSI:網路層
- 加上 IP Header,包含來源/目的 IP 位址以獲得IP packet
-
Data link frame(資料鏈路訊框)
- OSI:資料連結層
- 加上 MAC Header + CRC(來源/目的 MAC 位址 + 錯誤檢查碼)形成 WiFi / Ethernet Frame,然後交給物理層傳送
依順序依下列圖示:

在接收端,這個過程要反向進行,逐層去除協定標頭,最後才能拿到真正的應用層資料
The Life of a Packet
一個完整的Packet會經歷以下過程
-
產生(Creation)
- 使用者在應用程式上輸入資料
- 應用程式把資料交給系統IP處理
-
封裝(Encapsulation)
- 資料經過 OSI/TCP-IP 各層處理,逐層加上Header
- 最後變成一個完整的「封包」
-
傳輸(Transmission)
- 封包經由網路介面卡 (NIC) 發送,可能經過交換器、路由器等設備
- 在網路中「跳躍 (hops)」直到到達目的地
-
解封裝 (Decapsulation)
- 封包抵達接收端,由底層開始逐層剝除標頭
- 最後只留下原始的應用程式資料
-
交付 (Delivery)
- 接收端應用程式拿到資料,呈現給使用者(例如:網頁顯示出來)
現在我們大致了解了所謂封裝和它的結果封包
現在我們來看一下昨天提到的 TCP/UDP 連線跟他有什麼關係
拿 TCP 連線為例
一個完整的 TCP 連線生命週期
-
建立連線 (Connection Establishment)
- 透過三次握手 (Three-way Handshake):
- 客戶端送出 SYN
- 伺服器回應 SYN + ACK
- 客戶端再送出 ACK
-
資料傳輸 (Data Transmission)
- 進入「封包的一生」流程:
- 產生:應用程式輸入資料
- 封裝:逐層加上 Header (TCP、IP、MAC...)
- 傳輸:經 NIC、交換器、路由器傳送
- 解封裝:接收端逐層拆開
- 交付:資料交給應用程式,呈現給使用者
-
連線終止 (Connection Termination)
- 使用四次揮手 (Four-way Handshake) 來斷開:
- 一方送出 FIN(我要結束)
- 對方回 ACK(好,我知道了)
- 對方再送出 FIN(我也要結束)
- 最後回 ACK(OK,掰掰)
Telnet
介紹
-
TELNET (Teletype Network) 是一種應用層協定,最早設計用於遠端登入 (Remote Login),讓使用者透過網路在遠端電腦上開啟終端機並操作
- 工作在 TCP port 23
-
傳輸方式:純文字傳輸,不加密 → 資料(帳號、密碼、指令)以明文方式傳送,容易被攔截
因為安全性問題,現在已大多被 SSH (Secure Shell) 取代
用途
-
遠端登入:早期管理伺服器、路由器、交換機
-
網路測試:檢查某個主機或服務的連線是否正常(尤其是 TCP port 測試)
-
除錯:測試應用程式伺服器是否能正常回應,例如 HTTP、SMTP、POP3 等協定
基本指令/操作
1. 連接到主機
$ telnet <IP/主機名> <Port>
2. 登入操作
若遠端設備啟用了 Telnet,連線成功後會出現:
login:
password:
3. 測試其他協定
telnet mail.example.com 25
會看到:
220 mail.example.com ESMTP Postfix
代表郵件伺服器正常。
- 測試 HTTP (網頁服務):
telnet example.com 80
然後輸入:
GET / HTTP/1.1
Host: example.com
伺服器會回傳 HTTP 回應標頭與 HTML 內容
剛剛提到的 TELNET,就是利用今天說過的 TCP 連線,將我們所講的三次握手建立連線、資料封包傳輸、四次揮手結束連線的過程,轉化成用戶端可以直接操作的應用層工具
⚠️TELNET 傳輸資料是以明文方式進行,包括帳號、密碼和指令,都可能被攔截,因此在現代網路環境中,大多數情況會使用加密的 SSH 取代 TELNET,以確保資料傳輸的安全性
好了Networking concepts房間到此就結束了
網路的大概架構和傳輸基礎已經基本講一遍了
接下來要就要講之前提過的網路傳輸會用到的一些協定協定與技術
例如:DHCP、ARP、ICMP、NET