Як порти працюють з IPv6?


143

Звичайна квадратна нотація IPv4 розділяє адресу від порту двокрапкою, як у цьому прикладі веб-сервера на інтерфейсі петлі:

127.0.0.1:80

але при позначенні IPv6 сама адреса може містити двокрапки. Наприклад, це коротка форма зворотної адреси:

::1

Як порти (або їх функціональний еквівалент) виражаються у текстовому поданні адреси IPv6 / кінцевої точки порту?

Відповіді:



33

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

Редагувати: Порт 0 - це зарезервований порт TCP, але він існує. Див. RFC793


6

Вони такі самі, чи не так? Зараз я втрачаю впевненість у собі, але я дійсно вважав, що IPv6 - це лише зміна адреси. TCP та UDP все ще розглядаються, оскільки вони знаходяться під IPv4.


3
Це не просто зміна адреси. Він повинен принести кілька цікавих функцій (наприклад, глобальна багатоадресна передача). Але так, вона прозора для верхніх шарів.
Тарнай Калман

4
Це "просто" зміна адреси. Те, про що ви говорите, звертається :) Але причина, яка стосується / збиває з пантелику людей, полягає в тому, що мережевий дизайн трактує "адресацію" як адреси, а "послуги" - як номери портів. Але ви не можете нічого зробити в TCP або UDP без обох, тому більшість людей намагаються отримати адресацію на рівні сокета для роботи, і не можуть зрозуміти, чому люди продовжують складати або змінювати роздільник: пробіли, точки, то колони, то знаки фунта? Так, так, я бачу, як IPv6 викликає занепокоєння людей.
benc

6

Я впевнений, що порти мають лише частину в tcp та udp. Так що це точно так само, якщо ви використовуєте новий протокол IP


1
DCCP і SCTP також мають порти, але порти в SCTP дещо відрізняються через додатковий ідентифікатор асоціації.
Джеймс Вудріат

6

У Вікіпедії зазначається, що синтаксис адреси IPv6 включає колонки і має коротку форму, що запобігає розбору фіксованої довжини, і тому вам слід розмежувати частину адреси за допомогою []. Це повністю дозволяє уникнути випадкових помилок розбору.

(Взято з правки Пітер Wone зробив до початкового питання.)


5

Я б сказав, що найкращим посиланням є Формат для літеральних адрес IPv6 в URL-адресах, де визначено використання [].

Крім того, якщо це стосується програмування та коду, зокрема Java, я б запропонував це прочитати Class для Inet6Address визначення java / net / URL, де використання Inet4 адреси в конотації Inet6 та інших випадків представлено детально. У моєму випадку IPv4-відображена адреса форми :: ffff: wxyz, для IPv6-адреси використовується для представлення IPv4-адреси, також вирішила мою проблему. Це дозволяє нативній програмі використовувати однакову структуру даних адрес, а також один і той же сокет під час спілкування з обома вузлами IPv4 та IPv6. Це стосується налаштування за замовчуванням у хмарних областях Amazon Linux.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.