Как порты работают с IPv6?

В стандартном формате IPv4, разделенном точками на четыре точки, адрес и порт отделяется двоеточием, как в этом примере веб-сервера на интерфейсе обратной связи:

127.0.0.1:80

но с нотацией IPv6 сам адрес может содержать двоеточия. Например, это краткая форма обратного адреса:

::1

Как порты (или их функциональные эквиваленты) выражаются в текстовом представлении IPv6-адреса / конечной точки порта?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
152
0
122 191
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Они такие же, не правда ли? Теперь я теряю уверенность в себе, но я действительно думал, что IPv6 - это просто изменение адресации. TCP и UDP по-прежнему адресуются, как и в IPv4.

Это не просто смена адреса. Предполагается, что он принесет некоторые интересные функции (например, глобальную многоадресную передачу). Но да, он прозрачен для верхних слоев.

Tarnay Kálmán 18.01.2009 08:34

Это «просто» смена адреса. То, о чем вы говорите, - это адресация :) Но причина, по которой это беспокоит / сбивает с толку людей, заключается в том, что при проектировании сети «адресация» рассматривается как адреса, а «услуги» - как номера портов. Но вы ничего не можете сделать в TCP или UDP без обоих, поэтому большинство людей пытаются заставить работать адресацию на уровне сокетов и не могут понять, почему люди продолжают придумывать или изменять разделитель: пробелы, затем точки, затем двоеточия, затем знаки фунта? Итак, да, я вижу, что IPv6 беспокоит людей.

benc 27.07.2009 00:18

Протоколы, используемые в IPv6, такие же, как протоколы в IPv4. Единственное, что изменилось между двумя версиями, - это схема адресации, DHCP [DHCPv6] и ICMP [ICMPv6]. Таким образом, все, что связано с TCP / UDP, включая диапазон портов (0-65535), остается неизменным.

Редактировать: Порт 0 - это зарезервированный порт в TCP, но он существует. См. RFC793

Я почти уверен, что порты участвуют только в tcp и udp. Так что это точно так же, даже если вы используете новый IP-протокол.

DCCP и SCTP также имеют порты, но порты в SCTP немного отличаются из-за дополнительного идентификатора ассоциации.

james woodyatt 22.11.2009 02:10
Ответ принят как подходящий

Они работают почти так же, как сегодня. Однако не забудьте включить [] в свой IP-адрес.

Например: http://[1fff:0:a88:85a3::ac1f]:8001/index.html

В Википедии есть неплохая статья об IPv6: http://en.wikipedia.org/wiki/IPv6#Addressing

Википедия указывает на то сообщает, что синтаксис IPv6-адреса включает двоеточия и имеет краткую форму, предотвращающую синтаксический анализ фиксированной длины, и поэтому вам необходимо разделить часть адреса с помощью []. Это полностью позволяет избежать лишних ошибок синтаксического анализа.

(Взято из редактированиеПитер Вон, сделанного для исходного вопроса.)

Я бы сказал, что лучшая ссылка - это Формат буквальных IPv6-адресов в URL-адресах, где определено использование [].

Кроме того, если это для программирования и кода, в частности для Java, я бы посоветовал прочитать Класс для Inet6Addressопределение java / net / URL, где подробно описано использование адреса Inet4 в коннотации Inet6 и другие случаи. В моем случае IPv4-сопоставленный адрес формы :: ffff: w.x.y.z, поскольку IPv6-адрес используется для представления IPv4-адреса, также решил мою проблему. Это позволяет собственной программе использовать одну и ту же структуру данных адреса, а также один и тот же сокет при взаимодействии с узлами IPv4 и IPv6. Так обстоит дело с настройкой по умолчанию ящиков Linux в облаке Amazon.

Другие вопросы по теме