第一組 查找服務器
1)下圖顯示的是1、2行的數(shù)據(jù)
圖9
2)解釋數(shù)據(jù)包
這兩行數(shù)據(jù)就是查找服務器及服務器應答的過程。
在第1行中,源端主機的MAC地址是00:50:FC:22:C7:BE。目的端主機的MAC地址是FF:FF:FF:FF:FF:FF,這個地址是十六進制表示的,F(xiàn)換算為二進制就是1111,全1的地址就是廣播地址。所謂廣播就是向本網(wǎng)上的每臺網(wǎng)絡設備發(fā)送信息,電纜上的每個以太網(wǎng)接口都要接收這個數(shù)據(jù)幀并對它進行處理,這一行反映的是步驟5)的內(nèi)容,ARP發(fā)送一份稱作ARP請求的以太網(wǎng)數(shù)據(jù)幀給以太網(wǎng)上的每個主機。網(wǎng)內(nèi)的每個網(wǎng)卡都接到這樣的信息“誰是192.168.113.1的IP地址的擁有者,請將你的硬件地址告訴我”。
第2行反映的是步驟6)的內(nèi)容。在同一個以太網(wǎng)中的每臺機器都會"接收"到這個報文,但正常狀態(tài)下除了1號機外其他主機應該會忽略這個報文,而1號的主機的ARP層收到這份廣播報文后,識別出這是發(fā)送端在尋問它的IP地址,于是發(fā)送一個ARP應答。告知自己的IP地址和MAC地址。第2行可以清楚的看出1號回答的信息__自己的MAC地址00:50:FC:22:C7:BE。
這兩行反映的是數(shù)據(jù)鏈路層之間一問一答的通信過程。這個過程就像我要在一個坐滿人的教室找一個叫“張三”的人,在門口喊了一聲“張三”,這一聲大家都聽見了,這就叫廣播。張三聽到后做了回應,別人聽到了沒做回應,這樣就與張三取得了聯(lián)系。
3)頭信息分析
如下圖左欄所示,第1數(shù)據(jù)包包含了兩個頭信息:以太網(wǎng)(Ethernet)和ARP。
圖10
下表2是以太網(wǎng)的頭信息,括號內(nèi)的數(shù)均為該字段所占字節(jié)數(shù),以太網(wǎng)報頭中的前兩個字段是以太網(wǎng)的源地址和目的地址。目的地址為全1的特殊地址是廣播地址。電纜上的所有以太網(wǎng)接口都要接收廣播的數(shù)據(jù)幀。兩個字節(jié)長的以太網(wǎng)幀類型表示后面數(shù)據(jù)的類型。對于ARP請求或應答來說,該字段的值為0806。
第2行中可以看到,盡管ARP請求是廣播的,但是ARP應答的目的地址卻是1號機的(00 50 FC 22 C7 BE)。ARP應答是直接送到請求端主機的。
行 | 以太網(wǎng)目的地址(6) | 以太網(wǎng)源地址(6) | 幀類型(2) |
1 | FF FF FF FF FF FF | 00 50 FC 22 C7 BE | 06 06 |
2 | 00 50 FC 22 C7 BE | 00 50 27 F6 50 53 | 06 06 |
表2
下表3是ARP協(xié)議的頭信息。硬件類型字段表示硬件地址的類型。它的值為1即表示以太網(wǎng)地址。協(xié)議類型字段表示要映射的協(xié)議地址類型。它的值為0800即表示IP地址。它的值與包含I P數(shù)據(jù)報的以太網(wǎng)數(shù)據(jù)幀中的類型字段的值相同。接下來的兩個1字節(jié)的字段,硬件地址長度和協(xié)議地址長度分別指出硬件地址和協(xié)議地址的長度,以字節(jié)為單位。對于以太網(wǎng)上IP地址的ARP請求或應答來說,它們的值分別為6和4。Op即操作(Opoperation),1是ARP請求、2是ARP應答、3是RARP請求和4為RARP應答,第二行中該字段值為2表示應答。接下來的四個字段是發(fā)送端的硬件地址、發(fā)送端的IP地址、目的端的硬件地址和目的端IP地址。注意,這里有一些重復信息:在以太網(wǎng)的數(shù)據(jù)幀報頭中和ARP請求數(shù)據(jù)幀中都有發(fā)送端的硬件地址。對于一個ARP請求來說,除目的端硬件地址外的所有其他的字段都有填充值。
表3的第2行為應答,當系統(tǒng)收到一份目的端為本機的ARP請求報文后,它就把硬件地址填進去,然后用兩個目的端地址分別替換兩個發(fā)送端地址,并把操作字段置為2,最后把它發(fā)送回去。
行 | 硬件類型 (2) |
協(xié)議類型 (2) |
硬件地址 長度(1) |
協(xié)議地址 長度(1) |
Op (2) |
發(fā)送端以太網(wǎng)地址(6) | 發(fā)送端IP地址(4) | 目的以太網(wǎng)地址(6) | 目的IP地址(4) |
1 | 00 00 | 08 00 | 06 | 06 | 00 01 | 0050FC22C7BE | C0A871D0 | 000000000000 | C0A871D1 |
2 | 00 00 | 08 00 | 06 | 06 | 00 02 | 005027F65053 | C0A871D1 | 0050FC22C7BE | C0A871D0 |
表3