【筆記】謝希仁—計網五版:chapter four 網絡層(一)

一、網絡層提供的兩種服務

1.虛電路VC(virtual circuit)

兩個計算機進行通信時,應先建立連接(但在分組交換中建立的是一條虛電路),以保證雙方通信所需的一切網絡資源,然后雙方就沿著已建立的虛電路發送分組。這樣的分組首部不需要填寫完整的目的主機地址,而只需要填寫這條虛電路的編號(一個不大的整數),因而減少了分組的開銷。這種通信方式如果再使用可靠傳輸的網絡協議,就可使所發送的分組無差錯按序列到達終點,當然也不丟失、不重復。在通信結束后要釋放建立的虛電路。

2.數據報服務

電信網提供的端到端可靠傳輸的服務對電話業務是很合適的,因為電信網的終端(電話機)非常簡單,沒有智能,無差錯處理能力。因此電信網必須負責把用戶電話機產生的話音信號可靠地傳送到對方的電話機,使還原后的話音質量符合技術規范的要求。但計算機網絡是有智能的計算機。計算機有很強的差錯處理能力。因此,因特網在設計上就采用了和電信網完全不同的思路。

因特網設計思路:

網絡層向上只提供簡單靈活的、無連接的、盡最大努力交付的數據報服務。

發送分組時不用先建立連接,每一個分組獨立發送,與前后分組無關(不進行編號)。物理層不提供服務質量的承諾,也就是說所傳送的分組可能出錯、丟失、重復和失序,也不保證分組交付的時限。由于不提供端到端的可靠性服務,這就使網絡中的路由器可以做得比較簡單,而且價格低廉。如果主機(即端系統)中的進程之間的通信需要是可靠的,那么就由網絡的主機中的運輸層負責(包括差錯處理、流量控制等)。

好處:網絡造價低,運行方式靈活,能夠適應多種應用。

3.二者本質差別

是將順序控制、差錯控制和流量控制等通信功能交由通信子網完成,還是由端系統自己來完成。

二、網際協議IP

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

地址解析協議ARP(address resolution protocol)

逆地址解析協議RARP(reverse address resolution protocol)

網際控制報文協議ICMP(internet control message protocol)

網際組管理協議IGMP(internet group mangement protocol)

1.虛擬互連網絡

沒有一種單一的網絡能夠適應所有用戶的需求。

注意:物理層使用的中間設備叫轉發器數據鏈路層使用的中間設備叫網橋或橋接器,網絡層使用的中間設備叫路由器。在網絡層使用的中間設備叫網關。

利用IP協議可使網絡在網絡層上看起來好像是一個統一的網絡。使用IP網的好處是:像在一個單個網絡上通信一樣,看不見互連的各網絡的具體異構細節(如編址方案、路由選擇協議,等等)

存儲轉發:主機H1先查找自己的路由表,看目的主機是否就在本網絡上。如是,則不需要經過任何路由器而是直接交付,任務就完成了。如不是,則必須把IIP數據報發送給某個路由器。R1在查找了自己的路由表后,知道應當把數據報轉發給R2進行間接交付。這樣一直轉發下去,最后由路由器R5知道自己是和H2連接在同一個網絡上,不需要再使用別的路由器轉發了,于是就把數據報直接交付給目的主機H2。

R4和R4之間使用了衛星鏈路,R5所連接的是個無線局域網。在R1和R4之間的三個網絡則可以是任意類型的網絡。

互聯網可以由多種異構網絡互連組成。

2.分類的IP地址

Ⅰ、IP地址及其表示方法

IP地址的編址方法共經歷了三個歷史階段:分類的IP地址、子網的劃分、構成超網。

本節只討論最基本的分類IP地址,后兩種在后面討論。

分類的IP地址是指:將IP地址劃分為若干個固定類,每一類地址由兩個固定長度的字段組成,第一個是網絡號(net-id),它標志主機(或路由器)所連接到的網絡。一個網絡號在整個因特網范圍內必須是唯一的。第二個字段是主機號(host-id),它標志該主機(或路由器),一個主機號在它前面的網絡號所指明的網絡范圍內必須是唯一的。由此可見,一個IP地址在整個因特網范圍內是唯一的。

::=表示定義為
前面數字是類別位

注意:近年已經廣泛使用無分類IP地址進行路由選擇。但許多文獻資料還在使用分類的。

把IP地址劃分為三個類別的原因:各種網絡差異大,主機有的多有的少,劃分三類能更好滿足不同用戶的要求。單位申請一個IP是獲得了具有同樣網絡號的一塊地址,其中主機號則由單位自行分配,只要做到該單位管轄范圍內無重復主機號即可。

點分十進制記法(dotted decimal notation):每8位用等效的十進制數字表示,并且在這些數字之間加上一個點。

Ⅱ、常用的三種類別的IP地址

IP地址的特點

①每一個IP地址由網絡號和主機號兩部分組成,是一種分等級的地址結構,這樣好處是:一、IP地址管理結構在分配IP地址時只分配網絡信號,而主機號由得到該網絡號的單位自行分配,這樣就方便了IP地址的管理。二、路由器僅根據目的主機所連接的網絡號來轉發分組(而不考慮目的主機號),這樣就可以使路由表中的項目數大幅度減少,從而減小了路由表所占的存儲空間以及查找路由表的時間。

IP地址是標志一個主機(或路由器)和一條鏈路的接口。當一個主機同時接入到兩個網絡上時有兩個IP地址,網絡號必須不同。這樣的主機稱為多歸屬主機。由于一個路由器至少應連接到兩個網絡,因此一個路由器至少應當有兩個不同的IP地址。

③由于一個網絡是指具有相同網絡號的主機的集合,因此用轉發器或網橋連接起來的若干個局域網仍為一個網絡。

④在IP地址中,所有分配到網絡號的網絡是平等的,不管它是局域網還是廣域網。

看上圖,可注意到

(1)與某個局域網相連接的計算機或路由器的IP地址中的網絡號都必須是一樣的。

(2)用網橋B(它只在鏈路層工作)互連的局域網仍然是一個局域網。

(3)路由器總是具有兩個或兩個以上的IP地址,即路由器每一接口都有一個不同網絡號的IP地址。

(4)當兩個路由器直接相連時,這一段連線就構成了一種只包含一段線路的特殊“網絡”(如圖中的Nl,N2和N3)。之所以是“網絡”是因為它有IP地址。但為節約IP地址資源,有時不分配IP地址,這樣的網絡叫做無編號網絡或無名網絡

3.IP地址與硬件地址

IP地址總是放在IP數據報的首部,而硬件地址則放在MAC幀的首部。在網絡層以上使用的是IP地址,而數據鏈路層以下使用的是硬件地址。當IP數據報放入鏈路層的MAC幀中后,整個的IP數據報就成為MAC幀的數據,因而在數據鏈路層看不見數據報的IP地址。

強調指出:

(1)在IP層抽象的互聯網上只能看到IP數據報。雖然經過路由器R1、R2兩次轉發,但首部中的源地址和目的地址始終不變。數據報中間經過的兩個路由器的IP地址并不出現在IP數據報的首部中。

(2)雖然IP數據報首部有源站IP地址,但路由器只根據目的站的IP地址的網絡號進行路由選擇。

(3)在局域網的鏈路層,只能看見MAC幀。IP數據報被封裝在MAC幀中。MAC幀在不同網絡上傳送時,其MAC幀首部中的源地址和目的地址要發生變化,這些變化在IP層是看不見的。

(4)盡管互連在一起的網絡的硬件地址體系各不相同,但IP層抽象的互聯網卻屏蔽了下層的復雜細節。類似于,我們單機鼠標幾下就能讓電腦完成任務,而實際上電腦執行了很多指令。

兩個問題:

①主機或路由器怎樣知道應當在MAC幀的首部填入什么樣的硬件地址?

②路由器中的路由表是怎樣得出的?

下節指出

4.地址解析協議ARP和逆地址解析協議RARP

Ⅰ、產生背景

逆地址協議RARP在過去起到很大作用,但現在DHCP協議已包含了RARP協議的功能。因此沒有人再使用單獨的RARP協議了。它作用是知道自己硬件地址的主機能夠通過RARP協議找出其IP地址。

網絡層使用的是IP地址,但是數據鏈路上傳送幀時,使用的是網絡的硬件地址。但這兩個地址由于格式不同不存在簡單映射關系。另外,一個網絡上有新的主機加進來,也有撤走主機,更換網絡適配器也會使主機的硬件地址改變。地址解析協議就是在主機ARP高速緩存中應存放一個從IP地址到硬件地址的映射表,并且還要經常動態更新(新增或超時刪除)。

Ⅱ、地址解析協議ARP的工作原理

ARP高速緩存(ARP chche):里面有本局域網上的各主機和路由器的IP地址到硬件地址的映射表,這都是主機目前知道的一些地址。

主機是如何知道這些地址的?

例如:一局域網中,主機A要向主機B發送IP數據報,就在ARP高速緩存中看是否有B的IP地址,有,就在ARP高速緩存中查出其對應的硬件地址,再把這個硬件地址寫入MAC幀,然后通過局域網把該MAC幀發往此硬件地址。

可能找不到B的IP地址的項目,這有可能是因為B剛入網,也可能是A剛加電所以其高速緩存還是空的。這樣,A就自動運行ARP,然后按下列步驟找到B的硬件地址。

()ARP進程在本局域網上廣播發送一個請求分組例子是A廣播發送ARP請求分組示意圖。

(2)在本局域網上的所有主機上運行的ARP進程都收到此ARP請求分組

(3)主機B在ARP請求分組中見到自己的IP地址,就向主機A發送ARP相應分組,并寫入自己的硬件地址。其余的所有主機都不理睬這個ARP請求分組。注意:雖然ARP請求是廣播發送的,但ARP響應分組是普通的單播,即從一個源地址發送到一個目的地址。

(4)主機A收到主機B的ARP響應分組后,就在其ARP高速緩存中寫入主機B的IP地址到硬件地址的映射。

Ⅲ、ARP高速緩存的重要性

A向B發送數據報時,很可能以后不久主機B還要向A發送數據報,因而主機B也可能向A發送ARP分組。為了減少網絡上的通信量,主機A在發送其ARP請求分組時,就把自己的IP地址到硬件地址的映射寫入ARP請求分組,當主機B收到A的請求分組時,就把主機A的這一地址映射寫入到主機B自己的ARP高速緩存中。以后B向A發送數據報時就很方便了。

可見ARP高速緩存非常有用,如果不用,那么每一次通信,就要用廣播方式發送ARP請求分組,這樣使網絡上的通信量大大增加。

ARP把保存在高速緩存中的每一個映射地址項目都設置生存空間。因為有時主機會變。

Ⅳ、不同局域網上如何通信

ARP是解路決同一個局域網上的主機或路由器的IP地址和硬件地址的映射問題。不在同一個局域網上的無法解析硬件地址,它們通過路由器傳送。例如不同局域網上的: ??H1→R1→R2→H2。主機H1要把路由器R1的IP地址IP3解析為硬件地址HA3,以便能夠把IP數據報傳送到路由器R1。然后R1從轉發表找出R2,同時使用ARP解析出R2的硬件地址HA5。于是IP數據報按照硬件地址HA5轉發到路由器R2。路由器R2在轉發這個IP數據報時用類似方法解析出H2的硬件地址HA2。

主機的用戶對地址解析過程是不知道的。只要主機或路由器要和本網絡上的另一個已知IP地址的主機或路由器進行通信,ARP協議就自動把這個IP地址解析為鏈路層所需要的硬件地址。

Ⅴ、使用ARP的四種典型情況:

①發送方是主機,把IP數據包發送到本網絡上的另一個主機。這時用ARP找到目的主機的硬件MAC地址。 ?

②發送方是主機,要把IP數據報發送到另一個網絡上的主機。這時用ARP找到本網絡上的一個路由器(網關)的硬件MAC地址。剩下的工作由這個路由器來完成。

③發送方是路由器,要把IP數據報轉發到本網絡上的一個主機。這時用ARP找到目的主機的硬件MAC地址

④發送方是路由器,要把IP數據報轉發到另一個網絡的一個主機。這時用ARP找到本網絡上的一個路由器(網關)的硬件地址。剩下的工作有這個路由器來完成。

Ⅵ、網絡鏈路中是按照硬件地址找到目的主機的,為什么我們不直接用硬件地址通信,而要用IP地址呢?

這是因為要使異構網絡相互通信就必須進行非常復雜的硬件地址轉換工作,這幾乎不可能。但IP地址可以,因為連接到因特網的主機只需擁有一個統一的IP地址,它們之間的通信就像連接在同一個網絡那樣簡單方便。

5.IP數據報的格式

Ⅰ、IP數據報首部的固定部分中的各字段

①版本

占4位,指IP協議的版本。通信雙方使用的IP協議版本必須一致,廣泛用4(即IPv4),后來用6。

②首部長度

占4位,可表示最大十進制數值為15,數的單位是2位字(1個32位字長是4字節)。長度為1111(即十進制15)時,首部長度就達到最大值60字節。首部長度不是4字節整數倍時,必須用最后的填充字段加以填充,這樣在實現IP協議時方便。限制為60字節時可能不夠用但減少了開銷。最常用的是20字節。

③區分服務

占8位,用來獲得更好的服務。只有在區分服務時,才起作用,一般下不用。

④總長度

占16位,指首部和數據之和的長度,單位字節。數據報最大長度為2^16-1字節。

IP層下面數據鏈路層有自己的幀格式,規定了最大傳送單元MTU。當一個IP數據報封裝成鏈路層的幀時,此數據報的總長度(首部加數據部分)不能超過MTU值。

雖然長的數據報會使傳輸效率提高,但是由于以太網普遍使用,所以很少超過1500字節的。最小長度:576字節(規定)。大于MTU時,要分片才能傳送,這時“總長度”字段指分片后的長度。

⑤標識(identification)

占16位。每產生一個數據報,計數器就加1,并將此值賦給標識字段。但這個標識不是序號,因為IP是無連接服務,數據報不存在按序接收的問題。超過MTU時,這個標識字段的值就被復制到所有的數據報片的標識字段中。想通的標識字段的值使分片后的各數據報片最后能正確地重裝成為原來的數據報。

⑥標志(flag)

占3位,但目前只有2位有意義。最低位記為MF(more fregment),為1表示后面“還有分片”的數據報,為0表示這已是若干數據報片中的最后一個。中間一位記為DF(don't fragment),不能分片,只有為0時才允許分片。

⑦片偏移

占13位,它是較長的分組在分片后,某片在原分組中的相對位置。也就是,相對于用戶數據字段的起點,該片從何處開始,片偏移以8個字節為偏移單位。每個分片長度一定是8字節(64位)的整數倍。

⑧生存時間

占8位。TTL(time to live),表明是數據報在網絡中的壽命。由發出的數據報的源點設置這個字段,其目的是防止無法交付的數據報無限制地在因特網中兜圈子。起初是以秒做單位,每經過一個路由器,就減去時間,在路由器消耗的時間小于1s時,就把TTL值減1,為0,就丟棄這個數據幀。

后來,路由器處理時間縮短了,遠小于1s,后來就把它功能改為“跳數限制”,路由器在轉發數據報前就把TTL值減1,若減小到零,就丟棄這個數據報,不再轉發。單位不是秒,而是跳數。所以意義是指明數據報在因特網中至多可經過多少個路由器。經過的路由器的最大數值是255。若把TTL初始值定為1,表示只能在本局域網中傳送。

⑨協議

占8位。指出數據報所攜帶的數據使用何種協議,以便使目的主機的IP層知道應將數據部分上交給哪個處理過程。

⑩首部檢驗和

占16位。它只能檢驗數據報的首部,但不包括數據部分。每經過路由器,路由器都要重新計算首部檢驗和(如一些字段,如生存時間、標志、片偏移等都會變化)。為簡化,不使用CRC檢驗碼。使用方法見圖。

注:反碼算術求和,是從低位到高位計算,最高位相加后產生進位,則最后結果要加1。

?源地址 ?占32位

?目的地址 ? 占32位

Ⅱ、IP數據報首部的可變部分

用來排錯、測量等,內容豐富。中間不需要分隔符,最后用0的填充字段補齊成為4字節的整數倍。這樣增加了開銷,實際上很少用,新IP版本把IP數據報的首部長度做成固定的。

6.IP層轉發分組的流程

簡化圖,不用關心某個網絡內部的具體拓撲以及連接在該網絡上有多少臺計算機,它是從一個路由器轉發到下一個路由器。

特定主機路由:雖然因特網所有的分組轉發都是基于目的主機所在的網絡,但在大多數情況下有特例,即對特定的目的主機指明一個路由。

默認主機路由(default route):可減少路由表所占用的空間和搜素路由表所用的時間,這種轉發方式在一個網絡只有很少的對外連接是很有用的。

待轉發的數據報怎樣找到下一跳路由器?

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

分組轉發的算法:

①從數據報的首部提取目的主機的IP地址D,計算出目的主機的網絡地址N。

(將IP數據報中目的主機的IP地址和路由表上的子網掩碼進行&運算,就可以得出網絡地址N)

②若N就是與此路由器直接相連的某個網絡的網絡地址。則直接進行交付,不需要經過其他路由器,而是直接將IP數據報交付給目的主機。

(注意,直接交付時,路由器需要將目的主機地址D轉換為具體的硬件地址,把數據報封裝在MAC幀,在發送此幀。)

若N不是與此路由器直接相連的網絡,就進行間接交付。執行3或執行4

③若路由表中有目的地址為D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行4。

④若路由表中有到達網絡N的路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行5。

⑤如果3和4都沒能將IP數據報轉發出去,若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行6。

⑥報告轉發分組出錯。

注:未涉及路由表一開始如何建立的以及路由表中的內容如何進行更新

三、劃分子網和構造超網

1.劃分子網

Ⅰ、從兩級IP地址到三級IP地址

兩級IP地址缺點:①地址空間利用率有時低;②給每一個物理網絡分配一個網絡號會使路由表變得太大因而使網絡性能變壞;③兩級IP地址不夠靈活。

劃分子網基本思路:①一個擁有很多物理網絡的單位,可以將所屬的物理網絡劃分為多個子網,本單位以外看不到多少個子網,對外界來說表現為一個網絡。②劃分子網的方法是從網絡的主機號借用若干位作為子網號,當然主機號也就相應減少了同樣的位數,三級IP地址為:<網絡號>,<子網號>,<主機號>。③凡是從其他網絡發送給本單位某個主機的IP數據報,仍然是根據IP數據報的目的網絡號找到連接在本單位網絡上的路由器。但此路由器在收到IP數據報后,再按目的網絡號和子網號找到目的子網,把IP數據報交付給目的主機。

舉例如圖:

Ⅱ、子網掩碼

假定有一個數據報(目的地址是145.13.3.10)已經到達了路由器R1,那么這路由器如何把它轉發到子網145.13.3.0??

由于IP地址本身以及數據報首部都沒有包含任何有關子網劃分的信息,所以用到了子網掩碼(subnet mask)

使用子網掩碼好處:不管網絡有沒有劃分子網,只要把子網掩碼和IP地址進行逐位的“與”運算(AND),就立即得出網絡地址來。這樣在路由器在處理到來得分組時就可采用同樣的算法。

不劃分子網時,既然沒有子網,又為什么要使用子網掩碼?

這是為了便于查找路由表,在路由器的路由表中必須有子網掩碼這一欄,如果不劃分子網,那么子網掩碼就是默認子網掩碼。若一個路由器連接在兩個子網上就擁有兩個網絡地址和兩個子網掩碼。

上表結論:劃分子網增加了靈活性,但卻減少了能夠連接在網絡上的主機總數。若用較少位數的子網號,則每一個子網上可連接的主機數就較多。反之,若用較多位數的子網號,則連接的主機數少。

同樣的IP地址和不同的子網掩碼可以得出相同的網絡地址。但是,不同地掩碼效果是不同的。

2.使用子網時分組的轉發

劃分子網后,路由表包括:目的網絡地址、子網掩碼、下一跳地址

劃分子網下,路由表轉發分組的算法:

①從收到的數據報的首部提取目的IP地址D

②先判斷是否直接交付,對路由器直接相連的網絡逐個進行檢查:用各網絡的子網掩碼和D逐位相“與”(AND操作),看結果是否和相應的網絡地址匹配。若匹配,則把分組進行直接交付(當然還要把D轉換成物理地址,把數據報封裝成幀發送出去),轉發任務結束,否則就是間接交付,執行③。

③若路由表中有目的地址為D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器。否則,執行④。

④對路由表中的每一行(目的網絡地址、子網掩碼、下一跳地址),用其中的子網掩碼和D逐位相“與”(AND操作),其結果為N。若N與該行的目的網絡地址匹配,則把數據報傳送給該行指明的下一跳路由器。否則,執行⑤。

⑤若有默認路由,則把數據報傳送給路由表中所指明的默認路由器。否則,報告轉發分組出錯。

3.無分類編址CIDR(構造超網)

Ⅰ、網絡前綴

劃分子網出現了問題:①B類地址快要分配完畢②因特網主干網上的路由表中的項目數急劇增長③整個IPv4的地址空間最終將全部耗盡?,F用網絡前綴解決前兩個問題。

在變長子網掩碼VLSM(variable length subnet mask)基礎上研究出了無編址方法,正式名字是無分類域間路由選擇CIDR(classless inter-domain routing)。

CIDR最主要特點:①消除了傳統的A類、B類、C類地址以及劃分子網的概念,因而可有效分配IPv4的地址空間。記法是:<網絡前綴>,<主機號>。②CIDR把網絡前綴都相同的連續IP地址組成一個“CIDR地址塊”。例如:

主機號是全0和全1的地址一般不用,這個地址塊共有2^12個地址,我們可以用地址塊中最小地址和網絡前綴的位數指明這個地址塊,于是記為128.14.32.0/20。不需要指出起始地址時,也可記為“/20地址塊”。

/20地址塊的掩碼是11111111 ? 11111111 ? 11110000 ? 00000000(20個連續的1),斜線記法中,斜線后面的數字就是地址掩碼中1的個數。通過斜線記法,可知這分地址塊的最小地址和最大地址。

由于一個CIDR地址塊中有很多地址,所以在路由表中就利用CIDR地址塊來查找目的網絡。這種地址的聚合常稱為路由聚合(route aggregation,也稱為構成超網supermetting),它使得路由表中的一個項目可以表示原來傳統分類地址的很多個路由。

下面例子可以看出,把四個系的路由聚合為大學的一個路由,是將網絡前綴縮短。網絡前綴越短,其地址塊所包含的地址數就越多。

Ⅱ、最長前綴匹配

在使用CIDR時,由于采用了網絡前綴這種記法,IP地址由網絡前綴和主機號這兩部分組成。所以路由項目就要有網絡前綴和下一跳地址

查找路由表時可能得到不止一個匹配結果,我們應當從匹配結果中選擇具有最長網絡前綴的路由。這叫做最長前綴匹配(longest-prefix matching)。這是因為網絡前綴越長,其地址塊就越小,因而路由選擇就越具體。

另外,要把分配出去的IP地址收回再重新分配是十分困難的事,因為這牽涉到很多正在工作的主機必須改變其IP地址。盡管這樣,CIDR的使用已經推遲了IP地址將要耗盡的日期。

Ⅲ、使用二叉線索查找路由表

使用CIDR后,由于要尋找最長前綴匹配,使路由表的查找過程變得更加復雜了。當路由表的項目數很大時,怎樣設法減小路由表的查找時間就成為一個非常重要的問題。

二叉線索只是提供了一種可以快速在路由表中找到匹配的葉節點的機制,但這是否和網絡前綴匹配,還要和子網掩碼進行一次邏輯與的運算。為提高二叉線索的查找速度,廣泛使用了各種壓縮技術,例如在上圖二叉樹右側,前面4位都是1011,因此只要一個地址的前4位是1011,就可以跳過前面4位而直接從第5位開始比較,這樣就減少了查找時間。即使壓縮計算很大,但是可提高查找速率還是值得的。

四、網際控制報文協議ICMP

ICMP報文的種類

ICMP報文有兩種:即ICMP 差錯報文和ICMP詢問報文

ICMP差錯報文有五種,即:

①終點不到達:當路由器或主機不能交付數據報時就向源點發送終點不可達報文

②源點抑制:當路由器或主機由于堵塞而丟棄數據報時,就向源點發送源點抑制報文,使源點知道應當把數據報的發送速率放慢。

③時間超過:當路由器收到生存時間為零的數據報時,除丟棄該數據報外,還要向源點發送時間超過報文。當終點在預先規定內不能收到一個數據報的全部數據報片時,就把已收到的數據報片廢棄,并向源點發送時間超過報文。

④參數問題:當路由器或目的主機收到的數據報的首部中有的字段的值不正確時,就丟棄該數據報,并向源點發送參數問題報文。

改變路由(重定向):路由器把改變路由器報文發送給主機,讓主機知道下次應將數據報發送給另外的路由器(可通過更好的路由)。當主機發送數據報時,首先查找主機自己的路由表,看應從哪個接口把數據報發送出去,為了效率會有一個默認路由器的IP地址。發現這個默認路由器的IP地址不對時,就用改變路由報文把這情況告訴主機,這樣主機就在路由表增加一個項目:到某某目的地址應經過路由器R(而不是默認路由器)。

所有ICMP差錯報告報文中的數字都具有同樣的格式,把收到的需要進行差錯報告的IP數據報的首部和數據字段的前8個字節提取出來,作為ICMP報文的數據字段。再加上相應的ICMP的差錯報告的前8個字節,就構成了ICMP差錯報告報文。提取收到的數據報的數據字段的前8個字節是為了得到運輸層的端口號以及運輸層報文的發送序號。這些信息對源點通知高層協議是有用的(端口作用在下一章介紹)。整個ICMP報文作為IP數據報的數據字段發送給源點。

不應發送ICMP差錯報告報文的幾種情況:

①對ICMP差錯報告報文不再發送ICMP差錯報告報文

②對每一個分片的數據報片的所有后續數據報片都不發送ICMP差錯報告報文

③對具有多播地址的數據報都不發送ICMP差錯報告報文

④對具有特殊地址的數據報不發送ICMP差錯報告報文

常用的ICMP詢問報告有兩種:

①回送請求和回答

ICMP回送請求報文是主機或路由器向一個特定的目的主機發出的詢問。收到此報文的主機必須給源主機或路由器發送ICMP回送回答報文。這種詢問報文用來測試目的站是否可達以及了解其有關狀態。

②時間戳請求和回答

ICMP時間戳請求報文是請某個主機或路由器回答當前的日期和時間。可用來進行時鐘同步和測量時間。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,744評論 3 421
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,879評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,181評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,935評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,325評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,534評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,084評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,892評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,322評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,735評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,990評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,800評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,084評論 2 375

推薦閱讀更多精彩內容