next up previous contents index
Next: Konfigurationsdatei von Yawgmoth Up: Implementierung Previous: Diverses - path.h, output.h

Directory Service, yawgmoth

  

  ist die Implementierung des Directoryservers von Mcntp. Ein Host, der News via Mcntp versenden möchte, muß genau einen   Prozeß betreiben.

Nach dem Start von   wird eine Konfigurationsdatei eingelesen, in der einige Parameter von   definiert sind, wie z.B. die Reichweite der Ankündigungspakete oder welche Gruppen welche TTL  erhalten. Das genaue Format dieser Datei ist weiter unten im Abschnitt 4.3.1 beschrieben.




[IMAGE ]



 Abbildung 22: Hauptroutine von Yawgmoth




Als nächstes wird ein TCP-Port  via Bibliotheksfunktion _tcp_serv()  geöffnet, der als Anlaufstelle für die Verbindungen von   dient. Als Nummer des TCP-Ports   wurde von der IANA  (siehe 2.6) die Nummer 5418 mit dem Namen MCNTP offiziell zugewiesen.

Zusätzlich wird ein UDP-Port  geöffnet, welcher dazu dient, die Ankündigungspakete von anderen Directoryservern zu empfangen. Diese Informationen werden momentan, im Gegensatz zu Abbildung 21 im Abschnitt 3.4.2 auf Seite [*], noch nicht von   ausgewertet (siehe auch Abschnitt 7.1 auf Seite [*]). Für den Betrieb auf einem zentralen Newsserver innerhalb der Grenzen eines Providers ist dies aber nicht weiter störend.

In der Hauptschleife wird geprüft, ob sich Aktivitäten auf dem TCP-Port  abspielen (Verbindungswunsch oder Verbindungsabbau) und diese dann bearbeitet.

Für Aktivitäten auf dem Port  gibt es drei Möglichkeiten, wie sie in Abbildung 27 auf Seite [*] dargestellt sind. Wenn ein neuer Client eine Verbindung anfordert, wird diese geöffnet und in die Liste der offenen Verbindungen eingetragen.

Wenn der Client die Verbindung beendet, sei es, daß er sich ordentlich abmeldet (siehe auch Abschnitt 4.3.2) oder daß es zum Verbindungsabbruch kommt, wird die Verbindung wieder aus der Liste entfernt.

Ansonsten wird in der Liste der offenen Verbindungen geschaut, ob auf eine dieser Verbindungen reagiert werden muß. Dies kann zum einen der beschriebenen Verbindungsabbau sein, zum anderen aber auch eine Anfrage nach einer Multicastgruppe. Diese (neue) Gruppe wird ermittelt (mehr hierzu im nächsten Abschnitt), dem Client mitgeteilt und in der Liste vermerkt. Aus dieser Liste werden dann auch die Ankündingungspakete generiert.




[IMAGE ]



 Abbildung 23: Aktivitäten auf dem TCP-Port bearbeiten




Wenn keine Aktivitäten auf dem Port  zu verzeichnen sind, wird geprüft, ob die Wartezeit zwischen dem Versand der Ankündigungspakete abgelaufen ist und im Bedarfsfall die Liste der Gruppen verteilt. Die Wartezeit beträgt ca. eine Minute, um den Datenverkehr gering zu halten. Es könnte auch nach jeder Änderung in der Liste der Verbindungen ein Ankündigungspaket generiert werden, aber dies würde in der Praxis teilweise eine große Anzahl von Ankündigungspaketen in kurzer Zeit generieren[*].



 
next up previous contents index
Next: Konfigurationsdatei von Yawgmoth Up: Implementierung Previous: Diverses - path.h, output.h
Heiko W.Rupp
12/1/1997