第四章 網絡層 4.2網際協議IP

與IP協議配套使用的還有四個協議:

地址解析協議ARP(Address Resolution Protocol)

逆地址解析協議RARP(Reverse Address Resolution Protocol)

網際控制報文協議ICMP(Internet Control Message Protocol)

網際組管理協議IGMP(Internet Group Management Protocol)


如圖所示:IP要用到RARP和ARP

                    ICMP IGMP要用到IP

虛擬互聯網絡:

將網絡互連到一起,需要中間設備。

1.物理層:轉發器,集線器

2.數據鏈路層:網橋,交換機

3.網絡層:路由器

4.網絡層以上:網關

其中1,2僅僅是把一個網絡擴大了,從網絡層的角度看,仍然是一個網絡,不能稱之爲網絡互連


我們現在討論網絡互連都是指用路由器進行網絡互連和路由選擇。

由於歷史原因,很多文獻曾把路由器稱爲網關,需要注意區分

參加互連的計算機網絡都使用相同的網際協議IP,因此可以把互連以後的計算機網絡看成是一個虛擬互聯網,也就是邏輯互連網絡,即互連的各種物理網絡的異構性是客觀存在的,但是利用IP協議就可以使這些性能各異的網絡在網絡層上看起來好像是一個統一的網絡。







如果我們只考慮網絡層問題,那麼IP數據報就可以想象是在網絡層中傳送。這樣就不必畫出許多完整的協議棧。討論問題更加簡單



分類的IP地址

IP地址的編址方法共經過了三個歷史階段:

1.分類的IP地址

2.子網的劃分

3.構成超網:無分類編址的方法,現在用的較多!


首先介紹1.分類的IP地址

需要指出的是,近年來已經廣泛使用無分類IP地址進行路由選擇,A,B,C類地址的區分已成爲地址。但大部分文件還是按照傳統IP地址分類進行的介紹。



其中:A,B,C爲單播地址,D爲多播地址,E保留

把IP地址劃分爲A,B,C三個類別,當初是這樣考慮的,各網絡差異很大,有的網絡擁有很多主機,有的少,分爲A,B,C是爲了更好的滿足不同用戶的需求。

當某個單位申請到一個IP地址時,只要做到在該單位管轄的範圍內無重複的主機號即可。



如圖

A:網絡號可用的爲7位,故可指派的網絡號爲。減2的原因是全0的網絡字段表示這個IP地址是保留地址,意思是本網絡。全1的網絡號用來做本地軟件的環回測試,即這樣的IP地址不會被髮送到任何網絡上。

       主機號可用的爲3個字節,故A類網絡中的最大主機數爲。減2的原因是全0的地址字段字段表示該主機所在的網絡地址,全1的主機號表示該網絡上的所有主機。




B:網絡號可用的爲14位,故可指派的網絡號爲。減1的原因是由於網絡段前兩位爲10,不會出現全0,全1的網絡號。但實際上B類地址128.0.0.0是不指派的。

       主機號可用的爲2個字節,故B類網絡中的最大主機數爲。減2的原因是全0的地址字段字段表示該主機所在的網絡地址,全1的主機號表示該網絡上的所有主機。

佔整個IP空間的25%。


C:網絡號可用的爲21位,故可指派的網絡號爲。減1的原因是由於網絡段前三位爲110,不會出現全0,全1的網絡號。但實際上C類地址192.0.0.0是不指派的。

       主機號可用的爲1個字節,故C類網絡中的最大主機數爲。減2的原因是全0的地址字段字段表示該主機所在的網絡地址,全1的主機號表示該網絡上的所有主機。

佔整個IP空間的12.5%。



表4-3中第三個就是255.255.255.255廣播地址

IP地址具有的一些特點:

1.IP地址由網絡號和主機號組成,好處:路由器僅根據目的主機所連接的網絡號來轉發分組,大大減小路由表條目。

2.實際上IP地址是標識一個主機(或路由器)和一條鏈路的接口。當一個主機同時連接到兩個網絡上時,該主機就必須同時具有兩個相應的IP地址,其網絡號必須是不同的。這種主機叫做多歸屬主機。由於一個路由器至少應當連接到兩個網絡,因此一個路由器至少應當有兩個不同的IP地址。


圖中小圓圈代表需要一個IP地址


注意:

當兩個路由器直接相連時,在連線兩端的接口處,可以分配也可以不分配IP地址。如果分配了IP地址,則這一段連線就構成了一種只包含一段線路的特殊“網絡”。現在也常常不分配IP地址。稱爲無編號網絡或無名網絡


IP地址與硬件地址



IP地址是網絡層和以上各層使用的地址

物理地址是數據鏈路層和物理層使用的地址

在發送數據時,數據從高層到底層,然後纔到通信鏈路上傳輸。數據報在鏈路層被封裝成MAC幀,連接在通信鏈路上的設備(主機,路由器)在接收MAC幀時,其根據是MAC幀首部的硬件地址,在數據鏈路層看不見隱藏在MAC幀中的IP地址,只有把幀收尾剝掉,交到網絡層後,才能看到數據中的IP地址。





注意:

1.在IP層抽象的互聯網上只能看到IP數據報,雖然IP數據報要經過路由器轉發,但是其源地址和目的地址始終不變。

2.雖然IP數據報中有源,目的地址,但路由器只根據目的地址進行路由選擇

3.在局域網的鏈路層,只能看見MAC幀,其MAC幀首部的源地址,目的地址要發生變化


那麼主機或路由器怎樣知道應當在MAC幀的首部填入什麼樣的硬件地址呢?!!------>ARP協議

地址解析協議ARP:

逆地址解析協議RARP:(DHCP協議中包含RARP功能,故現在已經不再使用)



網絡層使用IP地址,但在實際網絡的鏈路上傳送數據時,最終愛上必須使用該網絡的硬件地址。如何由IP地址獲得硬件地址,ARP解決的方法是主機(路由器)ARP告訴緩存中應存放一個從IP地址到硬件地址的映射表,並且該表經常動態更新


每一個主機都有一個ARP高速緩存(ARP cache),裏面有本局域網上的各主機和路由器的IP地址到硬件地址的映射表,這些都是主機目前知道的一些地址,那麼主機怎麼知道這些地址的呢,由例子說明






注意:

ARP請求分組是廣播發送的,但ARP響應分組是普通的單播,即從一個源地址發送到一個目的地址。

A向B請求同時,B也將A的地址寫入到自己的ARP高速緩存中。

生存時間表:ARP高速緩存中每一個映射地址項目都設置生存時間

ARP是解決同一個局域網上的主機或路由器的IP地址和硬件地址的影身問題

如果目的主機和源主機不在同一個局域網上,該如何解決?由例子說明。




歸納使用ARP協議的四種典型情況



IP數據報的格式



首部長度:該字段佔4位,其數值代表有幾個首部單元,一個首部單元是四個字節。固首部長度最大是當該字段爲1111時,達到15*4=60字節。

                      最常用的首部長度是20字節,即該字段的值是0101

區分服務:一般不用

總長度:該字段16位,指的是首部和數據長度之和,故數據報的最大長度爲2的16次-1,即65535字節。

                 幀格式中數據字段的最大長度,稱爲MTU,容易知道,數據報長度一定不能大於下層數據鏈路層的MTU值,若大於,進行分片,此後數據報長度指的就是分片後的每一個分片的首部長度與數據長度的總和。

                實際上數據報長度很少有超過1500字節的,且不得少於576字節。

標識(identification):16位,IP軟件在存儲器中維持一個計數器,每產生一個數據報,計數器就加1,並賦給標識字段。這樣即使分片了的數據報片,因爲標識字段值相同,還能重組。

標誌(flag):三位但只用到後兩位:最低位記爲MF:MF=1,後面還有分片。MF=0,數據報片中的最後一個

                                                                中間爲記爲DF:DF=1,不能分片。DF=0,可以分片。

片偏移:某片在原分組中的相對位置。片偏移以8字節爲單位,也就是說某個分片長度一定是8字節的整數倍。






生存時間TTL:單位是跳數,路由器轉發數據報之前把TTL減1,若TTL值爲0則丟棄,TTL最大初值爲255,若TTL設爲1,則表示該數據報只能在本局域網中傳輸

協議:

首部檢驗和:只針對首部的檢驗,每經過一個路由器都要重新計算首部檢驗和,出錯丟棄


可選字段(長度可變):用來支持排錯,測量以及安全等措施,長度取決於所選擇的項目,最後用0補齊成4字節的整數倍。實際上這些選項很少用,不用此部分的首部長度爲20字節。IPV6更是把首部長度做成固定的。


IP層轉發分組的流程:圖例



IP數據報一定可以找到目的主機所在目的網絡上的路由器

只有到達最後一個路由器時,才試圖向目的主機進行直接交付。

特定主機路由:因特網所有分組轉發都是基於目的主機所在的網絡,但在大多數情況下,都允許有這樣的特例,即對特定的目的主機指明一個路由。這種路由叫做特定主機路由。

默認路由:適合於一個只有很少的對外連接的網絡

如圖所示,路由表中的直接和默認字符被標記爲0.0.0.0


注意:IP數據報首部中並沒有指明“下一跳路由器的IP地址”,那麼待轉發的數據報如何找到下一跳呢

當路由器收到一個待轉發的數據報,在從路由表得出下一跳路由器的IP地址後,不是把它填入IP數據報首部,而是交到下層的網絡接口軟件。網絡接口軟件負責把下一跳路由器的IP地址轉換成硬件地址(使用ARP),並將此地址放到鏈路層的MAC幀首部,然後根據這個硬件地址到達下一跳路由器。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章