Zeichenketten übertragen
Bisher haben wir nur Bitfolgen übertragen, die jeweils 8 Bit (d.h. 1 Byte umfassen). Nun sollen Texte übertragen werden. Dazu muss der Sender jedes Zeichen des Textes zunächst in eine Bitfolge umwandeln. Diesen Vorgang nennt man Codieren. Es gibt mehrere Verfahren, die man zum Codieren verwenden könnte. Wir legen fest, dass wir den ASCII-Code verwenden:
Das Codieren und Decodieren von Zeichen gehört eigentlich nicht zu den Aufgaben der Bitübertragungsschicht oder der Sicherungsschicht. Stattdessen ist es eine Aufgabe der Anwendungsschicht.
Schritt | Bsp. für das Zeichen '!' |
---|---|
In der ASCII-Tabelle (siehe unten) suchen wir den ASCII-Code des Zeichens. | Das Zeichen '!' besitzt den ASCII-Code 33. |
Den ASCII-Code wandeln wir um in eine Binärzahl | 10 0001 |
Wir füllen die Binärzahl von links mit Nullen auf, so dass sie 8 Bit lang ist. | 0010 0001 |
Diese Bitfolge übergeben wir an die Funktion sendeByte. Diese Funktion ergänzt das Startbit und das Stoppbit | 1 0010 0001 0 |
Der Empfänger macht diese Schritt rückgängig.
ASCII-Tabelle (Ausschnitt)
Zeichen | ASCII-Code |
---|---|
! | 33 |
" | 34 |
# | 35 |
$ | 36 |
... | ... |
< | 60 |
= | 61 |
> | 62 |
? | 63 |
@ | 64 |
A | 65 |
B | 66 |
C | 67 |
D | 68 |
E | 69 |
F | 70 |
G | 71 |
H | 72 |
Aufgabe 1
Das Zeichen 'A' soll gesendet werden. Wandele es in eine Bitfolge um.
Aufgabe 2
Die Bitfolge 0011 1111 wurde empfangen. Ermittle das gesendete Zeichen
Aufgabe 3: Codieren und Decodieren in Python
Betrachte die folgenden Python-Dialoge. Beschreibe für jeden Befehl, welche Aufgabe der Befehl hat.
>>> zeichen = 'H'
>>> ord(zeichen)
72
>>> bin(72)
'0b1001000'
>>> bin(72)[2:]
'1001000'
>>> bin(72)[2:].zfill(8)
'01001000'
>>> int('01001000', 2)
72
>>> chr(72)
'H'
Aufgabe 4
Schreibe ein Python-Programm (oder eine Funktion), das ein Zeichen codiert und anschließend über die Netzwerkischnittstelle sendet.
Teste das Programm, indem du zwei Rechner mit Hilfe der Calliope verbindest.
Orientiere dich dabei an den Abbildungen auf der folgenden Abbildung.
Starte auf auf dem Rechner, der das Zeichen empfangen soll, das Programm transceiver.py.
Starte dein Programm auf dem anderen Rechner.
