電子商務(wù)網(wǎng)站建設(shè)與管理 教案2345網(wǎng)址導(dǎo)航官方網(wǎng)站
本文簡單介紹了arp協(xié)議,用一個實例查看收到的ARP請求,并對該請求發(fā)出ARP回應(yīng),實例有完整的源代碼,使用C語言在Linux下實現(xiàn),代碼中有詳細的注釋。
1. ARP協(xié)議
-
ARP(Address Resolution Protocol),地址解析協(xié)議;在局域網(wǎng)上通過IP地址獲取物理地址MAC的協(xié)議,該協(xié)議工作在數(shù)據(jù)鏈路層;
-
為什么需要ARP協(xié)議
- 以TCP/IP協(xié)議為例,應(yīng)用程序在應(yīng)用層發(fā)出信息后,在傳輸層(TCP層)加上一個TCP報頭,TCP報頭中需要填寫源端口和目的端口,端口號標識著一臺機器上的某個確定的應(yīng)用程序,在網(wǎng)絡(luò)層(IP層)加上一個IP報頭,IP報頭需要填寫源IP地址和目的IP地址,IP地址標識著互聯(lián)網(wǎng)上一臺唯一的機器,所以,TCP報頭和IP報頭可以確定下來互聯(lián)網(wǎng)上的某臺機器上的某個應(yīng)用程序;
- 在數(shù)據(jù)鏈路層需要給數(shù)據(jù)包加上以太網(wǎng)報頭,在以太網(wǎng)報頭中,需要填的是機器的物理地址(MAC地址),源地址和目的地址均要填MAC地址;
- 我們可以使用ioctl獲取本機的MAC地址,但是卻無法獲取目的地址的MAC地址,這時就需要使用ARP協(xié)議了;
-
ARP的工作原理
- 在以太網(wǎng)絡(luò)中,每臺機器均有一個ARP cache,里面存著一些IP地址和MAC地址的對應(yīng)關(guān)系,在ubuntu下,內(nèi)核把ARP cache映射為文件:/proc/net/arp
- 在數(shù)據(jù)鏈路層需要填MAC地址時,首先查詢ARP ca