arp協議負責從ip位址到物理mac位址的轉換。
arp格式
/*
* this structure defines an ethernet arpheader.
*/ struct arphdr ;
接收arp的函式是arp_rcv,在跑完nfproto_arp鉤子後,呼叫arp_process處理arp請求,簡單考慮,arp操作分為
/* arp protocol opcodes. */
#define arpop_request 1 /*arp request */
#define arpop_reply 2 /*arp reply */
#define arpop_rrequest 3 /*rarp request */
#define arpop_rreply 4 /*rarp reply */
#define arpop_inrequest 8 /*inarp request */
#define arpop_inreply 9 /*inarp reply */
#define arpop_nak 10 /*(atm)arp nak */
1, arpop_request
如果到本地,則更新arp表,並且傳送arpop_reply回應。
如果是到其他地方,則看是否開啟arp**,如果開啟,則傳送,並且更新arp表。
2, 如果為其他的操作,則也更新neigh_update
傳送arp的函式是arp_send,呼叫arp_create負責建立乙個新的skb包,最後呼叫arp_xmit傳送,當然傳送過程也要經過nfproto_arp鉤子,最後呼叫最通用的傳送函式:dev_queue_xmit。
ARP協議詳解
arp addressresolutionprotocol 位址解析協議用於將計算機的網路位址 ip位址32位 轉化為實體地址 mac位址 48位 rfc826 arp協議是屬於鏈路層的協議,在乙太網中的資料幀從乙個主機到達網內的另一台主機是根據48位的乙太網位址 硬體位址 來確 定介面的,而不是根...
ARP協議詳解
arp addressresolutionprotocol 位址解析協議用於將計算機的網路位址 ip位址32位 轉化為實體地址 mac位址48位 rfc826 arp協議是屬於鏈路層的協議,在乙太網中的資料幀從乙個主機到達網內的另一台主機是根據48位的乙太網位址 硬體位址 來確定介面的,而不是根據3...
ARP協議詳解
arp address resolution protocol 位址解析協議用 於將計算機的網路位址 ip位址32位 轉化為實體地址 mac位址48位 rfc826 arp協議是屬於鏈路層的協議,在乙太網中的資料幀從乙個 主機到達網內的另一台主機是根據48位的乙太網位址 硬體位址 來確定介面的,而不...