網際網路筆記(未完)
這不是上課時記下來的,比較像是一份複習筆記,想到什麼寫什麼,也許會有缺漏,哪天決定重新聽課時可能會依照上課章節整理。
網路架構模型
|
實體設備 |
功能 |
規範 |
OSI 七層架構 |
TCP/IP 四層架構 |
|
手機、平板、電腦 NAS |
應用程式間通訊 |
HTTP、SMTP、FTP |
Application Layer 應用層 |
Application Layer 應用層 |
|
|
Data 轉譯、加密、壓縮 |
JSON、SSL/TLS、UTF-8 |
Presentation Layer 表現層 |
同上 |
|
|
建立/終止網路連結 |
NetBIOS、RPC |
Session Layer 會話層 |
同上 |
|
|
流量控制、錯誤控制 Data 分段 & 重組 |
TCP、UDP |
Transport Layer 傳輸層 |
Transport Layer 傳輸層 |
|
路由器 |
若在同個內網,會繞過 拆解&收封包 |
IP、ADR、路由協議 |
Network Layer 網路層 |
Internet Layer 網路互連層 |
|
Switch、網路介面卡 |
流量與錯誤控制 |
Ethernet(以太網)、MAC Frame Relay |
Data Link Layer 資料連結層 |
Link Layer 網路存取層 |
|
網路介面卡、電纜 Hub |
|
IEEE 802.3(以太網) IEEE 802.11(無線局域網) |
Physical Layer 實體層 |
同上 |
記得以前上課好像都著重講 Transport Layer 和 Internet Layer,所以先標重點色了。
我們可以把網路想像成郵政系統或運輸系統,從 user 端每往下傳一層,封包都需要重新被裝箱、貼託運單(header),而從實體層每往上傳一層,都需要拆開封包、並根據託運單的資訊把封包送到下一個目的地。
為什麼會有兩種網路架構?
被問「網路有幾層架構?」時,最好先問清楚對方要的是 OSI 還是 TCP/IP。
OSI 是由國際標準化組織 (ISO) 在 1980s 提出。為的是提供一個理論框架,讓各種不同廠商的網路設備與通訊協定能「對齊」在同一個結構裡。算是一種教科書上的理想模型,但實際上不按照它實作。
TCP/IP 則是由美國國防部提出,時間上比 OSI 早,目的是讓不同電腦之間能夠可靠通訊,目前開發是以這個模型為主。
L2:Network Layer
這一層的主要任務是 Addressing 與 Routing,確保資料能從來源端正確送達目的端。
- 邏輯位址管理:提供全球唯一的 IP 位址 (IPv4 的 32 位元、IPv6 的 128 位元)
- 路由選擇:決定資料應該走哪一條路徑才能抵達目的地
- 分割與重組:IPv4 中可能有 Fragmentation (分片),但在 IPv6 中則移除至更高層處理
- 封裝與傳遞:將 L4 (TCP/UDP) 的資料包裝在 IP 封包中,並交由 L2 實際傳送
IPv6 vs IPv4
IPv4 與 IPv6 都是典型的 Network Layer 協定,因為 IPv4 的 address 快被用完,故出現了 IPv6 來解決此問題,同時也改進封包處理效率、安全性與自動化支援。
|
|
IPv4 |
IPv6 |
|
位址 |
32-bit,10 進位 |
128-bit,16 進位 |
|
標頭長度 |
可變,20–60 Bytes |
固定 40 Bytes |
|
Fragmentation (分片) |
由路由器與主機處理 |
僅來源主機處理 |
|
Checksum |
有 |
移除(交由 L2、L4 處理) |
|
QoS 支援 |
DSCP/TOS,有限 |
Traffic Class + Flow Label,更完整 |
|
安全性 |
需額外協定 (IPsec 可選) |
IPsec 為強制支援 |
|
Auto-configuration |
需要 DHCP 來分配 IP |
支援 SLAAC,裝置可自行生成位址 |
|
Network Address Translation |
需要 |
不用,每個裝置都有唯一地址 |
|
Multicast (多播) |
有限 |
大幅改進效率 |
|
Anycast (任播) |
沒有原生任播 |
支援,常用於 CDN、DNS Root Serve |
封包結構解析
這邊以 IPv6 為例,我用 title 對每個欄位的意思做了註解,把滑鼠移上去就可以知道該欄位的用途。
IPv6 長度固定為 40 bytes。第一行橫排為 bit 數 (Version 為 0~4 bit),第一列為每 4 個 bytes 的計數。
| 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | |
| 1 | Version | Traffic Class | Flow Label | |||||
| 2 | Payload Length | Next Header | Hop Limt | |||||
| 3 | Source address | |||||||
| 4 | ||||||||
| 5 | ||||||||
| 6 | ||||||||
| 7 | Destination address | |||||||
| 8 | ||||||||
| 9 | ||||||||
| 10 | ||||||||
L3:Transport Layer
TCP VS UDP
|
特性 |
TCP |
UDP |
|
傳輸方式 |
連線 |
無連線 |
|
可靠性 |
提供可靠傳輸:確認 (ACK)、重傳機制、錯誤檢測 |
僅錯誤檢測,無確認與重傳,不保證可靠性 |
|
順序性 |
保證資料按發送順序到達 |
不保證順序,可能亂序 |
|
速度 |
較慢(有連線建立、確認、流量控制等) |
較快(開銷小,無連線) |
|
封包大小 |
較大(包含序號、ACK、控制訊息等) |
較小(僅必要的標頭資訊) |
|
應用場景 |
HTTP/HTTPS、SMTP/IMAP/POP3 FTP、SSH |
即時影音 (VoIP、直播)、線上遊戲、DNS 查詢、物聯網感測資料傳輸 |
|
流量控制 |
有 |
無 |
|
適合情境 |
需要可靠性與完整性的應用 |
需要低延遲與即時性的應用 |
簡單來說,TCP 為了更加可靠,付出了速度、封包大小等代價。
TCP
由 RFC 793 定義,內容有點多,請參見 網際網路筆記:TCP 。
擁塞控制的部分請參見 網際網路筆記:TCP 擁塞控制。
UDP
由 RFC 768 定義,內容請參見 網際網路筆記:UDP。
L4:Application Layer
HTTP
3GPP
請參見 網際網路筆記:3GPP。
Reference