現状の理解はこんな感じです。あってますでしょうか?
case ARP_REQ: if(arp->destip == get_ip(0)){ /* ne0 only by kaneko */ ret = send_arp_packet(fd, ARP_ANS, arp->srcip); } break;
ret = get_mac_address(ip, buff); printf("get_mac_address() (%d)... OK\n", ret); if(ret == -1) return NOFILE;
14:24:00.535993 arp who-has 192.168.100.2 tell 192.168.100.44 14:24:00.536206 arp reply 192.168.100.2 is-at 0:90:cc:1:5:9c 14:24:10.887040 192.168.100.44.2 > 219.96.212.110.echo: S 3611230207:3611230207(0) win 1460 <eol> (DF) 14:24:10.888202 219.96.212.110.echo > 192.168.100.44.2: S 3725341800:3725341800(0) ack 3611230208 win 65535 <mss 1460> 14:24:13.882549 219.96.212.110.echo > 192.168.100.44.2: S 3725341800:3725341800(0) ack 3611230208 win 65535 <mss 1460> 14:24:15.879554 arp who-has 192.168.100.44 tell 192.168.100.2 14:24:15.886926 arp reply 192.168.100.44 (0:2:cb:1:74:db) is-at 0:2:cb:1:74:db (0:0:0:0:0:0) 14:24:16.879710 arp who-has 192.168.100.44 tell 192.168.100.2 14:24:16.887053 arp reply 192.168.100.44 (0:2:cb:1:74:db) is-at 0:2:cb:1:74:db (0:0:0:0:0:0) 14:24:17.879904 arp who-has 192.168.100.44 tell 192.168.100.2 14:24:17.887416 arp reply 192.168.100.44 (0:2:cb:1:74:db) is-at 0:2:cb:1:74:db (0:0:0:0:0:0) 14:24:18.880021 arp who-has 192.168.100.44 tell 192.168.100.2 14:24:18.887786 arp reply 192.168.100.44 (0:2:cb:1:74:db) is-at 0:2:cb:1:74:db (0:0:0:0:0:0) 14:24:19.880178 arp who-has 192.168.100.44 tell 192.168.100.2 14:24:19.882908 219.96.212.110.echo > 192.168.100.44.2: S 3725341800:3725341800(0) ack 3611230208 win 65535 <mss 1460> 14:24:20.880332 arp who-has 192.168.100.44 tell 192.168.100.2 14:24:31.883642 arp who-has 192.168.100.44 tell 192.168.100.2 14:24:32.882208 arp who-has 192.168.100.44 tell 192.168.100.2 14:24:33.882365 arp who-has 192.168.100.44 tell 192.168.100.2
MES >Micro Embeded System 1.0b4 2003/12/9 MES >ifconfig ne0 192.168.100.44 net0 IP Address:192.168.100.44. Netmask:255.255.255.0. MAC:00:02:CB:01:74:DB MES >gateway 192.168.100.2 MES >discard 219.96.212.110 get_mac_address() (0)... OK tcp_socket() (32768)... OK tcp_connect (0)... OK type QUIT then quit tcp_free (0) ... OK MES >
14:37:33.930729 arp who-has 192.168.100.5 tell 192.168.100.44 14:37:33.930799 arp reply 192.168.100.5 is-at 0:20:e0:69:19:2c 14:37:45.042869 192.168.100.44.2 > 192.168.100.5.echo: S 2424831:2424831(0) win 1460 <eol> (DF) 14:37:45.042985 192.168.100.5.echo > 192.168.100.44.2: S 3373018346:3373018346(0) ack 2424832 win 5840 <mss 1460> (DF) 14:37:45.051844 192.168.100.44.2 > 192.168.100.5.echo: . ack 1 win 1460 (DF) 14:37:57.517342 192.168.100.44.2 > 192.168.100.5.echo: F 1:1(0) ack 1 win 1460 (DF) 14:37:57.518508 192.168.100.5.echo > 192.168.100.44.2: . ack 2 win 5840 (DF) 14:38:13.065759 192.168.100.5.echo > 192.168.100.44.2: F 1:1(0) ack 2 win 5840 (DF) 14:38:16.065381 192.168.100.5.echo > 192.168.100.44.2: F 1:1(0) ack 2 win 5840 (DF) 14:38:22.065373 192.168.100.5.echo > 192.168.100.44.2: F 1:1(0) ack 2 win 5840 (DF) 14:38:34.065372 192.168.100.5.echo > 192.168.100.44.2: F 1:1(0) ack 2 win 5840 (DF) 14:38:58.065377 192.168.100.5.echo > 192.168.100.44.2: F 1:1(0) ack 2 win 5840 (DF) 14:39:03.065373 arp who-has 192.168.100.44 tell 192.168.100.5 14:39:03.073378 arp reply 192.168.100.44 is-at 0:2:cb:1:74:db (0:0:0:0:0:0)
00:33:22.520296 arp who-has 192.168.100.135 tell 192.168.100.164 00:33:22.520470 arp reply 192.168.100.135 is-at 0:40:26:14:1c:b8 00:33:22.520887 192.168.100.164.1626 > 192.168.100.135.7: S 1546041656:1546041656(0) win 64240 <mss1460,nop,nop,sackOK> (DF) 00:33:22.521305 192.168.100.135.7 > 192.168.100.164.1626: S 1106422315:1106422315(0) ack 1546041657 win 57344 <mss 1460> 00:33:22.521712 192.168.100.164.1626 > 192.168.100.135.7: . ack 1 win 64240 (DF) 00:33:29.410782 192.168.100.164.1626 > 192.168.100.135.7: F 1:1(0) ack 1 win 64240 (DF) 00:33:29.411128 192.168.100.135.7 > 192.168.100.164.1626: . ack 2 win 58400 (DF) 00:33:29.417723 192.168.100.135.7 > 192.168.100.164.1626: F 1:1(0) ack 2 win 58400 (DF) 00:33:29.418552 192.168.100.164.1626 > 192.168.100.135.7: . ack 2 win 64240 (DF)