Wie funktionieren Ports mit IPv6?

143

Die herkömmliche gepunktete IPv4-Quad-Notation trennt die Adresse vom Port durch einen Doppelpunkt, wie in diesem Beispiel eines Webservers auf der Loopback-Schnittstelle:

127.0.0.1:80

Bei der IPv6-Notation kann die Adresse selbst Doppelpunkte enthalten. Dies ist beispielsweise die Kurzform der Loopback-Adresse:

::1

Wie werden Ports (oder deren funktionale Entsprechung) in einer Textdarstellung einer IPv6-Adresse / eines Port-Endpunkts ausgedrückt?

Peter Wone
quelle

Antworten:

33

Die in IPv6 verwendeten Protokolle sind dieselben wie die Protokolle in IPv4. Das einzige, was sich zwischen den beiden Versionen geändert hat, ist das Adressierungsschema DHCP [DHCPv6] und ICMP [ICMPv6]. Grundsätzlich bleibt also alles, was mit TCP / UDP zu tun hat, einschließlich des Portbereichs (0-65535), unverändert.

Bearbeiten: Port 0 ist ein reservierter Port in TCP, der jedoch vorhanden ist. Siehe RFC793

Andrew Moore
quelle
6

Sie sind die gleichen, nicht wahr? Jetzt verliere ich das Vertrauen in mich selbst, aber ich dachte wirklich, IPv6 sei nur eine Adressänderung. TCP und UDP werden weiterhin angesprochen, da sie sich unter IPv4 befinden.

Oli
quelle
3
Es ist nicht nur eine Adressänderung. Es soll einige coole Funktionen bringen (zum Beispiel globales Multicast). Aber ja, es ist für die oberen Schichten transparent.
Tarnay Kálmán
4
Es ist "nur" eine Adressänderung. Sie sprechen von Adressierung :) Aber der Grund, warum es Menschen betrifft / verwirrt, ist, dass das Netzwerkdesign "Adressierung" als Adressen und "Dienste" als Portnummern behandelt. Aber Sie können in TCP oder UDP nichts ohne beides tun, daher versuchen die meisten Leute, die Adressierung auf Socket-Ebene zum Laufen zu bringen, und können nicht verstehen, warum die Leute das Trennzeichen immer wieder erfinden oder ändern: Leerzeichen, dann Punkte, dann Doppelpunkte, dann Pfundzeichen? Also, ja, ich kann sehen, dass IPv6 die Leute beunruhigt.
Benc
6

Ich bin mir ziemlich sicher, dass Ports nur einen Teil in TCP und UDP haben. Es ist also genau das gleiche, auch wenn Sie ein neues IP-Protokoll verwenden

svrist
quelle
1
DCCP und SCTP haben ebenfalls Ports, aber die Ports in SCTP unterscheiden sich aufgrund der zusätzlichen Zuordnungskennung geringfügig.
James Woodyatt
6

Wikipedia weist darauf hin, dass die Syntax einer IPv6-Adresse Doppelpunkte enthält und eine Kurzform hat, die das Parsen fester Länge verhindert. Daher müssen Sie den Adressenteil mit [] abgrenzen. Dies vermeidet die ungeraden Analysefehler vollständig.

(Entnommen aus einer Bearbeitung, die Peter Wone an der ursprünglichen Frage vorgenommen hat.)

Ajedi32
quelle
5

Ich würde sagen, die beste Referenz ist das Format für wörtliche IPv6-Adressen in URLs, in denen die Verwendung von [] definiert ist.

Wenn es sich um Programmierung und Code handelt, insbesondere um Java, würde ich vorschlagen, dass dies die Klasse für Inet6Address- Java / Net / URL-Definition lautet, in der die Verwendung der Inet4-Adresse in der Inet6-Konnotation und in anderen Fällen ausführlich dargestellt wird. In meinem Fall hat die IPv4-zugeordnete Adresse der Form :: ffff: wxyz für die IPv6-Adresse zur Darstellung einer IPv4-Adresse ebenfalls mein Problem gelöst. Das native Programm kann bei der Kommunikation mit IPv4- und IPv6-Knoten dieselbe Adressdatenstruktur und denselben Socket verwenden. Dies ist bei der Standardeinstellung von Amazon Cloud Linux-Boxen der Fall.

zhrist
quelle