1 (1131253), страница 47
Текст из файла (страница 47)
Протокол ТСР использует несколько таймеров для управления передачей. Наиболее важный из них - таймер повторной передачи. Этот таймер устанавливают, когда отправляют сегмент. (Напомним, что так мы называем TPDU-пакет.) Если подтверждение пришло до исчерпания этого таймера, то его останавливают и сбрасывают. Если таймер исчерпан, то сегмент посылают повторно.
Здесь основная проблема - как удачно выбрать величину time_out: временной интервал, по истечении которого сегмент надо передать повторно. Как мы знаем, эта проблема встречается и на других уровнях. Однако на транспортном уровне она имеет особенность, которая заключается в следующем. На канальном уровне дисперсия величины задержки подтверждения имеет ярко выраженный максимум. Другими словами, ее разброс невелик. Величину time_out на этом уровне устанавливают чуть больше ожидаемой величины прихода подтверждения. На транспортном уровне функция распределения величины задержки подтверждения носит более гладкий характер, чем на канальном уровне. Поэтому предсказать величину времени, которая нужна для передачи данных от источника до получателя и передачи подтверждения от получателя до источника, очень трудно. Заведомо эта величина не должна быть постоянной в силу гладкости функции распределения.
В основе используемого в протоколе ТСР алгоритма, предложенного Якобсоном в 1988 году, лежит специальная переменная RTT для получения оптимального значения величины time_out (Round Trip Time), значение которой постоянно модифицируется. В этой переменной хранится наименьшее время подтверждения. При каждой передаче сегмента замеряется величина задержки подтверждения М. Если при очередной передаче подтверждение поступило прежде, чем наступил time_out, значение переменной RTT немного уменьшают, в противном случае - увеличивают по формуле:
RTT = λRTT + (1- λ)M, где λ=0,87.
Однако, даже зная величину RTT, определить величину ожидания оказалось непросто. Якобсон предложил вычислять величину D - отклонения между ожидаемой величиной задержки и измеренной по формуле:
D = λD + (1-λ) |RTT - M|.
Кроме этого, Якобсон показал как, зная D, вычислить величину time_out по формуле:
time_out = RTT + 4*D.
Позднее Филл Карн (Phill Karn) модифицировал эту формулу для случая повторно передаваемых сегментов. Действительно, когда поступает подтверждение для сегмента, то не ясно, то ли это подтверждение для первой передачи, толи для последней. Филла интересовал вопрос вычисления величины RTT для передачи данных по протоколам TCP/IP по КВ-радиоканалу. В результате экспериментов он показал, что для повторно передаваемых сегментов эффективно просто удваивать величину ожидания до тех пор, пока подтверждение не поступит с первого раза.
Другой важный таймер в протоколе ТСР - таймер настойчивости. Он позволяет бороться со следующего типа тупиками. Когда получатель посылает сообщение с нулевым размером окна, отправитель останавливает передачу и ждет сообщения об изменении размера окна. Наконец, получатель послал это сообщение, а оно было потеряно. Все ждут. Чтобы избежать такой ситуации, используют таймер настойчивости. Если он исчерпан, то отправитель шлет сообщение получателю, напоминая ему о проблеме размера буфера.
Еще один важный таймер - таймер функционирования. Если по какой-либо причине по соединению долго не посылали сообщений, то надо проверить, функционирует ли оно. Когда этот таймер исчерпан, то соответствующая сторона шлет другой стороне запрос: «Жива ли ты?» Если ответа не поступает, то соединение считается разорванным.
Протокол UDP.
Internet поддерживает также транспортный протокол без соединений - UDP (User Data Protocol). Протокол UDP (User Datagram Protocol) предназначен для обмена дейтаграммами между процессами компьютеров, входящих в единую сеть с коммутацией пакетов. В качестве протокола нижнего уровня UDP-протокол использует IP.
Протокол UDP предоставляет прикладным программам возможность отправлять сообщения другим приложениям, используя минимальное количество параметров протокола. Этот протокол не обеспечивает достоверность доставки пакетов, защиты от дублирования данных или от сбоев в передаче. За исключением параметров приложения - номеров портов отправителя и получателя пакета, UDP практически ничего не добавляет к IP-дейтаграмме.
Рисунок 6-25. Заголовок UDP
Протокол UDP намного проще, чем TCP, и полезен в ситуациях, когда мощные механизмы обеспечения надежности протокола TCP не требуются или будут только помехой для решения определенного рода задач, например, аутентификации пользователей. Структура UDP-заголовка показана на рисунке 6-25.
-
Source Port (16 бит). Порт отправителя. Это поле может содержать номер порта, с которого был отправлен пакет, когда это имеет значение (например, когда отправитель ожидает ответа). Если это поле не используется, оно заполняется нулями.
-
Destination Port (16 бит). Порт назначения - это порт компьютера, на который пакет будет доставлен.
-
Length (16 бит). Поле длины. Длина (в байтах) этой дейтаграммы, включая заголовок и данные. (Минимальное значение этого поля равно 8).
-
Checksum (16 бит). Поле контрольной суммы. Контрольная сумма UDP-пакета представляет собой побитное дополнение 16-битной суммы 16-битных слов (аналогично TCP). В вычислении участвуют: данные пакета, заголовок UDP-пакета, псевдозаголовок (информация от IP-протокола), поля выравнивания по 16-битной границе (нулевые).
Преимущество протокола UDP состоит в том, что он требует минимум установок и параметров для соединения двух процессов между собой. Этот протокол используется при работе Серверов Доменов (Name Servers), протокола TFTP (Trivial File Transfer), при работе с SNMP-протоколом и построении систем аутентификации. Идентификатор UDP в IP-заголовке - число 17. Более подробное описание протокола UDP можно найти в RFC-768.
TCP и UDP в беспроводных коммуникациях.
Теоретически ТСР не должен зависеть от того, над какой средой он работает – оптической или беспроводной. Однако на практике дело обстоит иначе. ТСР-протокол тщательно оптимизировали при разных предположениях, которые не выполняются в беспроводной среде. Так, например, предполагалось, что сетевая среда достаточно надежна и рост числа time_out – это результат перегрузки, а не потери пакетов.
В беспроводной среде потеря пакета - дело частое. Поэтому применение протокола ТСР «в лоб» с протоколом Якобсона медленного старта лишь усугубит положение. Так, например, если потери составляют 20%, то при пропускной способности канала в 100 пакетов в секунду фактически будем иметь лишь 80 пакетов. Согласно алгоритму медленного старта, при увеличении числа time_out надо понизить скорость, скажем до 50 пакетов в секунду, что приведет к фактической скорости 40 пакетов.
Поэтому, если увеличилось число отказов в обычном канале, надо сбросить скорость, а если это число возросло в беспроводной среде, надо не понижать скорость, а слать пакеты повторно. Так что без знаний о среде принять решение трудно.
Основным источником проблем является то, что в беспроводной среде соединения часто неоднородные. На рисунке 6-26 показан пример. Была предложена модификация ТСР – разбить такое соединение на два так, чтобы каждое стало однородным. Есть и другие решения, связанные с модификацией не самого ТСР, а канального уровня для базовых станций.
Рисунок 6-26. Разбиение TCP-соединения на два
Билет № 43.
Безопасность и способы защиты данных в сетях ЭВМ: методы шифрования. Обычное шифрование. Рассеивание и перемешивание. Два основных принципа шифрования. Алгоритмы с секретными ключами (Алгоритм DES, Раскрытие DES). Алгоритмы с открытыми ключами.
Проблема безопасности сети очень многогранна и охватывает широкий спектр вопросов. Большую их часть можно разделить на следующие группы:
-
Секретность
-
Конфиденциальность – только санкционированный доступ к информации (никто не может прочесть ваши письма без вашего ведома).
-
Целостность - только санкционированное изменение информации (никто без вашего разрешения не может изменить данные о вашем банковском счете).
-
Идентификация подлинности пользователей
-
Имея с кем-то дело через сеть, вы должны быть уверены, что это тот, за кого он себя выдает (если вы получили сообщение от налоговой инспекции уплатить определенную сумму денег, вы должны быть уверены, что это не шутка).
-
Идентификация подлинности документа
-
Получив через сеть электронную версию документа, как определить, что он подлинный и не был фальсифицирован?
-
Надежность управления
-
Несанкционированное использование ресурсов (если вы получите счет за телефонные переговоры, которые вы не делали, вам это вряд ли понравится).
-
Обеспечение доступности ресурсов для авторизованных пользователей.
Разные люди по разным мотивам пытаются нарушить безопасность сети. В таблице 7-1 приведен список категорий людей и их возможная мотивация.
Таблица 7-1. Кто и с какими целями вызывает проблемы с безопасностью сети
| Злоумышленник | Цель |
| Студент | Поразвлечься, читая чужую почту |
| Хакер | Проверить чью-либо систему безопасности; украсть данные |
| Торговый представитель | Заявить, что он представляет всю Европу, а не только Албанию |
| Бизнесмен | Узнать о маркетинговых планах конкурента |
| Бывший сотрудник | Отомстить за недавнее увольнение |
| Бухгалтер | Присвоить себе деньги компании |
| Брокер | Отказаться от обещания, сделанного по электронной почте |
| Мошенник | Украсть номера кредитных карточек для их продажи |
| Шпион | Изучить военный потенциал противника |
| Террорист | Узнать секрет бактериологического оружия |
Прежде чем приступить к рассмотрению методов решений перечисленных проблем, подумаем о том, где, в каком месте стека протоколов должно располагаться обеспечение безопасности, защита сети. Одного такого места нет! Каждый уровень способен внести свой вклад. Например, на физическом уровне, чтобы контролировать доступ к физическому каналу, можно поместить кабель в опечатанную трубу, заполненную газом под давлением. Любая попытка просверлить трубу приведет к падению давления газа и срабатыванию датчика давления. Это, в свою очередь, включит сигнал тревоги.
На канальном уровне данные могут быть зашифрованы на одной машине и расшифрованы на другой. Об этом шифре верхние уровни могут ничего не знать. Однако, поскольку пакет дешифруется на каждом маршрутизаторе, то в памяти маршрутизатора он может стать предметом атаки. Тем не менее, при передаче данных этот метод, называемый шифрованием канала, часто применяется в сетях.
На сетевом уровне распространенным решением является брандмауер (firewall). Напомним, что это средство, которое позволяет фильтровать как входящие, так и исходящие пакеты на сетевом уровне (см. главу 5). На транспортном уровне проблему секретности данных при передаче решают шифрованием всех сегментов транспортного соединения. Однако в сети до сих пор нет удовлетворительного решения проблемы идентификации пользователя и идентификации документа.















