Цитата(gam71 @ Dec 7 2006, 12:06)

может есть инфа у кого....как правильно сформировать APR-ответ и запрос?
Я делал ARP протокол следующим образом:
Адрес: Размер - Назначение (примечание) [обычное содержимое]
00: 6байт - PktDest (MAC) [FF FF FF FF FF FF]=при запросе
06: 6байт - PKtSrc (MAC)
0C: 1байт - PktTypeIP [08]
0D: 1байт - PktTypeARP [06]
0E: 2байта - HwType (Ethernet) [00 01]
10: 2байта - PrType (IPv4) [08 00]
12: 1байт - LHA (длинна MAC адреса) [06]
13: 1байт - LPA (длинна IP адреса) [04]
14: 2байта - OpCode [00 01]=запрос, [00 02]=ответ
16: 6байт - SHA (MAC от кого)
1C: 4байта - SPA (IP от кого)
20: 6байт - THA (MAC кому) [00 00 00 00 00 00]=при запросе
26: 4байта - TPA (IP кому)
При приёме данного пакета, если он бродакс и TPA совпадает со своим IP делаем:
1. копируем в PktDest из PktSrc, в PktSrc заносим свой MAC
2. в OpCode заносим [00 02]
3. копируем в THA из SHA, в SHA заносим свой MAC
4. меняем местами SPA и TPA
5. отсылаем этот пакет (размером 2Ah)
Собственно это всё что нужно сделать на ARP запрос.
ICMP (Ping) немногим сложнее, нужно принять IP пакет проверить контрольные суммы и т.д.,
в RFC это достаточно подробно описано.