?感謝您閱讀本篇文章,文章內容是個人學習筆記的整理,如果哪里有誤的話還請您指正噢?
? 個人主頁:余輝zmh–CSDN博客
? 文章所屬專欄:Linux篇–CSDN博客
文章目錄
- 其他重要協議或技術
- 1.DNS
- 2.ICMP協議
- 3.NAT技術
- 4.代理服務器
其他重要協議或技術
1.DNS
什么是DNS?
DNS(域名解析系統)是互聯網的“電話簿”。它的作用是將人們易于記憶的域名(比如www.baidu.com)轉換為計算機可以識別的IP地址,從而實現網絡通信。
DNS的工作原理
-
用戶輸入域名
用戶在瀏覽器中輸入一個網址(如 www.baidu.com)。
-
本地DNS緩存查詢
操作系統會先檢查本地是否有該域名的IP地址緩存。如果有,直接返回IP地址。
-
遞歸查詢
如果本地沒有緩存,系統會向本地DNS服務器(通常由網絡運營商提供)發起查詢請求。
-
本地DNS服務器查詢
- 本地DNS服務器先查找自己的緩存。
- 如果沒有,再向根DNS服務器發起請求。
-
根DNS服務器
根服務器告訴本地DNS服務器,負責該頂級域(如.com、.cn)的頂級域名服務器(TLD)的地址。
-
頂級域名服務器(TLD)
TLD服務器告訴本地DNS服務器,負責該具體域名(如baidu.com)的權威DNS服務器的地址。
-
權威DNS服務器
權威DNS服務器返回該域名對應的IP地址。
-
返回結果
本地DNS服務器將IP地址返回給用戶的電腦,電腦再與目標服務器建立連接。
DNS解析的類型
- 正向解析:域名->IP地址(最常見);
- 反向解析:IP地址->域名;
DNS的層級結構
- 根域(Root):全球只有13組根服務器,負責頂級域的管理;
- 頂級域(TLD):比如.com,.net,.cn等;
- 二級域:比如baidu.com中的baidu;
- 子域:比如www.baidu.com中的www;
2.ICMP協議
ICMP是一個網絡層協議
一個新搭建好的網絡,往往需要先進行一個簡單的測試,來驗證網絡是否通暢;但是IP協議并不提供可靠傳輸;如果丟包了,IP協議并不能通知傳輸層是否丟包以及丟包的原因。
而ICMP正是提供這種功能的協議;ICMP主要功能包括:
- 確認IP包是否成功達到目標地址;
- 通知在發送過程中IP包被丟棄的原因;
- ICMP也是基于IP協議工作的,但是他并不是傳輸層的功能,因此人們仍然把它歸結為網絡層協議;
- ICMP只能搭配IPv4使用,如果是IPv6的請求下,需要使用ICMPv6;
ping命令
基于ICMP協議實現的,可以驗證網絡的連通性。
- 注意,此處ping的是域名,而不是URL,一個域名可以通過DNS解析成IP地址;
- ping命令不光能驗證網絡的連通性,同時也會統計響應時間和TTL(IP包的生存周期);
- ping命令會發送一個
ICMP Echo Request
給對端;- 對端接收到之后,會返回一個
ICMP Echo Reply
;
問題:telnet的端口號是23,ssh的端口號是22,那ping的端口號是多少?
ping沒有端口號;因為端口號是TCP或UDP協議用來區分上層的不同應用進程的,屬于傳輸層協議的概念,telnet和ssh都是基于TCP協議的應用層服務,所以有端口號;而ping命令是基于網絡層的ICMP協議實現的,并不使用端口號,它實際上是向目標主機發送回顯請求報文(
ICMP Echo Request
),對方收到之后回復回顯應答報文(ICMP Echo Reply
)。ping命令無法指定端口號,只能測試目標主機的網絡連通性,而不能測試某個具體服務是否可用。
traceroute命令
也是基于ICMP協議實現,能夠打印出可執行程序主機,一直到目標主機之前經歷多少路由器。
3.NAT技術
1.NAT技術背景
之前講解網絡層時提到過IPv4協議中,IP地址數量不充足的問題;而NAT技術是當前解決IP地址不夠用的主要手段,是路由器的一個重要功能。
NAT能夠講私有IP對外通信時轉換為公網IP,也就是一種將私有IP和公網IP相互轉換的技術方法;
很多學校,家庭,公司內部采用每個終端設置私用IP,而在路由器或必要的服務器上設置公網IP;
公網IP要求唯一性,但是私有IP只在同一局域網中要求唯一性,在不同的局域網中出現相同的私有IP是完全不影響的。
2.NAT IP轉換過程
- NAT路由器將源地址從
10.0.0.10
替換成公網IP202.244.174.27
;- NAT路由器收到外部的數據時,又會把目標IP從
202.244.174.47
替換成10.0.010
;- 在NAT路由器內部,有一張自動生成,用于地址轉換的表;
- 當
10.0.0.0
第一次向163.221.120.9
發送數據時就會生成表中的映射關系;
3.NAPT
但是這里就有個疑問了:
假設局域網中有3臺主機,IP分別為A,B,C;他們通過同一個路由器(NAT設備)訪問同一個公網服務器;路由器只有一個公網IP;所以服務器的應答包返回時,都是先發給這個公網IP對應的路由器,那路由器如何知道這些應答包應該轉發給A,B,C中的哪一個呢?
所以這里要講解一個關鍵點:
NAT設備不僅僅轉化IP地址,還會轉化端口號,這就是端口地址轉化技術,也叫NAPT。
具體過程如下
內網主機發起連接
- A主機
10.0.0.10:1025
->服務器163.221.120.9:80
- B主機
10.0.0.11:1025
->服務器163.221.120.9:80
- C主機
10.0.0.12:1025
->服務器163.221.120.9:80
NAT設備轉化內
路由器將每個連接的源IP和源端口號,轉換為自己的公網IP和唯一的端口號,并建立映射表。
10.0.0.10:1025
—>202.244.174.37:1025
10.0.0.11:1025
—>202.244.174.37:1026
10.0.0.12:1025
—>202.244.174.37:1027
服務器應答
- 服務器收到請求后,回復數據包到路由器
NAT設備查表轉發
路由器收到應答包后,根據端口號查找映射表:
202.244.174.37:1025
—>10.0.0.10:1025
202.244.174.37:1026
—>10.0.0.11:1025
202.244.174.37:1027
—>10.0.0.12:1025
然后將數據包轉發給對應的內網主機;
一個注意點:
路由器收到來自內網主機的數據包時,會為每個連接分配一個唯一的公網端口號;這個公網端口號不是用來區分路由器上的不同應用進程的(端口號在主機上的作用),而是用來在NAT轉換表中區分不同的連接,即區分不同的內網主機和它們的會話,(端口號在路由器上的作用)。
4.代理服務器
1.什么是代理服務器?
代理服務器是一種位于客戶端和目標服務器之間的中間服務器。客戶端通過代理服務器訪問目標資源,代理服務器會轉發請求并返回結果。
代理服務器的作用包括:隱藏真實IP,訪問受限資源,緩存加速,負載均衡,安全防護。
2.正向代理
- 定義:
正向代理是指客戶端知道目標服務器的地址,但不能直接訪問,需要通過代理服務器“代為”訪問。
代理服務器位于客戶端和目標服務器之間,代表客戶端向外部發起請求。
- 典型應用場景
- 訪問被屏蔽的網站(比如翻墻);
- 隱藏客戶端真實IP;
- 突破內網訪問限制;
- 例子:學校里的正向代理服務器
場景描述:
學校內部網絡處于安全或管理原因,禁止學生電腦直接訪問外網。學校部署了一臺代理服務器,所有學生上網時,必須先把請求發給這臺代理服務器,由它去訪問外網,再把結果返回給學生。
說明:
- 學生電腦配置了代理服務器的地址;
- 代理服務器收到請求后,代表學生去訪問外網;
- 外網服務器看到的請求來源是學校代理服務器的IP,而不是學生的真實IP;
3.反向代理
- 定義
反向代理是指客戶端并不知道目標服務器的真實地址,只知道代理服務器的地址。
代理服務器位于外部網絡和內部服務器之間,代表內部服務器接收外部請求,并將請求轉發到后端服務器。
-
典型應用場景
- 負載均衡(分布請求到多臺后端服務器);
- 安全防護(隱藏真實服務器IP,防止攻擊);
- 緩存加速(代理服務器緩存靜態資源);
-
例子:公司里的負載均衡反向代理服務器
場景描述:
公司有多個Web服務器對外提供服務,如果公司里所有用戶都只訪問某些個服務器,就會導致其余服務器一直處于閑置狀態,分布不均衡;所以為了提升性能和可靠新,公司在外網部署了一臺負載均衡服務器,所有用戶訪問公司網站時,先訪問負載均衡服務器,由它根據負載情況把請求分布到后端的某一臺服務器上。
說明:
- 用戶只知道負載均衡服務器的IP,不知道后端Web服務器的真實IP;
- 負載均衡服務器根據策略把請求轉發到不同的Web服務器;
- 后端服務器的安全性和可用性都得到了提升;
以上就是關于網絡中其他重要的協議和技術的講解,如果哪里有錯的話,可以在評論區指正,也歡迎大家一起討論學習,如果對你的學習有幫助的話,點點贊關注支持一下吧!!!