網站建設及推廣培訓關鍵詞搜索查找工具
一. 網絡層的基本概念
網絡層主要負責將數(shù)據(jù)從源端主機發(fā)送到目的端主機。在這一過程中,網絡層要解決的關鍵問題是數(shù)據(jù)包的路由選擇,即確定數(shù)據(jù)包通過互聯(lián)網的最佳路徑。
1.1 網絡層的信息類型
- 數(shù)據(jù)包:這是網絡層傳輸?shù)闹饕问?#xff0c;包含了從源端到目的端的實際用戶數(shù)據(jù)。數(shù)據(jù)包通常包含頭部和負載兩部分。頭部包含了源地址、目的地址、協(xié)議類型等關鍵信息,用于指導數(shù)據(jù)包在網絡中的傳輸;而負載則是用戶數(shù)據(jù)本身。
- 控制信息:這類信息主要用于動態(tài)路由協(xié)議,如RIP、OSPF等。這些協(xié)議通過交換路由表信息來幫助路由器發(fā)現(xiàn)并維護到達其他網絡的最佳路徑。
1.2 數(shù)據(jù)包服務
網絡層向其上層只提供簡單靈活的, 無連接的, 盡最大可能交付的數(shù)據(jù)報服務。網絡層不提供服務質量的承諾。
二. IP協(xié)議
2.1 IP地址
- IPv4地址:32位,通常以點分十進制形式表示,分為網絡部分和主機部分,使用子網掩碼區(qū)分。例如:192.168.1.1。
- IPv6地址:128位,通常以冒號十六進制形式表示,分為前綴和接口標識符,支持零壓縮和前導零省略。例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
2.2 網段劃分
2.2.1 分配IP地址
這種分類方法是在IPv4地址的早期設計中引入的,目的是為了方便網絡管理和地址分配。根據(jù)IP地址的第一個字節(jié)的值,IPv4地址被劃分為五類:A類、B類、C類、D類和E類。
- A類地址
范圍:1.0.0.0 到 126.255.255.255
網絡部分:第一個字節(jié)(8位)
主機部分:剩余三個字節(jié)(24位)
默認子網掩碼:255.0.0.0 或 /8
用途:適用于大型網絡 - B類地址
范圍:128.0.0.0 到 191.255.255.255
網絡部分:前兩個字節(jié)(16位)
主機部分:剩余兩個字節(jié)(16位)
默認子網掩碼:255.255.0.0 或 /16
用途:適用于中型網絡 - C類地址
范圍:192.0.0.0 到 223.255.255.255
網絡部分:前三個字節(jié)(24位)
主機部分:最后一個字節(jié)(8位)
默認子網掩碼:255.255.255.0 或 /24
用途:適用于小型網絡 - D類地址
范圍:224.0.0.0 到 239.255.255.255
用途:用于多播(組播)通信 - E類地址
范圍:240.0.0.0 到 255.255.255.255
用途:保留用于實驗和研究
但這種分類方法存在一些明顯的局限性:
- 地址浪費:每個類別的地址空間分配固定,導致地址資源的浪費。
- 靈活性差:不能很好地適應不同規(guī)模的網絡需求。
2.2.2 無類域間路由(CIDR)
無類域間路由是一種IP地址分配和路由的方法,它消除了傳統(tǒng)分類IP地址的固定界限,允許更靈活地分配和使用IP地址。CIDR的主要目標是提高IP地址的利用率,減少路由表的大小,并簡化網絡管理。
CIDR 的概念:
- 可變長度子網掩碼:
在CIDR中,子網掩碼的長度可以變化,不再局限于傳統(tǒng)的8位、16位和24位。這意味著網絡部分和主機部分的長度可以靈活調整。例如,一個網絡可以使用 /24 子網掩碼(255.255.255.0),而另一個網絡可以使用 /26 子網掩碼(255.255.255.192)。 - 網絡前綴:CIDR使用網絡前綴來表示一個IP地址塊。網絡前綴是一個IP地址的前N位,后面跟一個斜杠和一個數(shù)字,表示前綴的長度。例如,192.168.1.0/24 表示前24位是網絡前綴,剩下的8位是主機部分。
工作機制:
-
地址分配:
- ISP分配:互聯(lián)網服務提供商(ISP)可以分配一個CIDR地址塊給客戶。例如,ISP可以分配 192.168.1.0/24 給一個客戶。
- 子網劃分:客戶可以根據(jù)需要進一步劃分子網。例如,192.168.1.0/24 可以劃分為兩個 /25 子網:192.168.1.0/25 和 192.168.1.128/25。
-
路由聚合:
- 聚合多個網絡:CIDR允許將多個連續(xù)的IP地址塊匯總成一個更大的網絡前綴。例如,如果有兩個網絡 192.168.1.0/24 和 192.168.2.0/24,可以將它們匯總為 192.168.0.0/23。
- 減少路由表大小:通過路由聚合,路由器只需要維護一個匯總的路由條目,而不是多個具體的路由條目,從而減少路由表的大小,提高路由效率。
2.3 IP報文的格式
IPv4報文的報頭長度為20到60字節(jié),其中基本報頭長度為20字節(jié),可選字段會增加報頭的長度。
首部字段:
- 版本:
長度:4位
功能:標識IP協(xié)議的版本,對于IPv4,這個字段的值為4。 - 首部長度:
長度:4位
功能:表示IP報頭的長度,以32位(4字節(jié))為單位。最小值為5(即20字節(jié)),最大值為15(即60字節(jié))。 - 服務類型:
長度:8位
功能:用于指示數(shù)據(jù)包的優(yōu)先級和服務類型。這個字段現(xiàn)在通常被稱為DS字段。 - 總長度:
長度:16位
功能:表示整個IP數(shù)據(jù)包的長度,包括報頭和數(shù)據(jù)部分,以字節(jié)為單位。最大值為65535字節(jié)。 - 標識:
長度:16位
功能:用于唯一標識發(fā)送主機發(fā)出的數(shù)據(jù)包。主要用于分片和重組。 - 標志:
長度:3位
功能:
第一位保留,必須為0。
第二位:如果設置為1,表示不允許分片。
第三位:如果設置為1,表示還有后續(xù)的分片。 - 片偏移:
長度:13位
功能:表示該分片在原始數(shù)據(jù)包中的位置,以8字節(jié)為單位。 - 生存時間:
長度:8位
功能:表示數(shù)據(jù)包在網絡中可以經過的最大跳數(shù)。每經過一個路由器,TTL值減1,當TTL值為0時,數(shù)據(jù)包會被丟棄。 - 協(xié)議:
長度:8位
功能:表示上層協(xié)議的類型,例如TCP(6)、UDP(17)、ICMP(1)等。 - 頭部校驗和:
長度:16位
功能:用于檢測IP報頭的完整性。注意,這個校驗和不包括數(shù)據(jù)部分。 - 源地址:
長度:32位
功能:表示發(fā)送數(shù)據(jù)包的主機的IP地址。 - 目的地址:
長度:32位
功能:表示接收數(shù)據(jù)包的主機的IP地址。 - 選項:
長度:可變
功能:用于攜帶額外的控制信息,如路由記錄、時間戳等。選項字段的存在使報頭長度超過20字節(jié)。 - 填充:
長度:可變
功能:用于確保報頭長度為32位的整數(shù)倍。
數(shù)據(jù)部分:
長度:可變
功能:包含上層協(xié)議的數(shù)據(jù),如TCP或UDP數(shù)據(jù)。
2.4 IP層分片
IP層分組是指在網絡層中,IP協(xié)議將上層傳遞下來的數(shù)據(jù)分割成適當大小的數(shù)據(jù)包,并通過網絡進行傳輸?shù)倪^程。其中MTU定義了數(shù)據(jù)鏈路層幀中數(shù)據(jù)部分的最大長度,IP層負責將數(shù)據(jù)包分割成適當大小的數(shù)據(jù)包。
IP層分片步驟如下:
- 接收上層數(shù)據(jù):
IP層從傳輸層接收數(shù)據(jù)。這些數(shù)據(jù)通常是較大的數(shù)據(jù)塊,需要被分割成適合在網絡中傳輸?shù)男?shù)據(jù)包。 - 封裝IP頭部:
IP層為接收到的數(shù)據(jù)添加一個IP頭部,包含必要的控制信息,如源IP地址、目的IP地址、協(xié)議類型等。IP頭部的格式因IPv4和IPv6而異。 - 檢查MTU:
IP層獲取下一跳網絡接口的MTU值。MTU定義了數(shù)據(jù)鏈路層幀中數(shù)據(jù)部分的最大長度,確保數(shù)據(jù)幀在物理網絡中傳輸時不會過大,從而避免傳輸錯誤和提高傳輸效率。 - 分片:
- 分片條件:如果數(shù)據(jù)包的大小超過了MTU,IP層會將數(shù)據(jù)包分片,以便能夠在網絡中傳輸。
- 分片過程:
- 標識字段:為每個數(shù)據(jù)包分配一個唯一的標識字段,用于在接收端識別屬于同一個原始數(shù)據(jù)包的分片。
- 標志字段:設置標志字段中的MF位,表示還有后續(xù)的分片。DF位用于禁止分片,如果設置為1,數(shù)據(jù)包不能被分片,否則會被丟棄。
- 片偏移字段:表示該分片在原始數(shù)據(jù)包中的位置,以8字節(jié)為單位。
- 傳輸分片:
- 封裝分片:每個分片都被封裝成一個新的IP數(shù)據(jù)包,包含新的IP頭部。
- 發(fā)送分片:每個分片通過網絡接口發(fā)送到下一跳路由器或最終目的地。
- 重組:
- 接收分片:接收端的IP層接收到所有分片。
- 重組過程:
- 緩沖區(qū)管理:接收端為每個數(shù)據(jù)包的標識字段創(chuàng)建一個緩沖區(qū),用于存儲接收到的分片。
- 分片排序:根據(jù)片偏移字段將分片按順序排列。
- 完整性檢查:確保所有分片都已到達,如果沒有收到所有分片,可能會發(fā)送ICMP“超時”消息。
- 重組數(shù)據(jù)包:將所有分片合并成一個完整的數(shù)據(jù)包,并交給上層協(xié)議處理。
2.5 ARP協(xié)議
ARP是網絡層的一個重要協(xié)議,用于將IP地址解析為物理地址(MAC地址)。
2.5.1 ARP數(shù)據(jù)報的格式
- 硬件類型:
長度:2字節(jié)
功能:表示使用的硬件類型。最常見的值是1,表示以太網。 - 協(xié)議類型:
長度:2字節(jié)
功能:表示使用的協(xié)議類型。最常見的值是0x0800,表示IPv4。 - 硬件地址長度:
長度:1字節(jié)
功能:表示硬件地址的長度。對于以太網MAC地址,長度為6字節(jié)。 - 協(xié)議地址長度:
長度:1字節(jié)
功能:表示協(xié)議地址的長度。對于IPv4地址,長度為4字節(jié)。 - 操作類型:
長度:2字節(jié)
功能:表示ARP操作的類型。常見的值包括:- ARP請求(ARP Request)
- ARP響應(ARP Reply)
- 發(fā)送方硬件地址:
長度:6字節(jié)
功能:發(fā)送ARP請求或響應的主機的MAC地址。 - 發(fā)送方協(xié)議地址:
長度:4字節(jié)(對于IPv4)
功能:發(fā)送ARP請求或響應的主機的IP地址。 - 目標硬件地址:
長度:6字節(jié)
功能:目標主機的MAC地址。在ARP請求中,這個字段通常為0,因為發(fā)送方不知道目標主機的MAC地址。在ARP響應中,這個字段包含目標主機的MAC地址。 - 目標協(xié)議地址:
長度:4字節(jié)(對于IPv4)
功能:目標主機的IP地址。
2.5.2 ARP協(xié)議的工作原理
- 發(fā)送ARP請求:
源主機A需要向目標主機B發(fā)送數(shù)據(jù)包,但不知道B的MAC地址。A構造一個ARP請求,包含自己的IP地址和MAC地址,以及B的IP地址。A將ARP請求以廣播形式發(fā)送到局域網內的所有設備。 - 接收ARP請求:
局域網內的所有設備都會收到ARP請求。每個設備檢查請求中的目標IP地址是否與自己的IP地址匹配。 - 發(fā)送ARP響應:
目標主機B發(fā)現(xiàn)請求中的目標IP地址與自己的IP地址匹配。B構造一個ARP響應,包含自己的IP地址和MAC地址。B將ARP響應以單播形式發(fā)送給源主機A。 - 接收ARP響應:
源主機A收到B的ARP響應,從中提取出B的MAC地址。A將B的IP地址和MAC地址對添加到自己的ARP緩存表中。 - 發(fā)送數(shù)據(jù)包:
A使用B的MAC地址將數(shù)據(jù)包封裝在以太網幀中,并通過局域網發(fā)送給B。
2.6 ICMP協(xié)議
ICMP協(xié)議是一個網絡層協(xié)議, 一個新搭建好的網絡, 往往需要先進行一個簡單的測試, 來驗證網絡是否暢通; 但是IP協(xié)議并不提供可靠傳輸。因此, ICMP正是提供這種功能的協(xié)議
2.6.1 ping
Ping 主要用于測試主機之間的可達性和延遲。
ping -c n example.com
-c: n 表示向example.com發(fā)送n次ICMP請求。
2.6.2 traceroute
Traceroute 用于查看從源主機到目標主機的詳細路徑信息,幫助診斷網絡路徑上的問題。
traceroute example.com
三. NAT技術
NAT是一種網絡技術,它允許多個設備共享一個公共IP地址訪問互聯(lián)網,同時隱藏這些設備的真實內部IP地址。NAT的主要目的是解決IPv4地址資源不足的問題,并增強網絡的安全性。
3.1 NAT的工作原理
- 地址轉換:
- 當內部網絡中的設備嘗試通過路由器訪問外部網絡時,路由器會將內部設備的私有IP地址轉換為公共IP地址。
- 返程的數(shù)據(jù)包到達路由器后,路由器再將公共IP地址轉換回原始的私有IP地址,并將數(shù)據(jù)包轉發(fā)給正確的內部設備。
- 端口映射:
- 為了區(qū)分來自同一內部IP地址的不同連接,NAT會在轉換過程中使用不同的端口號。這樣,即使多個內部設備使用相同的公共IP地址,路由器也能正確地將外部響應數(shù)據(jù)包發(fā)送給正確的內部設備。
- 這種機制稱為端口地址轉換(PAT),它是NAT的一種擴展形式。
3.2 NAT技術的缺陷
由于NAT依賴這個轉換表, 所以有諸多限制:
- 無法從NAT外部向內部服務器建立連接。
- 裝換表的生成和銷毀都需要額外開銷。
- 通信過程中一旦NAT設備異常, 即使存在熱備, 所有的TCP連接也都會斷開。
3.3 NAT和代理服務器
路由器往往都具備NAT設備的功能, 通過NAT設備進行中轉, 完成子網設備和其他子網設備的通信過程。代理服務器看起來和NAT設備有一點像??蛻舳讼翊矸掌靼l(fā)送請求, 代理服務器將請求轉發(fā)給真正要請求的服務器。服務器返回結果后, 代理服務器又把結果回傳給客戶端。
NAT和代理服務器的區(qū)別:
- 從應用上講, NAT設備是網絡基礎設備之一, 解決的是IP不足的問題. 代理服務器則是更貼近具體應用, 比如通過代理服務器進行翻墻, 另外像迅游這樣的加速器, 也是使用代理服務器。
- 從底層實現(xiàn)上講, NAT是工作在網絡層, 直接對IP地址進行替換. 代理服務器往往工作在應用層。
- 從使用范圍上講, NAT一般在局域網的出口部署, 代理服務器可以在局域網做, 也可以在廣域網做, 也可以跨網。
- 從部署位置上看, NAT一般集成在防火墻, 路由器等硬件設備上, 代理服務器則是一個軟件程序, 需要部署在服務器上。
代理服務器一般分為兩類: 正向代理, 反向代理。
3.3.1 正向代理
- 客戶端配置代理服務器:
客戶端需要配置代理服務器的地址和端口號。這通常是在瀏覽器設置、操作系統(tǒng)網絡設置或應用程序配置中完成的。 - 客戶端發(fā)起請求:
客戶端向正向代理服務器發(fā)送請求。請求中包含目標服務器的地址和端口號。 - 正向代理服務器接收請求:
正向代理服務器接收到客戶端的請求后,解析請求中的目標服務器地址和端口號。 - 正向代理服務器轉發(fā)請求:
正向代理服務器根據(jù)解析到的目標服務器地址和端口號,向目標服務器發(fā)起新的請求。 - 目標服務器響應:
目標服務器接收到請求后,處理請求并生成響應數(shù)據(jù)包,然后將響應數(shù)據(jù)包發(fā)送回正向代理服務器。 - 正向代理服務器轉發(fā)響應:
正向代理服務器接收到目標服務器的響應數(shù)據(jù)包后,將響應數(shù)據(jù)包轉發(fā)給客戶端。 - 客戶端接收響應:
客戶端接收到正向代理服務器轉發(fā)的響應數(shù)據(jù)包,完成整個請求和響應過程。
3.3.2 反向代理
- 客戶端發(fā)起請求:
客戶端直接向反向代理服務器發(fā)送請求。客戶端并不知道后端服務器的存在,只知道自己在訪問反向代理服務器的地址和端口號。 - 反向代理服務器接收請求:
反向代理服務器接收到客戶端的請求后,解析請求中的目標資源路徑。 - 反向代理服務器選擇后端服務器:
反向代理服務器根據(jù)配置規(guī)則(如負載均衡算法、會話保持策略等)選擇一個合適的后端服務器。 - 反向代理服務器轉發(fā)請求:
反向代理服務器將請求轉發(fā)給選定的后端服務器。請求中可能包含一些額外的頭信息,用于傳遞客戶端的原始請求信息。 - 后端服務器響應:
后端服務器接收到請求后,處理請求并生成響應數(shù)據(jù)包,然后將響應數(shù)據(jù)包發(fā)送回6反向代理服務器。 - 反向代理服務器轉發(fā)響應:
反向代理服務器接收到后端服務器的響應數(shù)據(jù)包后,將響應數(shù)據(jù)包轉發(fā)給客戶端。 - 客戶端接收響應:
客戶端接收到反向代理服務器轉發(fā)的響應數(shù)據(jù)包,完成整個請求和響應過程。
————————————————————
感謝大家觀看,不妨點贊支持一下吧喵~
如有錯誤,隨時糾正喵~