2008-10-09 9 views
102

Herkömmliche IPV4 Quad Notation die Adresse aus dem Port mit einem Doppelpunkt, wie in diesem Beispiel von einem Webserver auf der Loopback-Schnittstelle trennt:Wie funktionieren Ports mit IPv6?

127.0.0.1:80 

aber mit IPv6-Notation die Adresse selbst Doppelpunkte enthalten kann. Zum Beispiel ist dies die Kurzform der Loopback-Adresse:

::1 

Wie Ports (oder ihre funktionellen Äquivalente) in einer Textdarstellung eines IPv6-Adresse/Port-Endpunkts ausgedrückt?

Antwort

3

sind sie gleich, 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 wie unter IPv4 adressiert.

+2

Es ist nicht nur eine Adressänderung. Es soll einige coole Features bringen (zB Global Multicast). Aber ja, es ist transparent für die oberen Schichten. –

+4

Es ist "nur" eine Adressänderung.Worüber Sie sprechen, ist Adressieren :) Aber der Grund, dass es betrifft/verwirrt Menschen ist, dass Netzwerk-Design behandelt "Adressierung" als Adressen und "Dienste" als Port-Nummern. Aber Sie können nichts in TCP oder UDP ohne beide tun, also versuchen die meisten Leute, die Socket-Level-Adressierung zu funktionieren, und können nicht verstehen, warum Menschen machen oder ändern Sie das Trennzeichen: Leerzeichen, dann Punkte , dann Doppelpunkte, dann Nummernzeichen? Also, ja, ich kann sehen, IPv6 macht Menschen besorgt. – benc

21

Die in IPv6 verwendeten Protokolle sind die gleichen wie in den Protokollen IPv4. Das einzige, was zwischen den beiden Versionen ist das Adressierungsschema, DHCP [DHCPv6] und ICMP geändert [ICMPv6]. Im Grunde genommen ist alles, was mit TCP/UDP zusammenhängt, einschließlich des Portbereichs (0-65535), unverändert.

Bearbeiten: Port 0 ist ein reservierter Port in TCP, aber es existiert. Siehe RFC793

2

ich ziemlich sicher bin, dass die Ports nur einen Teil in TCP- und UDP haben. So ist es genau die gleiche, auch wenn Sie ein neues IP-Protokoll verwenden

+1

DCCP und SCTP haben auch Ports, aber die Ports in SCTP sind etwas anders wegen der zusätzlichen Assoziationskennung. –

3

Ich bin nicht sicher, was Sie bekommen bei. Der TCP- und UDP-Layer hat dieselbe Struktur. IPV6 ist, wie der Name sagt, über die IP-Schicht, die nicht die TCP- oder UDP-Schichten verbessert.

+0

Ich hatte mitten in der Nacht WTF Moment von einigen Parsing-Fehlern. –

3

Wikipeida points out dass die Syntax einer IPv6-Adresse umfasst Doppelpunkte und hat eine kurze Form mit fester Länge Parsing verhindert, und deshalb hat man mit [] den Adreßteil zu begrenzen. Dies berücksichtigt vollständig die ungeraden Parsing-Fehler.

(Entnommen an editPeter Wone auf die ursprüngliche Frage gestellt.)

2

Ich würde sagen, die beste Referenz ist Format for Literal IPv6 Addresses in URL's, wo der Gebrauch von [] definiert ist.

Auch, wenn es für die Programmierung und Code ist, insbesondere Java, würde ich vorschlagen, dies liest Class for Inet6Addressjava/net/URL definition, wo der Gebrauch von inet4 Adresse in INET6 Konnotation und anderen Fällen sind in Einzelheiten dargestellt. Für meinen Fall Adresse der Form :: FFFF-IPv4 abgebildet: w.x.y.z, für die IPv6-Adresse verwendet wird, eine IPv4-Adresse auch mein Problem gelöst zu vertreten. Es ermöglicht dem nativen Programm, bei der Kommunikation mit IPv4- und IPv6-Knoten dieselbe Adressdatenstruktur und denselben Socket zu verwenden. Dies ist der Fall bei der Standardinstallation von Amazon Cloud-Linux-Boxen.