計算機網絡 | 什么是公網、私網、NAT?

關注:CodingTechWork

引言

??計算機網絡是現代信息社會的基石,而網絡通信的順暢性和安全性依賴于有效的IP地址管理和網絡轉換機制。在網絡中,IP地址起到了標識設備和進行數據傳輸的核心作用。本文將詳細討論公網IP、私網IP以及NAT轉換等網絡技術概念,幫助您更好地理解計算機網絡的運作方式。

什么是IP地址?

??在進入公網IP和私網IP的討論之前,我們首先要理解IP地址(Internet Protocol Address)。IP地址是網絡上每一臺設備的唯一標識符。它用于區分不同設備并確保數據能夠精確地傳輸到目標設備。IP地址有兩個版本:

  • IPv4:采用32位地址,通常用四個十進制數字表示(如:192.168.1.1)。
  • IPv6:采用128位地址,能夠提供更多的地址空間。

公網IP地址

公網IP的定義

??公網IP地址是由互聯網服務提供商(ISP)分配的IP地址,能夠在互聯網上被直接訪問和識別。這些IP地址是全球唯一的,不同的設備和服務器通過公網IP地址與全球其他設備進行通信。

公網IP的特點

  • 唯一性:公網IP是全球唯一的,意味著一個公網IP地址只能指向一個特定的設備。
  • 直接可訪問性:公網IP可直接與互聯網中的其他設備建立連接,數據可以自由流動。
  • 有限性:由于IPv4地址空間有限,公網IP地址是寶貴的資源,尤其在IPv4時代,公網IP數量的匱乏引發了各種網絡地址管理和優化措施。

公網IP的用途

  • Web服務器和網站:大多數網站和Web服務器使用公網IP,使得全球用戶能夠訪問。
  • 郵件服務器:電子郵件傳輸依賴于公網IP地址。
  • 網絡設備:如路由器、交換機、網絡攝像頭等,需要使用公網IP來進行遠程訪問。

私網IP地址

私網IP的定義

??私網IP地址是指在一個局域網(LAN)內部使用的IP地址。這些地址不能直接訪問互聯網,而是僅用于內部網絡設備之間的通信。私網IP地址的范圍是由國際互聯網標準組織(IETF)定義的,專門保留給局域網使用。

私網IP的地址范圍

根據RFC 1918標準,私網IP地址分為以下幾個范圍:

  • Class A:10.0.0.0 – 10.255.255.255
  • Class B:172.16.0.0 – 172.31.255.255
  • Class C:192.168.0.0 – 192.168.255.255

    這些私網IP地址不會在互聯網上路由,它們只在局域網內部有效。

私網IP的特點

  • 不可直接訪問互聯網:私網IP地址不具有全球唯一性,因此不能直接訪問公網。
  • 共享性:私網IP地址可以在多個不同的局域網中重復使用。
  • 節省公網IP資源:私網IP的使用能夠大大減少對公網IP地址的需求。

私網IP的用途

  • 局域網通信:家庭網絡、企業內部網絡等通常使用私網IP進行設備間的通信。
  • 局域網內服務器:如打印機、文件服務器等設備通常使用私網IP地址。

NAT(網絡地址轉換)

NAT的定義

??NAT(Network Address Translation,網絡地址轉換)是一種技術,用于將私網IP地址轉換為公網IP地址,反之亦然。NAT技術的主要作用是解決公網IP地址匱乏的問題,使得多個私網IP設備能夠共享一個公網IP訪問互聯網。

NAT的工作原理

??NAT通常部署在路由器或網關上,當局域網中的設備需要訪問互聯網時,路由器會將設備的私網IP地址轉換為公網IP地址。這種轉換可以是一對一或多對一的方式。最常見的NAT形式是源地址轉換(SNAT),即將內網設備的私網IP轉換為公網IP。

NAT的類型

  • 靜態NAT:靜態NAT將一個私網IP地址映射到一個固定的公網IP地址。這種方式通常用于需要外部訪問的服務器,如Web服務器、郵件服務器等。
  • 動態NAT:動態NAT將私網IP地址映射到一組公網IP地址中的一個。在訪問請求時,動態NAT會隨機選擇一個公網IP進行映射。這種方式更為常見,適用于內網設備頻繁訪問互聯網的場景。
  • 端口地址轉換(PAT,Port Address Translation):PAT是NAT的一種形式,它將多個私網IP地址映射到同一個公網IP地址的不同端口上。通過這種方式,多個設備可以共享同一個公網IP地址,利用不同的端口進行區分。PAT常常用于家庭或小型企業網絡。

NAT的優勢

  • 節省公網IP資源:由于多個設備可以共享一個公網IP,NAT能夠大幅度減少公網IP地址的需求。
  • 安全性提升:NAT可以隱藏內網設備的私網IP地址,外部網絡無法直接訪問內網設備,提供了一定程度的安全防護。

NAT的缺點

  • 訪問限制:NAT可能導致某些應用(如VoIP、P2P等)無法正常工作,因為它改變了IP地址和端口號,可能會破壞應用程序的通信。
  • 性能開銷:NAT需要實時轉換IP地址和端口,可能會增加網絡設備的處理負擔,影響網絡性能。

NAT與私網IP的關系

??NAT技術是實現私網IP地址與公網IP地址之間互通的橋梁。私網IP通常用來進行內部通信,而NAT則在網絡邊界提供了與公網的連接。由于公網IP的稀缺,NAT成為了連接大規模局域網和互聯網的核心技術之一。

常見的NAT類型

SNAT

SNAT的定義

??SNAT(Source Network Address Translation)源地址轉換是NAT的一種技術,用于修改數據包的源IP地址。SNAT通常用于局域網中的設備訪問外部網絡(如互聯網)時,通過將其私網IP轉換為公網IP來實現通信。

SNAT的工作原理

??當局域網中的設備發起一個到外部網絡(例如互聯網)的請求時,路由器或網關會將設備的源IP地址(即私網IP地址)轉換為公網IP地址。返回數據包時,路由器會將目的IP地址轉換回相應的私網IP地址,確保數據能夠準確返回到源設備。

SNAT的示例

??假設有一個局域網內的設備使用私網IP地址192.168.1.10發起訪問請求。該設備訪問外部服務器時,路由器將其源IP地址192.168.1.10轉換為公網IP地址203.0.113.5。

  • 請求時:私網設備192.168.1.10 -> 公網服務器 (通過路由器 SNAT 轉換為公網IP 203.0.113.5)。
  • 返回時:公網服務器 -> 路由器(公網IP 203.0.113.5) -> 內網設備 192.168.1.10(通過SNAT還原)。

SNAT的應用場景

  • 家庭或小型企業網絡:多個設備共享一個公網IP訪問互聯網。
  • 負載均衡:多個內部服務器共享單個公網IP進行外部訪問。

DNAT

DNAT的定義

??DNAT(Destination Network Address Translation)目的地址轉換是NAT的一種技術,用于修改數據包的目的IP地址。與SNAT相反,DNAT在外部設備(如互聯網)訪問內部網絡時,將目標IP地址從公網IP地址轉換為私網IP地址。

DNAT的工作原理

??當外部設備向公網IP地址發送請求時,路由器會根據NAT規則將目標地址(公網IP)轉換為局域網設備的私網IP地址。這種方式使得外部設備能夠訪問內網中的服務(如Web服務器、FTP服務器等)。

DNAT的示例

??假設外部設備需要訪問局域網內的Web服務器,該服務器的私網IP地址為192.168.1.20,路由器的公網IP地址為203.0.113.5。當外部設備向203.0.113.5發送HTTP請求時,路由器將請求的目標地址轉換為192.168.1.20,并將數據包轉發到Web服務器。

  • 請求時:外部設備 -> 路由器公網IP 203.0.113.5(路由器進行DNAT轉換,將請求轉發至192.168.1.20)。
  • 返回時:Web服務器 192.168.1.20 -> 路由器(NAT轉換) -> 外部設備。

DNAT的應用場景

  • 遠程訪問:將外部訪問請求轉發到內網的Web服務器或其他服務。
  • 防火墻:使內網中的特定設備可以公開服務而不直接暴露其私網IP。

FNAT

FNAT的定義

??FNAT(Full Network Address Translation)全網絡地址轉換是一種NAT技術,通常,FNAT=SNAT+DNAT。

結論

??理解公網IP、私網IP和NAT轉換是學習計算機網絡的基礎。公網IP作為設備在互聯網上的唯一標識,私網IP為內部網絡提供了通信空間,而NAT技術則通過將多個私網IP映射到少量公網IP,幫助我們實現資源共享和安全訪問。隨著網絡環境的不斷變化,NAT技術也在不斷發展,提供更靈活和安全的解決方案。

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

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

相關文章

python+django+Nacos實現配置動態更新-集中管理配置(實現mysql配置動態讀取及動態更新)

一、docker-compose.yml 部署nacos服務 version: "3" services:mysql:container_name: mysql# 5.7image: mysql:5.7environment:# mysql root用戶密碼MYSQL_ROOT_PASSWORD: rootTZ: Asia/Shanghai# 初始化數據庫(后續的初始化sql會在這個庫執行)MYSQL_DATABASE: nac…

深度學習項目--基于LSTM的火災預測研究(pytorch實現)

🍨 本文為🔗365天深度學習訓練營 中的學習記錄博客🍖 原作者:K同學啊 前言 LSTM模型一直是一個很經典的模型,這個模型當然也很復雜,一般需要先學習RNN、GRU模型之后再學,GRU、LSTM的模型講解將…

基于 WEB 開發的汽車養護系統設計與實現

標題:基于 WEB 開發的汽車養護系統設計與實現 內容:1.摘要 本文介紹了基于 WEB 開發的汽車養護系統的設計與實現。文章首先闡述了系統的背景和目的,即隨著汽車保有量的增加,汽車養護需求日益增長,傳統的汽車養護方式已經無法滿足人們的需求&…

GitLab集成Jira

GitLab與Jira集成的兩種方式 GitLab 提供了兩種 Jira 集成,即Jira議題集成和Jira開發面板集成,可以配置一個或者兩個都配置。 具體集成步驟可以參考官方文檔Jira 議題集成(極狐GitLab文檔)和Jira 開發面板集成(極狐G…

【爬蟲】某某查cookie逆向

代碼僅供技術人員進行學習和研究使用,請勿將其用于非法用途或以任何方式竊取第三方數據。使用該代碼產生的所有風險均由用戶自行承擔,作者不對用戶因使用該代碼而造成的任何損失或損害承擔任何責任。 加密參數 加密參數主要是cookie,其中只有…

A5.Springboot-LLama3.2服務自動化構建(二)——Jenkins流水線構建配置初始化設置

下面我們接著上一篇文章《A4.Springboot-LLama3.2服務自動化構建(一)——構建docker鏡像配置》繼續往下分析,在自動化流水線構建過程當中的相關初始化設置和腳本編寫。 一、首先需要先安裝Jenkins 主部分請參考我前面寫的一篇文章《Jenkins持續集成與交付安裝配置》 二、…

如何設置HTTPS站點防御?

設置HTTPS站點防御涉及到多個層面的安全措施,包括但不限于配置Web服務器、應用安全頭信息、使用內容安全策略(CSP)、啟用HSTS和OCSP Stapling等。下面是一些關鍵的步驟來增強HTTPS網站的安全性: 1. 使用強加密協議和密鑰交換算法…

[Java]類和對象

1. 什么是類? 類(Class)是藍圖或者模板。它定義了對象的屬性和行為。 類就是一種抽象的模板,你可以通過它創建多個對象。類定義了對象的屬性(變量)和行為(方法)。我們可以把類理解…

win32匯編環境,窗口程序中基礎列表框的應用舉例

;運行效果 ;win32匯編環境,窗口程序中基礎列表框的應用舉例 ;比如在窗口程序中生成列表框,增加子項,刪除某項,取得指定項內容等 ;直接抄進RadAsm可編譯運行。重點部分加備注。 ;以下是ASM文件 ;>>>>>>>>>>>…

【機器學習實戰入門】使用LSTM機器學習預測股票價格

機器學習在股票價格預測中有重要的應用。在這個機器學習項目中,我們將討論如何預測股票的收益。這是一個非常復雜的任務,充滿了不確定性。我們將會把這個項目分成兩部分進行開發: 首先,我們將學習如何使用 LSTM 神經網絡預測股票…

【編程語言】C/C++語言常見標準和規范

C/C 是兩種功能強大且廣泛使用的編程語言。盡管它們沒有像 Java 那樣強制性的命名規則,但為了提高代碼的可讀性和可維護性,遵循一些普遍認同的編程規范和標準仍然是非常重要的。本文將探討 C/C 編程中的一些命名規范及標準,以幫助開發者編寫更…

使用C語言實現棧的插入、刪除和排序操作

棧是一種后進先出(LIFO, Last In First Out)的數據結構,這意味著最后插入的元素最先被刪除。在C語言中,我們可以通過數組或鏈表來實現棧。本文將使用數組來實現一個簡單的棧,并提供插入(push)、刪除(pop)以及排序(這里采用一種簡單的排序方法,例如冒泡排序)的操作示…

08、如何預防SQL注入

目錄 1、分析及其存在哪些危險 2、預防SQL注入 1、分析及其存在哪些危險 原理: SQL 注入是一種常見的網絡攻擊手段,攻擊者通過在用戶輸入中插入惡意的 SQL 語句,利用程序對用戶輸入處理不當的漏洞,使惡意 SQL 語句被數據庫服務器執行。 通常發生在應用程序將用戶輸入直接拼…

【爬蟲】使用 Scrapy 框架爬取豆瓣電影 Top 250 數據的完整教程

前言 在大數據和網絡爬蟲領域,Scrapy 是一個功能強大且廣泛使用的開源爬蟲框架。它能夠幫助我們快速地構建爬蟲項目,并高效地從各種網站中提取數據。在本篇文章中,我將帶大家從零開始使用 Scrapy 框架,構建一個簡單的爬蟲項目&am…

1.11 思維樹(Tree-of-Thoughts, ToT):續寫佳話

思維樹(Tree-of-Thoughts, ToT):續寫佳話 人工智能在推理和決策方面的突破,越來越依賴于模型能夠以更高效、更靈活的方式進行推理。與傳統的順序性推理方法不同,**思維樹(Tree-of-Thoughts,ToT)**提供了一種基于樹狀結構的推理方式,鼓勵模型從多個角度進行探索,并在…

NVIDIA 下 基于Ubuntun20.04下 使用腳本安裝 ros2-foxy 和 使用docker安裝 ros2-foxy

一、前提介紹: 本文主要采用兩種方式在NVIDIA 下基于 Ubuntun20.04安裝 ros2-foxy。 使用環境: NVIDIA 為 Jetson 系列下 Jetson Xavier NX; Ubuntun版本:20.04 二、安裝方法: 1、使用腳本編譯方式: 使…

wx030基于springboot+vue+uniapp的養老院系統小程序

開發語言:Java框架:springbootuniappJDK版本:JDK1.8服務器:tomcat7數據庫:mysql 5.7(一定要5.7版本)數據庫工具:Navicat11開發軟件:eclipse/myeclipse/ideaMaven包&#…

【人工智能】Python中的自動化機器學習(AutoML):如何使用TPOT優化模型選擇

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 隨著機器學習在各行業的廣泛應用,模型選擇和優化成為了數據科學家面臨的主要挑戰之一。自動化機器學習&am…

計算機網絡常見協議

目錄 OSPF(Open Shortest Path First) NAT(Network Address Translation) ICMP (Internet Control Message Protocol) HTTPS(SSL/TLS加密) HTTPS協議 1. 對稱加密 2. 非對稱加密 3. 證書驗證 4. 回顧https協議傳輸流程 HTTP TCP UDP 1. TCP&a…

1.7 ChatGPT:引領AI對話革命的致勝之道

ChatGPT:引領AI對話革命的致勝之道 隨著人工智能(AI)技術的迅猛發展,特別是在自然語言處理(NLP)領域,OpenAI 的 ChatGPT 已經成為了舉世矚目的技術突破。從普通的自動化客服到深入的創作與協作,ChatGPT 通過其卓越的語言理解和生成能力,改變了人們與計算機交互的方式…