Добавить в закладки

AddThis Social Bookmark Button

Последние комментарии

Авторизация



  
Протоколы
Обзор протоколов передачи данных

  • iSCSI   ( 2 Материалы )

  • DWDM   ( 3 Материалы )

  • WAN   ( 7 Материалы )

  • FCIP   ( 4 Материалы )

Обзор технологии TCP/IP
FCIP
Обзор технологии TCP/IP
Протокол Transmission Control Protocol (TCP), является надежным транспортным протоколом, ориентированным на большое количество соединений между конечными точками. TCP передает данные определенными последовательностями, через небольшие промежутки времени. Получатель подтверждает получение данных (команда ACK), и передает дальше, если это требуется.

Данные передаются, после установления соединения между конечными точками. Поток передаваемых данных, состоит из восьмибитной последовательности, каждый бит из которой несет свое значение. В данной главе будут рассмотрены следующие темы:
◆ “IPv6
◆ “Терминология TCP
◆ “Восстановление ошибок в TCP
◆ “Перегрузка сети
◆ “Безопасный интернет протокол (IPsec)

IPv6
Интернет протокол версии 6 (IPv6), является протоколом передачи данных, предназначенный для работы в сетях с коммутаторами, пришедший на замену IPv4.  
Основным преимуществом  IPv6, является расширение адресного пространства подключаемых устройств. В отличие от 32-х битного IPv4,  IPv6, является 128 битным.
Расширение адресного пространства, упрощает передачу данных, например, не требует динамического роутинга, а также упрощает работу коммутаторов. Он также обходит ограничения IPv4, при работе с Classless Inter-Domain Routing (CIDR). Упрощенный формат заголовка пакета упрощает пересылку пакетов и роутинг. Более подробно об этом ознакомиться, можно в разделах “Расширенное адресное пространство ” и “Адресация ”.
В разделе будут рассмотрены:
◆ “Особенности IPv6
◆ “Состояние внедрения
◆ “Адресация
◆ “Пакет IPv6
◆ “Механизмы преобразования


Особенности IPv6
Большинство транспортных уровней и уровней приложений, протокола IPv6, требуют небольших изменений (или вообще не требуют), для работы с IPv6. За исключением некоторых сетевых протоколов, которые используют адресацию сети (таких, как FTP и NTPv3).
Обычно, приложения требуют небольших изменений, для работы через IPv6. В данном разделе, будут рассмотрены следующие особенности протокола:
◆ “Расширенное адресное пространство
◆ “Автоконфигурация узлов
◆ “Многоадресный пакет
◆ “Большие пакеты
◆ “Безопасность сетевого уровня

Расширенное адресное пространство
Основной особенностью IPv6, является расширенное адресное пространство, 128 бит, к примеру, IPv4 имеет адресное пространство длинной в 32 бита. Использование расширенного адресного пространства, решает проблемы с исчерпанием адресного пространства IPv4, и как следствие, не требует использования транслирования сетевых адресов (NAT) и различных маршрутизирующих устройств.
В некоторых случаях, NAT может быть нужен, но нет острой необходимости для функционирования IPv6.
Это упрощает администрирование больших и средних сетей, исключая необходимость использования множества подсетей. Подсети будут использоваться для разбиения сетей на логические сегменты, с целью контроля доступа и маршрутизации.
Есть несколько проблем, связанных с большим адресным пространством. К примеру, на участках сетей, где пропускная способность ограничена, IPv6 будет использовать больше ресурсов, чем IPv4. Для решения данной проблемы, может быть использована компрессия заголовка пакета. Адреса IPv6, требуют больше памяти, чем адреса IPv4 и имена Domain Name System (DNS). Протокол DNS, также был изменен для поддержки IPv6.
Дополнительная информация в разделе “Адресация

Автоконфигурация узлов
Узлы, работающие с IPv6, могут автоматически настраиваться при подключении к маршрутизатору  IPv6. Когда узел подключается в сеть, он отправляет многоадресный пакет с запросом конфигурационных параметров. Если маршрутизатор настроен на прием таких пакетов, он отправляет пригласительный пакет, содержащий конфигурационные параметры сети IPv6.
Если  IPv6 автоконфигурация не настроена, узел может использовать автоконфигурацию сети (DHCPv6), или быть настроен в ручную.
Автоконфигурация может быть настроена не только на узлах, маршрутизаторы и другие устройства, могут использовать автоматическую настройку параметров сети.

Многоадресный пакет
В большинстве случаев, сетевая инфраструктура не настроена для роутинга многоадресных пакетов. По этому, многоадресный пакет, получат устройства одной подсети, и он не перейдет в другую подсеть. Многоадресные пакеты IPv6 (FF02::1), не содержат подсеть, которая ограничивала бы их прием.

Большие пакеты
IPv6 может опционально поддерживать передачу пакетов, большей длинны, чем IPv4 (64 KB).  Коммутаторы, также должны поддерживать данный режим. Размер пакетов, поддерживаемых для передачи через IPv6, ограничен размером в 4 GB. Использование больших пакетов, может увеличить производительность сети, через большие MTU (Maximum Transmission Unit).

Безопасность сетевого уровня
IPsec (IP security), предназначен для шифрования и аутентификации на сетевом уровне IP и входит в базовый функционал IPv6. В IPv4, это опциональная честь. IPsec используется для шифрования трафика между маршрутизаторами IPv6 Border Gateway Protocol (BGP) (основной протокол маршрутизации в Internet).

Состояние внедрения
Начиная с декабря 2005, адреса IPv6 занимают доли процентов адресов в Internet, основная часть адресов, используется IPv4. Большинство функционала IPv6 были перенесены на IPv4, за исключением автоконфигурирования, более гибкой адресации и Secure Neighbor Discovery (SEND).
Предполагается, что IPv4 исчерпает свое адресное пространство в промежутке времени с 2011 (из отчета специалистов Cisco Systems за 2005 г) по 2023 (по прогнозу Paul Wilson директора APNIC).
Чтобы подготовиться к неизбежному, ряд государств стали активно внедрять поддержку IPv6. Например, правительство США дало ряд указаний по переводу внутренних сетей федеральных агентств на IPv6 в 2008, а также купило 247 биллионов адресов IPv6. Китай имеет 5-ти летний план по переходу на IPv6, он называется “China Next Generation Internet”.



Адресация
В этом разделе будут расмотренны следующие темы:
◆ “128 битная адресация
◆ “Обозначения
◆ “Буквенные IPv6 адреса в URL
◆ “Обозначение сетей
◆ “Типы адресов IPv6
◆ “Специальные адреса
◆ “Индексы зон

128 битная адресация
Основным изменением в IPv6, по сравнению с IPv4, как говорилось “Расширенное адресное пространство ”, является расширенное адресное пространство. Адреса в IPv6, имеют длину в 128 (как определено в RFC 4291), в отличие от адресов IPv4 в 32 бита.
Арес IPv6, обычно состоит из двух логических частей: 64 битной маски сети и 64-х битного префикса узла, который автоматически генерируется на основе MAC (Media Glossary Link Access Control) адреса интерфейса, либо назначается вручную. Зная MAC адрес, можно отслеживать сетевое оборудование и пользователя по изменению адреса IPv6. Для обеспечения анонимности, присущей в сетях IPv4, разработано правило RFC 3041, которое препятствует отслеживанию пользователя в IPv6 сетях, при помощи адреса. RFC 3041 определяет механизм, по которому, время от времени, в произвольном порядке меняется часть MAC адреса.

Обозначения
Адреса IPv6 обычно пишутся, как восемь групп по четыре шестнадцатеричных числа. Для примера, рассмотрим следующий адрес IPv6:
2001:0db8:85a3:08d3:1319:8a2e:0370:7334
Одну, или более группу из четырех цифр 0000, содержащих нулевые значения, можно заменить двумя двоеточиями (::). К примеру, 2001:0db8:0000:0000:0000:0000:1428:57ab можно сократить до 2001:0db8::1428:57ab. Следуя правилу, любой адрес, содержащий группу 0000, можно сократить двумя двоеточиями, т.к. всего одна такая последовательность может присутствовать в адресе. Ведущие нули в адресе, также могут быть пропущены (::1 обозначение для localhost). Например, вот список адресов, которые эквиваленты:
2001:0db8:0000:0000:0000:0000:1428:57ab
2001:0db8:0000:0000:0000::1428:57ab
2001:0db8:0:0:0:0:1428:57ab
2001:0db8:0:0::1428:57ab
2001:0db8::1428:57ab
2001:db8::1428:57ab

Адрес, который имеет более одной последовательности, содержащей четыре нуля в разных частях, считается неправильным, т.к. он будет иметь неоднозначную трактовку. Последовательность из 4-х бит, в конце адреса IPv6, может быть записана в десятеричной системе, с использованием, в качестве разделителей точки. Это обозначение, обычно используется для совместимости адресов. Для примера, эти адреса одинаковы:
::ffff:1.2.3.4
::ffff:0102:0304 и 0:0:0:0:0:ffff:0102:0304.
Дополнительную информацию можно найти в RFC 4291 — IP Version 6 Addressing Architecture.

Буквенные IPv6 адреса в URL
Ареса IPv6 в URL, обозначаются в квадратных скобках. К примеру:
http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]/
Также можно указывать номер порта в строке адреса:
https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/
Дополнительную информацию можно найти в "RFC 2732 — Format for Literal IPv6 Addresses in URLs", а также "RFC 3986 — Uniform Resource Identifier (URI): Generic Syntax."

Обозначение сетей
Запись сетевых обозначений, строится при помощи IPv6 CIDR (Classless Inter-Domain Routing).
Сеть, либо подсеть IPv6, содержит группу адресов IPv6, размер сегмента, должен быть кратен двум. Первый бит адреса, является основным для всех узлов сети, и называется префиксом сети. Сеть обозначается первым адресом в сети и количеством бит в префиксе (в десятеричной системе счисления), от адреса отделяется слэшом. Пример:
2001:0db8:1234::/48
Данный адрес принадлежит сетям с адресами:
от 2001:0db8:1234:0000:0000:0000:0000:0000 до 2001:0db8:1234:FFFF:FFFF:FFFF:FFFF:FFFF
Если узел должен быть виден в сетях с 128 битным префиксом, то его адрес будет указан с префиксом /128.

Типы адресов IPv6
Адреса IPv6, разделяют на следующие категории:
Unicast Addresses — Указывает на конкретный адрес в сети. Пакет отправляется, строго по адресу и приходит получателю.
Multicast Addresses — Используется для обозначения набора адресов узлов получателей. Если пакет многоадресный, протокол доставляет пакет всем адресам, соответствующим маске получателей. Многоадресный пакет, начинается с префикса FF00::/8. Вторые восемь цифр в поле адреса, указывает диапазон значений адресов получателей. Часто используются диапазоны: link-local (2), site-local (5) и global (E).
Anycast Addresses — Также предназначается более чем одному сетевому интерфейсу. Такой пакет доставляется только до первого получателя, обычно ближайшего. Такой адрес не просто выявить. Такие пакеты имеют структуру обычного unicast адреса, различие, лишь в том, что в нем указывается путь маршрутизации пакета.

Специальные адреса
There are a number of addresses with special meaning in IPv6:
◆ ::/128 — Адрес, состоящий из всех нулей, является неопределенным и может быть использован, только в софте.
◆ ::1/128 — Адрес возврата (localhost). Если приложение на узле, отправляет пакет на данный адрес, стэк IPv6, вернет данный пакет обратно узелу-отправителю. (соответсвует адресу 127.0.0.1 в IPv4).
◆ ::/96 — Данный префикс использовался, для IPv4 совместимых адресов, на данный момент, устарел.
◆ ::ffff:0:0/96 — Данный префикс, используется для задания соответствия с адресом IPv4 (см. “Механизмы передачи”).
◆ 2001:db8::/32 — Данный префикс используется в документации (RFC 3849). Адреса с таким префиксом могут быть использованы, где угодно.
◆ 2002::/16 — Данный префикс используется для адресации IPv4 и IPv6.
◆ fc00::/7 — Unique Local Addresses (ULA) маршрутизируется только между набором сайтов. Определен в RFC 4193 в замещение адресации локальных адресов. Данные адреса, включают в себя псевдослучайный 40 битный номер, который минимизирует риски, связанные с конфликтами адресов, при объединении сетей. Данное адресное пространство разделяют на две части:
• fc00::/8 — ULA Central, в настоящее время не.
• fd00::/8 — ULA, как генератор точки RFC 4193, официально не зарезервирован.
◆ fe80::/64 — Данный префикс используется, только для локальных физических соединений. Это аналог Автоконфигурируемому адресу 169.254.0.0/16 в IPv4.
◆ fec0::/10 — Префикс, используемый, для определения локальной сети.
Использование данного префикса не рекомендуется RFC 3879 с Сентября 2004, и системы не должны поддерживать данный вид адресации.
◆ ff00::/8 — Многоадресный префикс, используется для обозначения множества адресов, как определено в "IP Version 6 Addressing Architecture" (RFC 4291).
Для broadcast сигналов, нет ограничения в адресации IPv6. Приложения часто используют многоадресные пакеты для рассылки по группе узлов. Организация IANA ведет официальный лист адресного пространства IPv6. Глобальные адреса, могут, быть найдены в различных RIR, или на страницах (Ghost Route Hunter) DFP.

Индексы зон
Локальные адреса, представляют потенциальную проблему для систем с большим количеством сетевых интерфейсов. Каждый интерфейс, может быть подключен к различным сетям, и эти адреса могут появиться в одной подсети и это вызовет проблемы с таблицами маршрутизации.
К примеру, узел A имеет два интерфейса, которые автоматически получили адреса локальной сети (fe80::1/64 и fe80::2/64), только один из интерфейсов подключен в одну физическую сеть с узлом B, который имеет адрес fe80::3/64. Если узел A попытается передать данные на адрес fe80::3, как он узнает, через какой интерфейс их отправлять (fe80::1 или fe80::2)?
Решение данной проблемы определено в RFC 4007, как уникальный индекс зоны для локального интерфейса, и представляется в текстовом виде в форме <адрес>%<индекс зоны>. Пример:
http://[fe80::1122:33ff:fe11:2233%eth0]:80/
Однако, такое представление, может вызвать проблемы с кодировкой адресов, используемых в URI.
◆ Стэк IPv6 в Microsoft Windows, использует метрику зон: fe80::3%1
◆ Приложения в BSD, обычно используют имена интерфейсов в качестве идентификатора зон: fe80::3%pcn0
◆ Приложения под Linux, также  applications обычно используют имена интерфейсов в качестве идентификатора зон: fe80::3%eth0. Хотя Linux ifconfig version 1.42 (часть пакета net-tools 1.60) не показывает идентификатора зон.
Относительно не многие приложения, работающие через IPv6, воспринимают идентификаторы зон (за исключением OpenSSH), Использование локальных адресов сети на нескольких интерфейсах, обычно не приносит желаемой пользы.



Пакет IPv6
Пакет представляет собой сформированный блок данных, передаваемых по сети.
Рисунок 1 показывает структуру заголовка пакета IPv6.

 Активное изображение
Рисунок 1 Структура заголовка пакета IPv6

Пакет IPv6 состоит из двух основных частей:
◆ Заголовок
Заголовок представляет собой 40 байт (320 бит), он содержит:
• Адрес отправителя и получателя (128 бит каждый)
• Версию (4 бита версия IP)
• Класс трафика (8 бит, приоритет пакета)
• Метку потока (20 бит, управление QoS)
• Длину сегмента переносимых данных в байтах (16 бит)
• Следующий заголовок (8 бит)
• Максимальное количество переходов по сети (8 бит, время жизни пакета)

◆ Переносимые данные
Рабочая нагрузка пакета может быть до 64 Кб, в стандартном режиме, либо больше (описание содержится в “Большие пакеты”)
Данные разбиваются на фрагменты во время отправки пакета. Маршрутизаторы никогда не дробят пакет на части, узел-получатель, самостоятельно определяет PMTU (Path MTU).
Поле протокола IPv4, заменяется на поле Next Header. Это поле, обычно указывает на транспортный уровень протокола для передачи данных. Если присутствуют опции, поле Next Header содержит дополнительный заголовок Extra Options, который следует, сразу за заголовком пакета IPv6. Рабочая нагрузка самого протокола, указывается в заголовке  Options. Добавление дополнительного заголовка, содержащего опции, аналогично технологиям AH и ESP (Encapsulating Security Payload) в IPsec, для IPv4 и IPv6.



Механизмы передачи
До тех пор, пока IPv6 полностью не вытеснил IPv4, чего не ожидается в ближайшем будущем, механизмы передачи требуются для узлов, которые работают только с IPv6, передавать данные через сети IPv4. В данном разделе будут описаны следующие механизмы передачи:
◆ “Двойной стэк
◆ “Туннелирование
◆ “Автоматическое туннелирование
◆ “Настроенное туннелирование
◆ “Проксирование и преобразования

Двойной стэк
Т.к. IPv6, является расширением протокола IPv4, достаточно просто формируется сетевой стэк, который поддерживает IPv4 и IPv6, разделяя часть кода. Такая технология, называется двойным стэком. Данная технология описана в RFC 4213.
Большинство текущих реализаций протокола IPv6, используют технологию двойного стэка. Негода ранее, в экспериментальных целях, реализовывали независимые стэки IPv4 и IPv6. Стэк IPv6 в одиночку, никогда не реализовывался в сетях.

Туннелирование
Для подключения узлов, работающих через IPv6 в Internet, узлы должны уметь использовать существующие сети IPv4, для передачи пакетов IPv6. Такую возможность обеспечивает технология туннелирования, которая инкапсулирует пакета IPv6 в IPv4.
Пакеты IPv6, могут напрямую инкапсулироваться в пакеты IPv4, при использовании протокола номер 41. Также, они могут инкапсулироваться в пакеты UDP, например для того, чтобы проходить, через NAT, который может блокировать протокол 41. Также поддерживаются схемы инкапсуляции, такие, как AYIYA (Anything In Anything), либо GRE (Generic Routing Encapsulation).

Автоматическое туннелирование
Автоматическое туннелирование, относится к технологии, по которой конечные точки автоматически определяются маршрутизацией. Для автоматического туннелирования, рекомендуется использовать технологию 6to4, которая базируется на протоколе 41.
Существует и другой механизм автоматического туннелирования: Intra-Site Automatic Tunnel Addressing Protocol (ISATAP). Данный протокол создает в сети IPv4 виртуальное локальное соединение IPv6, которое переадресует адреса IPv4 в IPv6.
Teredo это технология автоматического туннелирования, которая использует инкапсуляцию UDP, и используется для туннелирования IPv6, между многими NAT устройствами.
Технология Teredo, не широко распространена в настоящее время, экспериментальная версия Teredo, включена в стек IPv6 в Windows XP SP2.
IPv6, 6to4, и Teredo «по умолчанию» включены в Windows Vista.

Настроенное туннелирование
Настроенное туннелирование, это технология, по которой конечные точки туннелируются прозрачно. Оно может быть настроено вручную, либо при помощи автоматического сервиса Tunnel Broker. В настроенном туннелировании проще выявить проблемы, чем в автоматическом туннелировании, его рекомендуется использовать при построении больших сетей, для обеспечения простоты администрирования. Настроенное туннелирование обычно использует протокол 41, либо сырую инкапсуляцию UDP.

Проксирование и преобразования
Если узлу, работающему только по IPv6, нужно обратиться к сервису IPv4 (к примеру, web серверу), необходимо произвести преобразования протокола. Одной из форм такого преобразования, может служить использование двойного стэка на уровне приложения прокси сервера (например, web прокси).
В одно время были предложены технологии аппаратного преобразования протокола на более низком уровне, однако они не смогли обеспечить широкой функциональности, которая требовалась основным протоколам приложений. В основном такие технологии считаются устаревшими.



Терминология TCP
В данном разделе представлена информация по терминологии TCP.

Уведомления о получении (ACK)
Схема подтверждений в TCP, представляет собой совокупность подтверждений получения всех данных, перед генерацией ACK. Т.к. пакеты в TCP могут иметь разную длину, и отправитель может повторно отправить больше данных, чем в потерянном сегменте,  получатель, отправляя пакет ACK, может не подтвердить получение сегмента, пометив его позицию в потоке данных. Политика накопления подтверждений, делает генерацию ACK проще и потеря одного ACK, не заставляет отправителя повторно отправлять данные.  Недостатком является тот факт, что отправитель не получает точной информации о переданных данных, за исключением позиции последнего байта в потоке, который был получен.

Задержанные ACK
Задержка в передаче ACK, позволяет узлу получателю TCP не отправлять ACK с каждым полученным сегментом данных. ACK, отправляется каждый раз, когда получатель получает полный сегмент данных. Получатель, не должен задерживать отправку ACK, более чем на 500 миллисекунд. Также, получатель не должен задерживать отправку пакетов ACK, содержащих информацию о битых сегментах.

Максимальный размер сегмента (MSS)
Максимальный размер сегмента (MSS), является максимальным объемом данных, указанным в байтах, который может быть передан сегментом, между конечными точками через TCP. Размер MSS выбирается самими конечными точками сети, чтобы определить максимальный размер сегмента, который они в состоянии передать. От выбора правильного размера MSS, зависит скорость передачи данных. Маленький размер MSS, вызывает низкую загрузку сети, в тоже время, большой MSS, вызывает фрагментацию IP и затрудняет передачу данных.
Идеальным размером MSS, будет максимальный объем данных, который может быть передан, между отправителем и получателем, без фрагментации сегмента. Размер MSS, выбирается во время отправки пакета с битом SYN, во время осуществления соединения. Такой пакет, содержит значение MSS, оно вычисляется из MTU, передающего интерфейса, минус размер заголовков TCP и IP. Например, если MTU равен 1500 (стандартное значение для Ethernet), отправитель выберет значение MSS в 1460 (1500 минус 40).

Максимальный размер передаваемого блока (MTU)
Каждый сетевой интерфейс имеет собственное значение MTU, которое определяет размер максимального пакета, который он может передать. MTU в сетях, определяет максимальный размер пакета, который может быть предан без фрагментации IP.

Повторная передача
Узел, который передает данные в сетях TCP, отсчитывает время, с момента отправки сегмента, до получения подтверждения о получении. Если он не получает подтверждения о получении отправленных данных, за определенный период времени, он считает, что данные были потеряны во время передачи и повторно отправляет сегмент. Т.к. время, требуемое для доставки сегмента до получателя и получения подтверждения, в сетях не постоянное (могут существовать различные задержки в сетях Internet), используется адаптивный алгоритм повторной передачи данных, который следит за производительностью каждого соединения и выбирает оптимальное время повторной передачи сегмента, основываясь на среднем времени прохождения данных.

Выборочное подтверждение получения данных (SACK)
TCP может отслеживать низкую производительность сети, если теряется большое количество пакетов из сегмента. Т.к. мало информации доступно из накопленных подтверждений о передаче, отправитель TCP, может знать о единичных потерях пакетов за период времени. Отправитель, может повторно передать сегмент данных, не дожидаясь подтверждения о получении, но эти данные уже могли успешно быть доставлены. Механизм выборочного подтверждения получения данных, совмещен с политикой повторной передачи выборочных пакетов. Получатель TCP, отправляет отправителю пакет SACK, для подтверждения получения данных и указывая в нем пропущенные участки в полученных данных. В таком случае, отправитель, повторно перешлет только пропущенные сегменты данных. SACK использует две опции TCP. Первая опция активации, SACKpermitted, которая может быть отправлена в пакете SYN, и означает, что опция SACK, может быть использована, когда будет установлено соединение. Другая опция, активирует SACK отправителя, и может быть отправлена в пакете, через установившееся соединение.

Сегмент TCP
Сегментами TCP, являются пакеты, передаваемые через TCP, и используются для установки соединений, передачи данных, отправки ACK, и закрытия соединений. Сегмент состоит из трех частей:
◆ Заголовка 20 байт
◆ Опционального заголовка переменной длинны, кратного 4-м байтам
◆ Данных
Максимальный размер заголовка 60 байт. Заголовок TCP, передает управляющую информацию. Поля SOURCE PORT и DESTINATION PORT, содержат номера портов TCP, идентифицирующих приложения на конечных точках. Поле SEQUENCE NUMBER определяет позицию первого байта прикрепленных данных. В поле ACKNOWLEDGEMENT NUMBER указывается байт, содержащий номер последовательности, которую должен получить получатель. Поле ACKNOWLEDGEMENT NUMBER используется, только когда в поле CODE BITS выставлен бит ACK. 6-ти битное поле CODE BITS определяет цель и назначение сегмента. Поле HLEN указывает на суммарную длину заголовков, состоит из 32-х бит. В поле WINDOW указывается количество данных, которое будет передано далее. Данное поле используется для резервирования буфера в приложении получателе. Поле CHECKSUM содержит 16-ти битное целочисленное значение контрольной суммы, и используется для подтверждения целостности заголовков и опций, указанных в них. Далее идут нулевые значения, для того, чтобы отделить заголовок и начало сегмента данных.

TCP window
TCP window, определяет количество данных, которое будет отправлено без ожидания подтверждения ACK от получателя. TCP window представляет собой механизм контроля потока данных и гарантирует, что не возникнет пробка в сети. Например, если пара узлов передает данные через соединение TCP, которое использует TCP window размером 64 KB, отправитель может передать 64 KB данных и потом должен ждать подтверждения получения данных. Если отправитель, получает подтверждение о том, что все данные получены, он может передавать следующий фрагмент данных в 64 KB. В случае, если отправитель получает подтверждение о получении первых 32 KB (если второй сегмент в 32 KB еще передается, или потерян), отправитель может отправить, только оставшийся кусок в 32 KB.
Основной задачей TCP window, является предотвращение возникновения пробок в сети.  Соединение узлов в сети может проходить через коммутаторы, роутеры, соединения между ними, и может иметь эффект «узкого горлышка», на участках медленными соединениями. Так TCP window, замедляет передачу данных, там, где образуется скопление пакетов данных и потери данных не происходит.
Следующие факторы оказывают влияние на размер TCP window:

Окно получателя данных
Время, требуемое получателю для обработки полученных данных и отправки ACK, может быть большим. Необходимо контролировать объем передаваемых данных, чтобы избежать отправки объема, который получатель не сможет обработать, т.к. это может привести к потере пакетов. TCP использует контроль потока данных, устанавливая окно получения данных для каждого узла сети.

Окно отправки данных
Окно для отправления данных зависит от количества проходящих по TCP пакетов данных. Для этого используется механизм Additive-Increase, Multiplicative-Decrease (AIMD), который проверяет пропускную способность сети и динамически адаптируется в случае возникновения очередей пакетов.

Используемое окно передачи данных
Это минимальное значение из окна получателя данных и окна отправки данных. Оно определяет актуальное количество данных, которое отправитель может отсылать. Заголовок TCP пакета содержит 16 битное поле, для записи размера TCP window. Поэтому, максимальное значение будет 2**16 = 65Kb.

Масштабирование окна передачи данных
Заголовок пакета TCP может содержать 16 бит, для определения размера окна. Таким образом, максимальный размер окна ограничен 64 KB. RFC 1323 предоставляет возможность масштабирования окна, чтобы преодолеть ограничение в 64 KB. Получатель и отправитель, должны согласовать опцию масштабирования во время установки соединения.
Масштабирование окна, позволяет определять размер TCP window 32-мя битами, используя фактор масштабируемости, помещает адрес в стандартное 16-ти битное поле заголовка пакета TCP (SEG.WND в RFC-793). Фактор масштабирования содержится в новой опции TCP — Window Scale. Данная опция посылается только с пакетом SYN (пакет с выставленном битом в поле SYN), одинаковый масштаб окна выставляется у получателя и отправителя, в момент установки соединения.


Восстановление ошибок в TCP
С сетях TCP, каждый узел определяет доступность сетевых ресурсов, так узлу узнают максимальное количество пакетов, которое может быть передано без потерь. Когда источнику нужно отправить большое количество пакетов, он использует получения ACK, как сигнал о том, что пакеты освободили сеть и можно продолжать отправку новых пакетов. TCP использует алгоритм обнаружения скоплений пакетов, для определения вместительности сети. С точки зрения данного алгоритма, сеть TCP может находиться в следующих состояниях:
Slow start: данный статус может появиться после осуществления соединения, и были потери пакетов, либо пришло несколько дублирующих подтверждений ACK.
Fast recovery: после обнаружения ошибки доставки пакетов, после осуществления повторной отправки потерянных пакетов.
Congestion avoidance: в любых других случаях. Перегруженность сети избегнута, и устройства начинают медленно передавать данные. Алгоритм обнаружения скоплений пакетов полагает, что вероятность потери пакетов от физических нарушений сети, очень мала. Потерю пакетов в сети алгоритм воспринимает, как перегруженность участка сети между отправителем и получателем данных. Также алгоритм реагирует на таймаут получения пакетов подтверждения и получение дубликатов пакетов ACK, как на потерю пакетов.
Когда обнаруживается перегрузка сети, возникает необходимость в понижении скорости передачи данных и запускается алгоритм slow start. Два параметра, окно перегрузки (cwnd) и ограничение скорости (ssthresh), выставляются для всех соединений. Когда соединение установлено, оба эти параметра инициализируются. Сwnd инициализируется для одного MSS. Ssthresh используется для определения slow start или использует алгоритм обнаружения скоплений пакетов контролирует передачу данных. Изначально значение ssthresh может быть произвольно высоким (обычно ssthresh инициализируется со значением 65535 байт), но значение может быть уменьшено в связи с перегрузками.
Алгоритм slow start, используется, когда значение cwnd, меньше, чем ssthresh, если используется алгоритм обнаружения скоплений пакетов, cwnd больне ssthresh. Если значения cwnd и ssthresh одинаковы, то отправитель выбирает алгоритм самостоятельно.
TCP никогда не передает пакетов больше, чем минимум cwnd и значения окна передачи данных. Когда устанавливается соединение, либо обнаружена перегрузка сети, TCP работает в режиме slow start и cwnd выставляются до одной MSS. Каждый раз, когда приходят пакеты ACK, cwnd увеличивается на одну MSS. Отправитель начинает с отправки одного пакета и ожидает пакет с ACK. Когда пакет ACK получен, cwnd увеличивается на единицу, и можно отправлять два пакета. Когда подтверждения о получениях пакетов получены, cwnd увеличивается до четырех, и так далее. Сwnd увеличивается экспоненциально на протяжении slow start (см Рис.2). Если обнаруживается таймаут получения пакетов подтверждения или получение дубликатов пакетов ACK, ssthresh сбрасывается до половины текущего окна (это минимум cwnd и окна получателя данных). Если фиксируется перегрузка сети, через таймаут, cwnd выставляется до одного MSS. Если приходит пакет ACK, подтверждающий получение данных, cwnd увеличивается, но значение, на которое увеличивается cwnd, зависит от режима работы TCP (slow start, либо в режиме обнаружения скоплений пакетов). Если cwnd меньше, либо равно значению ssthresh и TCP находится в режиме slow start, то он продолжит работать в режиме slow start, до тех пор, пока TCP не достигнет половины скорости, на которой произошла перегрузка, только тогда закончит работу режим обнаружения скоплений пакетов. Алгоритм обнаружения скоплений пакетов, увеличивает значение cwnd на MSS, деля на квадрат cwnd (в байтах), каждый раз, когда приходит пакет ACK, он увеличивает cwnd линейно, на рисунке 2 изображена схема увеличения значения  cwnd. Этот рисунок отображает, ближайшее приближение роста значения cwnd, с как минимум одним MSS на RTT.

 Активное изображение
Рисунок 2 Slow start и Congestion avoidance

При получении сегментов данных, сетевой интерфейс генерирует пакеты ACK. Пакет ACK содержит требуемые интерфейсом номера последовательностей данных. Получение отправителем пакета ACK, подтверждает, что все, либо часть, отправленных данных были доставлены до получателя. Когда получатель получает сегмент с номером последовательности, большим, чем он ожидал, он определяет внеочередной сегмент и немедленно генерирует пакет ACK, содержащий номер последовательности, которую он получал в последний раз (такой пакет называется дубликатом ACK). Данный дубликат ACK незамедлительно отправляется. Т.к. отправитель не знает, получил ли он дубликат ACK либо запрос на внеочередную последовательность данных, он ожидает еще несколько дубликатов данного ACK, пологая, что пакеты были получены не по порядку. В случае, когда получатель получает сегменты не по порядку, он генерирует несколько дублирующих ACK. Если отправитель получает три или более дубликатов ACK подряд, он определяет, что произошла потеря пакета и отправляет запрашиваемый сегмент вне очереди. Механизм изображен на рисунке 3.
После того, как прошла повторная пересылка запрашиваемого пакета, алгоритм  обнаружения скоплений пакетов запускает вместо slow start, fast recovery. Получение дубликата ACK подразумевает, не только потерю пакета, т.к. данные все еще успешно передаются через соединение TCP, получатель мог сгенерировать дубликат ACK, при сбое в порядке получения последовательности сегментов. Таким образом, fast recovery позволяет повысить пропускную способность сети, не вызывая скопления пакетов в сети.
 
Активное изображение
Рисунок 3 Fast retransmit

Перегрузка сети
Скопление пакетов в сети вызывает создание очередей, и переполнение очередей вызывает потери пакетов. Протокол TCP обнаруживает потери пакетов и начинает передавать их повторно, но использование активной передачи потерянных пакетов будет создавать еще большее скопление пакетов на участках сети. Возникновение очередей зависит от пропускной способности сети (и размера поддерживаемых очередей на коммутаторах). Когда образуется скопление пакетов, все потоки, которые это обнаружили, должны снизить скорость передачи, если они этого не сделают, сеть будет находиться в перегруженном состоянии, и пакеты будут теряться.

Безопасный интернет протокол (IPsec)
IPsec представляет собой набор протоколов, разработанных IETF для поддержки шифрования при обмене пакетами на уровне протокола IP. Шифрование пакетов IP, широко распространено в Virtual Private Glossary Link Network (VPN).
IPsec поддерживает два режима шифрования:
◆ Транспортный
◆ Туннелирования
Транспортный режим шифрует только данные, переносимые пакетом, оставляя заголовок пакета не тронутым. Режим туннелирования, предоставляет большую безопасность, т.к. он шифрует весть пакет, включая и заголовок.
Для получения зашифрованных пакетов, должно быть установлено устройство, совместимое с IPsec, для расшифровки пакетов. Для работы шифрования пакетов IPsec, получатель и отправитель, должны иметь одинаковый public key. Данный обмен обеспечивают протоколы Internet Security Association и Key Management Protocol/Oakley (ISAKMP/Oakley), которые позволяют получателю получить public key, авторизовав его, с использованием электронного сертификата.

Туннелирование и IPsec
IPsec использует криптографическое шифрование, для обеспечения безопасной передачи данных по сетям, использующим Internet Protocol. IPsec поддерживает сохранение целостности данных на сетевом уровне, конфиденциальность передаваемых данных и аутентификацию. Он помогает защитить сети SAN от сетевых атак, несанкционированного доступа к данным, приложениям, сервисам.
По умолчанию,  шифрование IPsec отключено в туннелях FCIP. Туннелирование FCIP, с использованием IPsec, поддерживает следующие максимальные пропускные способности:
◆ Однонаправленный: приблизительно 104 MB/sec
◆ Двунаправленный: приблизительно 90 MB/sec
Используя блэйд лезвия FR4-18i, либо коммутаторы Brocade SilkWorm 7500, можно достичь наибольшую безопасность передаваемых данных при туннелировании протокола SAN. Опция IPsec, не требует настроек каждого приложения, которое работает через TCP/IP.
IPsec может работать в туннелях FCIP как без компрессии, так и с компрессией IP (IPComp).
Использование IPsec, требует дополнительной лицензии IPsec license, в дополнение к FCIP license.

Терминология IPsec:

AES
Advanced Encryption Standard. Одобрено FIPS 197, использует алгоритм шифрования Rijndael. AES одобрен правительством США для защиты конфиденциальной информации в правительственных учреждениях.  Он заменяе стандарт шифрования DES.

AES-XCBC
Cipher Glossary Link Block Chaining. Односторонняя функция замещения (MAC) с использованием ключа, используется с AES в режиме Cipher-Block-Chaining. Подходящий вариант для шифрования сообщений различной длинны, например IP дейтаграмм.

AH
Glossary Link Authentication Header. Также, как ESP, AH обеспечивает целостность данных, аутентификацию источника и предоставляет защиту от компьютерных атак, но не предоставляет конфиденциальности.

DES
Data Encryption Standard. Представляет собой алгоритм шифрования, использующий 56-битный ключ для шифрования 64-х битных блоков. Из-за сравнительно короткого ключа используется редко.

3DES
Тройной DES, более безопасный вариант DES. Он использует три различных 56-битных ключа, для шифрования блоков данных в 64-бита. Алгоритм одобрен FIPS для использования в федеральных агентствах.

ESP
Encapsulating Security Payload. Представляет собой протокол IPsec, который обеспечивает целостность данных, аутентификацию источника IP пакетов, предоставляет защиту от атак.

MD5
Message Digest 5. Также, как SHA-1, является популярной функцией замещения, используется для аутентификации и хранения данных.

SHA
Secure Hash Algorithm. Также, как MD5, является популярной функцией замещения, используется для аутентификации и хранения данных.

MAC
Message Authentication Code. Односторонняя функция замещения с использованием ключа, используется для генерации ключей аутентификации.

HMAC
Более мощный алгоритм, чем MAC, т.к. использует замещение с ключом,  замещения с ключом.
 
 

Добавить комментарий


Защитный код
Обновить