日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

0分配不到地址_前端学习计算机网络——IP地址的划分及其分类

發布時間:2024/1/23 HTML 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 0分配不到地址_前端学习计算机网络——IP地址的划分及其分类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊上方“前端印象”,選擇“設為星標”第一時間關注技術干貨!

本文是該系列文章的第二篇,將了解Internet中使用的網絡層地址,又稱IP地址。每個設備都至少需要一個IP地址,其可以作為我們設備的標識,就跟我們的電話號碼一樣,知道了電話號碼就能找到我們,所以每個IP地址都是唯一的,所以在給每臺設備分配IP時,會根據一套編號方案進行,本篇文章我們就來詳細地了解一下它。

一、IP地址的表示

IP作用于OSI參考模型中的網絡層,在終端通信中作為唯一標識,便于確定數據的傳遞目標。

IP地址分為:IPv4IPv6

大多數用戶熟悉并且流行的IP地址是IPv4,其是用點分四組十進制的表示方法展示的,例如 165.195.130.107 、197.101.0.0 等,每一組的數字都是非負的整數,范圍在 [0, 255] 之間。

IPv4還有種寫法是用二進制表示的,例如:

十進制表示二進制表示
0.0.0.000000000 00000000 00000000 00000000
1.2.3.400000001 00000010 00000011 00000100
10.0.0.25500001010 00000000 00000000 11111111
165.195.130.10710100101 11000011 10000010 01101011
255.255.255.25511111111 11111111 11111111 11111111

因此稱IPv4是32位的。而IPv6的位數就比較大了,是128位的,長度是IPv4的4倍,并且其表示方式是分塊的八組四個十六進制數,例如:5f05:2000:80ad:5800:0058:0800:2023:1d71,每個塊兒之間都是用 : 隔開的。

IPv6看著特別得長,所以它的簡化表示法已經有一套標準,規則如下:

  • 每個塊兒中前導的零可省略。例如5f05:2000:80ad:5800:0058:0800:2023:1d71 按照此規則簡化后為 5f05:2000:80ad:5800:58:800:2023:1d71
  • 整個塊兒都為零的可以省略不寫,并用 :: 代替其位置,但整個IPv6地址中只能出現一次 :: 符號。例如 0:0:0:0:0:0:0:1 按照此規則簡化后為 ::1
  • 當然IPv6也是可以用二進制表示的,表示結果如下:

    十六進制表示二進制表示
    5f05:2000:80ad:5800:0058:0800:2023:1d710101111100000101 0010000000000000 1000000010101101 0101100000000000 0000000001011000 0000100000000000 0010000000100011 0001110101110001
    ::10000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000001

    如果把IPv6和端口號一起使用的話,可能會出現這樣的情況:http://2001:0db8:85a3:08d3:1319:8a2e:0370:7344:443/,該URL中,最后一個 :443 其實表示的是端口號,但與IPv6一起使用時看起來好像也成為了一個塊兒部分,因此我們需要用 [] 符號將IPv6部分包裹起來,結果如下:http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/

    二、IP地址結構

    上面提到,IP是作為終端的唯一表示,因此只有當保證每個IP都不同時,才能保證IP的唯一性。其中,IPv4地址的長度為32位,因此就有 種可能的地址,那么同理,IPv6地址的長度為128位,因此就有 種可能的地址。

    這些地址就是作為數據包發送的目的地址,當然每個地址都會有它們各自的含義,例如單播組播廣播等,當然還有一些地址是會被保留用于實驗的

    • 單播可以理解為一臺主機發送單一的數據包給另一臺主機;
    • 組播可以理解為一臺主機發送單一的數據包給多臺主機;
    • 廣播可以理解為一個節點向其它所有的節點發送數據包;

    IPv4中大多數的的地址都為單播

    (1)分類尋址

    那么IP地址既然是作為識別特定主機的唯一標識,那么到底是如何被識別的呢?其實在長度為32位的IPv4地址中,有一段連續位稱為網絡號,還有一段連續位稱為主機號

    因為有時在同一個網絡中,可能會有多臺主機,就例如一個電子計算機教室看成一個網絡,教室中有60臺電腦,那么這60臺電腦都屬于這一個教室所處的網絡,而每臺電腦又需要在該網絡下單獨分配一個唯一的標識

    因此,在識別IP地址時,就是先通過識別IP地址中的網絡號來確認目的地址處于哪個網絡區域,然后再識別主機號,來確認這個網絡中特定的主機。

    我們將IPv4地址用二進制表示,一段地址的網絡號和主機號分類可以分為5類:A類B類C類D類E類,區別如下圖:

    IPv4地址分類
    • A類: 網絡號共8位,首位固定為 0,接下來連續的7位可以自由設定;主機號為24位
    • B類: 網絡號共16位,前兩位固定為 1 0,接下來連續的14位可以自由設定;主機號為16位
    • C類: 網絡號共24位,前三位固定為 1 1 0,接下來連續的21位可以自由設定;主機號為8位
    • D類: 為組播地址,共32位,前四位固定為 1 1 1 0
    • E類: 為保留地址,共32位,前四位固定為 1 1 1 1

    其中A 、B 、C類地址大多都是單播地址,因此它們可用于接口分配。舉個例子,A類地址網絡號共8位,其中首位固定為 0,那么還有7位可以自由設定,那么就共有 個網絡數;主機號共24位,那么就共有 個主機數。(同樣的,我們可以推出其它類別的地址的網絡數和主機數)因此我們可以理解為,用A類地址一共可以為 個電子計算機教室分配使用,每個教室可以容納 臺主機

    IPv4地址的范圍在 0.0.0.0 ~ 255.255.255.255 之間,那么我們來看看這五類地址各自的地址范圍是如何的吧~

    A類地址首位固定為 0,因此A類地址用二進制表示為 0XXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX,因此A類地址用十進制表示時,第一組最小為0,其余三組最小也為0,即 0.0.0.0;

    B類地址前兩位固定為 1 0,因此B類地址用二進制表示為 10XXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX,因此B類地址為十進制表示時,第一組最小為128,其余三組最小為0,即 128.0.0.0,那么A類地址的范圍就可以確定為 0.0.0.0 ~ 127.255.255.255

    C類地址前兩位固定為 1 1 0,因此B類地址用二進制表示為 110XXXXXX XXXXXXXX XXXXXXXX XXXXXXXX,因此C類地址為十進制表示時,第一組最小為192,其余三組最小為0,即 192.0.0.0,那么B類地址的范圍就可以確定為 128.0.0.0 ~ 191.255.255.255

    以此類推,即可推出D 、E類的地址范圍

    我們將IPv4地址的空間劃分情況總結在了下表中:

    類地址范圍網絡數主機數
    A0.0.0.0 ~ ?127.255.255.25527224
    B128.0.0.0 ~ 191.255.255.255214216
    C192.0.0.0 ~ 223.255.255.25522128
    D224.0.0.0 ~ 239.255.255.255//
    E240.0.0.0 ~ 255.255.255//

    上面有提到,A、B、C類地址中大多都是單播,那么也有幾個地址不作為單播地址使用,一般都是地址塊兒中的第一個地址和最后一個地址不使用,所以假設分配得到的地址塊兒為 127.0.0.0,那么實際能分配的單播地址數就為

    (2)子網尋址

    查看上述的A類地址,它可使用的主機數有 個,那么當分配了A類IP地址后,卻發現并沒有那么多的主機,這樣就造成了剩余可用主機數的浪費;或者說被分配了C類地址后,卻發現有上萬臺主機,而C類地址可用的主機數只有 個,因此只能給其多分配幾個C類地址,那么C類地址就很容易被消耗完

    為了解決上述辦法,又采用了一種叫做子網尋址的方法,即假設當一個站點被分配了B類地址,那么該站點的管理員可以將B類地址的主機號部分繼續分成兩部分,分別為 子網號主機號,這兩者所占的位數可以根據實際需求自由分配,例如分配給子網號8位,分配給主機號8位,即平分,結果如下圖:

    子網尋址

    此時的站點可以支持 個子網,每個子網中最多可支持 臺主機(每個子網的第一個地址和最后一個地址不會被使用)

    這樣在站點內,路由器就可以根據子網號和主機號監測到不同子網的流量了,如下圖所示:

    上圖中,該站點被分配了一個B類地址 128.32.x.x,而管理員此時選擇將其繼續劃分為多個子網,如圖中的子網1和子網2,它們分別是開始于 128.32.1 和 128.32.2,并且左右兩臺主機都分別屬于各自的子網。

    那么路由器是如何在地址中尋找子網號的呢?這就要設置一個名為子網掩碼的參數了

    (3)子網掩碼

    子網掩碼是由一臺主機或路由器使用的分配位,用以確定如何從一臺主機對應的IP地址中獲得網絡和子網信息,更通俗點說,通過它可以確定一個IP地址的網絡/子網部分的結束和主機部分的開始。

    子網掩碼跟IP地址的長度相等(IPv4為32位,IPv6為128位),對于IPv4來說,子網掩碼也是用點分四組十進制來表示的。當子網掩碼用二進制表示時,結構非常簡單且容易記憶,從左邊開始由一段連續的1組成,緊接著又一段連續的0組成直到最后。其中連續的1的長度稱為前綴長度,用 /長度 來表示

    舉例各種類型的子網掩碼:

    十進制表示前綴長度二進制表示
    128.0.0.0/110000000 00000000 00000000 00000000
    255.0.0.0/811111111 ?00000000 00000000 00000000
    255.192.0.0/1011111111 ?11000000 00000000 00000000
    255.255.0.0/1611111111 ?11111111 ?00000000 00000000
    255.255.254.0/2311111111 ?11111111 ?11111110 ?00000000
    255.255.255.224/2711111111 ?11111111 ?11111111 ?11100000
    255.255.255.255/3211111111 ?11111111 ?11111111 ?11111111

    接下來說說子網掩碼是如何使用的,其二進制位1對應IP地址的網絡/子網部分;相反,0對應IP地址的主機號部分。換個說法就是子網掩碼第一個0所對應IP地址的位為主機號的第一位;也可以借用前綴長度來判斷,即前綴長度后一位對應的也是IP地址主機號的第一位。

    例如剛才舉的例子,站點管理員將B類地址 128.32.x.x 的主機位劃分為8位的子網號和8位的主機號,那么他就會提前設置好一個長度為 的子網掩碼,即 255.255.255.0,表示前24位是網絡/子網部分,那么路由器在處理圖中的IPv4地址 128.32.1.14時,會先查看一下子網掩碼,此時將IP地址和子網掩碼對應的位進行與運算即可獲得該IP所處的是哪個子網,運算過程如下圖:

    結果中的 128.32.1.0 就是IP地址 128.32.1.14 所屬的子網

    但此時有沒有發現一個問題?雖然給地址劃分了子網號和主機號,但是每個子網號所對應子網的主機數就固定死了,而且每個子網所支持的主機數都是一樣的,這一定是不合理的,因為實際應用中,可能這個區域只需要支持10臺主機,而另一個區域需要支持100臺主機,那么我們此時在劃分子網號和主機號的時候,至少要讓每個子網支持的主機數大于100臺,那只需要支持10臺主機的區域分配到了一個子網,豈不是至少浪費了其中的90個空間么?面對這樣的問題,我們又該如何解決呢?

    (4)可變長度的子網掩碼

    上個部分剛說過,路由器在尋找子網號時,是通過我們設置的子網掩碼來查找的,那么我們不妨根據不同的需求設置多個子網掩碼,來達到子網號和主機號分配比例不唯一的需求,這就是VLSM(Variable Length Subnet Mask,可變長度的子網掩碼)的實現

    比如,我們上面舉得例子,當前站點被分配到了一個B類地址,該站點的某個區域需要支持100臺主機,那么我們可以給這個區域分配一個子網號,同時設置其子網掩碼為 255.255.255.128,其前綴長度為 25,因此留給主機位的位數還有 位,則該子網支持主機數為 臺,可以滿足該區域的需求;再來看另一個區域,它們需要支持的主機臺數為10,那么我們可以給該區域分配另一個子網號,同時設置子網掩碼為 255.255.255.240,其前綴長度為 28,因此留給主機的位數還有 位,則該子網支持的主機數為 臺,同樣可以滿足該區域的需求。

    (5)廣播地址

    在每個IPv4的子網中,都會有一個特殊的地址被保留作為子網的廣播地址,那如何獲取它呢?我們只需要將子網掩碼的所有位都取反,即0變1,1變0,然后將取反后的子網掩碼與子網內的IP地址進行或運算即可得到廣播地址

    仍然延用上面的例子,子網內的IP地址為 128.32.1.14,子網掩碼為 255.255.255.0,則比較過程如下圖:

    圖中獲得的結果 128.32.1.255 即為子網 128.32.1.0 中的廣播地址,前面說過,每個子網中的頭尾兩個地址一般是不被使用的,所以該子網中可用的單播地址范圍就是 128.32.1.1 ~ 128.32.1.254

    (6)總結

    簡單總結一下子網掩碼的作用:

  • 面對不同需求設置不同的子網掩碼可以做到不同子網支持不同數量的主機
  • 通過子網掩碼可以獲取子網IP
  • 通過子網掩碼可以獲取廣播地址
  • 通過子網掩碼可以獲取該子網內的可用單播地址
  • 通過子網掩碼可以獲取子網內支持的主機數
  • ????歡迎留言討論???推薦閱讀? ?詳解原生Ajax的實現,并模仿JQuery進行封裝

    ?【JS面試題】數組去重(6種方法)震驚面試官

    ???建議收藏 | 最全的JavaScript常見的操作數組的函數方法寶典

    ? ?多圖生動詳解瀏覽器與Node環境下的Event Loop

    ? ?HTML5新特性drag API 實現拖放功能

    ? ?ES6新特性實現面向對象編程,詳解class語法定義類

    ???????

    END???????

    ?支持三連

    1.看到這里了就點個在看支持下吧,你的在看是我創作的動力。

    2.關注公眾號前端印象,「一起交流進步」

    3.關注公眾號回復【加群】,拉你進技術交流群一起玩轉前端。

    總結

    以上是生活随笔為你收集整理的0分配不到地址_前端学习计算机网络——IP地址的划分及其分类的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。