【計算機網絡入門】初學計算機網絡(十一)重要

目錄

1. CIDR無分類編址

1.1 CIDR的子網劃分

1.1.1 定長子網劃分

1.1.2 變長子網劃分

2. 路由聚合

2.1 最長前綴匹配原則

3. 網絡地址轉換NAT

3.1 端口號

3.2 IP地址不夠用?

3.3 公網IP和內網IP

3.4 NAT作用

4. ARP協議?

4.1 如何利用IP地址找到MAC地址?

5. DHCP協議

5.1 DHCP作用

5.2 DHCP分配流程

①discover:

②offer:

③request:

5.2.1 提出問題

④acknowledge:


1. CIDR無分類編址

????????由于互連網的興起,如果還是采用ipv4每人一個ip,那么42億ip地址一定是不夠用的,為了解決這個問題就有了CIDR無分類編址。

? ? ? ?傳統的IP地址分配方式

????????舉一個簡單的例子,某公司需要2000個ip地址,那么如果使用c類地址那么只有2的八次方?= 256個地址能用顯然是不夠的,所以使用b類地址,那就是有2的16次方 = 65536個地址,剩下的ip資源就會大量的浪費。

? ? ? ? CIDR無分類編址分配IP:

? ? ? ? 分配21位網絡號,那么主機號就是32 - 21 = 11,也就可以有2的11次方 = 2048個ip地址可以提供分配。

1.1 CIDR的子網劃分

1.1.1 定長子網劃分

????????這樣做有什么缺點呢?例如我們使用2bit作為子網號,那么14位是主機號,那就意味著每一個子網都要2的14次方個ip地址,那么實際情況下,有些子網可能根本不需要這么多的ip地址,就會造成資源的浪費。每個子網都一樣大,資源就會造成浪費。????????

1.1.2 變長子網劃分

????????從自由分配的主機號里面每次取出1bit作為子網號,就可以分為兩個子網,每個子網依次重復之前的步驟。

不斷劃分子網的網絡前綴不是其他子網的網絡前綴的前綴,其實就是哈夫曼編碼。

2. 路由聚合

????????當路由表項的部分網絡前綴相同并且轉發的出口一致,就可以合并為一個路由表項。這樣的聚合叫做路由聚合也叫做超網。

優點:

①路由表變小,內存占用減少。

②查詢速度減少。

缺點:

①可能引入無效地址;但是轉發的時候會走默認0.0.0.0,此幀將會被丟棄。

2.1 最長前綴匹配原則

當目的地址與表項中多個路由地址相同,有限選取匹配程度最高的表項,從該表項的接口轉發。

3. 網絡地址轉換NAT

3.1 端口號

????????網絡層實現了主機和主機之間的通信,但是事實上的通信一定是進程之間的通信,例如微信發送消息只能微信接收,那么我們要實現進程之間的通信就會引入端口號這一概念。

? ? ? ? IP地址+端口號就可以鎖定某一個主機的特定進程;每一臺主機的端口號相互獨立。

傳輸層包含的首部是:源端口和目的端口;網絡層包含的首部是:源IP地址和目的IP地址。

3.2 IP地址不夠用?

????????地址是32個bit,如果每一臺主機都要消耗全球唯一的IP地址,那么2的32次方 = 42億肯定是不夠用,那么如果一個局域網使用一個IP呢?例如校園網,有成千上萬臺設備,如果學校只用一個IP,成千上萬臺設備里面運行了幾十萬+個進程,我們只需要給這些進程編號即可區分彼此,所以端口號就能做到這一點。

3.3 公網IP和內網IP

? ? ? ? 一般來說,一個局域網才有資格使用全球唯一的IP,這個IP叫做公網IP或者外網IP。在局域網內部,有一些可以復用的特殊網段例如192.xx.xx.xx等,這些網段只能由內網使用,可以復用。

3.4 NAT作用

使用NAT可以將外網IP+端口號 ==》內網IP + 端口號(特定主機的特定進程)。

發送信息的流程

????????首先發送信息的一方把自己的內網IP和端口號、目的進程的公網IP和端口號封裝;然后到了距離目的進程最近的路由器,使用路由器中的NAT表對封裝內的目的IP和端口進行改寫,改寫成該網段下該進程的內網IP和端口,最后將封裝好的信息傳送給指定進程,進程再逐級拆分從而獲得真正的信息。

如何進行封裝信息

信息首先會添加傳輸層的TCP首部,其中包含源端口和目的端口;然后經過網絡層添加IP首部,其中包含源IP和目的IP。

4. ARP協議?

? ARP協議最核心的就是ARP表,里面記錄著IP和MAC地址之間的映射。

4.1 如何利用IP地址找到MAC地址?

首先將ARP請求分組封裝進MAC幀,目的地址全1進行廣播,源地址是自己的地址;當目的路由器收到ARP請求分組的時候,會記錄分組中的MAC和IP之間的映射關系在ARP表之中。ARP請求分組進行廣播之后,會受到ARP響應分組進行單播,源地址是要找的地址,目的地址是請求分組的源地址。此時發送方的路由器也會記錄IP和MAC地址在ARP表之中。

ARP請求分組

我的IP是xx,我的MAC是xx,要找IP是xx的家伙。

ARP響應分組:?

我是你要找的那個家伙,我的IP是xx,MAC是xx。

5. DHCP協議

5.1 DHCP作用

分配IP地址,配置子網掩碼、默認網關。

5.2 DHCP分配流程

一臺新接入網絡的主機會經過以下幾個步驟:

①discover:

首先在應用層封裝DHCP報文,自報家門,把自己的MAC地址封裝。

然后再傳輸層封裝UDP數據報,把自己的端口號和目的端口號進行封裝。

然后網絡層中封裝IP數據報,目的地址是全1進行廣播,源地址因為沒有分配所以是全0,形成廣播數據報

最后在數據鏈路層封裝MAC幀,把自己的MAC地址和全1的MAC地址封裝進去形成廣播幀。

如果是其他服務器接受到這個MAC幀,一層一層剝開發現傳輸層里面的目的端口是67,而67是DHCP獨占端口,所以接受到之后直接丟棄。

②offer:

DHCP服務端接收到客戶端發送的MAC幀就會一層一層拆開,最后發現傳輸層的端口就是自己的端口,于是返回一個offer。

首先在IP地址池里面找到一個空閑地址,應用層封裝DHCP數據報里面存著提供的空閑IP地址租用期、默認網關、子網掩碼。

然后到了傳輸層封裝UDP數據報里面存放著源端口號和目的端口號。

然后到了網絡層封裝IP數據報,目的IP是廣播,源IP。

最后封裝成MAC數據幀,把客戶端的MAC地址作為目的地址,源地址是本地地址,進行發送。

到了路由器直接進行精準發送。

DHCP客戶端收到MAC幀之后一層層拆開獲得IP地址、子網掩碼、默認網關。

③request:

此時在應用層封裝DHCP請求報文,內含自己的MAC地址,以及接受此IP地址。

然后去傳輸層封裝UDP數據報,內含DHCP服務器的端口和客戶端的端口。

在網絡層封裝IP數據報,內含廣播IP地址和0.0.0.0

在數據鏈路層封裝MAC幀,內含廣播MAC地址和自己的MAC地址

路由器收到MAC幀直接廣播,非DHCP服務器接收之后拆到傳輸層發現端口不對,直接丟棄

最后DHCP服務器收到。

5.2.1 提出問題

????????為什么第一次DHCP客戶端收到服務端的信息報文里面不含服務端的IP和MAC地址呢,這樣一來第二次發送request的時候就直接點對點發送不就好了嗎??

答案:因為不止一個DHCP服務器,第一次discover是進行廣播的,所以服務器都會發送一個offer,如果第三次是點對點發送給服務器,那么就有n-1個服務器不知道那個客戶端接收了誰的IP地址等信息,所以第三次的request必須是廣播形式。

④acknowledge:

DHCP服務端收到客戶端發來的MAC幀之后,需要返回確認幀。

DHCP確認報文被封裝到UDP報文,封裝到IP數據報,最后封裝到MAC幀指定發送給客戶端。

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

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

相關文章

Android 獲取jks的SHA1值:java.io.IOException: Invalid keystore format

命令生成 keytool -list -v -keystore 全路徑.jks -alias 別名 -storepass 密碼 -keypass 密碼 1、遇到 的問題: 通過快捷鍵 ‘win r’ 啟動的小黑框運行上面的命令會出現下面這個錯誤keytool 錯誤: java.io.IOException: Invalid keystore format 2、解決問題 …

掌握 ElasticSearch 聚合查詢:Aggregations 入門與實戰

掌握 ElasticSearch 聚合查詢:Aggregations 入門與實戰 一、引言 (Introduction)二、數據準備 (Data Preparation)2.1 創建索引 (Create Index)2.2 批量導入數據 (Bulk Import Data) 三、聚合查詢基礎 (Aggregation Basics)3.1 什么是聚合查詢?(What are…

Microsoft.Office.Interop.Excel 的簡單操作

Microsoft.Office.Interop.Excel 的簡單操作 1、安裝 Microsoft.Office.Interop.Excel2、聲明引用 Microsoft.Office.Interop.Excel3、簡單的新建 EXCEL 操作代碼4、將 DataGridView 表數據寫到 EXCEL 操作代碼5、將 EXCEL 表數據讀取到 C# 數據表 DataTable 操作代碼 1、安裝 …

LLM 對話框組件 | 字節青訓營前端開發項目

系統介紹 LLM對話框項目系統介紹 一、項目概述 選題背景隨著人工智能技術的飛速發展,自然語言處理(NLP)領域取得了顯著進展,其中對話系統(Dialog System)作為NLP的重要應用方向,正逐漸滲透到人們的日常生活中。從智能客服到語音助手,從智能家居到在線教育,對話系統以…

k8s命名空間和資源配額

在現代的云計算環境中,容器化技術已成為主流。而 Kubernetes(簡稱 k8s)作為一項開源的容器編排系統,廣泛應用于各類場景。本文將詳細介紹關于 k8s 中的命名空間和資源配額,幫助你更好地理解和管理你的集群資源。 k8s …

從統計學視角看機器學習的訓練與推理

從統計學視角看機器學習的訓練與推理 目錄 引言:統計學與機器學習的奇妙緣分訓練與推理:你得先學會“看數據”再“用數據”最大似然估計(MLE):從直覺到數學證明 3.1 伯努利分布的MLE3.2 單變量高斯分布的MLE3.3 多元…

AI賦能企業協作4-NL2Sql技術路線

1.1 對話即服務的一點思考 在數智化轉型的過程中,基于即時通信(IM)的協作平臺正悄然成為企業智能化轉型的“新基建”。協作平臺天然具備高頻交互、實時協同和場景化落地的特性,仿佛是為對話式AI量身定制的試驗場——員工在熟悉的聊…

批量提取 Word 文檔中的頁面

如何將 Word 文檔中的頁面提取出來形成一個新的文檔呢?比如將 Word 文檔中的第一頁提取出來、將 Word 文檔中的最后一頁提取出來、再或者將 Word 文檔中的中間幾頁提取出來等等。人工的處理肯定非常的麻煩,需要新建 Word 文檔,然后將內容復制…

Sqlserver安全篇之_啟用TLS即配置SQL Server 數據庫引擎以加密連接

官方文檔 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/configure-sql-server-encryption?viewsql-server-ver16 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/manage-certificates?viewsql-server-ver15&pre…

多鏡頭視頻生成、機器人抓取、擴散模型個性化 | Big Model weekly第58期

點擊藍字 關注我們 AI TIME歡迎每一位AI愛好者的加入! 01 GLM-4-Voice: Towards Intelligent and Human-Like End-to-End Spoken Chatbot 本文介紹了一種名為GLM-4-Voice的智能且類人化的端到端語音聊天機器人。它支持中文和英文,能夠進行實時語音對話&a…

基于 Rust 與 GBT32960 規范的編解碼層

根據架構設計,實現編解碼層的代碼設計 Cargo.toml 加入二進制序列化支持 # 序列化支持 ... bincode "1.3" # 添加二進制序列化支持 bytes-utils "0.1" # 添加字節處理工具 開始編碼 錯誤處理(error.rs&#x…

MOM成功實施分享(七)電力電容制造MOM工藝分析與解決方案(第一部分)

聲明:文章僅用于交流學習,不用于商業項目實施,圖片來源于網絡,如有侵犯權利,請聯系作者及時刪除。 本方案旨在對電力電容(PEC和PQM型號)制造工藝深度分析,結合管理要求設計MOM相關功…

FPGA開發,使用Deepseek V3還是R1(1):應用場景

以下都是Deepseek生成的答案 FPGA開發,使用Deepseek V3還是R1(1):應用場景 FPGA開發,使用Deepseek V3還是R1(2):V3和R1的區別 FPGA開發,使用Deepseek V3還是R1&#x…

JavaWeb后端基礎(3)

原打算把Mysql操作數據庫的一些知識寫進去,但是感覺沒必要,要是現在會的都是簡單的增刪改查,所以,這一篇,我直接從java操作數據庫開始寫,所以這一篇大致就是記一下JDBC、MyBatis、以及SpringBoot的配置文件…

Pytorch實現之SRGAN+CBAM的結構設計

簡介 簡介:在SRGAN的殘差連接中加入了CBAM注意力機制,同時設計了四類損失來訓練。 論文題目:Super-resolution Generative Adversarial Networks Based on Attention Model(基于注意力模型的超分辨率生成對抗網絡) 會議:2020 IEEE第六屆計算機與通信國際會議 摘要:基…

移動端國際化翻譯同步解決方案-V3

1.前言 因為軟件出海,從在上上家公司就開始做翻譯系統,到目前為止已經出了兩個比較大的版本了,各個版本解決的痛點如下: V1版本: 主要針對的是AndroidiOS翻譯不一致和翻譯內容管理麻煩的問題,通過這個工具…

2.css簡介

什么是css: CSS (Cascading Style Sheets,層疊樣式表),是一種用來為結構化文檔(如 HTML 文檔或 XML 應用)添加樣式(字體、間距和顏色等)的計算機語言,CSS 文件擴展名為 .…

機器人學習模擬框架 robosuite (3) 機器人控制代碼示例

Robosuite框架是一個用于機器人模擬和控制的強大工具,支持多種類型的機器人。 官方文檔:Overview — robosuite 1.5 documentation 開源地址:https://github.com/ARISE-Initiative/robosuite 目錄 1、通過鍵盤或SpaceMouse遠程控制機器人…

可終身授權的外國工具,不限次數使用!PDF轉CAD的軟件

最近有不少朋友問我有沒有好用的CAD轉換工具,今天就來給大家分享兩款超實用的小軟件,希望能幫到大家。 第一款軟件是一款國外開發的,它專門用來把PDF文件轉換成CAD格式,特別方便。 這款軟件的操作非常簡單,打開后無需安…

Ubuntu系統上部署Node.js項目的完整流程

以下是在Ubuntu系統上部署Node.js項目的完整流程,分為系統初始化、環境配置、項目部署三個部分: 一、系統初始化 & 環境準備 bash # 1. 更新系統軟件包 sudo apt update && sudo apt upgrade -y# 2. 安裝基礎工具 sudo apt install -y buil…