Ответы на билеты (2014), страница 10
Описание файла
PDF-файл из архива "Ответы на билеты (2014)", который расположен в категории "". Всё это находится в предмете "компьютерные сети" из 6 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 10 страницы из PDF
Возможна быстрая аппаратная реализация, просто, но ненадежно — слабая защита от ошибок (только одиночные ошибки). IP, UDP и TCP используютодин и тот же алгоритм комплементарной контрольной суммы:∙ Установить поле ℎ = 0.∙ Найти сумму всех 16-разрядных слов в пакете.40∙ Установить разряд четности.∙ Контрольная сумма должна быть такой, чтобы сумма всего пакета, включая контрольную суммубыла бы 0xffff.Также можно использовать коды для обнаружения/исправления ошибок, например, код Хемминга.CRC — Cyclic Redundancy Check. Отправитель и получатель договариваются о конкретном генераторе полиномов () степени (коэффициенты при старшем члене и при младшем члене должны бытьравны 1).
Для вычисления контрольной суммы блока из бит надо чтобы обязательно > . Добавитьконтрольную сумму к передаваемому блоку, рассматриваемому как полином () так, чтобы передаваемый блок с контрольной суммой был кратен (). Когда получатель получает блок с контрольнойсуммой, он делит его на (). Если есть остаток, то при передаче были ошибки.Алгоритм вычисления контрольной суммы:∙ Добавить нулей в конец блока так, что он теперь содержит + разрядов и соответствуетполиному ( ) ().∙ Разделить по модулю 2 полином ( ) () на ().∙ Вычесть остаток (длина которого всегда не более разрядов) из строки, соответствующей( ) (), по модулю 2. Результат и есть блок с контрольной суммой.Данный метод позволяет обнаруживать одиночные ошибки, групповые ошибки длинной не более инечетное число отдельных ошибок. Существует три международных стандарта на вид полинома ():∙ CRC-12 = 12 + 11 + 3 + 2 + + 1.∙ CRC-16 = 16 + 15 + 2 + 1.∙ CRC-CCITT = 16 + 12 + 5 + 1.Стандарт CRC-12 используется для передачи символов из шести разрядов, a CRC-16 и CRC-CCITT —из восьми.
Стандарты CRC-16 и CRC-CCITT ловят одиночные, двойные ошибки, групповые ошибкидлиной не более 16 и нечетное число изолированных ошибок.MAC — Message Authentication Code. Не столь устойчиво к ошибкам, как CRC. Защищает отзлоумышленников. Используются криптографические функции для вычисления контрольной суммы = MAC(, ), || < | |.∙ Если известно, — секретно, то возможно проверить = MAC(, ), || < | |.∙ Если не известно, то получить практически не возможно.∙ Если известно , то практически не возможно вычислить , даже зная MAC.17Протокол ТСР: установка и разрыв соединения.Установка соединения.
В протоколе TCP-соединения устанавливаются с помощью «тройного рукопожатия». Чтобы установить соединение, одна сторона (например, сервер) пассивно ожидает входящегосоединения, выполняя примитивы LISTEN и ACCEPT, либо указывая конкретный источник, либо неуказывая его.Другая сторона (например, клиент) выполняет примитив CONNECT, указывая IP-адрес и порт, скоторым он хочет установить соединение, максимальный размер TCP-сегмента и, по желанию, некоторыеданные пользователя (например, пароль). Примитив CONNECT посылает TCP-сегмент с установленнымбитом SYN и сброшенным битом АСК и ждет ответа.Когда этот сегмент прибывает в пункт назначения, TCP-сущность проверяет, выполнил ли какойнибудь процесс примитив LISTEN, указав в качестве параметра тот же порт, который содержится в поле41Порт получателя.
Если такого процесса нет, она отвечает отправкой сегмента с установленным битомRST для отказа от соединения.Если какой-либо процесс прослушивает какой-либо порт, то входящий ТСР-сегмент передается этому процессу. Последний может принять соединение или отказаться от него. Если процесс принимаетсоединение, он отсылает в ответ подтверждение.Столкновение вызовов (коллизия): когда два хоста одновременно пытаются установить соединениемежду двумя одинаковыми сокетами. Будет установлено только одно соединение, так как пара конечныхточек однозначно идентефицирует соединение.Разрыв соединения. Хотя TCP-соединения являются дуплексными, чтобы понять, как происходитих разъединение, лучше считать их парами симплексных соединений.
Каждое симплексное соединениеразрывается независимо от своего напарника. Чтобы разорвать соединение, любая из сторон может послать TCP-сегмент с установленным в единицу битом FIN, что означает, что у него больше нет данныхдля передачи. Когда этот TCP-сегмент получает подтверждение, это направление передачи закрывается.Тем не менее, данные могут продолжать передаваться неопределенно долго в противоположном направлении. Соединение разрывается, когда оба направления закрываются. Обычно для разрыва соединения требуются четыре TCP-сегмента: по одному с битом FIN и по одному с битом АСК в каждомнаправлении.
Первый бит АСК и второй бит FIN могут также содержаться в одном ТСР-сегменте, чтоуменьшит количество сегментов до трех.Как при телефонном разговоре, когда оба участника могут одновременно попрощаться и повеситьтрубки, оба конца TCP-соединения могут послать FIN-cerменты в одно и то же время. Они оба получаютобычные подтверждения, и соединение закрывается. По сути, между одновременным и последовательным разъединениями нет никакой разницы.Чтобы избежать проблемы двух армий, используются таймеры. Если ответ на посланный FIN-сегментне приходит в течение двух максимальных интервалов времени жизни пакета (120 секунд), отправительразрывает соединение.
Противоположная сторона также по истечении этого периода времени узнает, чтоникто от нее не ждет ответа.4218Явление перегрузки и основные методы борьбы с ней.(Том 2, стр. 52-56.)Когда в транспортной среде находится в одно и то же время слишком много пакетов, ее производительность начинает падать. Перегрузка может возникнуть в силу нескольких причин. Например, еслисразу несколько потоков, поступающих по нескольким входным линиям, устремятся на одну и ту жевыходную линию. Если буфер маршрутизатора переполнится, то пакеты начнут теряться.
Перегрузкимогут случаться и из-за недостаточной скорости процессора. Если процессор будет не в состоянии справиться своевременно с рутинными задачами (размещения пакета в буфере, корректировка таблиц и т.п.),то даже при наличии линий с достаточной пропускной способностью очередь будет расти. Аналогичнаякартина может случиться при быстром процессоре, но медленном канале и наоборот. Таким образом,источник проблемы – несбалансированность производительности компонентов системы.
Перегрузка –это глобальная проблема в сети.Управление перегрузками – это такая организация потоков в транспортной среде, при которой потоки соответствуют пропускной способности подсети и не превышают ее.Основные принципы управления перегрузками.В терминологии теории управления все методы управления перегрузками в сетях можно разбить надве большие группы: с открытым контуром управления и закрытым контуром управления.
Методы соткрытым контуром предполагают, что все продумано и предусмотрено заранее в конструкции системы,и если нагрузка находится в заданных пределах, то перегрузки не происходит. Если же нагрузка начинаетпревышать определенные пределы, то заранее известно, когда и где начнется сброс пакетов, в какихточках сети начнется перепланировка ресурсов, и т.п. Главное, что все эти меры будут приниматься внезависимости от текущего состояния сети.Решения, основанные на закрытом контуре, используют обратную связь.
Эти решения включают триэтапа:∙ Наблюдение за системой для определения, где и когда началась перегрузка.∙ Передача данных туда, где будут предприняты надлежащие меры.∙ Перестройка функционирования системы для устранения проблемы.При наблюдении за системой используются разные метрики для определения перегрузки. Основнымисреди них являются:∙ Процент пакетов, сброшенных из-за нехватки памяти в буферах.∙ Средняя длина очередей в системе.∙ Число пакетов, для которых наступил time_out и для которых были сделаны повторные передачи.∙ Средняя задержка пакета при доставке и среднее отклонение задержки при доставке пакета.Следующий шаг при использовании обратной связи – передать информацию о перегрузке туда, гдечто-то может быть сделано, чтобы исправить положение.
Например, маршрутизатор, обнаруживший перегрузку, может направить сообщение о перегрузке всем источникам сообщений. Ясно, что это увеличитнагрузку в сети, причем именно в тот момент, когда это менее всего желательно. Однако есть и другиевозможности. Например, в каждом пакете зарезервировать специальный бит перегрузки, и если какой-томаршрутизатор обнаружил перегрузку, то он устанавливает этот бит, тем самым сообщая другим о ней(вспомним структуру кадра во Frame Relay). Другое решение напоминает прием, используемый некоторыми радиостанциями: направлять несколько автомашин по дорогам, чтобы обнаруживать пробки, азатем сообщать о них по радиоканалам, предупреждая другие машины, призывая их пользоваться объездными путями. По аналогии с этим решением в сети рассылаются специальные пробные пакеты, которые проверяют нагрузку, и если где-то обнаружена перегрузка, то о ней сообщается всем и происходитперенаправление пакетов так, чтобы обогнуть перегруженные участки.43Методы, предотвращающие перегрузки.Рассмотрение методов, предотвращающих перегрузки, начнем с методов для систем с открытым контуром.
Эти методы ориентированы на минимизацию перегрузок при первых признаках их проявлений, ане на борьбу с перегрузками, когда они уже случились. Основные факторы, влияющие на перегрузки наканальном, сетевом и транспортном уровнях, перечислены в таблице:УровеньТранспортныйФакторыПовторная передачаПорядок передачи битУведомленияУправление потокомЗначение timeoutВиртуальные каналы vs. дейтаграммы внутриподсетиОчередность пакетов и сервисыСброс пакетаАлгоритм маршрутизацииУправление временем жизни пакетовПовторная передачаПорядок передачи битУведомленияУправление потокомСетевойКанальныйМетоды:1.
Схема управления потоком (небольшое окно) сдерживает нарастание трафика и предотвращаетпоявление перегрузок.2. Методы управления очередями, организация очередей: одна общая на входе или одна общая навыходе; по одной на каждую входную линию или на каждую выходную; по одной очереди накаждую входную и выходную - все это влияет на появление перегрузок.3. Выбор метода сброса пакетов также влияет на перегрузки.