網絡原理之 IP 協議

目錄

1. IP 協議報文格式

2. 網段劃分

3. 地址管理

1) 動態分配

2) NAT 機制 (網絡地址轉換)

3) IPv6

4. 路由選擇


1. IP 協議報文格式

IP 協議是網絡層的重點協議。

網絡層要做的事情,主要就是兩方面:

1) 地址管理

制定一系列的規則,通過地址,描述出網絡上一個設備的位置。

2) 路由選擇

網絡環境是比較復雜的,從一個節點到另一個節點之間,存在很多條不同的路徑,就需要通過路由選擇這種方式,篩選/規劃出更合適的路徑進行傳輸。

我們先來看看 IP 協議長什么樣。

2. 網段劃分

一個 IP 地址,分為兩個部分:網絡號(標識了一個局域網) + 主機號(標識了局域網中的一個設備)

比如:

一個 IP 地址,哪個部分是網絡號,哪個部分是主機號,通過子網掩碼就能知道。

子網掩碼是一個 32 位的整數,左側都是 1,右側都是 0 ,不會? 1? 0? 交替出現。

帶有子網掩碼的網段劃分,是當下的網絡環境的現狀。

很久之前也有過下面這種方式劃分:

但是在現在,這種方式已經看不到了,只會在教材上出現這種劃分方式。

如果一個 IP 地址,主機號全為 0,當前這個 IP 就表示網絡號,一個具體的主機是不能分配這個 IP 的。

192.168.17.0

255.255.255.0

如果一個 IP 地址,主機號全為 1,當前這個 IP 就表示廣播地址,一個具體的主機是不能分配這個 IP 的。

192.168.17.255

255.255.255.0

如果一個 IP 地址是以 127 開頭的,那么這個 IP 地址就是 "環回 IP ",表示的是設備自身,最常用的是 127.0.0.1,操作系統提供了一個特殊的虛擬網卡,關聯到了這個 IP 上,環回 IP 主要是測試用的,它能夠排除網絡不通干擾因素,更好的排查代碼中的問題。

IP 協議的兩個核心功能:地址管理和路由選擇。

3. 地址管理

IP 地址是一個 32 位的整數,2^32?=> 42億9千萬

地址,理論上來說,是不應該重復的。

在以前看來,可能會覺得這個數字很大,綽綽有余,但是到了今天,能上網的設備早就超過了 42億9千萬 這個數字。

那么如何解決 IP 地址不夠用的問題呢?

1) 動態分配

你要上網才給你分配 ip,不上網就不分配 ip。但是這個方案,指標不治本,提高了 ip 地址的利用率,并沒有增加 ip 的數量。

2) NAT 機制 (網絡地址轉換)

本質上是讓一個 ip 地址,代表一批設備。

把 IP 地址分為兩個大類:

1. 內網 IP (局域網 IP)

如果一個地址,是以 10.* 或者 172.16.*? -? 172.31.* 或者 192.168.* 開頭的,那么這個 ip 就是內網 ip。

同一個局域網內部,內網 IP 不能重復。不同的局域網之間,內網 IP 之間,可以重復。

2. 外網 IP (廣域網 IP)

剩下的 ip 就是外網 ip。

外網 ip 則始終都不允許重復,只能唯一。

當前情況下,通常都是一個小區/一個學校/一個公司,構成一個大的局域網,這個局域網中可能就有幾千個,上萬個設備,這樣的局域網,就使用一個外網 ip 即可。

那么 NAT 機制具體是怎么工作的呢?

如圖:

如果當前局域網內,有多個主機,都訪問同一個網站服務器,此時服務器返回的響應經過路由器之后,要交還給哪個主機呢?

如圖:

如果同一時間,同一局域網,并且是相同的端口的主機同時請求同一服務器的話:

當前的網絡環境,就是以 NAT + 動態分配的方式來解決 IP 地址不夠用的問題的。

NAT 機制,最大的優勢是:"純軟件的方案"。

也正是因為這個機制,局域網內部的設備,能夠主動訪問外網的設備,外網的設備無法主動訪問局域網內部的設備,這個局限性也不是壞事,能夠很好保護我們的設備。

3) IPv6

IPv6 使用 16 個字節來表示 IP 地址,這個就從根本上解決了 IP 地址不夠用的問題。

2^8^16 = 2^128 = 2^32 * 2^32 * 2^32 * 2^32 = 42 億的四次方,最終的結果是個天文數字。

這個數字大到可以給地球上的每一粒沙子都分配一個不同的 ip 地址,還綽綽有余。

但是,IPv6 的普及程度,是比較低的。

IPv6 最大的問題是和 IPv4 不兼容,想要支持 IPv6 就得換設備,要花錢,可是花了錢,網速上也不會有提升,所以就沒人樂意主動升級 IPv6,但是我國是 IPv6 普及程度最高的國家,因為國家大力推進支持升級 IPv6,現在近幾年裝的寬帶,都是主動送你支持 IPv6 的路由器的。

4. 路由選擇

路由選擇,就是描述了 IP 協議(IP 數據報) 的轉發過程。

從 A 到 B,中間有很多條路徑可以走。

進行數據包轉發的時候,每個路由器都是無法知道網絡的 "全貌" 的,只知道一些局部信息(一個路由器能知道哪些設備和它自己是相連的),這就意味著,IP 數據在轉發過程中,是一個 "探索式", "啟發式" 的過程,這個過程很難給出最優解,只能是較優解。

一個網絡層的數據報,每次到達一個路由器,都會進行 "問路"。

每個路由器都有一個數據結構 "路由表"(路由表內容可以手動配置,也可以自動獲取),根據數據報中的目的 IP,來查詢路由表,如果查到了(相當于問路人,路人知道怎么走),就直接按照路由表給定的方向(從哪個網絡接口進行轉發),繼續轉發就行了,如果沒查到(問路人,路人也不知道怎么走),路由表里面有一個 "默認的表項" (下一個地址),按照默認的表項轉發即可。

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

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

相關文章

HyperMesh CFD功能詳解:后處理功能Part 2

Clips Clips 按鈕包含兩個工具。Box Clip用于空間上的裁剪,Scalar Clip可以根據物理量的范圍裁剪。 示例:Box Clips 裁剪 示例:Scalar Clips 裁剪 通過裁剪,僅顯示density范圍是10~20的等值面 示例:顯示效果控制 部分透…

Java項目實戰II基于微信小程序的跑腿系統(開發文檔+數據庫+源碼)

目錄 一、前言 二、技術介紹 三、系統實現 四、核心代碼 五、源碼獲取 全棧碼農以及畢業設計實戰開發,CSDN平臺Java領域新星創作者,專注于大學生項目實戰開發、講解和畢業答疑輔導。獲取源碼聯系方式請查看文末 一、前言 在快節奏的現代生活中&…

【機器學習與數據挖掘實戰案例01】基于支持向量回歸的市財政收入分析

【作者主頁】Francek Chen 【專欄介紹】 ? ? ?機器學習與數據挖掘實戰 ? ? ? 機器學習是人工智能的一個分支,專注于讓計算機系統通過數據學習和改進。它利用統計和計算方法,使模型能夠從數據中自動提取特征并做出預測或決策。數據挖掘則是從大型數…

windows下nacos啟動報錯:java.lang.unsatisfiedLinkError: C:\USers\亂碼AppData\xxx.dll

問題 看了許多別的帖子,大家都是因為缺少dll包,下載安裝 Microsoft Visual C 2015 Redistributable 就可以。但我試過了不行。思來想去,之前正常的時候用的JDK版本是17,后面別的項目用1.8給切換回來了。然后嘗試配置環境變量將JD…

JavaEE 【知識改變命運】03 多線程(3)

文章目錄 多線程帶來的風險-線程安全線程不安全的舉例分析產出線程安全的原因:1.線程是搶占式的2. 多線程修改同一個變量(程序的要求)3. 原子性4. 內存可見性5. 指令重排序 總結線程安全問題產生的原因解決線程安全問題1. synchronized關鍵字…

并發在前端中的應用?

?并發在前端中的應用主要體現在處理多個請求和優化頁面加載速度方面?。前端并發處理通常涉及在極短時間內發送多個數據請求,例如在頁面渲染時同時請求多個數據。通過并發處理,可以顯著減少頁面加載時間,提升用戶體驗。 前端并發處理的具體…

【力扣】409.最長回文串

問題描述 思路解析 因為同時包含大小寫字母,直接創建個ASCII表大小的桶來標記又因為是要回文子串,所以偶數個數的一定可以那么同時,對于出現奇數次數的,我沒需要他們的次數-1,變為偶數,并且可以標記出現過…

計算機視覺在科學研究(數字化)中的實際應用

計算機視覺是一種利用計算機技術來解析和理解圖像和視頻的方法。.隨著計算機技術的不斷發展,計算機視覺被廣泛應用于科學研究領域,為科學家提供了無限的可能。 一、生命科學領域 在生命科學領域,計算機視覺被廣泛用于圖像識別、分類和測量等…

springboot381銀行客戶管理系統(論文+源碼)_kaic

摘 要 伴隨著信息技術與互聯網技術的不斷發展,人們進到了一個新的信息化時代,傳統管理技術性沒法高效率、容易地管理信息內容。為了實現時代的發展必須,提升管理高效率,各種各樣管理管理體系應時而生,各個領域陸續進到…

JMX 組件架構即詳解

JMX架構由三個主要組件構成: ?MBeans(Managed Beans)?:代表可管理的資源,是JMX的核心。MBean可以是Java類或接口,提供了管理操作的接口,如獲取系統信息、設置參數等。?MBeanServer?&#x…

LLMs之ICL:《Bayesian scaling laws for in-context learning》翻譯與解讀

LLMs之ICL:《Bayesian scaling laws for in-context learning》翻譯與解讀 導讀:這篇論文的核心議題是理解和建模大型語言模型(LLM)的上下文學習(ICL)能力。文章從貝葉斯學習的角度出發,提出了一…

基于單片機和測頻法的頻率計設計及proteus仿真

摘要: 傳感器廣泛應用在自動化測量中,該文利用 51 單片機 2 個 16 位定時器和測量頻率中的測頻法設計了測量方波的頻率計,并用LCD1602 液晶顯示頻率、 proteus 仿真,測試結果表明設計思路正確、誤差小。 關鍵詞: 單片機;測頻法;頻率計; proteus 1 概述 傳感器能感受到…

軟件漏洞印象

軟件漏洞印象 軟件安全性檢測 軟件安全靜態分析:學術界一度十分熱衷的偏理論性方法軟件漏洞動態挖掘,工程界普遍采用動態漏洞挖掘方式,即Fuzz技術,也稱為模糊測試 漏洞利用 vs. 漏洞修復 對于已發現的軟件漏洞 黑客會基于Meta…

計算機網絡 —— HTTPS 協議

前一篇文章:計算機網絡 —— HTTP 協議(詳解)-CSDN博客 目錄 前言 一、HTTPS 協議簡介 二、HTTPS 工作過程 1.對稱加密 2.非對稱加密 3.中間人攻擊 4.引入證書 三、HTTPS 常見問題 1.中間人能否篡改證書? 2.中間人能否調…

定點數的乘除運算

原碼一位乘法 乘積的符號由兩個數的符號位異或而成。(不參與運算)被乘數和乘數均取絕對值參與運算,看作無符號數。乘數的最低位為Yn: 若Yn1,則部分積加上被乘數|x|,然后邏輯右移一位;若Yn0&…

如何設置ChromeDriver路徑?

設置ChromeDriver路徑是為了讓Selenium能夠正確地調用Chrome瀏覽器進行自動化操作。以下是幾種設置ChromeDriver路徑的方法: 1. 系統環境變量 將ChromeDriver的路徑添加到系統的環境變量中,這樣在任何地方都可以直接調用ChromeDriver。 Windows系統&a…

數據挖掘:一、Weka軟件的基本操作

實驗目的和要求 了解Weka軟件的使用 實驗環境 Windows11 Weka3.8.6 實驗內容與過程 實驗內容 1、了解Weka使用的一般步驟 2、利用Weka,對數據集進行關聯規則挖掘及數據分類 3、記錄操作步驟、使用的數據、最終的結果 實驗過程 首先打開weka下載官網,選擇合適

【從零開始的LeetCode-算法】383. 贖金信

給你兩個字符串:ransomNote 和 magazine ,判斷 ransomNote 能不能由 magazine 里面的字符構成。 如果可以,返回 true ;否則返回 false 。 magazine 中的每個字符只能在 ransomNote 中使用一次。 示例 1: 輸入&#…

【第二十四周】從大語言模型到多模態大模型的發展

摘要 大語言模型(Large Language Model, LLM)是指一類基于深度學習的人工智能系統,它們被設計用來理解和生成自然語言。這些模型通常是在大量的文本數據上進行訓練的,通過學習文本中的模式和結構,它們能夠執行各種各樣…

https ssl免費證書申請,自動續期,acme、certd

本文為個人筆記,方便自己需要時查閱,同時提供出來給大家作為免費ssl證書自動續簽需求的一種參考 大部分免費證書的有效期僅有3個月,所以證書管理會涉及到自動續期管理的問題 一、acme證書 大佬們常用的證書證書申請管理方式,提…