implementierung eines universellen ipv6 protokollstapels · fakultät informatik, inst. für...

Post on 15-Mar-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 Patrick.Lehmann@tu-dresden.de

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

top related