Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für...

36
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]

Transcript of Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für...

Page 1: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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]

Page 2: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 2 von 29

1 Aufgabenstellung

2 Entwurf

3 Implementierung

4 Simulation

5 Auswertung

04.03.2014

Agenda

Page 3: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 3 von 29

AUFGABENSTELLUNG

04.03.2014

Page 4: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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

Page 5: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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

Page 6: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 6 von 29

ENTWURF

04.03.2014

Page 7: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 7 von 29 04.03.2014

Protokollstapel 2 Entwurf

TCP/IP-Protokollstapel inkl. Anwendungsprotokollen [1].

Page 8: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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.

Page 9: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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?

Page 10: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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.

Page 11: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 11 von 29 04.03.2014

Datenflussoperatoren 2 Entwurf

Page 12: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 12 von 29 04.03.2014

Dualer Protokollstapel (IP dual stack) 2 Entwurf

IPv6-Protokollstapel inkl. Anwendungsprotokollen [1].

Page 13: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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.

Page 14: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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.

Page 15: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 15 von 29

IMPLEMENTIERUNG

04.03.2014

Page 16: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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].

Page 17: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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.

Page 18: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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.

Page 19: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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

Page 20: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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.

Page 21: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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.

Page 22: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 22 von 29

SIMULATION

04.03.2014

Page 23: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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.

Page 24: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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].

Page 25: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 25 von 29 04.03.2014

Beispiel: ARP-Paket (2) 4 Simulation

Definition eines ARP-Paketes zur Simulation.

Page 26: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 26 von 29

AUSWERTUNG

04.03.2014

Page 27: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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

Page 28: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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

Page 29: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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

Page 30: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 30 von 29

QUELLEN

04.03.2014

Page 31: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

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

Page 32: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 32 von 29

ANHANG

04.03.2014

Page 33: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 33 von 29 04.03.2014

ARP-Layer Implementierung

Page 34: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 34 von 29 04.03.2014

Ethernet_Wrapper Anhang

Page 35: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 35 von 29 04.03.2014

Ethernet_Wrapper_Virtex5 Anhang

Page 36: Implementierung eines universellen IPv6 Protokollstapels · Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Dresden,

Implementierung eines universellen IPv6 Protokollstapels Folie 36 von 29 04.03.2014

VHDL-Typen Anhang