淺談TCP IP協議棧(二)IP地址

来源:https://www.cnblogs.com/linhaostudy/archive/2019/01/21/10297618.html
-Advertisement-
Play Games

上一節大致瞭解TCP/IP協議棧是個啥東西,依舊是霧裡看花的狀態,有很多時候學一門新知識時,開頭總是很急躁,無從下手,剛學會一點兒,卻發現連點皮毛都不算,成就感太低,所以任何時候學習最重要的是要在合適的時間掌握應該掌握的知識,循序漸進方能進步。 先簡單回顧一下,TCP/IP協議棧: 如果為每一層加上 ...


上一節大致瞭解TCP/IP協議棧是個啥東西,依舊是霧裡看花的狀態,有很多時候學一門新知識時,開頭總是很急躁,無從下手,剛學會一點兒,卻發現連點皮毛都不算,成就感太低,所以任何時候學習最重要的是要在合適的時間掌握應該掌握的知識,循序漸進方能進步。

先簡單回顧一下,TCP/IP協議棧:

數據鏈路層->網路層->傳輸層->應用層 

如果為每一層加上一個ID,就像每個人都有身份證那樣,那麼可以這樣標記:

數據鏈路層(MAC地址)

網路層(IPV4地址,以下簡稱IP地址)

傳輸層、應用層(埠)

這樣的標簽並不能完全概括這一層所有特征,但是如果掌握這些標示,就相當於是一把鑰匙,可以讓你快速打開這一層協議的“大門”。

和我們生活關係最密切的IP地址:

image

作為網路層的標識,IP地址這個概念可以說大家肯定都有耳聞,IP地址是一個32位的二進位數,32位是個什麼概念呢?相當於是4個位元組,學過C語言的同學應該知道,一個int型數據就是32位,那麼IP地址的個數應該就是int的最大值4294967296,看上去很多是不是,有43億呢,但是在互聯網爆炸式發展的今天,這點IP地址還真的不夠分,因此IPV6因運而生,這都是後話,以後有機會在介紹。

試想一下,某個IP地址是:11000000101010000000000100000001

是不是看著有點暈,沒辦法,我們看慣了10進位的1,2,3,10,99之類的,看這些二進位數真是覺得極不友好,讓你去背這樣一個IP地址,估計得好久,而且估計記住沒多久就會忘了,因此我們隊IP地址採取一種特殊的表示方式——點分十進位表示法,上面的二進位IP地址轉換後是:192.168.1.1,是不是很眼熟,這是大家在設置無線路由器時進入設置界面的IP地址。

說完IP地址的表示方式,我們再說一下IP地址的分類,IP地址通常分為5類:

A類地址 (1.0.0.0—127.255.255.255) 

B類地址 (128.0.0.0—191.255.255.255) 

C類地址 (192.0.0.0—223.255.255.255) 

D類地址 (224.0.0.0 - 239.255.255.255) 

E類地址 (240.0.0.0 - 255.255.255.254)

每一類地址後面就是其範圍,如果只是死記硬背,那樣不太好,只有知道這些地址都是如何分類的,才能更好地記住。

IP地址可以簡單看成是由網路號和主機號組成的,但具體多少位網路號,多少位主機號,不同類別的IP地址有不同的劃分情況:

A類地址:8位網路號,24位主機號

B類地址:16位網路號,16位主機號

C類地址:24位網路號,8位主機號

網路號是由ICANN統一分配的,而主機號則由該網路端的系統管理員進行分配的,有時候為了更好地劃分網路,還可以將主機號細化,分配成主機地址+子網地址的形式,也就是子網劃分。

當我們知道每一類地址的組成之後,相應的其範圍也就非常明確了,就以網路號分配來看,A類地址要占到8位,因此其IP地址的首位肯定是0,這樣它就吧00000000 - 01111111 (0 - 127)之間所有的網路號都占滿,好了,A占滿以後該B類地址了,B類地址雖然是16位的,但是你不能去搶A類地址的網路號是不,因此它的網路號的範圍就是128-191,可以發現B類地址的前兩位固定都是10,依次類推,C類地址的前三位就是110,所以其範圍就是192-223.

IP地址的劃分大致就是這樣,作為網路層最重要的線索,我們會在之後的講解中一步步介紹IP地址以及它所指向的網路層!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一. ROS的安裝 1. 進入ROS官方網站 http://wiki.ros.org/ 2. Install -> ROS Kinetic Kame -> Ubuntu 3. 詳情可參考所打開的界面,具體命令行代碼將在下麵列出 4. 哦對了,首先應該配置一下軟體的下載源。點擊右上角的設置 -> 系統 ...
  • 手邊的機器是裝有OSX操作系統的Macbook Pro,現在我想通過終端ssh遠程訪問裝有linux操作系統的伺服器,通過以下步驟設置免密碼訪問 1.生成私鑰文件 在客戶端終端下輸入以下命令 ssh-keygen -t rsa 每次執行 ssh-keygen -t rsa 產生的私鑰文件都會不同 如 ...
  • 首先需要思考的問題是:什麼是調度器(scheduler)?調度器的作用是什麼?調度器是一個操作系統的核心部分。可以比作是CPU時間的管理員。調度器主要負責選擇某些就緒的進程來執行。不同的調度器根據不同的方法挑選出最適合運行的進程。目前Linux支持的調度器就有RT scheduler、Deadlin ...
  • Centos7為例:修改時區 Centos7:同步時間 ...
  • 會話持久性連接簡介: 會話保持是負載均衡器設備的一種機制,用於識別客戶端與伺服器之間交互過程的關連性,在進行負載均衡的同時還保證一系列相關連的訪問請求會保持分配到同一臺伺服器上。針對不同的業務場景需要不同的會話保持配置,並且並不是所有業務系統都需要會話保持配置。以最典型的 HTTP 應用為例,在大多 ...
  • 命令: ls 對應英文: list 作用: 查看當前文件夾下的內容 選項: -a 查看隱藏文件, 文件名前帶 . 號的文件 -l 以詳細列表形式顯示 -h 人性化方式顯示文件大小(註:-h必須和-l同時使用) ...
  • 本文收錄在容器技術學習系列文章總目錄 1、Kubernetes設計架構 Kubernetes集群包含有節點代理kubelet和Master組件(APIs, scheduler, etc),一切都基於分散式的存儲系統。下麵這張圖是Kubernetes的架構圖。 2、Kubernetes節點 2.1 介 ...
  • 轉自: https://www.linuxidc.com/Linux/2017-06/144916.htm 與大家分享下Linux系統中創建用戶、設置密碼、修改用戶、刪除用戶的命令,希望對你有所幫助。 useradd testuser 創建用戶testuserpasswd testuser 給已創建 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...