hallo
Ik wil eens wat met de enc28j60 gaan doen.Maar nu moet je zelf alles programmeren.Dus ook een DHCP client.Nu kan ik hier een bibliotheek voor gebruiken van microchip.Maar dat vind ik niet zo leuk om te doen.Graag wil ik dit zelf schijven. Als ik over dit onderwerp google kom niet echt veel dingen tegen waar echt elke byte wordt uitgelecht.
Heeft er iemand een goede link?
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik zou ook even gewoon een pakkejte met "tcpdump" (o.i.d.) van de draad af plukken en kijken wat daar instaat. Een DHCP request is eigenlijk /dat/ pakketje, en verder niks. Dat is al makkelijk.
Als je de RFC niet wilt lezen, kun je denk ik het beste aan de gang gaan met een intelligente sniffer als Ethereal of Wireshark.
Ik heb even een screenshot van een DHCP request/response in Ethereal voor je geupload. De aardigheid is dat je door de structuur van het bericht heen kunt klikken als een boom (middelste stuk van het scherm), en dat Ethereal dan aangeeft in welke bytes van het ruwe bericht dat is opgeslagen (onderste stuk van het scherm).
Groeten,
Frans
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Ik heb in het verleden ook zoiets gedaan (eerste jaar HTS nota bene). Ik heb toen heel veel gehad aan het boek "TCP/IP illustrated vol. 3".
Ethereal is onmisbaar, maar je moet je niet blind staren op de packets die je daarmee ziet. De verschillende protocollen hebben wat optionele onderdelen, die door sommige TCP/IP stacks al dan niet gebruikt worden. Ook de mogelijke waarden voor bepaalde opties, of geldige combinaties van opties kun je daar niet uit halen.
@frans77
http://www.ethereal.com/ deze webiste doet het bij mij niet.
Ik heb je screenshot beken.Maar ik kan niet echt vinden waar nu het helle packet staat.Zach onder op wel wat staan maar dat is wel lastig om daar het protocol uit op temoetne maken.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
In Ethereal kun je in het middelste venster ergens op klikken, en de bijbehorende bytes worden dan in het onderste venster geselecteerd, dus je kunt het wel redelijk terug vinden.
Een goed boek, of een stukje uitleg online heb je toch echt wel nodig. De DHCP pagina op wikipedia is redelijk goed.
(Mods: geen idee of het mag volgens de richtlijnen, maar toch)
Liever dus niet, verwijderd.
[Bericht gewijzigd door Henry S. op (12%)]
http://www.ethereal.com/ deze webiste doet het bij mij niet.
Sorry, ik heb een verouderde link meegegeven. Ethereal is tegenwoordig Wireshark, en de ethereal site is opgeheven (staat nog wel in de google cache). Je moet dus het Wireshark linkje uit mijn eerste posting volgen.
Ik heb je screenshot beken.Maar ik kan niet echt vinden waar nu het helle packet staat.Zach onder op wel wat staan maar dat is wel lastig om daar het protocol uit op temoetne maken.
Tjsa, veel gemakkelijker dan dit wordt het denk ik toch niet. Sparky heeft natuurlijk gelijk dat je er echt wat documentatie bij moet raadplegen. DHCP lijkt functioneel overigens simpel (client schreeuwt rond dat 'ie een IP wil hebben, server geeft er eentje), maar als je er precies naar gaat kijken zit er behoorlijk wat complexiteit in. Als je dat zelf wilt implementeren, zul je je er toch echt in moeten verdiepen. Ik denk dat het raadzaam is om ook eens in de sourcecode van een open-source dhcp client te kijken.
Groeten,
Frans
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik denk dat het wel meevalt in de basis: Het "ik wil een IP" pakketje kan je met wireshark vangen, en knippen-plakken naar de code voor de PIC of AVR (of wat je dan ook wilt). Het antwoord pakketje, moet je even controleren, of het inderdaad een DHCP reply is (of niet, beetje kort door de bocht, maar ja.... ), en dan op de juiste offset de IP gegevens er uit halen.
Op deze manier heet het eerder "bootp" in plaats van DHCP: DHCP biedt een aantal uitbreidingen zodat je ook netmask, gateway, nameserver, bootserver, root-filesystem en dergelijke kan doorgeven. Dat heb je allemaal niet nodig.
DHCP is dus een uitbreiding op BOOTP, in weze is het 't zelfde.
http://www.circuitsonline.net/forum/faq#illegaal
En een waarschuwing wegens posten tegen beter weten in.
[Bericht gewijzigd door Henry S. op (8%)]