Linux-Grundlagen und Netzwerkprotokolle: Ein Leitfaden
Eingeordnet in Informatik
Geschrieben am in Deutsch mit einer Größe von 5,51 KB
Praxis 1: Einführung in Linux
Linux-Grundbefehle
- Pwd: Zeigt das aktuelle Arbeitsverzeichnis an.
- Ls: Zeigt den Inhalt des aktuellen Verzeichnisses an. Mit dem Argument "-l" werden erweiterte Informationen angezeigt.
- Chmod: Ändert die Zugriffsrechte einer Datei. Beispiel:
chmod 777 file.c
setzt die Dateiberechtigungen auf rwxrwxrwx (Besitzer, Gruppe und Andere). - Cd: Wechselt das Verzeichnis.
- Mkdir: Erstellt ein neues Verzeichnis.
- Mv: Verschiebt Dateien.
- Rm: Entfernt Verzeichnisse.
- Cat / more: Zeigt den Inhalt einer Datei auf der Standardausgabe an.
- Cp: Kopiert Dateien und Verzeichnisse.
- Ps: Listet die aktiven Prozesse des Betriebssystems auf.
- Kill: Beendet einen Prozess anhand seiner PID.
Pipes und Umleitungen
proceso1 | proceso2
: Die Ausgabe vonproceso1
wird an die Eingabe vonproceso2
weitergeleitet.proceso1 > file
: Die Ausgabe vonproceso1
wird in eine Datei umgeleitet und geschrieben.
Praxis 2: Anwendungsdienste
UUE-Kodierungsalgorithmus
- Die Bytes einer Binärdatei werden immer in Dreiergruppen verarbeitet.
- Jede Dreiergruppe von Bytes wird in vier Sechsergruppen von Bits aufgeteilt und von links nach rechts verarbeitet.
- Jeder Sechserbitgruppe werden zwei Nullen hinzugefügt, um ein neues Byte zu erstellen. Jedes neue Byte repräsentiert ein Zeichen.
- Das resultierende ASCII-Zeichen muss innerhalb des zulässigen ASCII-Bereichs liegen. Jedes Byte wird um 32 erhöht, um sicherzustellen, dass die Werte der erzeugten Zeichen zwischen 32 und 96 liegen. Wenn das Byte 0x00 ist, wird es direkt als ASCII-Zeichen 0x96 (` `) verwendet. Dies muss beim Dekodieren berücksichtigt werden.
UUE-Kodierung in E-Mails
Beim Verschlüsseln einer Binärdatei für den Versand per E-Mail erhalten Sie ein Format ähnlich dem folgenden:
begin filename.ext M W1A<G1? 7P! L: 6) C+O+G-C8 `<'5 T8VAA <@! S=&1O=70` <W1R97) R, W("9G! R M: 6YT9@!? 7V1E<F5G:7-T97)? 9G) A; 65?: 6YF; P! F<F5A9`! F8VQO<`V4<W1D E 9&EN7W5S960`7U] D871A7W-T87) T`%]? 9VUO, E] S=&% R=%]?`#$` Ende
Das Ergebnis besteht aus einem Kopfzeile (begin + Dateiname), einer Fußzeile (die einzelne Zeile "Ende") und den kodierten Informationszeilen. Das erste Zeichen jeder Zeile gibt die ursprüngliche Anzahl der Bytes in der Zeile an, die um 32 Einheiten erhöht wurde, um ASCII-Kompatibilität zu gewährleisten.
UUE-Dekodierungsalgorithmus
- Es werden Gruppen von 4 Zeichen verarbeitet.
- Von jedem Zeichen werden 32 subtrahiert.
- Von jeder Gruppe werden zwei Nullen entfernt.
- Die Bits werden zu drei Gruppen von je 8 Bits zusammengefasst, wobei jede Gruppe einem Byte der ursprünglichen Sequenz entspricht.
Praxis 3: Store & Forward Switching
Nachrichtenvermittlung
Bei der Nachrichtenvermittlung wird die Nachricht m zusammen mit einem Header H gesendet. Die gesamte Nachricht wird gleichzeitig als einzelner Datenblock übertragen.
Paketvermittlung
Bei der Paketvermittlung wird die Nachricht m in mehrere Pakete der Größe S aufgeteilt. Jedes Paket erhält einen Header H. Die Sequenz aus Header und Paket (H+p) wird als Byte-Sequenz übertragen, die kleinere Blöcke bildet.
Paketvermittlung fester Länge
(Keine weiteren Details in diesem Abschnitt)
Praxis 4: Die AWK-Programmiersprache
Implementierung von AWK
awk -F, -f file.awk captura.txt
-F,
: Gibt das Feldtrennzeichen an, in diesem Fall ein Komma.-f file.awk
: Gibt die Datei mit dem AWK-Code an, der ausgeführt werden soll.
Interne Variablen
$0
: Repräsentiert die gesamte aktuelle Zeile.$1
: Repräsentiert den Wert der ersten Spalte der aktuellen Zeile.$N
: Repräsentiert den Wert der N-ten Spalte der aktuellen Zeile.
Beispiele
Beispiel 1
($8 == "ICMP") { print "Muster Ergebnisse ICMP"; print "line number is:", NR; print "Capture-Nummer:", $1; }
Das Muster wird nur für Zeilen ausgeführt, die die Bedingung erfüllen.
Beispiel 2
/ ARP / { ... }
Muster ohne Aktion: Zeigt die Zeilen an, die dem Muster entsprechen.
{ count = count + 1; print "Wir sind auf der Linie,", count; }
Aktion ohne Muster: Wird für alle Zeilen ausgeführt.
Beispiel 3
T_Final = $ (2)
($ 8! = "ICMP") (count = count - 1)
BEGIN: Aktion, die vor der Verarbeitung jeder Zeile ausgeführt wird.
BEGIN { print "Start Beispiel 6"; counter = 8; }
END: Aktion, die nach der Verarbeitung aller Zeilen ausgeführt wird.
END { print "gefangen Anzahl Frames: NR"; print "Instant Einnahme der letzten Frame:", T_Final }
Beispiel 4
(Protokoll [$ 4] = Protokoll [$ 4] + 1;)
END:
END { for (Name_protocolo in Protokoll) { if (nombre_protocolo != "ARP") print nombre_protocolo, Protokoll[nombre_protocolo] } }