OSI Model 七層協定
簡單介紹 Open System Interconnection Model,另外一個常見的 model 是 TCP/IP mode,互相是可以解釋的,如下在 Geeksforgeeks 的圖一樣。
TCP/IP model 是比較實用的、標準化的模型 (wiki),而 OSI 比較偏向理論。
每一層都有不同的目的,只是會有不同的方式來達到它 (不同的協定),每一層也都會有自己的 Protocol data unit (PDU) 表示最 Unit 的傳輸單位。
OSI 模型的問題之一是,在將協定對應到七層時並不總是很合適。問題通常出現在會話層和應用程式層之間的區域。例如,ARP 在 Data link layer 運作,但它需要了解 Network layer,因為它提供了這兩層之間的橋樑。
1. Physical layer
PDU: Bit
負責裝置硬體之間的傳輸,主要是根據不同的硬體用不同的傳輸方式,包括 RJ-45 UTP 雙絞線,中繼卡,網卡等
這些有許多協定,只是不常聽到,像是 Ethernet 用的雙絞線用的就有 10BASE-T、100BASE-TX 和 1000BASE-T 等協定。
2. Data Link layer
PDU: Frame
資料連結層針對相近 (在同一個 LAN 網路) 的裝置連線,這邊主要是透過每個裝置有的獨特 ID, Media Access Control (MAC) address 來進行資料的傳遞。
使用的協定像是 Ethernet, Wireless LAN, Bluetooth, ARP/RARP, Virtual local area networks (VLANs), PPP 都是,還有很多不常見的協定像是 Token Ring (乙太網路之前的技術), FDDI (Fiber Distributed Data Interface 光纖網路) 。
PPP 通常用在兩節點間建立直接的連接,並可以提供連接認證、傳輸加密以及壓縮。PPP還用在網際網路接入上。早年,網際網路服務提供者(ISP)使用PPP為使用者提供到Internet的撥號連接 — from wiki
通行碼鑑別協定(英語:Password authentication protocol,縮寫為PAP)是一種使用密碼的認證協定。對等協定(PPP)使用的 PAP 允許使用者訪問伺服器資源之前使用 PAP 進行驗證。幾乎所有的網路作業系統遠端伺服器都支援 PAP — from wiki
3. Network Layer
PDU: Packet
網路層是對位於不同網路 (WAN) 的兩個裝置,使用 IP 位址進行傳輸。
使用的協定像是 IP, IPSec, ICMP, IGMP, BGP 等。我們也會說 router 是 layer 3 device。
IPSec: 對 IP 進行保護的協定,可以進行加密 (Encryption) 跟認證 (Authication 確保發送人是真正的),在 IPv4 是 optional 而在 v6 是必要的。
其中又分成兩個模式 1. ESP Transport mode 2. Tunnel mode,請參考此文章更了解其模式
ICMP: 常用在 ping and traceroute tool 中,用來傳送控制訊息,提供可能發生在通訊環境中的各種問題回饋。v6 版本我們叫做 ICMPv6
IGMP: 管理 multicast group 的協定, ICMP 用在 unicast,v6 就不叫做 IGMPv6,叫做 Multicast Listener Discovery (MLD),嵌入在 ICMPv6 中。
4. Transport Layer
PDU: Segment (for TCP) / Datagram (for UDP)
Port 跟 Port 之間進行連線 (一個主機會有多個 Port), End-to-End Connection。使用的協定像是 TCP/UDP, TLS/SSL。
5. Session Layer
PDU: Message
建立 Session 的 Layer,Session 就像一個開會,在開會期間傳輸資料,然後在解散。
協定有 Remote procedure calls (RPC) 等。
6. Presentation Layer
PDU: Message
表示層負責為應用層準備資料。它確保提交給應用程式的資料採用正確的格式,以便可以使用。美國資訊交換標準碼 (ASCII)、Unicode 和 EBCDIC (擴增二進式十進交換碼) 等字元編碼格式都屬於表示層。JPEG 照片也被認為是在這一層。這一層通常也負責進行加密 (不一定只有這邊的協定能加密,像是在 Data link layer 的 PPP 協定也有提供加密)。
基本上 Application layer 的協定都有包含此層的功能。
7. Application Layer
PDU: Data or Message
負責管理應用程式的通訊需求,管理應用程式的資源等。協定包括 HTTP, DNS, DHCP, SMTP, NTP 等很多。