[網際網路] TCP_IP 階層模型-基礎 part 1
此文章為各筆記之整理,非原創,擷取來源可見資料來源。
待閱讀:
- MIS 一定要懂的 82 個網路技術知識 @ 旗標出版
- 中繼器 (Repeater)、集線器 (Hub)、橋接器 (Bridge)、交換器 (Switch) 原理與介紹 @ !false
- 了解 TCP/IP 定址及子網路基本概念 @ Microsoft Support
TCP/IP 階層模型
TCP/IP 階層模型由下而上分別為網路介面層、網際網路層、傳輸層、和應用層。
- L2 - 資料鏈結層(Link Layer / Data-Link Layer):建立通訊作業的裝置,如,乙太網路的網路卡、WiFi。
- L3 - 網際網路層(Internet Layer / Network Layer):利用轉送的方式,為任意兩端的裝置建立通訊連線,例如,
IP
、ICMP
。 - L4 - 傳輸層(Transport Layer):根據不同的用途提供不同的通訊品質,例如,
TCP
、UDP
。 - L5 - 應用層(Application Layer):實際執行通訊服務作業,例如,
HTTP
、SMTP
、POP3
。
圖片來源:中繼器 (Repeater)、集線器 (Hub)、橋接器 (Bridge)、交換器 (Switch) 原理與介紹 @ !false
TCP/IP 協定套組 @ Wiki
網路介面層(Link Layer)
keywords: 子網路
, MAC address
, Ethernet
、Wi-Fi
、PPPoE
, ARP/RARP
- 為直接透過網路硬體裝置連接的電腦(子網路),建立相互通訊的連線,但不能透過轉送的方式跨越至其他網路(網際網路)。
- 在這裡規定了「幀 (Frame)」的概念(不是封包),其中表頭的長度固定為
18byte
,數據則介於46 ~ 1500 byte
,超過這個長度就會拆成另一幀。
幀 = 表頭 (Head) + 數據 (Data)
- 表頭裡面會放發送者和接收者的「MAC 位址」,這個位址在每台電腦都是不一樣的,透過廣播(broadcast)的方式,看看表頭中的接受者和當前拜訪的地址是否吻合(僅適用於子網路)。
MAC address 共由 48 個位元組成,以十六進位的方式表示,前 24 個位元廠商編號,後 24 個為廠商的流水號。例如,
a4-5e-60-d0-bb-ff
。
- 最具代表性的通訊協定為乙太網路(Ethernet)、Wi-Fi、PPPoE(PPP over Ethernet,點對點通訊協定)、ARP/RARP。
- 乙太網路(Ethernet):有線網路被最廣為使用的規範。
- Wi-Fi:透過無線方式連結區域網路的規範。
- PPPoE:在乙太網路上進行一對一連線的通訊協定。
- ARP/RARP:將 IP 位址和 MAC 位址互相轉換的一種通訊協定。
網際網路層(Internet Layer)
keywords: IP
, ICMP
, 網際網路
- **有了網路介面層提供的 MAC 位址後,就可以知道要把資料傳輸到子網路內的哪台電腦,**然而 MAC 位址只適用於子網路的通訊,單從 MAC 地址無法得知收件者的子網路為何,因此需要 IP 協定,透過 IP 位址即可知道該電腦屬於哪一個子網路。
- 將資料轉送到未直接連接的其他網路,而將封包轉送到指定的方向就稱作路由(route)。
- 將資料的表頭加上傳送者和接受者的 IP 位址,藉以識別所要連線的電腦端點,知道該資料要送到哪個子網路 。
- 最具代表性的協定為 IP(Internet Protocol,網際網路通訊協定),此協定針對未直接連結的網路,提供封包路由機制,為任意的電腦端點建立通訊連線。
- ICMP(Internet Control Message Protocol,網際網路控制訊息協定),用來輔助 IP 協定,能偵測資料是否被送達任意端點,若否,則發送失敗通知。
傳輸層(Transport Layer)
keywords: TCP
, UDP
, port
- 有了網際網路層的 IP 位址之後,就可以把檔案傳輸到目標電腦上,但是該電腦上有許多不同的應用程式,沒辦法知道這個檔案要由電腦上的哪一個應用程式處理,因此出現了
port
的概念,提供每一個需要使用到網路的應用程式一個port
後,即可知道這個檔案要發送到該電腦上的哪一個port
。 - port 是由 16 個位元組成,從 0 ~ 65535,其中的 0 ~ 1023 是給電腦所使用。
- 將資料的表頭加上來源端的 port 和接收端的 prot。
- 在這個層級傳送的資料才稱作「封包(package)」。
- 根據網際網路層,為任意的電腦端點建立高可靠性、低錯誤率的通訊服務。
30-11 之 TCP 與 UDP 協議 @ iThome
TCP (Transmission Control Protocol):可靠傳輸
- 最具代表性的協定是 TCP(Transmission Control Protocol,傳輸控制協定),通訊前須先建立「連線」,連線完成後可以進行「通訊」,通訊完畢後「中斷連線」,可處理封包遺失或重複的情況,若傳送資料的請求在一定是前內沒有回應,則會重新發送,因此缺乏即時性,適用於網頁的 HTTP、郵件的 SMTP 等。
# TCP 建立連線:三方交握(Three-Way Handshake)
STEP 1: 傳送端 --> SYN --> 接收端
STEP 2: 接收端 --> SYN + ACK --> 傳送端
STEP 3: 傳送端 --> ACK --> 接收端
# TCP 中斷連線:四次揮手
STEP 1: 傳送端 --> FIN --> 接收端
STEP 2: 接收端 --> FIN + ACK --> 傳送端
STEP 3: 傳送端 --> ACK --> 接收端
UDP (User Datagram Protocol) - 不可靠傳輸
- UDP(User Datagram Protocol,使用者資料元協定),不會執行任何提高通訊可靠性的動作,不須先建立連線,不需事前準備,隨時可開始通訊,收到資料後馬上交給應用層,適用於影音串流、網路電話、DNS 和 NTP。
- 透過 UDP 可以將資料傳輸到特定電腦的應用程式中,但是不去管對方有沒有收到,同時收到檔案的順序快能也不同。
- 在 UDP 的表頭中會包含有 Port 和檔案的長度(
length
)
應用層(Application Layer)
keywords: HTTP
, SMTP
, POP3
, IMAP4
, FTP
, SSH
, DNS
, NTP
透過應用層的機制,選出傳輸層中適合該應用程式且「符合使用目的」的通訊功能,接著透過該功能對應用程式進行資料處理。其中重要的協定包含:
- HTTP - 網頁存取
- SMTP - 郵件轉送
- POP3 - 取出郵件
- IMAP4 - 讀取郵件
- FTP - 檔案傳輸
- SSH - 傳送字串指令給伺服器並確認結果
- DNS - 網域名稱與 IP 位址轉換
- NTP - 校時
資料於各層間的傳遞
發送端送出資料時,封包會由高層往低層傳遞,在每一層傳遞時會添加標頭(header),所以資料往低層走的時候,封包的大小也跟著變大。當接收端收到資料時,封包會由低層往高層傳遞,在傳遞過程中會刪除標頭,因此封包大小則會越來越小。
圖片來源:MIS 一定要 懂的 82 個網路技術知識 @ 旗標出版
MAC 位址(Media Access Control Access)
MAC 位址(媒體存取控制位址,Media Access Control Access)
用來指派給每個乙太網路等網路硬體裝置的位址。理論上,每組 MAC 位址都是全世界獨一無二的號碼,又被稱作資料鏈結層的「實體位址(Physical Address)」,但實際上有部分的網路產品是可以自行更改 MAC 位址,因此不見得每台裝置所使用的 MAC 位址都是唯一的。
MAC 位址是由 6 組十六進制的數字表示(6 bytes):
4A:00:04:3F:94:87
- 前 3 個 bytes 是由 IEEE 分配的組織唯一識別碼 (OUI),可視為製造商編號。
- 後 3 個 bytes 則是製造商分配,通常第 4 個 bytes 是機型編號,最後 2 個 bytes 則是產品序號。
1 bytes = 8 bits = 8 位數的二進制 = 2 位數的十六進制。
IP 位址(IP Address)
keywords: ICANN
, TWNIC
, NAPT
「IP 位址」是為了讓網路能透過 IP 協定來識別每一台電腦,因此附加在電腦上的一列編號。目前使用的 IP 位址有 IPv4 和 IPv6 這 2 種。
IP 的配發
公有 IP 位址採全球性管理,每一台電腦皆有不同的 IP 位址。
- **網際網路名稱及號碼指配機構(Internet Corporation for Assigned Names and Numbers, ICANN)**派發特定範圍的 IP 位址給
- 區域網際網路註冊機構(Regional Internet Registry, RIR) ,亞太地區為 APNIC,接者在配發給
- 國家級網際網路位址註冊機構(National Internet Registry, NIR)