IP地址用於識別和定位整個Internet系統(單播地址)中設備的網絡接口。也用於識別多個接口(組播、廣播和任播地址)。
一、IP地址表示
IPv4 32位,點位法 0.0.0.0 二進制00000000 00000000 00000000 00000000
IPv6 128位,包含8個塊,中間冒號隔開,十六進制表示, 0:0:0:0:0:0:0:1,全0的塊可以簡寫,0:0:0:0:0:0:0:1可以簡寫成::1,一個IPv4地址中::符號只能用一次
- 前導0必須壓縮(例如,2001:0db8::0022 變成2001:db8::22)
- ::只能用於影響最大的地方(壓縮最多的零)。如果多個塊中包含等長度的零,順序靠前的塊將被替換位::。
- a到f十六進制數字使用小寫
IPv6也有二進制表示,直接十六進制轉二進制就行(和IPv4類似)。
二、分類尋址
最初定義Internet地址結果時,每個單播地址都有一個網絡部分,用於識別接口使用的IP地址在哪個網絡中可被發現;以及一個主機地址,用於識別網絡部分給出的網絡中的特定主機。
現實中不同網絡可能有不同數量的主機,每臺主機都需要一個唯一的IP地址,一種劃分方式是基於當前或預計的主機數量,將不同大小的IP地址空間分配給不同的站點。
IPv4地址空間最初分爲五大類。A、B、C類用於爲Internet(單播地址)中的接口分配地址,以及其他一些特殊情況下使用。類由地址中的頭幾位來定義:0爲A類地址,10爲B類地址,110爲C類等。D類地址供組播使用,E類地址保留。
Internet地址分類方法在經歷Internet增長(20世紀80年代)的第一個十年中沒有變化。此後,它開始出現規模問題,當每個新的網段被添加到Internet中,集中協調爲其分配一個新的A類、B類或C類網絡號變得很不方便。爲解決上述問題,人們想到了子網尋址。
三、子網尋址
通過子網尋址,一個站點被分配一個A類、B類或C類的網絡號,保留一些剩餘主機號進一步用於站點內分配。該站點可能將基礎地址中的主機部分進一步劃分爲一個子網號和一個主機號。
子網字段和主機字段的定義是由站點指定的(不是由網絡號分類決定),一個站點中所有路由器和主機需要一種新的方式,以確定地址中的子網部分和其中的主機部分。
一個IPv4可能的格式:
B類: 網絡號(16位) 子網ID(8位) 主機ID(8位)
16位的網絡號集中分配,子網ID和主機ID由站點本地管理
3.1 子網掩碼
由路由器和主機使用,確定一個IP地址的網絡/子網部分的結束和主機部分的開始。掩碼由一些1後跟一些0構成(二進制形式)。例如,常見的子網掩碼:255.255.255.0 轉二進制爲11111111 11111111 11111111 00000000
根據子網掩碼獲取子網
以IPv4地址128.32.1.14爲例:
地址: 10000000 00100000 00000001 00001110 128.32.1.14
掩碼: 11111111 11111111 11111111 00000000 255.255.255.0(/24)
結果: 10000000 00100000 00000001 00000000 128.32.1.0
ip地址與子網掩碼進行按位與操作,以形成用於路由的地址的網絡/子網標識符(前綴)。
在這個例子中,IPv4地址128.32.1.14使用長度爲24的掩碼得到前綴128.32.1.0/24。一個目的地址爲128.32.1.14的數據報需要轉發到系統所在的子網128.32.1.0/24。(注:掩碼轉二進制,左起連續位1的個數表示掩碼長度。)
另外,在同一站點的不同部分,可將不同長度的子網掩碼應用於相同網絡號。目前,大多數主機、路由器和路由協議支持可變長度子網掩碼(VLSM)。
- VLSM 可變長度子網掩碼
用於分割一個網絡號,使每個子網支持不同數量的主機。每個路由器和主機除了IP地址,還需要配置一個子網掩碼。
3.2 廣播地址
每個IPv4子網中,一個特殊地址被保留作爲子網廣播地址。廣播地址構建方式:對子網掩碼取反,並與子網中任意計算機的地址進行按位或運算。
還是以128.32.1.14爲例
地址: 10000000 00100000 00000001 00001110 128.32.1.14
掩碼: 00000000 00000000 00000000 11111111 0.0.0.255
結果: 10000000 00100000 00000001 11111111 128.32.1.255
上面結果顯示,子網128.32.1.0/24的子網廣播地址是128.32.1.255。
使用這種地址作爲目的地的數據報,也被稱爲定向廣播。至少在理論上,這種廣播可以作爲一個單獨的數據報通過Internet路由直至到達目標子網,再作爲一組廣播數據報發送給子網中所有的主機。
定向廣播是一個大問題,從安全角度來看,它們至今在Internet中任被禁用。 路由器現在默認禁止轉發定向廣播,甚至完全省略支持能力。
除了子網廣播地址,特殊用途地址255.255.255.255被保留爲本地網絡廣播(也稱爲有限廣播),它根本不會被路由器轉發。
廣播地址通常與某些協議一起使用,例如UDP/IP或ICMP,因爲這些協議不涉及TCP/IP那樣的雙方會話。
IPv6沒有任何廣播地址。廣播地址可用於IPv4中,而IPv6僅使用組播地址。
四、其他概念
- 組播地址
標識一組主機接口,而不是單個接口。一個組所覆蓋的網絡部分稱爲組的範圍。常見範圍包括 節點本地(同一計算機)、鏈路本地(同一子網)、站點本地(使用於一些站點)、全球(整個Internet)和管理(用於一個網絡區域內已手動配置到路由器的地址)。 - 任播地址
任播地址是一個單播IPv4或IPv6地址,這些地址根據它所在的網絡確定不同的主機。這是通過配置路由器通知Internet中多個站點有相同單播路由實現。一個任播地址不是指Internet中的一臺主機,而是對於任播地址“最合適”或“最接近”的一臺主機。
其他相關概念可以查看
https://blog.csdn.net/hhy107107/article/details/82854407
位運算不太瞭解的,可以查看
https://blog.csdn.net/hhy107107/article/details/82801780
[1]TCP/IP詳解·卷1:協議 機械工業出版社