HSG |
|
Andrew S. Tanenbaum, Computernetzwerke, 3.Auflage, S.24:
Grob gesagt, gibt es zwei Arten von Übertragungstechniken:
Broadcast-Netze haben einen einzigen Übertragungskanal, der von allen am Netz angeschlossenen Maschinen gemeinsam genutzt wird. Kurze Nachrichten, in gewissen Zusammenhängen auch Pakete genannt, werden von einer Maschine versendet und von allen anderen empfangen. Ein im Paket befindliches Adreßfeld gibt dem Empfänger an. Beim Empfang eines Pakets prüft eine Maschine das Adreßfeld. Ist das Paket für sie bestimmt, verarbeitet sie es. Ist es für eine andere Maschine bestimmt, wird es einfach ignoriert.
Die Handshake-Leitungen der seriellen Schnittstelle benutzen eine positive Logik. Dabei bedeutet ein Spannungswert von 3V-15V (gegen GND) eine logische '1', ein Wert zwischen -15V und -3V eine logische '0'. Der gemeinsame 'Bus' wird dadurch realisiert, dass die Bus-Leitung im Ruhezustand über Widerstände (getestet mit 100kOhm) von fest eingestellten Ausgängen DTR auf logisch '0' gezogen wird. Eine '1' auf dem Bus wird erreicht, wenn mindestens einmal über RTS eine logische '1' eingespeist wird. Dabei verhindern Dioden (z.B. 1N4001 oder 4148) mögliche Kurzschlüsse zwischen verschiedenen RTS-Ausgängen.
Das Bild links zeigt einen minimalen 'COM1-COM2-Bus' mit dem man an einem einzigen Rechner schon 'Netz' spielen kann.
Rechts ist ist ein Bus-Stecker mit alten twisted-pair-Kabeln zu sehen.
Unten links sieht man einen Bus für 4 Rechner, bei dem die 'Elektronik' im Steckergehäuse verschwindet.
Verbindet mit dem Bus-Kabel vier Rechner, startet das Programm 'Oszilloskop' auf allen Rechnern und erlebt, wie jeder schreiben kann, und alle mithören. Was passiert, wenn zwei gleichzeitig schreiben? Wie könnte man identifizieren, wer etwas gesendet hat?
Erweitere das Programm 'Oszilloskop' zu einem 'Mini-Terminal', das Bitfolgen mit vorgegebener Bitzeit senden kann. Idee: Vielleicht kann man Threads und sleep vermeiden, wenn man das bestehende Polling als Timer mitbenutzt.
Benutzt das Mini-Terminal aus Aufgabe 2, um Nachrichten (einzelne Buchstaben) von Rechner x zu Rechner y zu senden. Wie könnte man mit Hilfe von CRC4 Fehler in der Übertragung erkennen?
Verbinde mit dem Bus-Kabel vier Rechner, verwende das Programm 'Terminal4', teile den Rechnern z.B. die Adressen 1, 2, 3 und 4 zu und sende Nachrichten zwischen den Rechnern. Ergründe in systematischen Versuchen die einzelnen Bedienelemente des Programms. Beachte, dass sich der Empfänger manchmal nach Ändern der Baudrate erst 'auf die neue Geschwindigkeit einstellen' muss.
"Ich sei, gewährt mir die Bitte, in eurem Bunde der Dritte!" - aus 'Die Bürgschaft', Friedrich Schiller