目錄
1、概念
2、關鍵組成部分
2.1 IP地址
2.1.1 概念
2.1.2 主要版本
2.1.3 IP地址分類
2.2 IP數據報(IP協議傳輸的基本數據單元)
3、工作原理
3.1 路由
3.2 分片與重組
4、相關協議
1、概念
目的:負責在復雜的網絡環境中將數據包從源主機路由和傳遞到目標主機。
定位:位于TCP/IP模型的網絡層(或OSI模型的第3層),在傳輸層(如TCP, UDP)之下,數據鏈路層(如以太網, Wi-Fi)之上。
概念:提供跨越不同物理網絡的邏輯尋址和路由功能,屏蔽底層網絡技術的差異(如以太網、Wi-Fi、PPP、光纖等),使上層協議(TCP, UDP, ICMP等)無需關心數據包如何穿越各種物理網絡。
特性:無連接、不可靠服務
-
無連接:?發送數據包前不需要預先建立連接。每個數據包(IP數據報)都是獨立尋路,路徑可能不同
-
不可靠:?不保證數據包一定能送達目的地,也不保證按順序送達,不保證數據完整性(不提供確認、重傳、流量控制機制)。這些可靠性保障由上層協議(如TCP)或應用程序自身負責。
-
盡力而為:?不提供帶寬或延遲保證(QoS需額外機制)。
-
安全性:?原生IP不提供加密和強認證(依賴IPsec或上層協議如TLS)。
作用:
①、尋址:每個連接到網絡的設備都有一個唯一的 IP 地址。IP 協議使用這些地址來標識數據包的源地址和目的地址,確保數據包能夠準確地傳輸到目標設備。
②、路由:IP 協議負責決定數據包在網絡傳輸中的路徑。比如說路由器使用路由表和 IP 地址信息來確定數據包的最佳傳輸路徑。
③、分片和重組:當數據包過大無法在某個網絡上傳輸時,IP 協議會將數據包分成更小的片段進行傳輸。接收端會根據頭部信息將這些片段重新組裝成完整的數據包。
2、關鍵組成部分
2.1 IP地址
2.1.1 概念
唯一標識:?每個連接到IP網絡的設備(主機、路由器)都必須有一個唯一的IP地址,用于在網絡中標識自己。
邏輯地址:?與物理地址(如MAC地址)不同,IP地址是軟件配置的,可以變化,用于在更大范圍的網絡中尋址。
2.1.2 主要版本
IPv4:32位二進制數(通常表示為點分十進制,如?192.168.1.1
)。
-
包含?網絡部分?(標識設備所在的網絡) 和?主機部分?(標識網絡內的特定設備)。
-
通過?子網掩碼?來區分網絡部分和主機部分。
操作 | 二進制示例 | 結果(十進制) |
---|---|---|
IP地址 | 11000000.10101000.00000001.01100100 | 192.168.1.100 |
子網掩碼 | 11111111.11111111.11111111.00000000 | 255.255.255.0 |
網絡號(IP AND 掩碼) | 11000000.10101000.00000001.00000000 | 192.168.1.0 |
主機號(IP AND 掩碼取反) | 00000000.00000000.00000000.01100100 | 0.0.0.100 |
主要問題:
-
地址枯竭:?32位地址空間(約42.9億)已基本耗盡(通過NAT技術緩解)。
-
配置復雜:?經常需要DHCP或手動配置。
-
安全性:?設計之初未充分考慮安全性(依賴IPsec擴展)。
-
QoS支持有限:?依賴ToS字段,支持不夠完善。
-
報頭設計:?包含選項字段,處理效率較低。
NAT:網絡地址轉換協議,我們知道屬于不同局域網的主機可以使用相同的 IP 地址,從而一定程度上緩解了 IP 資源枯竭的問題,然而主機在局域網中使用的 IP 地址是不能在公網中使用的,當局域網主機想要與公網主機進行通信時,NAT 方法可以將該主機 IP 地址轉換為全球 IP 地址。該協議能夠有效解決 IP 地址不足的問題。
IPv6:?解決IPv4地址枯竭問題,使用128位地址(通常表示為8組4位十六進制數,如?2001:0db8:85a3:0000:0000:8a2e:0370:7334
),地址空間極其巨大,并簡化了報頭設計,增強了安全性和移動性。
關鍵改進:
-
巨大的地址空間:?128位地址(約3.4×103?個地址),徹底解決地址枯竭問題,支持端到端通信(減少NAT依賴)。
-
簡化的報頭:?固定40字節基本報頭,格式更簡單高效,路由器處理更快。選項功能通過擴展報頭實現。
-
更好的QoS支持:?流標簽字段便于識別和處理特定數據流。
-
內建安全:?IPsec支持成為協議標準組成部分(非強制)。
-
改進的擴展性:?擴展報頭機制更靈活。
-
自動配置:?SLAAC(無狀態地址自動配置)簡化了主機配置。
-
更好的移動性支持:?移動IPv6設計更優。
2.1.3 IP地址分類
IP 地址 = {<網絡號>,<主機號>}。
- 網絡號:它標志主機所連接的網絡地址表示屬于互聯網的哪一個網絡。
- 主機號:它標志主機地址表示其屬于該網絡中的哪一臺主機。
IP 地址分為 A,B,C,D,E 五大類:
- A 類地址 (1~126):以 0 開頭,網絡號占前 8 位,主機號占后面 24 位。
- B 類地址 (128~191):以 10 開頭,網絡號占前 16 位,主機號占后面 16 位。
- C 類地址 (192~223):以 110 開頭,網絡號占前 24 位,主機號占后面 8 位。
- D 類地址 (224~239):以 1110 開頭,保留為多播地址。
- E 類地址 (240~255):以 1111 開頭,保留位為將來使用
2.2 IP數據報(IP協議傳輸的基本數據單元)
結構:?由?報頭?和?數據載荷?組成。
報頭關鍵字段:
-
版本 (Version):?4位,標識IP版本(4或6)。
-
首部長度 (IHL):?4位,指示IP報頭長度(以32位字為單位)。
-
服務類型 (ToS / DSCP/ECN):?8位,用于QoS(服務質量),指示數據包的優先級或服務要求(如延遲、吞吐量、可靠性)。
-
總長度 (Total Length):?16位,整個IP數據報(報頭+數據)的長度(字節)。
-
標識 (Identification):?16位,用于唯一標識一個數據報或其分片。同一個數據報的所有分片共享相同的標識。
-
標志 (Flags):?3位:
-
Reserved
:保留位。 -
DF (Don't Fragment)
:為1時表示禁止路由器對此數據報分片。如果數據報太大無法通過下一跳網絡,路由器會丟棄它并發送ICMP錯誤消息。 -
MF (More Fragments)
:為1時表示這不是最后一個分片(后面還有分片);為0時表示這是最后一個分片或是未分片的數據報。
-
-
片偏移 (Fragment Offset):?13位,指示該分片在原數據報數據部分中的相對位置(以8字節為單位)。用于接收方重組分片。
-
生存時間 (TTL - Time To Live):?8位,數據報在網絡中允許經過的最大路由器跳數。每經過一個路由器,該值減1。當TTL減到0時,數據報被丟棄,并發送ICMP超時消息。主要作用是防止數據報在網絡中無限循環。
-
協議 (Protocol):?8位,指示數據報載荷中封裝的是哪個上層協議的數據(如TCP=6, UDP=17, ICMP=1)。
-
首部校驗和 (Header Checksum):?16位,用于檢測IP報頭在傳輸過程中是否發生錯誤。只校驗報頭,不校驗數據部分。每經過一個路由器都需要重新計算。
-
源IP地址 (Source Address):?32位(IPv4)或128位(IPv6),發送主機的IP地址。
-
目的IP地址 (Destination Address):?32位(IPv4)或128位(IPv6),接收主機的IP地址。
-
選項 (Options):?可變長(IPv4),很少使用。在IPv6中被移至擴展報頭。
-
填充 (Padding):?確保IP報頭長度是32位的整數倍。
數據載荷:?承載的上層協議數據(如TCP段、UDP數據報、ICMP消息)。
3、工作原理
3.1 路由
核心概念:
-
路由表:?每個主機和路由器都維護一個?路由表,其中包含如何到達不同目標網絡或主機的信息。
-
路由條目:?通常包含目標網絡地址、子網掩碼、下一跳路由器地址(網關)或出口接口、度量值(優先級)等。
-
路由協議:?路由器之間運行?路由協議(如RIP, OSPF, BGP)來動態交換網絡可達性信息,自動更新和維護路由表。
轉發過程:
主機或路由器檢查目標IP地址。
查找路由表,找到最長前綴匹配的路由條目(即與目標地址網絡部分匹配最長的條目)。
根據匹配的路由條目:
如果下一跳是直接相連的網絡,則通過ARP(IPv4)或鄰居發現(IPv6)獲取目標主機的物理地址(MAC地址),將數據報封裝在數據鏈路層幀中直接發送。
如果下一跳是路由器(網關),則通過ARP/鄰居發現獲取該網關的物理地址,將數據報封裝在幀中發送給網關。
網關路由器收到后,重復上述查找路由表和轉發的步驟,直到數據報到達目標網絡或TTL耗盡。
3.2 分片與重組
原因:?數據鏈路層(如以太網)有?最大傳輸單元 (MTU)?限制。當IP數據報長度大于路徑中某個網絡的MTU時,就需要分片。
過程:
路由器(或源主機)將原始數據報分割成多個較小的?分片 (Fragments)。
每個分片都有自己的IP報頭(大部分字段復制自原始報頭,但
總長度
、標識
、標志
、片偏移
會修改)。
MF
標志位:除了最后一個分片設為0,其他分片都設為1。
片偏移
表示該分片數據在原始數據報數據部分中的起始位置(以8字節塊為單位)。分片獨立路由到目的地。
重組:?只有目的主機負責將所有具有相同標識
的分片,按照片偏移
順序重新組裝成原始數據報。如果缺少任何分片,整個原始數據報會被丟棄,重組失敗。
4、相關協議
-
ICMP (Internet Control Message Protocol):?用于在IP主機和路由器之間傳遞控制消息(如網絡可達性測試
ping
、目標不可達、超時traceroute
、重定向等)。是IP協議的重要輔助協議。
ICMP 協議是一種面向無連接的協議,用于傳輸出錯報告控制信息。它屬于網絡層協議,主要用于在主機與路由器之間傳遞控制信息,包括報告錯誤、交換受限控制和狀態信息等。當遇到 IP 數據無法訪問目標、IP 路由器無法按當前的傳輸速率轉發數據包等情況時,會自動發送 ICMP 消息。
ping的基本過程:
①、當執行 Ping 命令,Ping 首先解析域名獲取 IP 地址,然后向目標 IP 發送一個 ICMP Echo Request 消息。
②、當目標 IP 收到 ICMP Echo Request 消息后,它會生成一個 ICMP Echo Reply 消息并返回,即 Ping 響應消息。
③、發起 Ping 命令的設備接收到 ICMP Echo Reply 消息后,計算并顯示從發送 Echo Request 到接收到 Echo Reply 的時間(通常稱為往返時間 RTT,Round-Trip Time),以及可能的丟包情況。
Ping 通常會發送多個請求,以便提供平均響應時間和丟包率等信息,以便我們了解網絡連接的質量。
-
ARP (Address Resolution Protocol):?用于在IPv4網絡中根據IP地址查詢對應的物理地址(MAC地址)。
- MAC 地址是數據鏈路層和物理層使用的地址,是寫在網卡上的物理地址,用來定義網絡設備的位置,不可變更。
- IP 地址是網絡層和以上各層使用的地址,是一種邏輯地址。IP 地址用來區別網絡上的計算機。
ARP協議的工作過程:
①、ARP 請求
當主機 A 要發送數據給主機 B 時,首先會在自己的 ARP 緩存中查找主機 B 的 MAC 地址。
如果沒有找到,主機 A 會向網絡中廣播一個 ARP 請求數據包,請求網絡中的所有主機告訴它們的 MAC 地址;這個請求包含了請求設備和目標設備的 IP 和 MAC 地址。
②、ARP 應答
網絡中的所有主機都會收到這個 ARP 請求,但只有主機 B 會回復 ARP 應答,告訴主機 A 自己的 MAC 地址。并且主機 B 會將主機 A 的 IP 和 MAC 地址映射關系緩存到自己的 ARP 緩存中,以便下次通信時直接使用。
③、更新 ARP 緩存
主機 A 收到主機 B 的 ARP 應答后,也會將主機 B 的 IP 和 MAC 地址映射關系緩存到自己的 ARP 緩存中。
-
RARP (Reverse ARP):?根據MAC地址查詢IP地址(基本被DHCP取代)。
-
DHCP (Dynamic Host Configuration Protocol):?為主機自動分配IP地址、子網掩碼、網關、DNS服務器等配置信息。只給接入網絡的設備分配 IP 地址,因此同一個 MAC 地址的設備,每次接入互聯網時,得到的 IP 地址不一定是相同的,該協議使得空閑的 IP 地址可以得到充分利用。