Книга: UNIX: разработка сетевых приложений
Резюме: совместимость IPv4 и IPv6
Резюме: совместимость IPv4 и IPv6
Таблица 12.2, содержащая сочетания клиентов и серверов, подводит итог обсуждению, проведенному в данном и предыдущем разделах.
Таблица 12.2. Обобщение совместимости клиентов и серверов IPv4 и IPv6
Сервер IPv4, узел только IPv4 (только А) | Сервер IPv4, узел только IPv6 (только AAAA) | Сервер IPv4, узел с двойным стеком (А и AAAA) | Сервер IPv6, узел с двойным стеком (А и AAAA) | |
---|---|---|---|---|
Клиент IPv4, узел только IPv4 | IPv4 | Нет | IPv4 | IPv4 |
Клиент IPv6, узел только IPv6 | Нет | IPv6 | Нет | IPv6 |
Клиент IPv4, узел с двойным стеком | IPv4 | Нет | IPv4 | IPv4 |
Клиент IPv6, узел с двойным стеком | IPv4 | IPv6 | Нет* | IPv6 |
Каждая ячейка этой таблицы содержит поля «IPv4» или «IPv6» с указанием используемого протокола, если данное сочетание работает, либо «нет», если комбинация недопустима. Ячейка в последней строке третьей колонки отмечена звездочкой, поскольку совместимость зависит от адреса, выбранного клиентом. При выборе записи типа AAAA отправка дейтаграммы IPv6 будет невозможна. Но выбор записи типа А, которая возвращается клиенту как адрес IPv4, преобразованный к виду IPv6, приведет к отправке дейтаграммы IPv4. Перебрав все адреса, возвращаемые getaddrinfo
, мы обязательно доберемся до адреса IPv4, преобразованного к виду IPv6, пусть даже и потратив некоторое время на безуспешное ожидание.
Хотя четверть из представленных в таблице сочетаний недопустима, в обозримом будущем большинство реализаций IPv6 будут использоваться на узлах с двойным стеком протоколов и поддерживать не только IPv6. Если мы удалим из таблицы вторую строку и вторую колонку, все записи «Нет» исчезнут и единственной проблемой останется запись, помеченная звездочкой.