Маски в IP-адресации.
Применяются для установления более гибкой границы между номером сети и номером узла.
Маска – это число, которое используется в паре с IP-адресом. Двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети. (Эти единицы должны представлять непрерывную последовательность).
Например, для класса С маска имеет вид: 255.255.255.0.
Может использоваться и другая запись. Например: 185.23.44.206/16 указывает на то, что для адреса сети используется 16 разрядов.
Маска может иметь произвольное число разрядов, например:
IP-адрес: 129.64.134.5
Маска: 255.255.128.0, т.е. /17
Здесь маска указывает на то, что для адреса сети используются не 15 бит (как в сети класса В), а 17 бит. Наложив маску на номер получим:
Номер сети: 129.64.128.0
Номер узла: 0.0.6.5
Механизм масок широко распространен в IP-маршрутизации. С их помощью администратор может структурировать свою сеть, не требуя от поставщика услуг дополнительных номеров сетей.
Протокол IPv6
Протокол IPv4 существует более 20 лет и к середине 90-х годов стало ясно, что его ресурсы (в смысле адресации) скоро будут исчерпаны. Версия IPv6 (ее еще называют IPng – протокол IP нового поколения) была принята в 1995 году (документ RFC 1752). В настоящее время осуществляется постепенный переход на эту новую версию. Существует уже несколько фрагментов Internet, маршрутизаторы которых поддерживают обе версии IP. Эти фрагменты образуют так называемую 6 bone (шестую магистраль) в Интернете.
Для того, чтобы передавать дейтаграммы IPv6 магистраль 6 bone инкапсулирует их в дейтаграмму IPv4 и передает их через те участки Internet, которые еще не поддерживают новую версию протокола. Этот процесс называется туннелированием.
Для перехода на новую версию создаются также узлы с двойным стеком TCP/IPv4 и TCP/IPv6. Наиболее существенно в шестой версии (v6) отличается схема адресации. Под адрес отводится 128 бит. Вместо 2-х уровней адресации, используемой в v4, в шестой версии введено 5 уровней. Это:
Префикс;
Идентификатор провайдера;
Идентификатор абонента;
Идентификатор подсети;
Идентификатор узла.
Первые 64 бита адреса распределяются следующим образом. Префикс определяет тип адреса (введено 20 типов). Далее указывается идентификатор организации, ответственной за выделение адресов провайдерам, следом за ним указывается непосредственно идентификатор провайдера, а за ним – идентификатор пользователя, назначенный провайдером.
Вторая половина адреса (64 бита) – это адрес сети и номер устройства.
Такая структура адреса существенно упрощает маршрутизацию, т.к. поле «идентификатор провайдера» позволяет сразу определить сеть.
В IPv6 отменено разделение адресов на классы. Деление IP-адреса на адрес подсети и адрес устройства производится на основе маски переменной длины, которая назначается провайдером.
Для плавного перехода к IPv6 введен специальный тип адреса IPv4 compatible (совместимый с IPv4), который содержит 96 нулей, а 32 младших разряда – это обычный адрес IPv4.
Формат основного заголовка IPv6, показанный на рисунке 6.13, содержит 40 байт.
Поле «приоритет» может иметь значение , относящееся к одной из двух категорий. Если «приоритет» имеет значение от 0 до 7, то такой приоритет маршрутизатор может не учитывать (пренебречь им). Если же значение приоритета находится в диапазоне от 8 до 15, то это указывает на принадлежность пакета к трафику аудио- или видеоинформации (передаваемому с постоянной скоростью и в реальном масштабе времени). Такой приоритет маршрутизатор обязан учитывать.
Рис.6.13.
Поле «метка протокола» указывает на принадлежность данной дейтаграммы к некоторой последовательности – потоку, который требует определенных параметров обслуживания.
Поле «следующий заголовок» по своему значению соответствует полю «протокол» в версии 4. Оно определяет тип заголовка, который первым включен в поле данных пакета. Каждый следующий заголовок тоже содержит аналогичное поле.
Поле «лимит количества переходов» указывает на максимально допустимое количество промежуточных узлов при передаче пакета.
В качестве дополнительных заголовков (на которые указывает поле «следующий заголовок») могут, например, использоваться:
· Routing — содержит полный маршрут при маршрутизации от источника.
· Fragmentation — Протокол IPv6 не разрешает выполнять фрагментацию на промежуточных узлах (для повышения производительности при маршрутизации). Отправитель сам производит (при необходимости) фрагментацию и использует дополнительный заголовок «fragmentation», который идентифицирует фрагмент исходной дейтаграммы.
Для предварительного определения минимального значения MTU используется механизм MTU path discovery process (процесс выяснения значений MTU на пути следования). Он заключается в следующем. Отправитель посылает дейтаграмму с длиной, соответствующей той сети, к которой он подключен. Если заданное значение MTU велико для какой-нибудь их промежуточных сетей, то с помощью протокола ICMP отправителю будет послано сообщение «Datagram Too Big» с указанием рекомендованного для этой сети значения MTU. Отправитель скорректирует MTUи снова отправит дейтаграмму и т.д. пока эта дейтаграмма не сможет пройти все промежуточные узлы.
· Encription — используется для шифрования и дешифрования передаваемых данных.
Протокол TCP
Протокол IP является дейтаграммным протоколом и не может гарантировать надежность передачи данных. Эту задачу – обеспечение надежного канала обмена данными между прикладными процессами в составной сети – решает протокол TCP (управления передачей), относящийся к транспортному уровню (рис.6.14.).
Рис.6.14.
Перед отправкой своих данных TCP помещает их в оболочку IP-пакета. Протокол IP используется протоколом TCP в качестве транспортного средства. Протокол TCP взаимодействует через межуровневые интерфейсы с нижележащим протоколом IP и лежащими выше протоколами прикладного уровня (например, HTTP).
Точки входа прикладных процессов (у некоторых из них таких точек может быть несколько) с соответствующими системными очередями называются портами.
Адресом назначения, который использует протокол TCP, является номер (идентификатор) порта прикладной службы. Совокупность: «номер сети»+«номер узла»+«номер порта» однозначно определяет прикладной процесс и носит название сокета (socket).
Назначение номеров портов производится централизованно (например: 21 – FTP, 23 – telnet), либо локально (если это еще не стандартизовано). При локальном присвоении берется любой из еще не распределенных номеров (рис.6.15.).
Протокол TCP ведет для каждого порта две очереди: исходящих и входящих пакетов. Процедура обслуживания протоколом TCP запросов, поступающих от нескольких прикладных служб называется мультиплексированием. Обратная процедура распределения поступающих пакетов, идентифицированных номерами портов, называется демультиплексированием.
Единицей данных протокола TCP является сегмент. Данные, поступающие от прикладного процесса в виде потока, разрезаются на сегменты. Максимальный размер сегмента выбирается таким образом, чтобы при упаковке сегмента в IP-пакет он помещался туда целиком.
Для организации надежной передачи данных предусматривается установление логического соединения между двумя прикладными процессами. Соединение в протоколе TCP идентифицируется парой сокетов (т.е. полных адресов процессов).
В результате переговоров при установлении соединения согласуется некоторый набор параметров. К ним относятся, например, согласованные размеры сегментов, объемы данных, которые разрешено передавать без получения на них подтверждения, начальные номера передаваемых байтов.
Рис 6.15.
В рамках соединения осуществляется обязательное подтверждение правильности приема всех сообщений и при необходимости выполняется их повторная передача. Соединение является полнодуплексным, т.е. позволяет одновременно передавать в обе стороны.
Окно передачи.
Правильность передачи подтверждается квитанцией получателя. В TCP применяется частный случай квитирования – алгоритм скользящего окна.
Получающий модуль TCP отправляет партнеру «окно». Это окно задает то число байтов, которое он готов принять, начиная с номера байта, на который уже была выслана квитанция.
Квитанции.
Квитанция посылается только в случае правильного приема данных (отрицательные квитанции не посылаются). Таким образом отсутствие квитанции может означать:
· прием искаженного сегмента;
· потерю сегмента;
· потерю квитанции.
В качестве квитанции используется поле «номер подтверждения» в заголовке сегмента. В нем помещается число на единицу большее максимального номера байта в полученном сегменте (т.е. это номер следующего ожидаемого на приеме байта). Это число часто называют номером очереди.
Дата добавления: 2016-04-11; просмотров: 760;