【Linux網絡篇】:網絡中的其他重要協議或技術——DNS,ICMP協議,NAT技術等

?感謝您閱讀本篇文章,文章內容是個人學習筆記的整理,如果哪里有誤的話還請您指正噢?
? 個人主頁:余輝zmh–CSDN博客
? 文章所屬專欄:Linux篇–CSDN博客

在這里插入圖片描述

文章目錄

  • 其他重要協議或技術
    • 1.DNS
    • 2.ICMP協議
    • 3.NAT技術
    • 4.代理服務器

其他重要協議或技術

1.DNS

什么是DNS?

DNS(域名解析系統)是互聯網的“電話簿”。它的作用是將人們易于記憶的域名(比如www.baidu.com)轉換為計算機可以識別的IP地址,從而實現網絡通信。

DNS的工作原理

  1. 用戶輸入域名

    用戶在瀏覽器中輸入一個網址(如 www.baidu.com)。

  2. 本地DNS緩存查詢

    操作系統會先檢查本地是否有該域名的IP地址緩存。如果有,直接返回IP地址。

  3. 遞歸查詢

    如果本地沒有緩存,系統會向本地DNS服務器(通常由網絡運營商提供)發起查詢請求。

  4. 本地DNS服務器查詢

    • 本地DNS服務器先查找自己的緩存。
    • 如果沒有,再向根DNS服務器發起請求。
  5. 根DNS服務器

    根服務器告訴本地DNS服務器,負責該頂級域(如.com、.cn)的頂級域名服務器(TLD)的地址。

  6. 頂級域名服務器(TLD)

    TLD服務器告訴本地DNS服務器,負責該具體域名(如baidu.com)的權威DNS服務器的地址。

  7. 權威DNS服務器

    權威DNS服務器返回該域名對應的IP地址。

  8. 返回結果

    本地DNS服務器將IP地址返回給用戶的電腦,電腦再與目標服務器建立連接。

DNS解析的類型

  • 正向解析:域名->IP地址(最常見);
  • 反向解析:IP地址->域名;

DNS的層級結構

  1. 根域(Root):全球只有13組根服務器,負責頂級域的管理;
  2. 頂級域(TLD):比如.com,.net,.cn等;
  3. 二級域:比如baidu.com中的baidu;
  4. 子域:比如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

具體過程如下

  1. 內網主機發起連接

    • 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
  2. 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
  3. 服務器應答

    • 服務器收到請求后,回復數據包到路由器
  4. 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服務器;
  • 后端服務器的安全性和可用性都得到了提升;

以上就是關于網絡中其他重要的協議和技術的講解,如果哪里有錯的話,可以在評論區指正,也歡迎大家一起討論學習,如果對你的學習有幫助的話,點點贊關注支持一下吧!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913628.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HarmonyOS學習4 --- 創建一個頁面

1、聲明式UI語法Entry Component struct My_page {State isLogin: boolean falsebuild() {Row() {Image(this.isLogin ? $r(app.media.icon_leon) : $r(app.media.icon)).height(60).width(60).onClick(() > {this.isLogin !this.isLogin})Text(this.isLogin ? $r(app.s…

【Java EE】Spring MVC 的使用

1. 路由映射:RequestMapping:當用戶訪問某個 URL 時,該注解會根據 URL 的路徑映射到具體的程序中對應的類或方法(路由映射)。修飾方法時,路徑為類路徑 方法路徑。默認情況下同時支持 GET 和 POST&#xff…

pip 安裝默認切換到國內鏡像(清華園,阿里云等)

國內Python包鏡像地址如下: 清華:https://pypi.tuna.tsinghua.edu.cn/simple/阿里云:https://mirrors.aliyun.com/pypi/simple/中國科技大學:https://pypi.mirrors.ustc.edu.cn/simple/華為云:https://repo.huaweiclou…

AI agent 學習

參考: AI搜索DeepResearch?_大模型 deepsearch 深度搜索-CSDN博客 Agent是以大語言模型為大腦驅動的系統,具備自主理解、感知、規劃、記憶和使用工具的能力,能夠自動化執行和完成復雜任務。 自主性和自適應,是判斷一款…

【PTA數據結構 | C語言版】求單鏈表list中的元素個數,即表長

本專欄持續輸出數據結構題目集,歡迎訂閱。 文章目錄題目代碼題目 請編寫程序,將 n 個整數順次插入一個初始為空的單鏈表的表頭。最后輸出單鏈表的表長。 本題旨在訓練學習者熟悉單鏈表的基本操作,不建議直接輸出 n。 輸入格式:…

玩轉Docker | 使用Docker部署HomeBox家庭庫存管理工具

玩轉Docker | 使用Docker部署HomeBox家庭庫存管理工具 前言一、HomeBox介紹Homebox簡介主要特點主要使用場景二、系統要求環境要求環境檢查Docker版本檢查檢查操作系統版本三、部署HomeBox服務下載HomeBox鏡像編輯部署文件創建容器檢查容器狀態檢查服務端口安全設置四、訪問Hom…

QT中的常用控件-QWidget的enable屬性

QT中的常用控件-QWidget的enable屬性 enable描述了一個控件是否處于“可用”狀態 與之相對應的概念是“禁用”,禁用是該控件不能接受任何用戶的輸入事件,并且外觀上往往是灰色的 如果一個Widget被禁用,則該Widget的子元素也被禁用API說明IsEn…

【數據結構】復雜度分析

目錄 一、算法 1.基本概念 2.描述方法 3.算法效率 二、算法的時間復雜度 三、算法的空間復雜度 一、算法 1.基本概念 通俗的講,算法是解決問題的方法,比如在現實生活中一道菜譜,一個安裝輪椅的操作指南等。 嚴格的說,算法…

推薦系統基礎 --ShusenWang

學習b站up主的ShusenWang的推薦系統筆記 指標 任何系統/算法/模型都需要評估,對于推薦系統的指標有消費指標和北極星指標,消費指標是衡量用戶對產品的使用情況,使用頻率廣度和深度,用于了解用戶的使用習慣,北極星指標是…

linux wsl2 docker 鏡像復用快速方法

GitHub項目中的devcontainer.json、Dockerfile構建了一個A項目的鏡像環境,現在我有一個文件夾,文件夾中只有一個b.py文件,此時我希望使用A項目的環境,如何實現?注意: 建議使用下面的方法2 解決方案&#xf…

(生活比喻-圖文并茂)http2.0和http3.0的隊頭阻塞,http2.0應用層解決,TCP層存在,3.0就是徹底解決,到底怎么理解區別???

說明一下: http屬于應用層協議,TCP和udp屬于傳輸層協議 文章目錄階段一:HTTP/1.1 的情況(單車道收費站,一次過一輛)階段二:HTTP/2 的情況(多車道收費站,但出口只有一條路…

ARM環境openEuler2203sp4上部署19c單機問題-持續更新

問題01、報錯如下orcl:/home/oracledb15> export CV_ASSUME_DISTIDRHEL8 orcl:/home/oracledb15> $ORACLE_HOME/runInstaller -applyPSU /soft/37642901 Exception in thread "main" java.lang.UnsatisfiedLinkError: /u01/app/oracle/product/19.0.0/db_1/oui…

php成績分析系統單科分數分布分析202507

提交二維數據表,識別成績科目顯示科目選擇,選擇科目后顯示樣本數,平均分,最高分,最低分,中位數,柱狀圖圖表顯示各分值人數分布,表格顯示統計數據。 技術:html5css3ajaxphp 原生代碼實現。 效果圖: 下載: …

Redis Cluster 與 Sentinel 筆記

目錄 Redis 集群(Cluster)概述 Cluster 的工作原理 Cluster 配置與部署 Cluster 常見問題與限制 Redis Sentinel(哨兵)機制概述 Sentinel 的工作機制 Sentinel 配置與部署 Sentinel vs Cluster 總結 Redis 集群&#xff…

LLM視覺領域存在模型視覺識別不準確、細粒度視覺任務能力不足等科學問題

LLM視覺領域存在模型視覺識別不準確、細粒度視覺任務能力不足等科學問題 除了前面提到的數據集,還有一些用于評估視覺推理等能力的經典數據集。目前關于LLM視覺領域經典提示詞方面的名校或大公司論文較少,以下是相關科學問題、數據集及部分相關論文介紹: 科學問題 視覺推理…

Node.js worker_threads:并發 vs 并行

一、核心結論 Node.js 的 worker_threads 模塊實現的是 并行計算 ,而非傳統意義上的“并發”。其通過操作系統級線程實現多核 CPU 的并行執行,同時保留 Node.js 單線程事件循環的并發模型。 二、關鍵概念解析 1. 并發(Concurrency&#xff09…

gloo 多卡訓練

我們遇到了分布式訓練中的通信超時問題(Connection closed by peer)。根據錯誤信息,問題發生在梯度同步的屏障(barrier)操作時。以下是針對此問題的優化措施和代碼修改: 優化措施: 增強通信穩…

【Docker】在銀河麒麟ARM環境下離線安裝docker

1、前言 采用離線安裝的方式。 關于離線安裝的方式官網有介紹,但是說的很簡單,網址:Binaries | Docker Docs 官網介紹的有幾種主流linux系統的安裝方式,但是沒有kylin的,所以在此記錄一下。 在安裝過程中也遇到了些…

AUTOSAR進階圖解==>AUTOSAR_SWS_SOMEIPTransformer

AUTOSAR SOME/IP 轉換器規范詳解 基于AUTOSAR標準的SOME/IP轉換器協議解析與實現指南目錄 1. 介紹與功能概述2. SOME/IP架構 2.1 SOME/IP轉換器架構2.2 組件解釋2.3 層級說明 3. SOME/IP通信流程 3.1 客戶端/服務器通信序列3.2 通信流程解釋 4. SOME/IP消息結構 4.1 消息結構類…

Python 機器學習核心入門與實戰進階 Day 5 - 模型調參與交叉驗證技巧(GridSearchCV、KFold)

? 今日目標 理解模型調參的重要性(避免欠擬合/過擬合)掌握 GridSearchCV 的使用方法學習 K 折交叉驗證的基本流程與意義對比不同參數組合的表現使用 Pipeline 簡化流程(進階)📘 一、調參思路方法描述Grid Search窮舉所…