
- •Минск, бгу,
- •Содержание.
- •Глава1. Компьютерные сети и протоколы…………………………..15
- •Введение в Интернет Коротко об истории Интернет
- •Как работает Интернет?
- •Система адресации
- •Способы подключения к сети
- •Сервисы Интернет
- •Электронная почта
- •Передача файлов по ftp
- •Всемирная паутина www
- •Задания по теме “Введение в Интернет”
- •Глава 1. Компьютерные сети и протоколы
- •Локальные сети
- •Распределенные и глобальные сети
- •Сеть vpn
- •Адресация в локальных сетях
- •Адресация в глобальных сетях и в Интернет
- •Понятие и краткое описание протоколов
- •Соотношение между tcp/ip и osi/iso
- •Межсетевой протокол iPv4
- •Транспортный протокол tcp
- •Протокол дэйтаграмм udp
- •Протоколы arp и rarp
- •Протоколы сетевого уровня
- •Протоколы электронной почты
- •Протоколы smtp и pop3
- •Протокол imap4
- •Спецификация mime
- •Протокол ftp
- •Http – Протокол передачи гипертекстов
- •Клиентский запрос http
- •Ответ сервера
- •Развитие прикладных протоколов: soap, rest, rpc
- •Безопасность в сети
- •Протокол ssl
- •Установление подлинности участников
- •Проблемы с кодировкой и Unicode
- •Задания по теме «Протоколы Интернет»
- •Глава 2. Проектирование и разработка сайтов
- •Виды сайтов
- •Этапы проектирования и разработки сайта
- •Модели проектирования и управление проектами
- •Итерационная (спиральная) модель
- •Программные средства управления проектами
- •Логическое проектирование дизайна сайта
- •Главная страница сайта
- •Внутренние страницы сайта
- •Оценки качества Веб – сайтов
- •Глава 3. Краткий обзор основных технологий разработки Веб приложений
- •Язык разметки гипертекста xml
- •Синтаксис xml
- •Объявление xml
- •Конструкции языка
- •Правильно построенные и действительные документы xml
- •Отображение xml документа
- •Словари xml
- •Вставка флэш в страницу
- •Язык ActionScript
- •Видео-аудио проигрыватели
- •Технология «клиент-сервер»
- •Язык Java на клиентской и серверной странице
- •Базы данных и язык sql
- •Нормализация модели данных
- •Язык sql
- •Команды определения структуры данных
- •Команды манипулирования данными
- •Команды управления транзакциями
- •Команды управления доступом
- •Извлечение данных, команда select
- •Секция where
- •Групповые функции
- •Секция having
- •Изменение данных
- •Команда insert
- •Язык разметки гипертекста html
- •Формы html
- •Новые элементы форм html5
- •Новый тип input – range служит для ввода значения из диапазона
- •Теги div и span
- •Метатеги
- •Новые возможности html5
- •Поддержка аудио
- •Поддержка видео
- •Атрибут Controls
- •Валидация документов
- •Каскадные таблицы стилей css
- •Способы включения каскадных таблиц стилей
- •Теги div , span и link
- •Свойства шрифтов (фонтов).
- •Заголовок1 Заголовок2 Заголовок3
- •Стили текста.
- •Цвет и фон.
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Форматирование псевдоклассов и псевдоэлементов
- •Различные свойства
- •Представление документа в виде блоков
- •Отступы, поля, позиционирование
- •Границы элементов
- •Визуальное форматирование
- •Визуальные эффекты
- •Новое в css3
- •Глава 5. Язык JavaScript Введение
- •Включение скриптов JavaScript в html-код
- •Создание простых сценариев
- •Комментарии. Скрытие сценариев от браузеров
- •Отладка скриптов. Ввод и вывод данных
- •Описание языка Типы данных
- •Преобразование типа
- •Булев тип
- •Переменные типа Undefined и Null
- •Массивы
- •Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Операторы сравнения
- •Функции пользователя
- •Передача параметров по значению и по ссылке
- •Глобальные и локальные переменные
- •Модель событий
- •Ключевое слово this
- •Перехват события.
- •Методы addEventListener, removeEventListener, attachEvent.
- •Исключения: throw/catch/finally
- •Объектная модель
- •Пользовательские объекты
- •Прототипы
- •Встроенные объекты String, Array, Date, Math Объект String
- •Объект Array
- •Объект Date (Дата)
- •Методы объекта Date
- •Коллекции
- •Свойства элемента innerHtml и outerHtml
- •Навигация по дереву документа
- •Создание новых узлов
- •Удаление и замена узлов в документе
- •Объект window
- •Свойства окна, передаваемые методу open()
- •Методы объекта window
- •Свойства и методы объекта navigator
- •Свойства и методы объекта history
- •Свойства и методы объекта location
- •Объект layer
- •Свойства объекта layer
- •Методы объекта layer
- •Использование каскадных таблиц стилей и объекта style
- •Модель ajax:
- •Класс xmlHttpRequest
- •Свойства класса
- •Методы класса
- •Создание экземпляра объекта
- •Использование dom
- •Объект FormData
- •Работа с cookie
- •Синтаксис http заголовка для поля Cookie
- •Способы задания значений cookie
- •Примеры на JavaScript
- •Глава 6. Язык серверных скриптов php
- •Инструменты для разработки
- •Как php работает
- •Описание языка Типы данных
- •Массивы и инициализация массивов
- •Операции и выражения
- •Операции сравнения
- •Логические операции
- •Строковые операции
- •Операторы управления
- •Функции
- •Рекурсивные функции
- •Аргументы функции
- •Область действия и время жизни переменных
- •Изменяемые (динамические) переменные
- •Внешние библиотечные функции
- •Функции для работы с массивами
- •Функции для работы со строками.
- •Функции форматных преобразований строк
- •Преобразование строк и файлов к формату html и наоборот
- •Преобразование html в простой текст
- •Преобразование строки к верхнему и нижнему регистру
- •Установка локальных настроек
- •Регулярные выражения
- •Perl-совместимые функции для работы с регулярными выражениями
- •Функции даты и времени
- •Математические функции
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Организации работы с данными
- •Передача данных от клиента к серверу и обратно. Протокол http
- •Клиентские методы http
- •Обработка html-форм
- •Передача переменных из формы в скрипт.
- •Передача значений переменных по методу get
- •Передача данных из формы на сервер по методу get
- •Передача данных из формы на сервер по методу post
- •Php и различные формы
- •Обработка форм
- •Более сложные переменные формы
- •Глава 7. Лабораторные работы Лабораторная работа 1 (4 часа). Инструменты и средства создания простых сайтов
- •Лабораторная работа 3 (4часа). Применение каскадных таблиц стилей css
- •Трехколоночный контейнерный макет сайта
- •Лабораторная работа 4. Применение каскадных таблиц стилей css
- •Некоторые подсказки по синтаксису css:
- •1. Свойства шрифтов.
- •2. Свойства текста.
- •3. Свойства цвета и фона.
- •4. Свойства рамки.
- •5. Свойства списков.
- •6. Свойства изображений.
- •Форматирование блока
- •Лабораторная работа 5 (4 часа). Динамика и JavaScript на Веб –странице.
- •Ответить на следующие вопросы
- •Пример вывода даты и времени.
- •Пример вывода строки в стиле печатной машинки
- •Дополнительные задачи и упражнения по JavaScript
- •Лабораторная работа 6 по JavaScript (4 часа).
- •Проверка правильности заполнения формы на сайте
- •Методы объекта window
- •Методы focus() и blur()
- •Лабораторная работа 7. Php Задание 1. Массивы и строки Выполнить одно из перечисленных ниже упражнений
- •Задание 2. Функции
- •Задание 4. Работа с базами данных Выполнить одно из перечисленных ниже упражнений
- •Задание 5. Создание web-объектов Список заданий
- •Приложение 1. Курсовые работы Курсовая работа 1. Создание клиентских приложений
- •Курсовая работа №2. Сайты клиент-сервер
- •Каталог товаров
- •Система вопрос/ответ
- •Курсовая работа №3. Технологии разработки Веб – приложений Проекты сайтов
- •Перечень заданий
- •Приложение 2. Быстрая разработка Веб-приложений и cms
- •Начало работы с сайтом
- •Установка нового модуля
- •Создание шаблона
- •Создание индивидуальных шаблонов
- •Движок шаблонирования xTemplate
- •Создание нового шаблона
- •Удаление блока с формой входа на сайт
- •Включение блока для отображение популярных статей
- •Удаление ссылки "Далее" в отображение статьи
- •Drupal: практические примеры
- •Как заставить Drupal работать быстрее
- •Литература
Адресация в локальных сетях
Каждый компьютер в сети TCP/IP имеет уникальный адрес и даже не один. В сети используются адреса трех уровней: физический (MAC-адрес), сетевой (IP-адрес) и символьный адрес (DNS-имя).
Физический адрес для узлов, входящих в ЛС - это МАС-адрес сетевого адаптера или модема из шести байтов: старшие 3 байта - идентификатор фирмы производителя, а младшие 3 байта назначаются производителем, например 11-А0-17-3D-BC-01. Эти адреса являются уникальными, однако системный администратор может поменять “плохой” MAC-адрес.
Каждый компьютер в локальной или глобальной сети имеет IP-адрес. В локальной сети используются локальные IP- адреса, уникальные в пределах ЛС. Например, в ЛС, основанных на IPv4, могут использоваться специальные локальные IP адреса из диапозона, назначенного комитетом IANA(Internet Assigned Numbers Authority):
10.0.0.0-10.255.255.255; 172.16.0.0-172.31.255.255; 192.168.0.0-92.168.255.255.
Эти адреса не доступны извне из сети Интернет. В непересекающихся локальных сетях адреса могут повторяться, так как доступ в глобальные сети происходит с применением технологий, подменяющих внутренний адрес внешним, например через прокси.
При выходе из ЛС в Интернет используются два вида адресов узлов: cтатический IP-адрес и динамический IP-адрес. Статический IP-адрес присваивается компьютеру вручную администратором сети в настройках протокола TCP/IP и жестко закрепляется за компьютером. Это позволяет, например, запретить определенному компьютеру выходить в Интернет, или определить, с какого компьютера выходили в Интернет. Динамический IP-адрес автоматически назначается специальной серверной службой, например DHCP. В параметрах службы DHCP администратором сети прописывается IP-диапазон, адреса из которого, будут выдаваться компьютерам сети. Компьютер, получающий IP-адрес из сети, называется DHCP-клиент. При неудачной попытке получить IP-адрес, DHCP-клиент данного компьютера включает встроенную функцию IANA, которая назначает компьютеру IP-адрес и маску подсети, используя один из зарезервированных адресов. При этом служба IANA отслеживает уникальность адресов в сети. Зарезервированные адреса назначаются из диапазона 169.254.0.0 до 169.254.255.255 с маской подсети 255.255.0.0.
В локальной сети вместо IP- адресов используются также символьные имена компьютеров.
Адресация в глобальных сетях и в Интернет
Локальные компьютеры, объединенные в ЛС, входят в глобальные сети и Интернет. Обмен информацией происходит в форме пакета данных, который передается по сети. IP-адрес компьютера-отправителя и IP-адрес компьютера-получателя указывается в заголовке пакета.
При выходе в Интернет каждому компьютеру назначается внешний IP-адрес. Если компьютеру не присвоен статический IP-адрес, то при каждом подключении компьютера к сети назначается динамический адрес. Функция автоматического назначения IP-адреса и прокси-сервер гарантирует уникальность выдаваемого IP-адреса.
IP-адрес присваивается не только компьютеру, но и другим сетевым устройствам, например, маршрутизатору. Маршрутизаторы используются для соединения нескольких локальных сетей или для связи локальных сетей с глобальными (в роли шлюзов и файрволов). Маршрутизатор имеет несколько IP-адресов с номерами объединяемых сетей и оснащен несколькими сетевыми адаптерами.
Рассмотрим сначала адресацию в сетях IPv4. IP-адрес состоит из двух частей: адреса сети и номера узла. Введение адреса сети упростило проблемы маршрутизации, но не решило их до конца. Поэтому большую IP-сеть разбивают на несколько подсетей, присвоив каждой из них свой адрес. Подсети - это отдельные, самостоятельно функционирующие части сети, имеющие свой идентификатор. Для адреса подсети, в IP-адресе, выделяется пространство из адреса узла.
Левый байт (октет) содержит номер 1..255 и указывает класс локальной интрасети, в которой находится искомый компьютер. Последний (правый) идентификатор IP-адреса обозначает номер хоста в данной локальной сети. Между правым и левым октетами в такой записи расположены номера подсетей более низкого уровня. В качестве примера возьмем IP-адрес 190.80.100.10. Итак, мы отправляем пакет в 80-ю подсеть 190-й подсети сети Интернет. Она содержит 250 более мелких сетей, нам нужна 100-я. Наконец, к 100-й сети подключен ряд компьютеров, из которых сообщение получит машина, имеющая в системе номер 10.
Соответствие классов сетей значению первого байта IPv4-адреса
Таблица.
Класс сети |
Диапазон значений первого октета |
Возможное количество подсетей |
Возможное количество узлов |
А В С D Е |
1-126 128-191 192-223 224-239 240-247 |
126 16382 2097150 --- --- |
16777214 65534 254 2-28 2-27 |
Адреса класса А используются в крупных сетях общего пользования, поскольку позволяют создавать системы с большим количеством узлов. Адреса класса В применяют в корпоративных сетях средних размеров, адреса класса С – в локальных сетях небольших организаций. IP-адрес с нулевым идентификатором узла используется для обозначения сети в целом; IP-адрес с идентификатор узла в виде единичных битов является широковещательным (broadcast) адресом.
Значение 127 первого октета зарезервировано для служебных целей, поскольку IP-пакеты, направленные на такой адрес, не передаются в сеть, а ретранслируются обратно на этот же компьютер, как только что принятые (кольцевой хост 127.0.0.1).
В ОС Windows XP есть набор полезных утилит, запускаемых из консоли: «Пуск» / «cmd» / «Ок»
В появившемся черном окне можно запускать диагностические утилиты, набрав ее имя и нажав <Enter>
ipconfig <Enter>
ipconfig –all <Enter>
Эта утилита отображает информацию обо всех сетевых подключениях: IP-адрес, маску подсети, шлюз по умолчанию, серверы DNS.
ping удаленный_узел<Enter>
Утилита ping позволяет определить доступность узла. Эта команда посылает пакеты удаленному узлу и ждет ответа на них. Если ответы приходят, значит, канал работает. На некоторых узлах протокол ICMP, который используется командой ping, может быть заблокирован файерволлом.
tracert -d удаленный_узел
Эта утилита отображает все узлы (роутеры, шлюзы - хопы, прыжки) на пути следования пакетов к удаленному узлу, показывая время задержки в миллисекундах или превышение интервала ожидания.
netstat -an
Эта утилита отображает все текущие установленные соединения между вашим и удаленными узлами и все «слушаемые» сокеты.
Диагностика сети:
1.Отключаем антивирус и файервол.
2.Устанавливаем соединение к интернету
3.Утилитой ipconfig определяем текущий IP и основной шлюз (шлюз по умолчанию, роутер). Например, получим:
IP 91.76.64.213
шлюз 91.76.64.1
Если провайдером были предоставлены статические IP, то отображаться должны именно они, проверьте. В остальных случаях данные IP адреса назначаются динамически.
Утилита ipconfig -all (с ключом -all) также показывает прописанные DNS серверы распознавания имен. Проверьте их также. Если этой информации не будет, то значит, у вас сбились настройки вашего сетевого подключения. Настройте подключение к Интернет.
4. Далее «пингуем» шлюз провайдера, например:
ping 91.76.64.1
Если шлюз откликается, то все нормально.
5.Теперь «пингуем» DNS-сервер:
ping 195.34.32.116
Отклик есть – порядок, сервер распознавания имен виден. Если «превышен интервал ожидания», то проблема у нас.
6.«Пингуем» какой-либо удаленный узел сначала по его IP адресу, а потом по имени, например:
ping 91.76.64.1
ping stream.ru
Если по IP-адресу узел доступен, а по имени – нет, то значит, существует проблема с распознаванием имен.
еще одна утилита для тестирования DNS-серверов:
nslookup имя_узла ip_днс_сервера
ip_днс_сервера можно не указывать – тогда будет использоваться первичный ДНС-сервер из текущих настроек Интернет соединения.
Эта утилита делает запрос ДНС-серверу «Какой IP-адрес соответствует этому имени узла?» и отображает ответ.
Если интересно, то можно и более точно определить место «затыка» командой tracert, например:
tracert -d 91.76.64.1
или
tracert -d stream.ru
Эта команда отобразит цепочку всех промежуточных узлов, через которые проходит пакет. Если после некоторого узла пойдут сплошные тайм-ауты, то там и проблема.
А лучше просто прописать у себя в настройках в качестве первичного DNS-сервера адрес какого-нибудь другого DNS-сервера.
Недавно Google предоставил свои публичные ДНС-серверы для свободного бесплатного использования. Эти бесплатные ДНС-серверы имеют IP адреса: 8.8.8.8 и 8.8.4.4. Прописывайте эти адреса в качестве первичного и вторичного серверов имен и забудьте о проблемах своего провайдера.
Адресация в IPv6
При разработке протокола IP не предусматривалось столь широкое его распространение и адресов стало не хватать. Для решения этой проблемы был разработан протокол IPv6. IPv6-адрес записывается в восемь блоков по 16 бит (=128 бит) каждый, например, 2001:0 da8: 65b4: 05d3: 1315:7 C1F: 0461:7847. Основным преимуществом IPv6, помимо наличия огромного количества IP-адресов, является возможность включать автоматическую настройку IP-адреса устройства, используя его MAC-адрес. Другие преимущества включают нумерации IPv6 для упрощения переключения всей корпоративной сети между провайдерами, быстрый маршрут, точка-точка шифрование в соответствии с IPSec и др.
Существуют три типа адресов IPv6: одноадресные (Unicast), групповые (Anycast) и многоадресные (Multicast). Адреса Anycast могут использоваться только маршрутизаторами. Адреса Multicast идентифицируют группу интерфейсов для многоадресного вещания.
Рассмотрим подробнее типы Unicast адресов:
• Глобальные адреса соответствуют публичным IPv4 адресам и могут находиться в любом не занятом диапазоне. В настоящее время региональные интернет-регистраторы распределяют блок адресов 2000::/3.
• Link-Local . Соответствуют автосконфигурированным IPv4 адресам. Начинаются с FE80.
• Unique-Local, соответствуют внутренним IPv4 адресам. Начинаются с цифр FC00 и FD00.
Адреса IPv6 отображаются по четыре шестнадцатеричные цифры, разделённые двоеточием. Пример адреса:
2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d
Если одна или более групп подряд равны 0000, они могут быть опущены и заменены на двойное двоеточие (::). Например, 2001:0db8:0000:0000:0000:0000:ae21:ad12 может быть сокращён до 2001:db8::ae21:ad12. Адрес многоадресной рассылки FF02:0000:0000:0000:0000:0000:0000:0002, после применения правила принял вид FF02::2. Еще один способ заключается в удалении начальных нулей в каждом 16-битном блоке, например: 21DA:D3:0:2F3B:2AA:FF:FE28:9C5A.
В IPv6 отсутствует такое понятие, как маска подсети. IPv6-адрес делится на три части: Глобальный префикс (Global Routing Prefix) – аналогичен идентификатору сети (Network ID) в IPv4 и присваивается провайдерам. Определяется он тремя первыми блоками. Идентификатор подсети (Subnet ID) - представлен четвертым блоком и похож на идентификатор подсети (Subnet ID) в IPv4. Идентификатор интерфейса (Interface ID) - аналог Host ID в IPv4, определяет уникальный адрес хоста сети.
Существует несколько способов построения 64-битного идентификатора интерфейса: он может быть настроен вручную, определен DCHP-сервером или получен путем преобразования MAC-адреса сетевой карты. Вместо маски в IPv6 указывается префикс - количество бит, которые определяют часть блоков, отвечающих за Global Routing Prefix. Пишется префикс через косую черту после самого адреса. Возьмем для примера IPv6-адрес: 2001:0f68:0000:0000:0000:0000:1986:69af/48. Поскольку префикс (/48) указывает на первые 48 бит, можно сделать вид, что 2001:0f68:0000 будет являться частью Global Routing Prefix. Следующее поле, 0000, указывает на идентификатор подсети. Оставшиеся блоки 0000:0000:1986:69af – это идентификатор интерфейса.
Рисунок 1. Схема IPv6-адреса (Global Unicast)
Link Local Unicast - уникальный IP-адрес, автоматически получаемый хостом вне зависимости от наличия в сети маршрутизаторов и DHCPv6-серверов. Генерируется адрес довольно просто. Глобальный префикс (Global Routing Prefix) изначально определен (fe80) и занимает лишь первые 10 бит адреса. Так как префикс стал короче (по сравнению с Global unicast-адресом), то пространство, отведенное под идентификатор подсети, увеличилось с 16 бит до 54 бит. А поскольку адрес LLU создан только для локальной сети, то данные биты не используются и выражаются нулями. Оставшиеся 64 бита (идентификатор интерфейса) получаются путем несложного преобразования 48-битного MAC-адреса компьютера (см. рис. 2).
Рисунок 2. Схема IPv6-адреса (Link Local Unicast)
Пример такого преобразования: Узел A имеет MAC-адрес Ethernet 00-AA-00-3F-2A-1C. Сначала этот адрес преобразуется в формат EUI-64 путем вставки разрядов FF-FE между третьим и четвертым байтами: 00-AA-00-FF-FE-3F-2A-1C. Затем инвертируется бит U/L (седьмой бит в первом байте). Первый байт в двоичной форме имеет вид 00000000.
При инвертировании седьмого бита он принимает вид 00000010 (0x02). Конечный результат, 02-AA-00-FF-FE-3F-2A-1C, после преобразования в двухточечно-шестнадцатеричную нотацию становится идентификатором интерфейса: 2AA:FF:FE3F:2A1C. Таким образом, сетевому адаптеру с MAC-адресом 00-AA-00-3F-2A-1C соответствует адрес локальной связи FE80:: 2AA:FF:FE3F:2A1C.
Передача данных внутри локальной сети осуществляется с использованием Link Local Unicast , даже при наличии сконфигурированного Global Unicast-адреса. Unique Local Unicast - идеологически напоминает IPv4-адрес из зарезервированных диапазонов (10.0.0.0/8 или 192.168.0.0/24). Они также предназначены для работы в сетях, напрямую не связанных с Интернетом. Global Routing Prefix определяется первыми 8 битами и уже изначально задан (FD00::/8). Следующие 40 бит формируют Global ID – уникальный идентификатор, который представляет организацию. Он должен быть случайным, чтобы минимизировать возможность совпадения с другими организациями. Такая уникальность позволит осуществить объединение сетей и настроить маршрутизацию без их переконфигурирования. Еще 16 бит дают возможность создать 65536 подсетей и настроить маршрутизацию для внутреннего использования.
Ну и наконец, последние 64 бита отданы под идентификатор интерфейса (см. рис. 3).
Рисунок 3. Схема IPv6-адреса (Unique Local Unicast)
Одна из задач разработчиков протокола IPv6 состояла в предоставлении возможности автоконфигурирования интерфейсов. Важно понимать, что один интерфейс может иметь множество различных адресов IPv6. (В принципе, и при IPv4 интерфейс может иметь несколько адресов.) Таким образом, интерфейс может одновременно иметь Link Local и Global IPv6-адреса.
Процесс автоконфигурации начинается с получения Link Local-адреса, проверки его уникальности и определения того, какая информация должна быть получена автоматически (адреса, дополнительные параметры или и то, и другое). В случае если надо автоматически получить адрес, то через какой механизм он должен быть сконфигурирован: stateless или stateful? Механизм stateless требует минимального конфигурирования маршрутизатора, при этом дополнительные серверы не нужны. При stateless механизме хост генерирует собственный адрес из локальной информации (MAC-адрес) и информации, предоставленной маршрутизатором. Маршрутизатор объявляет префикс, идентифицирующий подсеть, а хост использует уникальный идентификатор интерфейса. Соединив их вместе, хост получает адрес IPv6. В отсутствии маршрутизатора хост может сформировать только Link Local-адрес. Однако даже такой адрес дает ему возможность работать с машинами, находящимися в его подсети. Автоконфигурирование по механизму stateful производится с помощью DHCPv6. В случае stateful хост получает адрес интерфейса и/или другую информацию с сервера (адреса DNS, как вариант). Администратор сети может определить, какой способ будет использоваться при помощи специальных ICMPv6-сообщений Router Advertisement messages. Механизмы stateless и stateful могут дополнять друг друга и использоваться совместно. Stateless может использоваться, когда точные адреса непринципиальны. Stateful, наоборот – когда требуется выдача конкретных адресов конкретным хостам. Поскольку осуществить переход с IPv4 на IPv6 в короткий срок – задача неосуществимая, было разработано несколько технологий взаимодействия в смешанных средах IPv4 и IPv6.
При использовании IPv6-адреса в URL необходимо заключать адрес в квадратные скобки. Если необходимо указать порт, то он пишется после скобок:
http://[2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d]:8080/
Доменные имена
Поскольку IP – адресация неудобна для запоминания, в сети Интернет повсеместно используются символьные адреса (доменные имена). Для поиска сервера в Интернете проще указать его имя, например, microsoft.com, чем IP-адрес. DNS-имя назначается администратором сети и состоит из имени машины, имени организации, имени домена. Идентификатор не может содержать более 4 слов, причем длина каждого из слов не более 64 символов, а вся запись – не более 255 символов. К примеру, в mmf.bsu.by mmf – имя узла («поддомен»), остальные являются «доменами» вышестоящего уровня.
Пространство доменных имен имеет иерархическую структуру. Корневой домен располагается на самом верху иерархии и обозначается точкой. Домены верхнего уровня объединяют компьютеры сети по географическому признаку или роду деятельности. Например: by, ru, uk определяют географическое положение (Беларусь, Россия, Украина). Ряд доменов, расположенных в США, считаются международными (com, edu, gov, org, net).
Домены второго уровня обычно относятся к названиям компаний и регистрируются владельцами доменов верхнего уровня. Домены третьего уровня обычно относятся к подразделениям внутри компаний. Каждый компьютер, по-другому узел или хост, в сети Internet однозначно определяется своим полным доменным именем.
Для совместимости числового IP-адреса и буквенного имени имеется служба DNS. При установке операционной системы протокол TCP/IP настраивается на сервер имен того домена, в который входит данный компьютер. Когда программе-клиенту требуется по доменному имени выяснить IP-адрес, она через протокол TCP/IP связывается с сервером DNS, передавая ему свой запрос. Сервер имен ищет домен в базе данных, находит IP-адрес и возвращает клиенту. Если запрашиваемое доменное имя не входит в его базу, он переадресует запрос вышестоящему серверу.
URL адреса
Для доступа к ресурсу Интернет указывается не просто адрес ресурса, а его URL(Uniform Resource Locator, унифицированный определитель ресурсов). Схему URL адреса можно представить так:
http://login:pass@my.by:8080/mydoc.htm.html
ftp://login:pass@tyt.by:6789/good/my/doc-nujnoe/cimus
В URL, используемых в Web, логин, пароль и порт используются редко. После знака вопроса в URL могут быть GET параметры, а также так называемый якорь, который добавляется в конце после символа решетки «#» Якоря заранее проставляются внутри Html кода веб страницы, а затем, добавив название этого якоря к URL адресу страницы через символ решетки «#», вы сможете перейти не на начало веб страницы, а сразу к месту, где был проставлен якорь.
Пару слов о различных кодировках, которые используются в URL. Без перекодирования в URL можно использовать только ограниченное количество символов: [0-9],[a-z],[A-Z],[_],[-]. Использование других символов (включая русские и пробелы) в URL адресах допустимо, но будет происходить перекодировка этих символов (URL Encoding). Каждый символ кириллицы кодируется с помощью двух байт в Юникоде (UTF-8), записанных в шестнадцатеричном коде и разделенных знаком процента «%». Например:
http//my.by/%BE%D0%B3%D0%D1%82%D0%BE%20%D0%BD
Можно порекомендовать использовать строчные латинские символами.
Кроме адреса хоста при передаче пакета данных указывается порт. Например, адрес БГУ “Проспект Независимости 4”. Но в БГУ много кабинетов и аудиторий, без указания номера которых, ничего нельзя найти. Аналогичная ситуация с портом. Порт имеет длину 2 байта, записывается через ":". Например BSU.by:80. Существует 3 типа портов:
а) Assigned port – назначенный порт. Номера 0 – 1023
б) Registered port – зарегистрированный порт 1024 – 49151
в) Dynamic port – динамический порт 1024 – 65535
Комбинация IP-адреса и номера порта позволяет однозначно идентифицировать программу в сети. Такой комбинированный адрес определяет сокет (socket).