
- •Методы локальной пользовательской маршрутизации Алгоритм Дейкстры
- •Лекция 4
- •Token Ring и ieee 802.5.
- •Сравнение Token Ring и ieee 802.5
- •Передача маркера
- •Физические соединения
- •Система приоритетов
- •Механизмы управления неисправостями
- •Формат блока данных
- •Протокол udp
- •Назначение полей udp пакета:
- •Протокол tcp
- •Назначение полей tcp пакета:
- •Установление соединения, передача данных и завершение соединения.
- •Механизмы обеспечения достоверности передаваемых данных.
- •Механизм управления потоком данных
- •Лекция 7 Маршрутизация в сетях tcp/ip
- •Алгоритмы маршрутизации
- •Дистанционно-векторный протокол rip.
- •Характеристики протокола rip.
- •Механизмы работы протокола rip.
- •Формат rip-пакета.
- •Лекция 8 Протокол состояния связей ospf
- •Принцип работы
- •Формат пакета ospf.
- •Лекция 9 Протоколы достижимости egp и bgp Протокол egp
- •Egp выполняет три основные функции:
- •Формат заголовка egp-пакета.
- •Протокол bgp
- •Формат заголовка bgp-пакета
- •Сообщения bgp.
- •1. Терминология
- •2. Формат заголовка iPv6
- •3. Ip версия 6 архитектуры адресации
- •4. Модель адресации
- •4.1. Представление записи адресов (текстовое представление адресов)
- •0:0:0:0:0:0:13.1.68.3 0:0:0:0:0:Ffff:129.144.52.38
- •4.2. Представление типа адреса
- •4.3. Уникастные адреса
- •4.3.1. Примеры уникастных адресов
- •4.4. Не специфицированный адрес
- •4.5. Адрес обратной связи
- •4.6. IPv6 адреса с вложенными iPv4 адресами
- •4.7. Nsap адреса
- •4.8. Ipx Адреса
- •4.9. Провайдерские глобальные уникаст-адреса
- •4.10. Локальные уникаст-адреса iPv6
- •4.11. Эникаст-адреса
- •4.11.1. Необходимые эникаст-адреса
- •4.12. Мульткаст-адреса
- •11111111 В начале адреса идентифицирует адрес, как мультикатинг-адрес.
- •4.12.1. Предопределенные мультикаст-адреса
- •4.13. Необходимые адреса узлов
- •5. Заголовки расширения iPv6
- •5.1. Порядок заголовков расширения
- •6. Опции
- •6.1. Опции заголовка Hop-by-Hop (шаг за шагом)
- •7. Маршрутный заголовок
- •8. Заголовок фрагмента
- •9. Заголовок опций места назначения
- •10. Отсутствие следующего заголовка
- •11. О размере пакетов
- •12. Метки потоков
- •13. Приоритет
- •14. О протоколе верхнего уровня 14.1 Контрольные суммы верхнего уровня
- •15. Максимальное время жизни пакета
- •16. Максимальный размер поля данных для протоколов высокого уровня
- •Sctp Материал из Википедии — свободной энциклопедии
- •Многопоточность
- •Достоинства
- •Причины появления
- •Сравнение возможностей протоколов транспортного уровня
- •Архитектура sctp
- •Функционирование sctp
- •Sctp Материал из Wiki.Inattack.Ru.
- •Проблемы tcp
- •Свойства sctp
- •Многодомность
- •Инициация
- •Передача данных
- •Отключение
- •Структура пакета
- •Обработка ошибок
- •Лекция 15 Технологии параллельного программирования. Message Passing Interface (mpi)
- •Mpi. Терминология и обозначения
- •Общие процедуры mpi
- •Прием/передача сообщений между отдельными процессами Прием/передача сообщений с блокировкой
- •Прием/передача сообщений без блокировки
- •Объединение запросов на взаимодействие
- •Совмещенные прием/передача сообщений
- •Коллективные взаимодействия процессов
- •Синхронизация процессов
- •Работа с группами процессов
- •Предопределенные константы Предопределенные константы типа элементов сообщений
6.1. Опции заголовка Hop-by-Hop (шаг за шагом)
Заголовок опций hop-by-hop (шаг за шагом) используется для опционной информации, которая просматривается каждым узлом по пути доставки. Заголовок опций hop-by-hop идентифицируется кодом поля следующий заголовок 0 в IPv6 заголовке и имеет формат (рис. 4.4.1.1.18):
Рис. 4.4.1.1.18. Формат заголовка опций hop-by-hop
Следующий заголовок |
8-битовый селектор. Определяет тип заголовка, который следует непосредственно за заголовком опций hop-by-hop. Использует те же значения поля протоколов, что и IPv4 [RFC-1700] |
HDR EXT LEN |
8-битовое число без знака. Длина заголовка поля опций hop-by-hop в октетах, исключая первые 8 октетов. |
Опции |
Поле переменной длины. Содержит один или более TLV-закодированных опций. |
В дополнение к Pad1 и Padn опциям определены следующие опции hop-by-hop:
Опция Jumbo Payload |
(необходимо выравнивание: 4n + 2) |
Рис. 4.4.1.1.19.
Опция Jumbo payload используется для посылки пакетов IPv6 с полем данных, превосходящим 65535 октетов. Длина Jumbo Payload характеризует длину пакета в октетах, исключая заголовок IPv6, но включая заголовок опций hop-by-hop; Это поле должно содержать код более чем 65535. Если получен пакет с опцией Jumbo payload, содержащей код длины меньше или равный 65535, посылается сообщение ICMP (parameter problem, код 0) с указателем на старший октет поля длины Jumbo payload.
Поле длины Payload length IPv6 заголовка должно быть равно нулю для каждого пакета с опцией Jumbo payload. Если получен пакет с корректным значением опции Jumbo Payload и ненулевым кодом длины поля данных, посылается сообщение ICMP (parameter problem код 0) с указателем на поле тип опции.
Опция Jumbo payload не может использоваться в пакетах, которые несут в себе заголовок фрагмента. Если заголовок фрагмента встретится в пакете, содержащем корректную опцию jumbo payload, посылается сообщение ICMP (parameter problem, код 0) с указателем на первый октет заголовка фрагмента.
Приложения, которые не поддерживают опцию Jumbo Payload, не могут иметь интерфейсы для каналов с MTU больше 65575 (40 октетов IPv6 заголовка плюс 65535 октетов данных).
7. Маршрутный заголовок
Заголовок маршрутизации используется отправителем, чтобы заставить пакет посетить один или более промежуточных узлов на пути к месту назначения. Эта функция схожа с опцией принудительной маршрутизации в протоколе IPv4. Заголовок маршрутизации идентифицируется кодом 43 поля следующий заголовок предыдущего заголовка и имеет формат:
Следующий заголовок |
8-битовый селектор. Определяет тип заголовка, который следует непосредственно за заголовком маршрутизации. Использует те же коды протоколов, что и IPv4 [RFC-1700]. |
hdr ext len |
8-битовое целое без знака. Длина заголовка маршрутизации выражается в 8-октетных блоках, и не включает в себя первые 8 октетов. |
Тип маршрутизации |
8-битовый идентификатор конкретного варианта маршрутизации |
Оставшиеся сегменты |
8-битовое число без знака. Число остающихся сегментов пути, т.e. число промежуточных узлов, которые должны быть посещены пакетом по пути к месту назначения. |
Данные, зависящие от типа |
Поле переменной длины, формат зависит от кода поля тип маршрутизации, а длина определяется заголовком маршрутизации и кратна 8 октетам. |
Если в процессе обработки входного пакета встретится заголовок маршрутизации с не узнанным полем тип маршрутизации, то поведение узла зависит от содержимого поля число оставшихся сегментов пути.
Если число оставшихся сегментов пути равно нулю, узел должен проигнорировать заголовок маршрутизации и продолжить работу со следующим заголовком, чей тип указан в поле следующий заголовок заголовка маршрутизации.
Если число оставшихся сегментов пути не равно нулю, узел должен выбросить пакет и послать сообщение ICMP (parameter problem, код 0) с указателем на поле не узнанного типа маршрутизации. Заголовок маршрутизации типа 0 имеет следующий формат (рис. 4.4.1.1.20):
Рис. 4.4.1.1.20. Формат заголовка маршрутизации типа 0
Следующий заголовок |
8-битовый селектор. Идентифицирует тип заголовка, следующего непосредственно за заголовком маршрутизации. Использует те же коды протоколов, что и IPv4 [RFC-1700]. |
hdr ext len |
8-битовое целое без знака. Длина заголовка маршрутизации в 8-октетных блоках, исключая первые 8 октетов. Для заголовков маршрутизации типа 0 hdr ext len равна удвоенному числу адресов в заголовке, должно быть четным числом меньше или равным 46. |
Тип маршрутизации |
0. |
Оставшиеся сегменты |
8-битовое целое без знака. Число оставшихся сегментов пути, т.e., число узлов, которые следует посетить на пути к месту назначения. Максимально допустимое число = 23 |
Резерв |
8-битовое поле резерва. Инициализируется нулем при передаче и игнорируется при приеме. |
strict/loose bit map |
24-битовый код-маска, биты пронумерованы, начиная с 0 до 23, слева направо. Для каждого из сегментов пути указывает должен ли следующий узел быть соседом: 1 означает strict (должен быть соседом), 0 означает пропустить (не должен быть соседом). |
Адрес[1..n] |
Вектор 128-битовых адресов, пронумерованных с 1 до n. |
Мультикастинг-адреса не должны встречаться в заголовке маршрутизации типа 0, или в поле места назначения IPv6 пакета, несущего в себе заголовок маршрутизации типа 0.
Если бит 0 поля Strict/loose bit map имеет значение 1, поле адреса места назначения IPv6 заголовка в исходном пакете должно идентифицировать соседа. Если бит 0 имеет значение 0, отправитель может использовать любой легальный не мультикастинговый адрес в качестве адреса места назначения.
Биты с номерами более n, где n - число адресов в заголовке маршрутизации, должны быть обнуляться отправителем и игнорироваться получателем.
Заголовок маршрутизации не рассматривается и не анализируется до тех пор, пока пакет не достигнет места назначения, указанного в поле IPv6 заголовка. Узел, указанный в поле следующий заголовок заголовка, которому принадлежит модуль заголовка маршрутизации, реализует следующий алгоритм:
Если оставшееся число сегментов = 0 { продолжить обработку следующего заголовка пакета, чей тип задан полем следующий заголовок заголовка маршрутизации }
else если HDR ext len является нечетным или больше 46, {посылается сообщение ICMP (parameter problem, код 0) с указателем на поле HDR #EXT LEN, пакет выбрасывается}
else { вычислить n, число адресов в заголовке маршрутизации, для этого код HRD EXT LEN делится на 2
Если число оставшихся сегментов пути больше n, {послать сообщение ICMP (parameter problem, код 0) с указанием на поле числа оставшихся сегментов пути }
else
{ уменьшить число оставшихся сегментов пути на 1;
Вычислить i, индекс следующего адреса, который следует посетить, для этого вычесть число оставшихся сегментов пути из n
Если адрес [i] или адрес места назначения IPv6 являются мультикастинговыми
{ выбросить пакет }
else { поменять местами адрес места назначения IPv6 и адрес[i]
если бит i поля strict/loose bit map имеет значение 1 и новый адрес места назначения не является адресом узла соседа
{ послать сообщение ICMP destination unreachable -- not a neighbor и выбросить пакет }
else если код IPv6 hop limit меньше или равен 1 {послать сообщение icmp time exceeded -- hop limit exceeded in transit message и выбросить пакет }
else { уменьшить hop limit на 1 повторно направить пакет модулю IPv6 для отправки новому адресату } } } }
В качестве примера работы приведенного выше алгоритма, рассмотрим случай, когда узел отправителя s посылает пакет получателю D, используя заголовок маршрутизации, чтобы заставить пакет пройти через промежуточные узлы I1, I2 и I3. Значения кодов полей заголовка IPv6 и заголовка маршрутизации для каждого из сегментов пути принимают следующие значения:
При движении пакетов от S к I1:
Адрес отправителя = S |
Hdr Ext Len = 6 |
Адрес получателя = I1 |
Число оставшихся сегментов пути = 3 |
Адрес[1] = I2 | |
Если бит 0 bit map равен 1, s и i1 должны быть соседями; это проверяется узлом S |
Адрес[2] = I3 Адрес[3] = d |
При движении пакетов от I1 к I2:
Адрес отправителя = s |
Hdr Ext Len = 6 |
Адрес получателя = I2 |
Число оставшихся сегментов пути = 2 |
Адрес[1] = I1 | |
Если бит 1 bit map равен 1, I1 и I2 должны быть соседями; это проверяется узлом I1 |
Адрес[2] = i3 Адрес[3] = D |
При движении пакетов от I2 к I3:
Адрес отправителя = S |
Hdr Ext Len = 6 |
Адрес получателя = I3 |
Число оставшихся сегментов пути = 1 Адрес[1] = I1 |
Если бит 2 bit map равен 1, I2 и I3 должны быть соседями; это проверяется узлом I2 |
Адрес[2] = I2 |
Адрес[3] = D |
|
При движении пакетов от I3 к D:
Адрес отправителя = S |
Hdr Ext Len = 6 |
Адрес получателя = D |
Число оставшихся сегментов пути = 0 Адрес[1] = I1 |
Если бит 3 bit map равен 1, I3 и D должны быть соседями; это проверяется узлом I3 |
Адрес[2] = I2 Адрес[3] = i3 |