工作原理:
10年積累的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有竹溪免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。在網(wǎng)絡(luò) 通訊時(shí),源主機(jī)的應(yīng)用程序知道目的主機(jī)的IP地址和端口號(hào),卻不知道目的主機(jī)的硬件地址,而數(shù)據(jù)包首先是被網(wǎng)卡接收到再去處理上層協(xié)議的,如果接收到的數(shù) 據(jù)包的硬件地址與本機(jī)不符,則直接丟棄。因此在通訊前必須獲得目的主機(jī)的硬件地址。ARP協(xié)議就起到這個(gè)作用。源主機(jī)發(fā)出ARP請(qǐng)求,詢問“IP地址是192.168.0.1的主機(jī)的硬件地址是多少”,并將這個(gè)請(qǐng)求廣播到本地網(wǎng)段(以太網(wǎng)幀首部的硬件地址填 FF:FF:FF:FF:FF:FF表示廣播),目的主機(jī)接收到廣播的ARP請(qǐng)求,發(fā)現(xiàn)其中的IP地址與本機(jī)相符,則發(fā)送一個(gè)ARP應(yīng)答數(shù)據(jù)包給源主機(jī), 將自己的硬件地址填寫在應(yīng)答包中。
每臺(tái)主機(jī)都維護(hù)一個(gè)ARP緩存表,可以用arp -a命令查看。緩存表中的表項(xiàng)有過期時(shí)間(一般為20分鐘),如果20分鐘內(nèi)沒有再次使用某個(gè)表項(xiàng),則該表項(xiàng)失效,下次還要發(fā)ARP請(qǐng)求來獲得目的主機(jī)的硬件地址。試想一下如果沒有緩存,我們每發(fā)一個(gè)IP包都要發(fā)個(gè)廣播查詢地址,豈不是又浪費(fèi)帶寬又浪費(fèi)資源?而且我們的網(wǎng)絡(luò)設(shè)備是無法識(shí)別ARP包的真?zhèn)蔚?,如果我們按照ARP的格式來發(fā)送數(shù)據(jù)包,只要信息有效計(jì)算機(jī)就會(huì)根據(jù)包中的內(nèi)容做相應(yīng)的反應(yīng).
ARP數(shù)據(jù)報(bào)格式
注意到 源MAC地址、目的MAC地址在以太網(wǎng)首部和ARP請(qǐng)求中各出現(xiàn)一次,對(duì)于鏈路層為以太網(wǎng)的情況是多余的,但如果鏈路層是其它類型的網(wǎng)絡(luò)則有可能是必要 的。硬件類型指鏈路層網(wǎng)絡(luò)類型,1為以太網(wǎng),協(xié)議類型指要轉(zhuǎn)換的地址類型,0x0800為IP地址,后面兩個(gè)地址長(zhǎng)度對(duì)于以太網(wǎng)地址和IP地址分別為6和 4(字節(jié)),op字段為1表示ARP請(qǐng)求,op字段為2表示ARP應(yīng)答。
以太網(wǎng)首部:
字段 長(zhǎng)度(Byte) 默認(rèn)值 備注
接收方MAC 6 廣播時(shí),為 ff-ff-ff-ff-ff-ff
發(fā)送方MAC 6
Ethertype 2 0x0806 0x0806是ARP幀的類型值
ARP包:
字段 長(zhǎng)度(Byte) 默認(rèn)值 備注
硬件類型 2 0x1 以太網(wǎng)類型值
上層協(xié)議類型 2 0x0800 上層協(xié)議為IP協(xié)議
MAC地址長(zhǎng)度 1 0x6 以太網(wǎng)MAC地址長(zhǎng)度為 6
IP地址長(zhǎng)度 1 0x4 IP地址長(zhǎng)度為 4
操作碼 2 0x1表示ARP請(qǐng)求包,0x2表示應(yīng)答包
發(fā)送方MAC 6
發(fā)送方IP 4
接收方MAC 6
接收方IP 4
填充數(shù)據(jù) 18 因?yàn)槲锢韼钚¢L(zhǎng)度為64字節(jié),前面的42字節(jié)再加上4個(gè)CRC校驗(yàn)字節(jié),還差18個(gè)字節(jié)
本機(jī)IP:192.168.0.1 (c0 a8 00 01)
本機(jī)MAC:00-50-56-c0-00-01
目標(biāo)IP:192.168.0.2 (c0 a8 00 02)
目標(biāo)MAC:00-0c-29-0b-42-7e
1、 Ping 目標(biāo)主機(jī)192.168.0.2時(shí),本機(jī)發(fā)送的ARP數(shù)據(jù)包為
00000000 : ff ff ff ff ff ff 00 50 56 c0 00 01 08 06 00 01
00000010 : 08 00 06 04 00 01 00 50 56 c0 00 01 c0 a8 00 01
00000020 : 00 00 00 00 00 00 c0 a8 00 02
以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:ff ff ff ff ff ff(全網(wǎng))
以太網(wǎng)數(shù)據(jù)包發(fā)送源:00 50 56 c0 00 01(本機(jī))
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06(ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 01(Request)
數(shù)據(jù)內(nèi)容:告訴IP為c0 a8 00 02的目標(biāo)主機(jī),本機(jī)的IP為c0 a8 00 01,MAC為
00 50 56 c0 00 01,請(qǐng)更新,并將你的MAC發(fā)送給我。
目標(biāo)主機(jī)回應(yīng)本機(jī)的ARP數(shù)據(jù)包為
00000000 : 00 50 56 c0 00 01 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 02 00 0c 29 0b 42 7e c0 a8 00 02
00000020 : 00 50 56 c0 00 01 c0 a8 00 01
以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:00 50 56 c0 00 01
以太網(wǎng)數(shù)據(jù)包發(fā)送源: 00 0c 29 0b 42 7e
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06(ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 02(Reply)
數(shù)據(jù)內(nèi)容:告訴MAC為 00 50 56 c0 00 01 的主機(jī),你的IP和MAC我已經(jīng)收到,我的MAC和IP為00 0c 29 0b 42 7e 和c0 a8 00 02,請(qǐng)保存更新。
2、 修改系統(tǒng)IP時(shí)(未發(fā)生IP沖突的情況下),發(fā)送的ARP數(shù)據(jù)包為
00000000 : ff ff ff ff ff ff 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 01 00 0c 29 0b 42 7e c0 a8 00 03
00000020 : 00 00 00 00 00 00 c0 a8 00 03
以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:ff ff ff ff ff ff(全網(wǎng))
以太網(wǎng)數(shù)據(jù)包發(fā)送源:00 0c 29 0b 42 7e(本機(jī))
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06(ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 01(Request)
數(shù)據(jù)內(nèi)容:告訴IP為c0 a8 00 03的主機(jī),本機(jī)的MAC和IP為00 0c 29 0b 42 7e 和c0 a8 00 03。由于網(wǎng)絡(luò)內(nèi)沒有c0 a8 00 03 主機(jī),所以此數(shù)據(jù)包將不會(huì)有回應(yīng),此時(shí),局域網(wǎng)交換機(jī)將會(huì)刷新緩存,使你的IP和MAC對(duì)應(yīng)起來。
3、 修改系統(tǒng)IP時(shí)(發(fā)生IP沖突的情況下),發(fā)送的ARP數(shù)據(jù)包為
00000000 : ff ff ff ff ff ff 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 01 00 0c 29 0b 42 7e c0 a8 00 01
00000020 : 00 00 00 00 00 00 c0 a8 00 01
以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:ff ff ff ff ff ff(全網(wǎng))
以太網(wǎng)數(shù)據(jù)包發(fā)送源:00 0c 29 0b 42 7e
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06(ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 01(Request)
數(shù)據(jù)內(nèi)容:告訴IP為c0 a8 00 01的主機(jī),本機(jī)的MAC和IP為00 0c 29 0b 42 7e 和c0 a8 00 01。由于網(wǎng)絡(luò)內(nèi)已經(jīng)有c0 a8 00 01 主機(jī),將會(huì)發(fā)生沖突。這時(shí)將收到ARP Reply數(shù)據(jù)包。
接收的ARP數(shù)據(jù)包為
00000000 : 00 0c 29 0b 42 7e 00 50 56 c0 00 01 08 06 00 01
00000010 : 08 00 06 04 00 02 00 50 56 c0 00 01 c0 a8 00 01
00000020 : 00 0c 29 0b 42 7e c0 a8 00 01
以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:00 0c 29 0b 42 7e
以太網(wǎng)數(shù)據(jù)包發(fā)送源:00 50 56 c0 00 01
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06(ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 02(Reply)
數(shù)據(jù)內(nèi)容:告訴MAC為00 0c 29 0b 42 7e的主機(jī),本機(jī)的MAC和IP為00 50 56 c0 00 01和 c0 a8 00 01。這時(shí)MAC 為42 7e c0 a8 00 01的主機(jī)收到這個(gè)包后,并知道他的IP與其它主機(jī)沖突了。
4、 偽造ARP數(shù)據(jù)包
向目標(biāo)MAC發(fā)送偽造的ARP Reply,告知一個(gè)假的信息,達(dá)到欺騙的目的。
本機(jī)真實(shí)IP為:192.168.0.1(c0 a8 00 01)
本機(jī)真實(shí)MAC為:00-50-56-c0-00-01
偽造的MAC為:11-11-11-11-11-11
欺騙目標(biāo):
IP為:192.168.0.2(c0 a8 00 02)
MAC:00-0c-29-0b-42-7e
偽造的數(shù)據(jù)包如下:
Packet length: 60
00000000 : 00 0c 29 0b 42 7e 11 11 11 11 11 11 08 06 00 01
00000010 : 08 00 06 04 00 02 11 11 11 11 11 11 c0 a8 00 01
00000020 : 00 0c 29 0b 42 7e c0 a8 00 02(剩余部分用0填補(bǔ))
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。