IP地址的分類
分類的IP地址就是將IP地址划分為若干個固定類,每一類地址都由兩個固定長度的字段組成。
第一個字段是網絡號(net-id),它標志主機(或路由器)所連接到的網絡。一個網絡號在整個互聯網范圍內必須是唯一的。
第二個字段是主機號(host-id),它標志該主機(或路由器)。一台主機號在它前面的網絡號所指明的網絡范圍內必須是唯一的。
因此一個IP地址在整個互聯網范圍內是唯一的。
這種兩級的IP地址可以記為
IP地址∷={<網絡號>,<主機號>}
下圖給出了各種IP地址的網絡號字段和主機號字段,這里A類、B類和C類地址都是單播地址(一對一通信),是最常用的。
- A類、B類和C類地址的
網絡號字段
(在圖中這個字段是灰色的)分別為1個、2個和3個字節長,而在網絡號字段的最前面有1~3位的類別位,其數值分別規定為0、10、110。 - A類、B類和C類地址的
主機號字段
分別為3個、2個和1個字節長。 - D類地址(前4位是110)用於多播(一對多通信)
- E類地址(前4位是111)保留為以后用
常用的三類IP地址
A類地址的網絡號字段占1個字節,只有7位可供使用(該字段的第一位已固定為0),但可指派的網絡號是126個(2^7-2)。減2的原因:
網絡號全0為保留地址,表示本網絡。網絡號為127(011111111)的地址保留用於環回測試本主機的進程間通信
A類地址的主機號占3個字節,因此每一個A類網絡中的最大主機數是(2^24-2), 即16770214。減2的原因是:
全0的主機號字段表示該IP地址是“本主機”所連接到的單個網絡地址(例如,一主機的IP地址為5.6.7.8,則該主機所在的網絡地址就是5.0.0.0),全1的主機號字段表示該網絡上的所有主機。
A類IP地址空間共有2^32 (即4294967296)個地址。整個A類地址空間有 2^31 個地址,占整個IP地址空間的50%
B類地址的網絡號字段有2個字節,但前面兩位(10)已經固定了,只剩下14位可以進行分配。因為網絡號字段后面的14位無論怎樣取值也不可能出現使整個2字節的網絡號字段成為全0或全1,因此這里不存在網絡總數減2的問題。但實際上B類網絡地址1280.0.0是不指派的
,而可以指派的B類最小網絡地址是128.1.0.0。因此B類地址可指派的網絡數為2^14-1,即16383。
B類地址的最大主機數是2^16,即65534。這里需要減2
是因為要扣除全0和全1的主機號。
B類地址空間共約有2^30個地址,占整個P地址空間的25%。
C類地址有3個字節的網絡號字段,最前面的3位是(110),還有21位可以進行分配。C類網絡地址192.0.0.0是不指派的
,可以指派的C類最小網絡地址是192.0.1.0,因此C類地址可指派的網絡總數是2^21-1,即2097151。
每一個C類地址的最大主機數是2^8-2,即254,減2
是因為要扣除全0和全1的主機號。
C類地址空間共約有2^29個地址,占整個IP地址的12.5%。
IP地址與硬件地址
物理地址是數據鏈路層
和物理層
使用的地址,
而IP地址是網絡層
和以上各層使用的地址
,是一種邏輯地址(稱IP地址為邏輯地址是因為IP地址是用軟件實現的)
IP地址僅在網絡層及以上使用
物理地址只在數據鏈路層和物理層使用
網際層會對TCP/UDP數據報進行封裝,並在IP數據報的首部添加目的IP地址和源IP地址,並交付給數據鏈路層
數據鏈路層將IP數據報封裝為MAC幀,MAC幀的首部有目的硬件地址和源硬件地址,並在各個主機(路由)上進行傳播
各個主機(路由)會對MAC幀進行解析,獲取IP地址信息后選擇對其進行接收,或者再次打包轉發
ARP地址解析
由於IP協議使用了ARP協議,因此通常就把ARP協議划歸網絡層。
ARP協議
的用途是將網絡層的IP地址
,解析
為數據鏈路層的硬件地址
每一台主機都設有一個ARP高速緩存(ARP cache),當主機A要向本局域網上的某台主機B發送IP數據報時,就先在其ARP高速緩存中查看有無主機B的IP地址。如有,就在ARP高速緩存中查出其對應的硬件地址,再把這個硬件地址寫入MAC幀,然后通過局域網把該MAC幀發往此硬件地址。也有可能查不到主機B的IP地址的項目。
在局域網中主機A對所有主機進行廣播,收到廣播的主機B會對主機A進行單播響應
由於在未來一段時間內主機AB可能還會繼續通信,因此主機A在發送其ARP請求分組時,就把自己的IP地址到硬件地址的映射寫入ARP請求分組。當主機B收到A的ARP請求分組時,就把主機A的這一地址映射寫入主機B自己的ARP高速緩存中。以后主機B向A發送數據報時就很方便了。
當發送主機和目的主機不在同一個局域網中時,即便知道目的主機的MAC地址,兩者也不能直接通信,必須經過路由轉發才可以。所以此時,發送主機通過ARP協議獲得的將不是目的主機的真實MAC地址,而是一台可以通往局域網外的路由器的MAC地址。於是此后發送主機發往目的主機的所有幀,都將發往該路由器,通過它向外發送。這種情況稱為委托ARP或ARP代理(ARP Proxy)
同時ARP高速緩存內的映射信息是有生存時間的,到達一定時間后就會被清除,主要是因為硬件地址可能會發生改變(主機斷電,主機壞了等)
使用ARP的四種情況
- 發送方是主機(如H1),要把IP數據報發送到同一個網絡上的另一台主機(如H2)。這時H1發送ARP請求分組(在網1上廣播),找到目的主機H2的硬件地址
- 發送方是主機(如H1),要把IP數據報發送到另一個網絡上的一台主機(如H3或H4)。這時H1發送ARP請求分組(在網1上廣播),找到網1上的一個路由器R1的硬件地址。剩下的工作由路由器R1來完成。R1要做的事情是下面的(3)或(4)。
- 發送方是路由器(如R1),要把IP數據報轉發到與R1連接在同一個網絡(網2)上的主機(如H3)。這時R1發送ARP請求分組(在網2上廣播),找到目的主機H3的硬件地址。
- 發送方是路由器(如R1),要把IP數據報轉發到網3上的一台主機(如H4)。H4與R1不是連接在同一個網絡上。這時R1發送ARP請求分組(在網2上廣播),找到連接在網2上的一個路由器R2的硬件地址。剩下的工作由這個路由器R2來完成。