В стандартном формате IPv4, разделенном точками на четыре точки, адрес и порт отделяется двоеточием, как в этом примере веб-сервера на интерфейсе обратной связи:
127.0.0.1:80
но с нотацией IPv6 сам адрес может содержать двоеточия. Например, это краткая форма обратного адреса:
::1
Как порты (или их функциональные эквиваленты) выражаются в текстовом представлении IPv6-адреса / конечной точки порта?





Они такие же, не правда ли? Теперь я теряю уверенность в себе, но я действительно думал, что IPv6 - это просто изменение адресации. TCP и UDP по-прежнему адресуются, как и в IPv4.
Это «просто» смена адреса. То, о чем вы говорите, - это адресация :) Но причина, по которой это беспокоит / сбивает с толку людей, заключается в том, что при проектировании сети «адресация» рассматривается как адреса, а «услуги» - как номера портов. Но вы ничего не можете сделать в TCP или UDP без обоих, поэтому большинство людей пытаются заставить работать адресацию на уровне сокетов и не могут понять, почему люди продолжают придумывать или изменять разделитель: пробелы, затем точки, затем двоеточия, затем знаки фунта? Итак, да, я вижу, что IPv6 беспокоит людей.
Протоколы, используемые в IPv6, такие же, как протоколы в IPv4. Единственное, что изменилось между двумя версиями, - это схема адресации, DHCP [DHCPv6] и ICMP [ICMPv6]. Таким образом, все, что связано с TCP / UDP, включая диапазон портов (0-65535), остается неизменным.
Редактировать: Порт 0 - это зарезервированный порт в TCP, но он существует. См. RFC793
Я почти уверен, что порты участвуют только в tcp и udp. Так что это точно так же, даже если вы используете новый IP-протокол.
DCCP и SCTP также имеют порты, но порты в SCTP немного отличаются из-за дополнительного идентификатора ассоциации.
Они работают почти так же, как сегодня. Однако не забудьте включить [] в свой 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.
Это не просто смена адреса. Предполагается, что он принесет некоторые интересные функции (например, глобальную многоадресную передачу). Но да, он прозрачен для верхних слоев.