PING過程之步步爲營


配置好路由器Route和pc0、pc1的IP地址以及網關



這個過程可以具體分爲四個階段:
一、pc0到Router階段


1、ping進程將調用因特網控制報文協議(ICMP),ICMP創建一個迴應請求數據包;
2、ICMP將這個有效負荷交給因特網協議(IP),然後IP協議會創建一個數據包。
   這時,這個數據包將包含源IP地址、目的IP地址和值爲0x01的協議字段。
3、一旦數據包被創建,IP協議將判斷目的IP地址是處於本地網絡中,還是處於一個遠程網絡中;
4、由於IP協議斷定這是一個遠程請求,這個數據包需要被髮送到默認網關,這樣, 這個數據包才能路由到遠程網絡。本機註冊表將被使用,以查找配的默認網關;
 5、主機pc0的默認網關被配置爲172.16.0.1 要能夠發送這個數據包到默認網關,必須要知道路由器的FastEthernet0/0接口(其IP地址被配置爲172.16.0.1)的硬件地址,因爲只有這樣,數據包纔可以被下傳給數據鏈路層並生成數據幀,然後發送到與172.16.1.0網絡連接的路由器接口;
    【注:】在本地局域網內,主機只可以通過硬件地址來進行通信,pc0要想和pc1通信,它必須將數據包發送到本地網絡中默認網關的mac地址上,這一點很重要。mac地址永遠都應用於本地局域網,而絕不會通過路由器。
6、接着,pc0檢查arp緩存,查看一個默認網關的IP地址是否已經解析爲硬件地址,
     如果已經被解析,數據包就將被釋放、傳送到數據鏈路層並生成數據幀(目的方的硬件地址也將通數據包一同下傳至數據鏈路層),要查看pc0主機上的arp緩存,可以使用下列命令:
                  PC>arp -a
                  Internet Address      Physical Address      Type
                  172.16.0.1            0004.9ade.a201      dynamic

      如果這個硬件地址在pc0主機的arp緩存中尚未被解析,一個arp廣播將被髮送到本地網絡,以搜索172.16.0.1的硬件地址,路由器會響應這個請求並提供FastEthernet0/0的硬件地址,接着pc0主機將緩存這個地址; 


7、一旦這個數據包和目的方的硬件地址被交付給數據鏈路層,局域網驅動器將用來提供媒體訪問以通過以太網,此時將會產生一個數據幀,使用控制信息來封轉此數據包。在這個幀中包含有目的方和源方的mac地址,以及以太網類型字段。在本例中,這個協議爲IP協議。在這個幀的結尾處是被稱爲幀校驗序列(FCS)的字段,它是裝載循冗餘校驗(CRC)計算值的區域。此數據幀還需要查詢一些信息,即pc0的mac地址,以及作爲目的方的默認網關的mac地址,但這裏並不包括pc1主機的mac地址;

8、數據幀完成封裝以後,就會被交付到物理層,以一次一位的方式發送往物理媒體(在試驗中是雙絞線對);
9、在衝突域中的每臺設備將接收這些位並重建爲幀。它們都運行CRC並覈對保存在FCS字段中的內容,如果這 兩個值不匹配,此幀將會被丟棄。
     如果這個CRC值相吻合,那麼就覈查目的方的mac地址,如果匹配,那麼路由器將將查看以太網類型字段,以瞭解在網絡層使用的協議;
10、數據包從數據幀中抽出,然後這個數據幀剩下的部分被丟棄,再把數據包傳給以太網類型字段中列出的上層協議,在這裏是傳給IP協議;
11、IP會接受這個數據包,並檢查其目的IP地址,由於數據包的目的地址與接收路由器所配置的任一地址不相匹配,路由器將會在路由表中查看目的IP網絡的地址;
12、此路由表中必須包含有網絡172.16.1.0的表項,否則此數據包會被立即丟棄,然後一個攜帶有“destination network unavailable”信息的ICMP包將被髮送回發送方pc0;
13、如果路由器找到目的方的網絡,數據包將被交換到輸出接口,由於在被試驗中所有網絡都是直連的,因此沒有必要使用主動路由協議;
二、Router到pc1階段
 

14、路由器將交換此數據包到FastEthernet0/1的緩衝區內;
 15、FastEthernet0/1的緩衝區需要了解目的方主機的mac地址,它首先檢查arp緩存,
    如果pc1的mac地址已經被解析並保存在路由器的arp緩存中,則這個數據包和mac地址將被傳遞到數據鏈路層並組成數據幀。下面是路由器的arp緩存:
             
     Router#show arp
     Protocol  Address           Age (min)  Hardware Addr   Type   Interface
     Internet  172.16.0.1              -   0004.9ADE.A201  ARPA   FastEthernet0/0
     Internet  172.16.0.2              35  0001.63BC.C8A7  ARPA   FastEthernet0/0
     Internet  172.16.1.1              -   0004.9ADE.A202  ARPA   FastEthernet0/1
     Internet  172.16.1.2              35  000C.8513.CAAB  ARPA   FastEthernet0/1
         
如果這個硬件地址尚未被解析,路由器將從FastEthernet0/1發送一個arp廣播到請求,以查找 172.16.1.2的硬件地址,pc1會響應這個請求並提供硬件地址,接着路由器將緩存這個地址;然後這個包和硬件地址都會被髮送到數據鏈路層並組成數據幀;
 16、數據鏈路層將使用這個目的方的源方的mac地址,以及以太網的類型字段和FCS來創建一個數據幀,這個幀將被
 17、pc1主機會接收到此幀,並立即運行CRC,如果運算結果與FCS字段的內容相匹配,這個目的mac地址將被檢查,如果發現是匹配的,隨後將檢查以太網類型字段中的值,以判斷應該將數據包上傳給網絡層的什麼位置;
18、在網絡層,IP會接收這個數據包,並檢查其目的方的IP地址,由於他們是匹配的,數據包的協議字段將會被檢查,以瞭解有效負荷應該交給誰;
 
  三、pc1到Router階段
 

 
 19、此有效負荷會交給ICMP,它將知道這是一個迴應請求,ICMP會應答這個請求,通過即可丟掉這個數據包並隨之產生一個新的有效負荷來作爲迴應應答;
 20、隨後創建的數據包中將包含源方和目的方的地址、協議字段和有效負荷。現在,目的方設備爲pc0;
 21、IP協議將判斷目的IP地址是處於本地網絡中,還是處於一個遠程網絡中,由於IP協議斷定這是一個遠程請求,這個數據包需要被髮送到默認網關,這樣,這個數據包才能路由到遠程網絡。本機註冊表將被使用,以查找配的默認網關;
 22、在pc1的註冊表中可以找到默認網關的IP地址,之後將查看arp緩存,以瞭解是否已經完成了從IP地址到mac地址的解析;
  23、一旦默認網關的mac地址找到,此數據包和目的方的mac地址都將被送往數據鏈路層,以完成數據幀的封轉;
 24、數據鏈路層會封裝數據包的內容,並在幀報頭中包含以下內容:
    目的方和源方的mac地址         在以太網類型字段中填充0x0800(IP)    將CRC結果填入FCS字段
 25、這時,幀將會被傳給物理層,並以一次一位的方式發送到網絡媒體上;
26、路由器的FastEthernet0/1接口會接收到這些位並重建爲一個幀,CRC校驗被運行,幀的FCS字段被檢驗,以確認 兩個結果是相符的;
 27、CRC檢驗通過之後,目的mac地址將被檢查。由於路由器的接口同這個地址是想匹配的,數據包將被從這個幀中取出, 然後以太網類型字段將被檢查,以瞭解數據包應該投遞給網絡層上的哪一個協議;
28、由於協議被判斷爲IP。於是IP將得到這個數據包,首先IP將對IP報頭運行CRC校驗,然後檢查目的方的IP地址;
 29、在這種情況下,路由器確實知道到達172.16.0.0的方式,這一輸出的接口是FastEthernet0/0,於是數據包將交換到接口FastEthernet0/0上;
 
 四、Rouetr到pc0階段


 
30、路由器檢查arp緩存,確定172.16.0.2的mac地址是否已經被解析;
31、由於在將數據包傳送到pc1的過程中,172.16.0.2的mac地址已經被緩存起來,因此,這一mac地址和數據包將被傳遞到數據鏈路層;
32、數據鏈路層會使用這個目的方的mac地址和源mac地址,然後將IP放入以太網類
33、這個幀然後被傳送到物理層,以一次一位的方式發送到本地網絡;
34、pc0將接收這個幀,運行CRC算法,檢查目的方的mac地址,並查看以太網類型字段中的內容,以判斷誰來處理這個幀;
35、由於IP是被指定的接收者,隨後這個數據包被傳遞給網絡層的IP協議,它將檢查包的協議字段,以確定進一步的操作,IP發現要將此有此有限負荷交給ICMP的指示,接着ICMP將確定此數據包是一個ICMP的應答回覆包;
36、ICMP通過發送一個感嘆號(!)到用戶接口來表明它已經接收到一個回覆,在命令提示行下表現爲收到報文,這之後,ICMP會嘗試繼續發送4個應答請求到pc1。

 

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