Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für...
Transcript of Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für...
Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur
Dresden, 04.03.2014
Implementierung eines universellen IPv6 Protokollstapels Kolloquium zum Masterpraktikum
Patrick Lehmann [email protected]
Implementierung eines universellen IPv6 Protokollstapels Folie 2 von 29
1 Aufgabenstellung
2 Entwurf
3 Implementierung
4 Simulation
5 Auswertung
04.03.2014
Agenda
Implementierung eines universellen IPv6 Protokollstapels Folie 3 von 29
AUFGABENSTELLUNG
04.03.2014
Implementierung eines universellen IPv6 Protokollstapels Folie 4 von 29
• Verwendung des Ethernet Controllers der PoC-Library • Implementierung mehrerer Ethernet-Adapter pro
physikalischem Port • Implementierung eines IPv6-Protokollstapels
- IPv6-Pakete senden und empfangen - UDP-Pakete senden und empfangen - Adressen Auflösen per NDP
• Generische Hardwarebeschreibung • Optimierung für Streaming-Verarbeitung
04.03.2014
Zielstellung des Masterpraktikums 1 Aufgabenstellung
Implementierung eines universellen IPv6 Protokollstapels Folie 5 von 29
• IPv6 benutzt 128-Bit Adressen - Register-Ressourcen - Verdrahtungs-Ressourcen - Multiplexer-Ressourcen (LUTs)
• Universelles Protokoll für den Datenaustausch zwischen den Protokollschichten => PoC.Stream
• Caches - Assoziativität - Anzahl der Cache-Zeilen - Ersetzungsstrategie
• Automatisierte Simulation der Schichten und Module
04.03.2014
Besonderheiten 1 Aufgabenstellung
Implementierung eines universellen IPv6 Protokollstapels Folie 6 von 29
ENTWURF
04.03.2014
Implementierung eines universellen IPv6 Protokollstapels Folie 7 von 29 04.03.2014
Protokollstapel 2 Entwurf
TCP/IP-Protokollstapel inkl. Anwendungsprotokollen [1].
Implementierung eines universellen IPv6 Protokollstapels Folie 8 von 29 04.03.2014
Prinzip der Rahmenbildung (framing, encapsulation) 2 Entwurf
Beispielhafte 3-Schichtenarchitektur; Abbildung der Umrahmung auf HDL-Module.
Implementierung eines universellen IPv6 Protokollstapels Folie 9 von 29 04.03.2014
Das Streaming-Protokoll „PoC.Stream“ 2 Entwurf
Signalverlauf dreier Frames über einen PoC.Stream Kanal.
Wie überträgt man Metadaten?
Implementierung eines universellen IPv6 Protokollstapels Folie 10 von 29 04.03.2014
Das erweiterte „PoC.Stream“ Protokoll 2 Entwurf
Signalverlauf zweier Frames über einen PoC.Stream Kanal, welcher mit zwei Metadatenströmen annotiert ist.
Implementierung eines universellen IPv6 Protokollstapels Folie 11 von 29 04.03.2014
Datenflussoperatoren 2 Entwurf
Implementierung eines universellen IPv6 Protokollstapels Folie 12 von 29 04.03.2014
Dualer Protokollstapel (IP dual stack) 2 Entwurf
IPv6-Protokollstapel inkl. Anwendungsprotokollen [1].
Implementierung eines universellen IPv6 Protokollstapels Folie 13 von 29 04.03.2014
Abstraktion der Inter-Schichtenkommunikation als Bus 2 Entwurf
Abbildung der Schichten und Protokolle auf Module und Busse.
Implementierung eines universellen IPv6 Protokollstapels Folie 14 von 29 04.03.2014
Transformation in eine Datenflussarchitektur 2 Entwurf
Transformation der Busse in unidirektionale PoC.Stream Kanäle.
Implementierung eines universellen IPv6 Protokollstapels Folie 15 von 29
IMPLEMENTIERUNG
04.03.2014
Implementierung eines universellen IPv6 Protokollstapels Folie 16 von 29 04.03.2014
Media Access Control (MAC) - Layer 3 Implementierung
Aufbau eines Type 3.1 a) Basic-Ethernet-Frames und dessen Verarbeitung im MAC-Layer [2].
Implementierung eines universellen IPv6 Protokollstapels Folie 17 von 29 04.03.2014
Internet Protocol version 6 (IPv6) - Layer 3 Implementierung
Verarbeitung von IPv6 Paketen im IPv6-Layer.
Implementierung eines universellen IPv6 Protokollstapels Folie 18 von 29 04.03.2014
User Datagram Protocol (UDP) - Layer 3 Implementierung
Verarbeitung von UDP-Paketen im UDP-Layer. Das Modul FCS berechnet die 16-Bit 1er-Komplement Prüfsumme über den Nutzdatenanteil des UDP-Paketes.
Implementierung eines universellen IPv6 Protokollstapels Folie 19 von 29 04.03.2014
Rahmenbildung am Beispiel von UDP 3 Implementierung
Nutzdatenanteil: 94,41% (bei einem Type 3.1 a) Basic-Frame) Nettodatenrate: 112,55 MiByte/s
Implementierung eines universellen IPv6 Protokollstapels Folie 20 von 29 04.03.2014
Neighbor Discovery Protocol (NDP) - Layer 3 Implementierung
Teilweise implementiertes NDP-Layer: aktuell nur 2-stufiger Cache-Lookup-Prozess.
Implementierung eines universellen IPv6 Protokollstapels Folie 21 von 29 04.03.2014
Internet Control Message Protocol for IPv6 (ICMPv6) - Layer 3 Implementierung
Vorbereitetes ICMPv6-Layer.
Implementierung eines universellen IPv6 Protokollstapels Folie 22 von 29
SIMULATION
04.03.2014
Implementierung eines universellen IPv6 Protokollstapels Folie 23 von 29
Definition eines 8-Bit bzw. 32-Bit Simulationswortes.
04.03.2014
Datenstrukturen 4 Simulation
Signalverlauf einer 2 Frames langen Frame-Gruppe.
Implementierung eines universellen IPv6 Protokollstapels Folie 24 von 29 04.03.2014
Beispiel: ARP-Paket (1) 4 Simulation
Aufbau eines ARP-Paketes für IPv4 zu Ethernet Adressauflösungen [3].
Implementierung eines universellen IPv6 Protokollstapels Folie 25 von 29 04.03.2014
Beispiel: ARP-Paket (2) 4 Simulation
Definition eines ARP-Paketes zur Simulation.
Implementierung eines universellen IPv6 Protokollstapels Folie 26 von 29
AUSWERTUNG
04.03.2014
Implementierung eines universellen IPv6 Protokollstapels Folie 27 von 29 04.03.2014
Ressourcenbelegungen je Schicht 5 Auswertung
0
100
200
300
400
500
600
ETH (HardIP) ETH (SoftIP) MAC IPv4 IPv6 UDPv4 UDPv6 ARP NDP*
RegisterLUTs (ohne LUT-RAM)LUT-RAMs
* NDP zur Zeit nur mit „Read-Only“-Caches; ohne Update Funktionalität. Virtex-5 Gesamtressourcen: 28.800 Register; 28.800 LUTs; 60 BlockRAMs
Implementierung eines universellen IPv6 Protokollstapels Folie 28 von 29
• Implementierung der TCP/IP Protokolle als Streaming-Architektur ist möglich:
- Ethernet PoC-Modul, erweitert um einen PHYController - MAC inkl. Umsetzung mehrerer Netzwerkadapter - ARP als Cache Testplattform - IPv6 Standard Paketformat ohne optionale Felder - IPv4 durch Rückportierung von IPv6 - ICMPv4 Echo_Request/Echo_Reply - UDP für IPv4 und IPv6 - NDP nur Caches mit 2-stufigem Lookup - Loopback für div. Schichten
04.03.2014
Zusammenfassung (1) 5 Auswertung
Implementierung eines universellen IPv6 Protokollstapels Folie 29 von 29
• Streaming-Verarbeitung wurde mittels On-Chip Logic-Analyser überprüft
• Geringer Ressourcenbedarf je Schicht • NDP und weitere Hilfsprotokolle erfordern aufwendige
Automaten und Algorithmen
Implementierung mit einem Soft-Prozessor?
04.03.2014
Zusammenfassung (2) 5 Auswertung
Implementierung eines universellen IPv6 Protokollstapels Folie 30 von 29
QUELLEN
04.03.2014
Implementierung eines universellen IPv6 Protokollstapels Folie 31 von 29
[1] The Internet Engineering Task Force – Request for Comments. http://www.ietf.org/rfc.html [2] Institute of Electrical and Electronics Engineers: IEEE Standard for Ethernet - Section 1-6. IEEE Std 802.3-2012. IEEE 2012. [3] Plummer, D.: Ethernet Address Resolution Protocol. RFC 826 (Internet Standard). Internet Engineering Task Force, Nov. 1982
04.03.2014
Quellen
Implementierung eines universellen IPv6 Protokollstapels Folie 32 von 29
ANHANG
04.03.2014
Implementierung eines universellen IPv6 Protokollstapels Folie 33 von 29 04.03.2014
ARP-Layer Implementierung
Implementierung eines universellen IPv6 Protokollstapels Folie 34 von 29 04.03.2014
Ethernet_Wrapper Anhang
Implementierung eines universellen IPv6 Protokollstapels Folie 35 von 29 04.03.2014
Ethernet_Wrapper_Virtex5 Anhang
Implementierung eines universellen IPv6 Protokollstapels Folie 36 von 29 04.03.2014
VHDL-Typen Anhang