TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
21.11.1 Запросы в клиентской программе UDP
1. sock = socket(AF_INET, SOCK_DGRAM, 0); UDP клиента создает socket
2. bzero((char *)&servAddr, sizeof(servAddr));
servAddr.sin_family = AF_INET;
hp = gethostbyname(argv[1]);
bcopy(hp->h_addr, &servAddr.sin_addr, hp->length);
servAddr.sin_port = htons(atoi(argv[2]));
Структура servAddr заполнена введенными конечным пользователем значениями, как это делалось и в клиенте для TCP.
3. bind (sock, &clientAddr, sizeof(clientAddr)); Клиент вызывает bind для получения порта.
4. sendto(sock, argv[3], strlen(argv[3]), 0, &servAddr, sizeof(servAddr));
Вызов sendto имеет форму:
Этот запрос содержит всю информацию о точке назначения, необходимую для отправки датаграммы протокола UDP.
21.12 Дополнительная литература
Любое техническое руководство по программированию в Unix содержит описания программных вызовов socket. В книге Ричарда Стивенса (Richard Stevens) Unix Network Programming детально обсуждается программирование socket. Руководства программиста TCP/IP для других операционных систем, описывают вызовы socket и часто содержат примеры типичных программ. Следует ознакомиться с подобным руководством, поскольку между операционными системами могут существовать различия.
Глава 22
IP версии 6
22.1 Введение
За относительно короткий период времени персональные компьютеры стали подключаться к локальным сетям, которые объединялись в региональные сети. Многие из этих систем связаны со всем миром. Результатом стало распространение Интернета среди миллионов пользователей.
Структура исходной схемы адресации IP не вполне подходит для такого окружения. Пространство номеров ограничено, и, в отличие от структуры телефонных номеров с иерархической системой кодов стран и областей, здесь нумерация не является иерархической. Присваивание организациям блоков адресов не слишком эффективно, поскольку большая часть адресного пространства не используется.
Пространство номеров быстро истощилось.
Однако расширение Интернета нельзя остановить. Количество персональных компьютеров и их подключений к глобальной сети постоянно растет. Появляются новые потребности:
■ Работа в сети нового поколения мобильных компьютеров, заменяющих деловые бумаги и выполняющих роль цифрового персонального секретаря.
■ Требования для аудио и видео в реальном времени, приведшие существующую технологию к своему естественному пределу.
К Интернету обратился серьезный деловой мир, которому требуется обеспечение реальной безопасности сетевых инфраструктур.
Существует и проблема с сетевым управлением. Многие организации используют магистральные соединения по IP для объединения своих сетей и пересылке трафика средствами протокола IP. На сегодняшний день эти задачи не решены полностью и нет эффективных механизмов для управления нагрузкой.
Разработка IP версии 6 (IPv6, называемый еще IP следующего поколения) проводилась для решения проблем адресации, маршрутизации, производительности, безопасности и нагрузки в Интернете. В этой главе рассматриваются наиболее важные возможности IPv6. При реализации следует учитывать требования самых последних RFC.
22.2 Обзор IPv6
Протокол IPv6 имеет следующие характеристики:
■ Введен 128-разрядный адрес (16 октетов), который иерархически структурирован для упрощения делегирования прав выделения адресов и маршрутизации.
■ Упрощен главный заголовок IP, но определены многие необязательные заголовки расширения, что позволяет при необходимости добавлять новые сетевые возможности.
■ Поддерживаются аутентификация, целостность данных и конфиденциальность на уровне IP.
■ Введены потоки, поддерживающие многие новые типы пересылки запросов, например видео в реальном времени.
■ Упрощена инкапсуляция других протоколов, и предложен механизм для управления нагрузкой при пересылке данных от других протоколов.
■ Реализован новый метод автоматической самоконфигурации адресов и проверки уникальности IP-адресов.
■ Улучшены методы исследования маршрутизаторов, определения неисправных путей и недостижимых соседей по связи.
На момент написания книги многие детали IPv6 находились еще в стадии разработки, однако основные архитектурные элементы уже подготовлены и рассматриваются в этой главе. Уже стали стандартами IPv6, ICMPv6, расширение DNS и архитектура адресации IPv6.
22.3 Терминология
Версия 6 вносит некоторые изменения в терминологию версии 4 и вводит новые термины:
■ Пакетом (packet) называется заголовок IPv6 плюс полезные данные