www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR-Webserver von U. Radig um NTP-Server erweitern


Autor: Kricke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

fuer ein Projekt wuerde ich gerne einen eigenstaendigen Webserver bauen, 
der ueber NTP andere Computer im Netz synchronisieren kann. Die 
entsprechenden DCF77-Funktionen habe ich, nur fehlt mir noch die 
NTP-Server-Implementation. Momentan arbeite ich mit dem AVR-NET-Board 
von Pollin, auf dem U. Radigs Webserver einandfrei laeuft. Kann jemand 
das abschaetzen, wieviel Aufwand das waere, neben der bereits 
bestehenden Client-Funktionalitaet noch die fuer den Server zu 
implementieren?

Gruss

Kricke

Autor: Nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NTP ist serverseitig eigentlich sehr trivial, da muss du nur ein paar 
Felder ausfüllen.

Autor: Kricke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du mit Felder ausfuellen?

Ich fange gerade erst an, mich in die Materie einzulesen und den Stack 
von U. Radig zu verstehen, daher bin ich fuer etwaige Hinweise sehr 
dankbar.

Autor: laias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowas habe ich später auch vor für meinen eigenen kleinen Server...

Ich würde es so angehen:
Erstmal Dokumentationen vom NTP-Protokoll anschauen und etwas 
studieren(http://www.ntp.org/);
Danach die einzelnen Befehle von NTP selbst schreiben.

Als Tipp:
Würde mir mal den C Sourcecode von OpenSource NTP Servern anschauen. 
Hatte mal welche gefunden, finde aber jetzt keine mehr.

Hoffe ich konnte etwas helfen.

mfg

Laias

P.S.: Werd in zirka einem viertel bis halbem Jahr versuchen selber einen 
NTP Server zu schreiben. Kann mich ja dann noch mal melden.

Autor: Nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
openntp.org ist momentan wohl einer der meist genutzten ntpds, der ist 
vom sourcecode her auch noch verständlich.

Die RFC (zu SNTP, was aber auch ok ist) findest du hier: 
http://tools.ietf.org/html/rfc4330

Zum "Felder ausfüllen":

Du kriegst vom Client ein Paket mit definierter Grösse (minimum 48 
byte)in dem er selbst ein paar Sachen eingetragen hat und du noch ein 
paar Sachen vervollständigen musst. Die ersten 16 byte sind dabei 
effektiv statisch. Aus der RFC kannst du entnehmen was da rein 
muss/sollte. Die nächsten 8 byte kopierst du aus dem Paket was vom 
Client kommt. Danach trägst du die zeit beim Empfang des Client Pakets 
ein und dahinter die Zeit beim senden deiner Antwort.

Was mir grad noch einfällt. Ich kenne zwar den Webserver von U.R. nicht 
wirklich, aber u.U. musst du noch UDP implementieren. Das ist aber für 
sich gesehen auch kein grosser Aufwand und Teile kann man sich da sicher 
aus dem TCP-Zeug zusammensuchen.

Autor: Oliver P. (atmega32user)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Kricke,


im Anhang findest Du Includes fürs NTP.
Code ist von (C) 2006 Ingo Busker http://www.mikrocontroller.com
Viel Spass beim anpassen!


Grüße OLLI

Autor: Jacob R. (jaykopf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es nicht unbedingt der Webserver von Radig sein muss und auch ein 
Linux zum compieleren, dann könntest Du Ethersex [1] nehmen, da ist der 
NTP-Server schon dabei. Ich weiß jetzt nicht genau ob da auch nen Modul 
für DCF77 dabei ist, aber ich meine da mal was gesehen zu haben.

[1] http://www.ethersex.de

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.