Jak działają porty z IPv6?

143

Konwencjonalna notacja quad z kropkami w protokole IPv4 oddziela adres od portu dwukropkiem, jak w tym przykładzie serwera WWW w interfejsie pętli zwrotnej:

127.0.0.1:80

ale w notacji IPv6 sam adres może zawierać dwukropki. Na przykład jest to krótka forma adresu sprzężenia zwrotnego:

::1

W jaki sposób porty (lub ich funkcjonalne odpowiedniki) są wyrażane w tekstowej reprezentacji adresu IPv6 / punktu końcowego portu?

Peter Wone
źródło

Odpowiedzi:

33

Protokoły używane w IPv6 są takie same, jak protokoły w IPv4. Jedyną rzeczą, która uległa zmianie między tymi dwoma wersjami, jest schemat adresowania, DHCP [DHCPv6] i ICMP [ICMPv6]. Zasadniczo wszystko, co dotyczy TCP / UDP, w tym zakres portów (0-65535), pozostaje niezmienione.

Edycja: Port 0 jest zarezerwowanym portem w TCP, ale istnieje. Zobacz RFC793

Andrew Moore
źródło
6

Są takie same, prawda? Teraz tracę zaufanie do siebie, ale naprawdę myślałem, że IPv6 to tylko zmiana adresu. TCP i UDP są nadal adresowane, ponieważ są w IPv4.

Oli
źródło
3
To nie tylko zmiana adresu. Ma przynieść kilka fajnych funkcji (na przykład globalne rozsyłanie grupowe). Ale tak, jest przezroczysty dla górnych warstw.
Tarnay Kálmán
4
To „tylko” zmiana adresu. To, o czym mówisz, to adresowanie :) Ale powodem, dla którego to niepokoi / dezorientuje ludzi, jest to, że projektowanie sieci traktuje „adresowanie” jako adresy, a „usługi” jako numery portów. Ale nie możesz nic zrobić w TCP lub UDP bez obu, więc większość ludzi próbuje uruchomić adresowanie na poziomie gniazda i nie może zrozumieć, dlaczego ludzie wciąż wymyślają lub zmieniają separator: spacje, następnie kropki, a następnie dwukropki, a następnie znaki funta? Więc tak, widzę, że IPv6 wzbudza niepokój ludzi.
benc
6

Jestem prawie pewien, że porty mają tylko część w tcp i udp. Więc jest dokładnie tak samo, nawet jeśli używasz nowego protokołu IP

svrist
źródło
1
DCCP i SCTP również mają porty, ale porty w SCTP są nieco inne ze względu na dodatkowy identyfikator powiązania.
James Woodyatt
6

Wikipedia zwraca uwagę, że składnia adresu IPv6 zawiera dwukropki i ma krótką postać, która zapobiega parsowaniu o stałej długości, dlatego część adresu należy oddzielić znakiem []. Pozwala to całkowicie uniknąć dziwnych błędów analizy.

(Zaczerpnięte z edycji dokonanej przez Petera Wone w oryginalnym pytaniu).

Ajedi32
źródło
5

Powiedziałbym, że najlepszym odniesieniem jest format literalnych adresów IPv6 w adresach URL, w których zdefiniowano użycie [].

Ponadto, jeśli jest to programowanie i kodowanie, w szczególności Java, sugerowałbym, aby czytał Class for Inet6Address w definicji java / net / URL, w której szczegółowo przedstawiono użycie adresu Inet4 w konotacji Inet6 i innych przypadkach. W moim przypadku adres mapowany na IPv4 w postaci :: ffff: wxyz, dla adresu IPv6 jest używany do reprezentowania adresu IPv4, również rozwiązał mój problem. Pozwala to natywnemu programowi używać tej samej struktury danych adresowych, a także tego samego gniazda podczas komunikacji z węzłami IPv4 i IPv6. Tak jest w przypadku domyślnej konfiguracji skrzynek Amazon w chmurze Linux.

zhrist
źródło