1. 程式人生 > >Linux 網路基礎知識之IP地址和子網掩碼詳解

Linux 網路基礎知識之IP地址和子網掩碼詳解

部分內容圖片截自慕課網

1. TCP/IP四層模型會對資料逐層打包,其中網路層負責打包IP包頭,而IP包頭拆開內容格式如下圖

ip包頭

注意:一般情況下IP包頭為20個位元組,160個bit大小,包括5行資料,但在IPV4協議下並非一定如此,可能包含其他資訊,如圖中選項和資料行,這也是ipv4通訊慢於ipv6(固定包頭長度)的原因,但是必定含有源IP地址和目的IP地址

2. 分析一下源IP地址和目的IP地址:

  1. 長度為32bit,也就是說ip地址最小為32個零:00000000.00000000.00000000.00000000,最大為:32個1
    11111111.11111111.11111111.11111111
  2. 轉化為十進位制:0.0.0.0和255.255.255.255
  3. 但是並非在此範圍內的所有地址均為有效地址,看下圖:
    ip地址分類

注意:C類別地址最大為223開始,所以其實還有D、E型別,但是不對我們普通使用者開放,其次A和B之間還有一個127,這就不用多說了,localhost和127.0.0.1應該都是用過(這兩者不等,有區別的哦)

A類地址解析:

  1. 1.0.0.0代表網路本身,不能用來分配,1.255.255.255代表當前網路的廣播地址,最後一個126.255.255.255也不能分配
  2. 第一個數字代表網段,所以最大網路數為126(2^7-2)個,不同的網段之間需要通過路由器來連結,同一網段內通過交換機連結
  3. 後三位數代表同一網段下不同的主機數,由於.0.0.0代表網路本身,.255.255.255代表當前網路的廣播,不能用來分配地址,所以最大主機數為2^24-2

B類地址解析:

  1. 與A類不同,B類前兩個數代表網段,後兩個數代表主機,191.254和191.252不是同一個網段,需要路由器連結

C類地址解析:

  1. 同樣,C類則是前三個數代表網段,後一個數代表主機

私有地址:

普通IP地址需要花錢購買,私有地址則是作為內網IP使用

子網掩碼決定了A、B、C類地址擁有不同的網段數和主機數

3. 子網掩碼:

什麼是子網掩碼:子網掩碼是把大的網路劃分成子網,即VLSM(可變長子網掩碼),把小的網路歸併成大的網路即超網。通俗的理解,子網掩碼代表的是當前IP地址所在的網路編號

標準子網掩碼的表示:

255.0.0.0    255.255.0.0   255.255.255.0
1. A類地址子網掩碼預設為255.0.0.0  B類預設為255.255.0.0 C類預設為255.255.255.0
2. 子網掩碼和ip地址必須共同存在否則沒有意義
為什麼必須共同存在:
首先假設有兩個IP地址:A192.168.1.1和B:192.168.2.1 並且A和B不在同一個子網下從A傳送一條資料
到B,如果沒有子網掩碼,計算機就無法確定A和B是否是同一個子網內的不同網段,因為根據IP地址已經知道
該ip為C類,且屬於不同網段,結果沒有子網掩碼,計算機會預設認為A和B是屬於同一個子網內,導致資料在本
子網內迴圈,直到超時造成網路錯誤
這也就是為什麼說子網掩碼是網路或者一個子網的重要屬性
舉個例子說明子網掩碼是如何劃分子網的:

以B類地址為例,其預設子網掩碼為255.255.0.0,轉化為二進位制後為
11111111.11111111.00000000.00000000
前面八個連續的1代表ip地址中的網路位,而0則代表的是主機位,一般都是前面連續的1,後面連續的0,B類地址後面8位代表了主機位,看下錶(固定長度子網):

子網號位數 子網掩碼 子網數 每個子網的主機數
2 255.255.192.0 2 16382
3 255.255.224.0 6 8190
4 255.255.240.0 14 4094
5 255.255.248.0 30 2046
6 255.255.252.0 62 1022
7 255.255.254.0 126 510
8 255.255.255.0 254 254
9 255.255.255.128 510 126
10 255.255.255.192 1022 62
11 255.255.255.224 2046 30
12 255.255.255.240 4094 14
13 255.255.255.248 8190 6
14 255.255.255.252 16382 2

表中資料的計算方法:

  • 子網號位數:子網中連續1的個數,此處前提是B類地址,B類地址預設子網掩碼為255.255.0.0,主機位從第三段數字開始,以子網號位數為2舉例:轉化為二進位制為11111111.11111111.11000000.00000000 子網號位數指得就是從第三段開始連續1的個數
  • 子網掩碼:同樣例子,講二進位制轉化為十進位制就是子網掩碼255.255.192.0
  • 子網數:2^N-2(每一位可能是0或1,所以有2^N中) N代表子網號位數,減2是因為在因特網標準RFC 950中,子網掩碼不能全為1或0(無分類域間路由選擇CIDR已經可以使用全0和1的子網掩碼)
  • 主機數:同例中,後14位0代表主機位,2^14=16383 由於主機位全1時代表當前網段的廣播地址,所以主機數為16382

以上也就能再次解釋為什麼子網掩碼必須同IP地址一起使用了,並且,子網掩碼並不是可以隨意設定的,如果設定大了,計算機會認為資料是發往和本機不在同一子網的目的機,而根據子網尋徑規則,資料將在當前子網內迴圈,知道超時且資料被拋棄。如果設定小了,會將本在同一子網的計算機間資料傳輸當做是跨子網傳輸,資料交給了閘道器處理,從而降低了效率。所以子網掩碼應該根據網路規模設定,假設一個網路規模不會超過254臺電腦,那麼子網掩碼設定為255.255.255.0就行了,超過254而不超過16382的,假設1500,設定為255.255.0.0就行了

作用:將某個IP地址劃分成網路地址和主機地址兩部分。子網掩碼一旦設定,網路地址和主機地址就固定了。

計算:

1. 將IP地址和子網掩碼轉換為二進位制的形式,然後進行“與”計算。得到網路號,也就是該子網的首地址。
2. 將轉化為二進位制後的子網掩碼進行取反,然後再和ip地址進行與運算,就得到了主機地址

例如:
A的IP地址:192.168.1.1 子網掩碼:255.255.255.0
由IP可知為C類地址
計算IP地址的網路號:

操作 結果
IP地址二進位制表示 11000000.10000000.00000001.00000001
子網掩碼二進位制表示 11111111.11111111.11111111.00000000
與運算 11000000.10000000.00000001.11111110
網路號 C類地址,所以網路號為11000000.10000000.00000001,即192.168.1
子網掩碼二進位制取飯表示 00000000.00000000.00000000.11111111
與運算得出主機位 00111111.01111111.11111110.00000001
主機號 63.127.254.1
廣播地址 子網掩碼二進位制取反以後,轉化為十進位制,加上網路地址,便是當前網路的廣播地址,如192.168.1.255

相關推薦

Linux 網路基礎知識IP地址

部分內容圖片截自慕課網 1. TCP/IP四層模型會對資料逐層打包,其中網路層負責打包IP包頭,而IP包頭拆開內容格式如下圖 注意:一般情況下IP包頭為20個位元組,160個bit大小,包括5行資料,但在IPV4協議下並非一定如此,可能包含其他資訊,

[CCNA]-04-IP地址(主要介紹IPv4)

分類 ron ipv cpu 活性 第一個 right 0.0.0.0 計算方法 引言 這篇文章給大家介紹什麽是IP地址和其作用以及IP地址組成、IP地址的分類、IP子網劃分、子網掩碼、公有地址、私有地址、VLSM(變長子網掩碼)、CIDR(無類域間路由)等CCNA基礎知識

基礎IP地址

ip地址劃分 display 廣播地址 out 五類 生產 上進 公有ip 算子 IP地址 IP是英文Internet Protocol的縮寫,意思是“網絡之間互連的協議”,也就是為計算機網絡相互連接進行通信而設計的協議。在因特網中,它是能使連接到網上的所有計算機網絡實現相

IP地址基礎知識

  隨著電腦技術的普及和因特網技術的迅猛發展,因特網已作為二十一世紀人類的一種新的生活方式而深入到尋常百姓家。談到因特網,IP地址就不能不提,因為無論是從學習還是使用因特網的角度來看,IP地址都是一個十分重要的概念,INTERNET的許多服務和特點都是通過IP地址體現出

已知IP地址,求網路地址廣播地址以及可用的主機地址

IP地址分為網路ID和主機ID,總共佔32位。 IPV4的表示方法為點分十進位制,IPV6的表示方法為冒號分十六進位制。 IP地址分類: A類地址: 0 網路位(7bit) 主機位(24bit) B類地址: 1 0 網路位(14bit) 主機位(16bit) C類地址: 1

淺談IP地址的對應關系,以及2進制10進制

2進制和10進制詳解!大家好,我是帶你們成長的凡凡~IP地址的結構: #長度為 32 bit;先 #結構 - 網絡位 + 主機位子網掩碼: -作用 區分IP地址中的網絡位與主機位 必須與IP地址,一一對應,成對出現; -表示 純2進

根據ip地址獲取廣播地址的java實現

/** * 獲取廣播地址 * */ public static String getBroadcastAddress(String subnet, String ip) { String[] ips = ip.split("\\."); String[]

ip地址用來判斷在不在同一個

ip地址 and 子網掩碼可以確定一個網路號ip:172.21.6.117子網掩碼:255.255.255.0分別轉化成二進位制相與之後就是網路號。網路號相同的在同一個網段,只有同一個網段的才可以ping通

IP地址廣播地址不在一個段內時根據IP地址計算廣播地址

看TCP/IP詳解 卷1這部大作的時候,看到裡面計算廣播地址的方法,就在自己的機器 上測試了一下,結果遇到了一個小困難:我的機器上IP地址和廣播地址不在一個網段: 廣播地址就是把IP地址中主機號的那幾位設定為1,可是這裡看起來確實都設定為1了(廣播地址的最後一段為255)

IP地址的作用是什麼

ip地址是用來上網的,子網掩碼是用來辨別是哪個網段的 每臺電腦要連線到網路都要有一個自己的ip,這個ip是獨一無二的,每個電腦都是不同的,就好比是你的家庭地址一樣,每個人地方的地址都是獨一無二的,有了這個IP才可以上網,而子網掩碼是用來分清網段的,每個ip都屬於不同的網段,有了ip跟子網掩碼就可以知道哪個i

劃分

一、為什麼要劃分子網  在20世紀70年代初期,建立Internet的工程師們並未意識到計算機和通訊在未來的迅猛發展。區域網和個人電腦的發明對未來的網路產生了巨大的衝擊。開發者們依據他們當時的環境,並根據那時對網路的理解建立了邏輯地址分配策略。他們知道要有一個邏輯地址管理策略

計算機網路: IP地址段表示法,預設閘道器,DNS伺服器 楔子:   以Windows系統中IP地址設定介面為參考(如圖1), IP地址, , 預設閘道器 DNS伺服器,

楔子:   以Windows系統中IP地址設定介面為參考(如圖1), IP地址, 子網掩碼, 預設閘道器 和 DNS伺服器, 這些都是什麼意思呢?        學習IP地址的相關知識時還會遇到網路地址,廣播地址,子網等概念,這些又是什麼意思呢 ? 一 IP地址 概述 計算機要實現網路通訊,就必須要有

基礎篇--ip地址的認識

機器 -s white style 大於 進制的轉換 bit 目標 管理 目錄:1、IP地址的作用2、IP地址如何表示3、IP地址的結構4、子網掩碼5、IP地址的分類6、私有IP地址7、二進制與十進制的轉換8、練習題IP地址的作用: 在一定範圍內,唯一的標識,一個上網

IP地址網路號、主機號、網路地址、主機地址

IPv4地址:4段十進位制,共32位二進位制,如:192.168.1.1 二進位制就是:11000000|10101000|00000001|00000001 範圍上劃分有些要注意的: A類 以0開始       從1.0.0.0 到126.255.

IP地址網路號、主機號、網路地址、主機地址以及ip

背景知識 IP地址 IP地址被用來給Internet上的電腦一個編號。大家日常見到的情況是每臺聯網的PC上都需要有IP地址,才能正常通訊。我們可以把“個人電腦”比作“一臺電話”,那麼“IP地址”就相當於“電話號碼”,而Internet中的路由器,就相當於電信局的“程控式交

IP地址網路號、主機號、網路地址、主機地址以及ip段/數字-如192.168.0.1/24是什麼意思?

背景知識 IP地址 IP地址被用來給Internet上的電腦一個編號。大家日常見到的情況是每臺聯網的PC上都需要有IP地址,才能正常通訊。我們可以把“個人電腦”比作“一臺電話”,那麼“IP地址”就相當於“電話號碼”,而Internet中的路由器,

JS實現校驗IP地址預設閘道器的關係是否正確

//校驗IP地址,子網掩碼和預設閘道器的關係是否正確。w是預設閘道器,y是子網掩碼,i是IP地址。function checkIp(w,y,i){ var ws = w.split('.'); var ys = y.split('.'); var is

自動獲取計算機名、使用者名稱、IP地址預設閘道器

本單位有很多計算機裝置(成千上萬),現需要統計計算機名、使用者名稱、MAC地址、IP地址、預設閘道器、子網掩碼資訊,咋辦捏。 有些可能通過網路管理員在路由器上部署指令碼實現,有些可能寫個掃描器針對地址段掃描,這些成本都較高且本單位管理相當嚴格,這都是堅決不允許

IP地址分類 網路號 主機號 網號

 現在的IP網路使用32位地址,以點分十進位制表示,如172.16.0.0。地址格式為:IP地址=網路地址+主機地址 IP地址型別         最初設計網際網路絡時,為了便於定址以及層次化構造網路,每個IP地址包括兩個標識碼(ID),即網路ID和主機ID。同一個物理網路上

winPcap獲取絡卡網路地址

下面是獲取網路地址(不是IP地址)和子網掩碼的示例,沒時間接著往下做例子了,因為接下來需要在LINUX下面使用libPcap,當然我會貼出程式碼,會linux程式設計的大牛一般都會,所以準確的說是貼給自己的,喜歡玩資料包的朋友自己看官方例子就行 #include<pc