LINUX協議棧詳解 ARP協議

2021-05-27 01:11:57 字數 1200 閱讀 1424

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位的乙太網位址 硬體位址 來確定介面的,而不...