Académique Documents
Professionnel Documents
Culture Documents
(ARP)
Reading: Chapter 15
MAC
MAC address
address ofof 129.25.10.11
129.25.10.11 ??
1 Reply
Reply to:
to: 49:72:16:08:64:14
49:72:16:08:64:14 (129.25.10.72)
(129.25.10.72)
Reply:t:
Reply:t: 129.25.10.11
129.25.10.11 (49:78:21:21:23:90)
(49:78:21:21:23:90)
Requested
Requested by::
by:: 129.25.10.72
129.25.10.72 (49:72:16:08:64:14)
(49:72:16:08:64:14)
IP: 129.25.10.11
MAC: 49:78:21:21:23:90
Router R
IP: 129.1.11.72
MAC: 10:11:72:AB:02:01
Hardware
Hardware type
type (layer
(layer 2)
2) Protocol
Protocol type
type (layer
(layer 3)
3)
Address
Address length
length Address
Address length
length
Layer
Operation
Operation
Layer 22 (n)
(n) Layer
Layer 33 (m)
(m)
Source
Source address
address (layer
(layer 2):
2): nn bytes
bytes
Source
Source address
address (layer
(layer 3):
3): m
m bytes
bytes
Destiniation
Destiniation address
address (layer
(layer 2):
2): nn bytes
bytes
Destination
Destination address
address (layer
(layer 3):
3): m
m bytes
bytes
Layer-2
Layer-2 header
header Layer-2
Layer-2 payload
payload Layer-3
Layer-3 trailer
trailer
0 15 31 0 15 31
0x00
0x00 01
01 (Ethernet)
(Ethernet) 0x80
0x80 00
00 (Internet
(Internet Protocol)
Protocol) 0x00
0x00 01
01 (Ethernet)
(Ethernet) 0x80
0x80 00
00 (Internet
(Internet Protocol)
Protocol)
66 44 0x00
0x00 01
01 (ARP-Request)
(ARP-Request) 66 44 0x00
0x00 02
02 (ARP-Reply)
(ARP-Reply)
49
49 72
72 16
16 08
08 49
49 72
72 16
16 08
08
64
64 14
14 129
129 25
25 64
64 14
14 129
129 25
25
10
10 72
72 00
00 00
00 10
10 72
72 49
49 78
78
00
00 00
00 00
00 00
00 21
21 21
21 23
23 90
90
129
129 25
25 10
10 11
11 129
129 25
25 10
10 11
11
arp_tbl
arp_tbl
neigh_table
neigh_table
neigh_table
next
next
family:
family: AF_INET
AF_INET
...
...
constructor
constructor arp_constructor()
...
...
gc_timer
gc_timer neigh_periodic_timer()
...
...
0 neighbour
neighbour neighbour
neighbour
hash_buckets[ NEIGH..]]
hash_buckets[NEIGH..
neighbour
1
next
next
neigh_table
neigh_table net_device
net_device
neigh_parms
neigh_parms
dev
dev
neigh_timer_
timer
timer handler()
neigh_ops
neigh_ops
ha
ha
hh_cache
hh_cache
hh_cache
nud_state
nud_state
next
next output
output
ref_cnt
ref_cnt sk_buff
sk_buff
arp_queue
arp_queue
hh_type:
hh_type: ETH_P_IP
ETH_P_IP ...
...
hh_output
hh_output
hh_data:
hh_data:
00
00 80
80 23
23 32
32 12
12
49
49 72
72 16
16 08
08 64
64 14
14 neighbour
neighbour
NEIGH_-
49
49 78
78 21
21 21
21 23
23 90
90 HASHMASK -1
Receive
packet
receive
NUD_
NUD_ ARP-Reply
REACHABLE NUD_DELAY
NUD_DELAY
REACHABLE
Time
Receive ARP-Reply
out
NUD_
NUD_
INCOMPLETE
INCOMPLETE NUD_PROBE
NUD_PROBE
NUD_NONE
NUD_NONE
arp_constructor: max_probes
initialize an entry, Requests sent,
Send an ARP request No reply
Permanent
Eintrag
NUD_NONE NUD_
NUD_
NUD_NONE
FAILED
FAILED
NOARP-
Device
No
No
Emtru
Emtru
IPv4
IPv4 IPv4
IPv4
ip_queue_xmit
ip_finish_output2
arp.c, neighbour.c
arp.c,
arp.c, neighbour.c
neighbour.c neigh_update
arp_tbl
ARP-Reply
neigh_lookup
neigh_resolve_
output
ARP-Request
arp_rcv arp_send
dev.c
dev.c dev.c
dev.c
ETH_P_ARP
net_rx_action dev_queue_xmit