Netzwerkprozessoren und CRC-Zeichen



Ähnliche Dokumente
Netzwerkprozessoren und CRC-Zeichen

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011

7 Rechnen mit Polynomen

Codierungsverfahren SS Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur

1 Mathematische Grundlagen

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Algorithmische Kryptographie

Einführung in. Logische Schaltungen

Empfänger. Sender. Fehlererkennung und ggf. Fehlerkorrektur durch redundante Informationen. Längssicherung durch Paritätsbildung (Blockweise)

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Virtual Private Network. David Greber und Michael Wäger

Die Subnetzmaske/Netzwerkmaske

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

Einführung in IP, ARP, Routing. Wap WS02/03 Ploner, Zaunbauer

Anleitung zur Nutzung des SharePort Utility

Grundlagen der Rechnernetze. Internetworking

Übung 6. Tutorübung zu Grundlagen: Rechnernetze und Verteilte Systeme (Gruppen MI-T7 / DO-T5 SS 2015) Michael Schwarz

ICMP Internet Control Message Protocol. Michael Ziegler

Primzahlen und RSA-Verschlüsselung

Voice over IP (VoIP) PING e.v. Weiterbildung Blitzvortrag. Dennis Heitmann

Vorlesung SS 2001: Sicherheit in offenen Netzen

Black Box erklärt. Subnetzmasken

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Von Bits, Bytes und Raid

Digitale Signaturen. Sven Tabbert

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Aufgaben zur Flächenberechnung mit der Integralrechung

Approximation durch Taylorpolynome

Mathematischer Vorbereitungskurs für Ökonomen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Grundkurs Routing im Internet mit Übungen

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Der Zwei-Quadrate-Satz von Fermat

DMR Technische Grundlagen

Theoretische Grundlagen der Informatik WS 09/10

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Installationsanleitung Webserver - Datenkommunikation

11. Das RSA Verfahren und andere Verfahren

WLAN Konfiguration. Michael Bukreus Seite 1

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Anbindung des eibport an das Internet

Informationsblatt Induktionsbeweis

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Grundlagen der Technischen Informatik. 2. Übung

Grundbegriffe der Informatik

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Kapitel 3. Codierung von Text (ASCII-Code, Unicode)

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

How-to: VPN mit PPTP und dem Windows VPN-Client. Securepoint Security System Version 2007nx

Numerische Verfahren und Grundlagen der Analysis

Zyklische Codes Rechnernetze Übung SS2010

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Peer-to-Peer- Netzwerke

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Authentikation und digitale Signatur

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Die reellen Lösungen der kubischen Gleichung

Internetanwendungstechnik (Übung)

Anbindung LMS an Siemens S7. Information

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Musterlösungen zur Linearen Algebra II Blatt 5

Binärdarstellung von Fliesskommazahlen

Konzepte der Informatik

How-to: VPN mit L2TP und dem Windows VPN-Client. Securepoint Security System Version 2007nx

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Einführung in die Kodierungstheorie

Media Teil III. Begriffe, Definitionen, Übungen

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

3.3 Eigenwerte und Eigenräume, Diagonalisierung

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

Verbindungslose Netzwerk-Protokolle

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

Simulation LIF5000. Abbildung 1

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Bernd Blümel. Verschlüsselung. Prof. Dr. Blümel

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Einführung in die Algebra

Multimedia und Datenkommunikation

Netzwerktechnologie 2 Sommersemester 2004

WS 2008/09. Diskrete Strukturen

Grundlagen der Informatik (BSc) Übung Nr. 5

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

C.M.I. Control and Monitoring Interface. Zusatzanleitung: Datentransfer mit CAN over Ethernet (COE) Version 1.08

15 Optimales Kodieren

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Gussnummern-Lesesystem

Algorithmen zur Integer-Multiplikation

Manchester Codierung sowie Differenzielle Manchester Codierung

Installation eines BM-33k6/ISDN pro USB an einem Windows XP-Rechner

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Transkript:

12 Netzwerkprozessoren und CRC-Zeichen Peter Marwedel Informatik 12 TU Dortmund 2013/04/13

2.3 Befehle von Netzwerkprozessoren Viele aktive Komponenten in heutigen LAN/WANs Extrem hohe Anforderungen an die Geschwindigkeit bei begrenztem Energieaufwand Aktive Komponente = Spezialrechner (mit Netzwerkprozessor) - 2 -

Netzwerkprozessoren: Aufgaben (1) Klassifikation/Filterung von Netzwerkpaketen (z.b. Prüfung auf Übertragungsfehler [CRC], Firewall,...) Paketweiterleitung (IP forwarding) (für Routing zwischen verschiedenen Teilnetzen) Adressübersetzung zwischen globalen und lokalen/ privaten Adressbereichen (z.b. IP masquerading, virtuelle Web-Services,...) - 3 -

Netzwerkprozessoren: Aufgaben (2) Virtual Private Networks, d.h. gesicherte private Verbindungen über öffentliches, ungesichertes Netz (Kryptographie [DES] und Authentisierung [MD5] erforderlich) Intrusion Detection: Erkennung von Angriffsszenarien auf Paketebene durch Signaturvergleich Deep packet inspection: Netzwerkkomponenten analysieren Informationen jenseits des Headers Daten-Umkodierung: Formatumwandlung für Multimediadaten innerhalb des Netzwerks - 4 -

Netzwerkprozessoren: CRC (1) Problem: Datenübertragung über physikalisches Medium kann fehlerbehaftet sein Auf Ebene der Netzwerkpakete: Durch Netzwerkprotokoll detektiert / behandelt Auf Ebene der Paketinhalte (fehlerhafte Übertragung einzelner oder mehrerer Bits): Möglichkeit zur Validierung empfangener Daten erforderlich - 5 -

Netzwerkprozessoren: CRC (2) Prinzip: Redundante Codierung der Daten (d.h. es werden mehr Bits übertragen als Nutzdaten) Verbreitete Methode: Cyclic Redundancy Check (CRC) Erkennt Vielzahl von Fehlertypen (je nach Parametrisierung) Problem: Berechnung aufwendig Spezial-Hardware/-Befehle - 6 -

Bildung von CRC-Zeichen: Sicherung von Daten mit zyklischen Codes Zu übertragen: Nachricht, in k Bits kodiert. Ziel: durch Übertragung von n Bits (n > k) Schutz gegen Fehler. Annahme: systematischer Code: Code stimmt in k Bits mit der Ausgangsnachricht überein: Betrachtung der Bits a i der Nachricht als Koeffizienten eines Polynoms G, des Nachrichtenpolynoms (1) Basis 2 Basis x: G k 1 i 0 a i 2 i - 7 -

Darstellung von Nachrichten (2) G( x) k 1 i 0 a i x i Der übertragene Code ist (R(x)= Prüfbits): (3) F(x) = G(x) x n-k +R(x) Forderung: F(x) soll durch Generator-Polynom P(x) teilbar sein (4) F(x) = P(x) Q(x) = G(x) x n-k +R(x) Im Folgenden: alle Operationen modulo 2 durchführen. Wirkung von + und ist gleich. Def.: Rest r von g/p ist r = g p*q mit r < p. (5) R(x) = G(x) x n-k - P(x) Q(x) - 8 -

Beispiel zur Polynomdivision (1x 6 +0x 5 +1x 4 +0x 3 +1x 2 +0x 1 +1x 0 ) :(1x 3 +1x 2 +0x 1 +1x 0 )= 1x 6 +1x 5 +0x 4 +1x 3 1x 3 + --------------- 0x 6 +1x 5 +1x 4 +1x 3 +1x 2 1x 5 +1x 4 +0x 3 +1x 2 1x 2 + Quotient -------------- 0x 5 +0x 4 +1x 3 +0x 2 +0x 1 0x 4 +0x 3 +0x 2 +0x 1 -------------------- 0x 1 + : Nur Prinzip; bei Nachrichten wegen x n-k Nullen am rechten Rand 1x 3 +0x 2 +0x 1 +1x 0 1x 3 +1x 2 +0x 1 +1x 0 1x 0 -------------------- 1x 2 +0x 1 +0x 0 Rest 100-9 -

Reduktion der Polynomdivision auf die Koeffizienten (1 +0 +1 +0 +1 +0 +1 ):(1 +1 +0 +1 )= 1 +1 +0 +1 1 + --------------- 0 +1 +1 +1 +1 1 +1 +0 +1 1 + -------------- 0 +0 +1 +0 +0 0 +0 +0 +0 0 + -------------------- 1 +0 +0 +1 1 +1 +0 +1 1 ------------------ 1 +0 +0 Rest 100 Signifikanteste Stelle der Zwischenergebnisse stets = 0 ; Stellen des Divisors (bis auf MSB) abziehen, falls gerade betrachtetes MSB des Dividenden = 1 ist. - 10 -

Realisierung der Division mittels Schieberegister und XOR-Gattern (1 +0 +1 +0 +1 +0 +1 ):(1 +1 +0 +1 )= 1+1+0+1 1 +1 +0 +1 --------------- Schaltung: x 3 x 2 x 1 x 0 0 +1 +1 +1 +1 1 +1 +0 +1 -------------- 0 +0 +1 +0 +0 0 +0 +0 +0 -------------------- + + 1 +0 +0 +1 1 +1 +0 +1 -------------------- 1 +0 +0 Rest 100 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0-11 -

Schaltung für Polynom höheren Grades Schaltung für Polynom x 7 + x 6 + x 5 + 1-12 -

Eigenschaften von zyklischen Codes Empfänger wird im Allgemeinen eine gestörte Nachricht H(x) empfangen: H(x)=F(x)+ E(x) E(x) heißt Fehlerpolynom. Jeder Term von E(x) kennzeichnet 1 Fehlerstelle Erkennung von Fehlern: H(x) nicht durch P(x) teilbar Fehler erkannt. H(x) durch P(x) teilbar Übertragung fehlerfrei oder nicht erkennbarer Fehler (P(x) teilt E(x)). - 13 -

Einzelfehler Satz 1: Ein zyklischer Code, der durch ein Polynom mit mehr als einem Term erzeugt wird, entdeckt alle Einzelfehler. Beweis: Einzelfehler besitzen ein Fehlerpolynom der Form E(x)= x i. Hat P(x) mehr als einen Term, so teilt es x i nicht. - 14 -

Erkennung von ungeraden Fehlerzahlen Satz 2: Jedes durch 1+ x teilbare Polynom hat eine gerade Termzahl. Beweis: P durch (1+ x) teilbar i P a x ( 1 x) i i i 1 P ai ( x x ) Falls nie benachbarte a i gleich 1 sind: gerade Termzahl Falls benachbarte a i gleich 1 sind: Auslöschung einer geraden Termzahl: P... a i ( x i x ) a ( x x i 1 i 1 i 2 i 1 ) P... a i ( x i x i 2 ) (wegen mod 2) Es ergibt sich eine gerade Termzahl. Mit (1+ x) als Faktor findet man eine ungerade Anzahl von Fehlern (Parity-Prüfung). - 15 -

Burstfehler Definition: Ein Burstfehler der Länge b ist ein Fehler, bei dem die falschen Symbole den Abstand b haben. Beispiel: E (x)= x 7 + x 4 + x 3 = 0010011000. Per Definition zählt man dies als Abstand 5, d.h. man zählt die Randsymbole mit. Satz 3: Ein durch ein Polynom vom Grad n-k erzeugter zyklischer Code entdeckt alle Burstfehler der Länge b n-k, wenn P(x) x nicht als Faktor enthält. - 16 -

Erkennbarkeit von Burstfehlern Satz 3: Ein durch ein Polynom vom Grad n-k erzeugter zyklischer Code entdeckt alle Burstfehler der Länge b n-k, wenn P(x) x nicht als Faktor enthält. Beweis: Sei x i der Term mit dem kleinsten Exponenten, der in E(x) vorkommt: E(x) = x i E 1 (x) Nicht durch P(x) teilbar, wenn beide Terme nicht teilbar sind. * - 17 -

Anzahl nicht erkannter Burstfehler in Relation zu möglichen Burstfehlern Satz 4: Die Anzahl der nicht erkannten Burstfehler der Länge b > n-k ist, bezogen auf die Anzahl möglicher Burstfehler: Beispiel: P(x)=(1+x 2 +x 11 )(1+x 11 ) erkennt: 1 Burst der Länge 22 Jede ungerade Anzahl von Fehlern (Faktor (x q +1)) 99,99996 % der Bursts der Länge 23 99,99998 % der Bursts der Länge > 23 In der Praxis sind viele der vorkommenden Fehler Burstfehler. - 18 -

Sehr einfaches Beispiel P(x)=(1+x), k=2, n=3 Aufgrund o.a. Sätze: Erkennung aller Einzelfehler (Satz 1, 2 und 3) Für Burstfehler mit b =2: Wahrscheinlichkeit, Fehler nicht zu erkennen: 2- (1-1)= 2 0 =1 Für Burstfehler mit b =3: Wahrscheinlichkeit, Fehler nicht zu erkennen: höchstens 2 -(1) =1/2 Aber: ungerade Fehlerzahl, daher alle erkannt. - 19 -

Interaktive Berechnung Unter http://einstein..uni-oldenburg.de/20911.html: Simulationsprogramm Anleitung Theorie von CRC-Zeichen - 20 -

CRC-Befehl Spezialbefehl für CRC-Berechnung in Paketen Pakete werden byteweise verarbeitet Über eine Lookup-Tabelle werden alle 256 möglichen Ergebnisse der bitweisen Verarbeitung von 8 Bit erzeugt. Beschleunigung gegenüber bitweiser Verarbeitung um den Faktor 8. - 21 -

CRC: Anwendung In der Praxis werden u.a. folgende Generatorpolynome verwendet: CRC-5 (USB) x 5 +x 2 +1 CRC-7 (SD/MMC-Card) x 7 +x 3 +1 CRC-16 (HDLC, X.25) x 16 +x 12 + x 5 +1 CRC-32 (Ethernet): x 32 +x 26 +x 23 +x 22 +x 16 +x 12 +x 11 +x 10 +x 8 +x 7 +x 5 +x 4 +x 2 +x+1-22 -

Netzwerkprozessoren: Verarbeitungsprinzipien Datenübertragung in Netzwerken erfolgt paketorientiert Paketlänge (üblich: 64 Byte) bestimmt bei maximaler Auslastung der Bandbreite die verfügbare Bearbeitungszeit Beispiel: GigaBit-Ethernet max. Bandbreite 1Gb/s, d.h. 64 Byte ca. 475 ns Trotzdem: Konstante Verzögerung (im Umfang der Paketbearbeitung) entsteht pro aktiver Komponente im Verbindungspfad Performanzsteigerung durch Parallelisierung (mehrere Verarbeitungseinheiten) und nicht durch Pipelining (Verschränkung der Verarbeitungsschritte) - 23 -

Netzwerkprozessoren: Verarbeitungsprinzipien (2) Netzwerkrelevante Information kodiert in Bitfeldern z.b.: IP 4 4 8 16 Version Header- Länge Type of service Gesamtlänge Identification Flags Fragment offset Time to live Source address Destination address Option+Padding Data Protocol Header checksum Effiziente Manipulation von Daten auf Bit-Ebene notwendig - 24 -

Netzwerkprozessoren: Verarbeitungsprinzipien (3) Adressierungsarten für Bits/Bitfelder übliche Rechner/Speicher byte- oder wort-adressierbar ALU-Operationen für Bits/Bitfelder übliche Architekturen unterstützen nur Registeroperanden ggf. Halbwort- bzw. Byte-Op. möglich (manchmal gepackt) Operanden/Operationen deutlich fein-granularer als in Universal -Rechnern üblich - 25 -

Netzwerkprozessoren: Bit-Operationen Hier: Infineon TriCore Operationen, die einzelne Bits aus 2 Quellregistern (wahlfrei adressierbar) logisch verknüpfen und Ergebnis im niederwertigsten Bit des Zielregisters ablegen Da Db 0000 000 Dc X Wie viel Aufwand mit Standardprozessor? AND.T NAND.T NOR.T OR.T ORN.T XNOR.T XOR.T - 26 -

Infineon TriCore: Bit-Operationen (2) Optional: Weitere logische Verknüpfung mit unterstem Bit im Zielregister Dc Da X X Db AND.AND.T AND.ANDN.T AND.NOR.T AND.OR.T OR.AND.T OR.ANDN.T OR.NOR.T OR.OR.T Dc [31 1] Dc - 27 -

Infineon TriCore: Bit-Operationen (3) Optional: Schiebeoperation im Zielregister Dc Da X Db SH.AND.T SH.ANDN.T SH.NAND.T SH.NOR.T SH.OR.T SH.ORN.T SH.XNOR.T SH.XOR.T Dc Dc [30 0] Wozu Schiebeoperationen im Zielregister? - 28 -

Infineon TriCore: Bit-Operationen (4) Extraktion / Manipulation von Bitfeldern Da S SSS SSS Dc S Da 000 000 Dc EXTR EXTR.U 63 Da 31 Db 0 DEXTR Dc Da / Const INSERT Dc - 29 -

Netzwerkprozessoren: Bit-Operationen Bit-genaue Speicherzugriffe Analog zu Einzelbit-Manipulationen auf Registerebene Spezielle Adressdekodierungshardware erforderlich Load-Modify-Store Befehle (für Bits-/Bitfelder) Prinzip wie ALU-Befehl (für Bits/Bitfelder) mit Speicheradresse als Quell und Zieloperanden Unterschied: Operation ist atomar, d.h. kann nicht von anderem Befehl unterbrochen werden Realisierung von z.b. Semaphoren möglich - 30 -

Hardware zum Signaturvergleich Detektion von Angriffsszenarien auf Netzwerkebene mit Hilfe von Signaturen = tatsächliche (Daten-)Pakete, die an Szenarien beteiligt sind (z.b. Codesequenz eines Virus, ggf. auch bestimmte Protokoll-Header) Problem: Jedes eingehende Paket muss (im Pakettakt!) mit allen(!) Signaturen verglichen werden Hardwarelösung: Assoziativspeicher bei weitem zu aufwendig / teuer - 31 -

Beschleunigung des Signaturvergleichs Lösung: Hashing: Datenraum = Menge der Signaturen / Pakete Berechne (schnell) kurzen Schlüssel pro Signatur Schlüsselraum << Datenraum Schlüssel sind nicht eindeutig! In Array mit Indexbereich der Schlüsselmenge speichere tatsächliche Signaturen Datenpaket Hashing Signatur =? Behandlung von Hashing- Konflikten mit den üblichen Methoden - 32 -

Beschleunigung des Signaturvergleichs (2) Hash-Tabelle muss Schlüssel x Länge(Signaturen) groß sein zu viel Speicher- und Stromverbrauch! Annahme: Es gibt wenige Signaturen (d.h. auch der Schlüsselraum ist nur dünn besetzt) indirekte Adressierung Datenpaket Hashing Signatur =? - 33 -

Zusammenfassung Schnelle + sichere Verarbeitung im Netzwerk ist wichtig CRC-Codes zur Absicherung der Übertragung (und der Speicherung von Daten) Günstig bei Burstfehlern der Länge b: für - b n-k vollständige Erkennung - b > n-k Erkennung mit hoher Wahrscheinlichkeit Netzwerkprozessoren zur schnellen Verarbeitung von Netzwerkprotokollen Bit-orientierte Befehle Spezielle Unterstützung der CRC-Berechnung Hardware-Unterstützung zum Signaturvergleich - 34 -