Доброго всем времени суток!
В данный момент я занимаюсь написанием простого сетевого стека для микроконтроллера LPC1768 (ARM от NXP) в связке с ENC424J600. Поднял UDP и решил добавить поддержку DHCP. Прочитал всевозможные примеры и документы, начал формировать DISCOVER пакет, вроде бы все сделал по написанному, но в ответ тишина. По идее, все уходит в сеть, потому что мониторю это с компьютера с установленным Wireshark, он пишет, что пакет пришел, замечаний по формату не делает, проверил содержимое - все вроде бы верно (см. приложение)
Уже перепробовал все возможное, ставил какие-то левые DHCP-сервера себе на компьютер - они тоже не отвечают. Где может быть ошибка? Что-то упустил все-таки в пакете и Wireshark меня обманывает?
Очень жду ответа, голова уже пухнет от этого, проблема совершенно мелкая, но движения вперед нет уже несколько дней.
IP-уровень работает, UDP тоже работает, по крайней мере контроллер пингуется и отвечает на UDP-запросы.
Вот отсылаемый устройством пакет DISCOVER, Wireshark на него никак не ругается:
Код
DHCP Discover - Transaction ID 0x0
Frame 120018 (291 bytes on wire, 291 bytes captured)
Ethernet II, Src: Microchi_10:4e:bd (00:04:a3:10:4e:bd), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Destination: Broadcast (ff:ff:ff:ff:ff:ff)
Source: Microchi_10:4e:bd (00:04:a3:10:4e:bd)
Type: IP (0x0800)
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 277
Identification: 0x0000 (0)
Flags: 0x00
Fragment offset: 0
Time to live: 128
Protocol: UDP (0x11)
Header checksum: 0x39d9 [correct]
Source: 0.0.0.0 (0.0.0.0)
Destination: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Source port: bootpc (68)
Destination port: bootps (67)
Length: 257
Checksum: 0xfd65 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Bootstrap Protocol
Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x00000000
Seconds elapsed: 0
Bootp flags: 0x8000 (Broadcast)
1... .... .... .... = Broadcast flag: Broadcast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: Microchi_10:4e:bd (00:04:a3:10:4e:bd)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: (OK)
Option: (t=53,l=1) DHCP Message Type = DHCP Discover
Option: (53) DHCP Message Type
Length: 1
Value: 01
Option: (t=55,l=3) Parameter Request List
Option: (55) Parameter Request List
Length: 3
Value: 010306
1 = Subnet Mask
3 = Router
6 = Domain Name Server
End Option
и в бинарном виде:
Код
0000 ff ff ff ff ff ff 00 04 a3 10 4e bd 08 00 45 00 ..........N...E.
0010 01 15 00 00 00 00 80 11 39 d9 00 00 00 00 ff ff ........9.......
0020 ff ff 00 44 00 43 01 01 fd 65 01 01 06 00 00 00 ...D.C...e......
0030 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ................
0040 00 00 00 00 00 00 00 04 a3 10 4e bd 00 00 00 00 ..........N.....
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0110 00 00 00 00 00 00 63 82 53 63 35 01 01 37 03 01 ......c.Sc5..7..
0120 03 06 ff
Заранее спасибо!