tanenbaum_seti_all.pages (525408), страница 174
Текст из файла (страница 174)
Даже сели сетевой уровень абсолютно надежен, у транспортного уровня полно работы. Он должен обрабатывать все служебныс примитивы, управлять соединениями и таймерами, а также предоставлять и использовать кредиты. Основными транспортными протоколами Интсрнета являются ТСР и Б()Р. ПОР— это протокол без установления соединения, который работает с П'-пакетами и занимается обеспечением мультиплексирования и демультиплсксирования нескольких процессов с использованием единого 1Р-адреса. ПОР может использоваться при клиент-серверных взаимодействиях, например, при удаленном вызове процедур.
Кроме того, на его основе можно создавать протоколы реального времени, такие как ВТР. Наиболее распространенным протоколом Интернета является ТСР. Он обеспечивает надежную двухстороннюю потоковую байтовую передачу. Он использует Вопросы 663 20-байтный заголовок для вссх сегментов. Сегмснты могут фраглгентироваться маршрутизаторами Интернста, поэтому хосты должны уметь восстанавливать исходные сегменты из отдельных фрагментов. Оптимизации производительности протокола ТСР было уделено много внимания. Для этого в нем применяются алгоритмы Пагля (Май!е), Кларка (С!агк), Джекобсона ()асоЬзоп), Карпа (Кагп) и др. Беспроводные линии связи приводят к усложнению протокола ТСР. Транзакционный ТСР— это расширение традиционного протокола ТСР, предназначенное для поддержки клиент-серверного взаимодействия с использованием упрощенной процедуры обмена пакетами.
Производительность сстн обычно в основном определяется протоколом и накладными расходами но обработке ТР1)П-модулей, причем с увеличением скорости передачи данных эта ситуация ухудшается. При разработке протоколов следует стараться минимизировать количество ТРРП-модулей, количество переключений контекста н время копирования ТРОП-модулей, В гигабитных сетях требуются простые протоколы.
Вопросы 1. В нашем примере транспортных примитивов, приведенных в табл. 6.1, Е15ТЕп является блокирующим вызовом. Обязатсльно ли это? Если нет, объясните, как следует пользоваться нсблокирующпм примитивом. Какое преимущество это даст по сравнению со схемой, описанной в тексте? 2. В модели, лсжашей в основс диаграммы состояний на рис. 6.3, предполагается, что пакеты могут теряться на сетевом уровне и поэтому должны подтверждаться индивидуально. Допустим, что сстсвой уровень обеспечивает 100-процентную надежность доставки н никогда нс теряет пакеты.
Нужны ли какие- либо изменения в лиаграммс состояний, показанной на рис. 6.3, и если да, то какие? 3. В обеих частях листинга 6.1 значение 5ЕК«Ек РОкТ должно быть одинаковым у клиента и у сервера. Почсму это так важно? 4. Предположим, что используется управляемая часами схема генерирования начальных порядковых номеров с 15-разрядным счетчиком часов. Часы тикают раз в 100 мс, а максимальное время жизни накста равно 60 с. Как часто должна производится ресинхронизация; 1) В худшем случае? 2) Когда данные потребляют 240 порядковых номеров в минуту? 5. Почему максимальное время жизни пакета Тдолжно быть достаточно большим, чтобы гарантировать, что пе только пакет, но и сто подтверждение исчезли? 6.
Представьте, что для установки соединсний вместо «тройного рукопожатия» использовалось бы двойнос (то сеть третье сообщенис нс требовалось). Возможны ли при этом тупиковые ситуации? Приведите пример или докажите, что тупиковых ситуаций нет. 654 Глава 6. Транспортный уровень 7, Представьте себе обобщенную проблему и армий, в которой договоренность двух любых армий достаточна для победы. Сушествует ли протокол, позволяющий армиям синих выиграть? 6, Рассмотрим проблему восстановления от сбоев хостов (рис, 6.15), Если бы интервал между записью и отправкой подтверждения, или наоборот, можно было сделать относительно небольшим, какими были бы две лучшие стратегии отправителя и получателя, минимизирующие шансы ошибки протокола7 0.
Возможны ли тупиковые ситуации для транспортной сущности, описанной в тексте (листннг 6.2)? 10. Из любопытства разработчик транспортной сущности, представленной в листинге 6.2, решил поместить внутрь процедуры з1еер счетчики для сбора статистики о массиве солж Среди прочих параметров определялось число соединений в каждом из семи возможных соединений, и, (1 = 1, ..., 7). Написав на языке РОКТКАХ большую программу для анализа данных, разработчик обнаружил, что соотношение ьи; = МАХ СОМ оказывается всегда верным. Есть ли еще другие инварианты, включающие только эти семь переменных? 11, Что происходит, когда пользователь транспортной сущности, представленной в листинге 6.2, посылает сообщение нулевой длины? Обсудите значение этого факта. 12. Для каждого события, которое потенциально может произойти в транспортной сущности, представленной в листинге 6.2, определите, является ли оно разрешенным или нет, когда пользователь находится в состоянии зепйпд.
13. Обсудите преимущества и недостатки схемы кредитов по сравнению с протоколами скользящего окна. 14. Зачем нужен протокол ()1)Р? Разве не достаточно было бы просто позволить пользовательским процессам посылать необработанные 1Р-пакеты? 15. Рассмотрите простой протокол прикладного уровня, построенный на основе 1Л)Р, который позволяет клиенту запрашивать файл с удаленного сервера, расположенного по популярному адресу. Клиент вначале посылает запрос с именем файла, а сервер отвечает последовательностью информационных пакетов, содержащих различные части запрошенного файла.
Для обеспечения надежности и доставки частей в правильном порядке клиент и сервер используют протокол с ожиданием. Какие проблемы могут возникнуть с таким протоколом, кроме очевидных проблем с производитсльностью? Обратите внимание на вероятность сбоя процессов. 16. Клиент посылает 128-байтный запрос на сервер, удаленный от него на 100 км, по оптоволокну со скоростью 1 Гбнт/с, Какова эффективность линии во время выполнения удаленного вызова процедуры? 17. Рассмотрите снова ситуацию, описанную в предыдущем вопросе.
Вычислите минимально возможное время ответа для данной линии со скоростью 1 Гбит/с и для 1-мегабитной линии, Какой вывод можно сделать, исходя из полученных значений? Вопросы 666 18. Как в 1ЛЭР, так и в ТСР номера портов используются для идентификации принимающей сущности при доставке сообщения. Назовите две причины того, почему для этих протоколов были изобретены новые абстрактные идентификаторы 1номера портов) и не использовались идентификаторы процессов, уже существовавшие на момент появления данных протоколов? 19. Каков суммарный размер минимального МТ11 протокола ТСР, включая накладные расходы ТСР и 1Р, но не включая накладные расходы уровня передачи данных7 20.
Фрагментация и дефрагментация дейтаграмм выполняется протоколом 1Р и невидима для протокола ТСР. Означает ли это, что протокол ТСР не должен беспокоиться о данных, приходящих в неверном порядке? 21. КТР используется для передачи звукозаписей, по качеству соответствующих компакт-дискам. При этом для передачи одного отсчета каждого из стереоканалов используется пара 16-битных слов, передающихся 44 100 раз в секчнду. Сколько пакетов в секунду должен уметь передавать КТР? 22. Возможно ли поместить код КТР в ядро операционной системы наряду с УРР? Ответ поясните. 23. Процессу хоста 1 был назначен порт р, а процессу хоста 2 — порт 9, Может ли быть одновременно несколько соединений между этими двумя портами? 24.
На рис. 6.23 мы видели, что в дополнение к 32-разрядному полю Подтверждение в четвертом слове имеется бит АСК? Приносит ли он какую-либо пользу7 Ответ поясните. 25. Максимальный размер полезной нагрузки ТСР-сегмента может быть равен 65 495 байт. Почему было выбрано такое странное число? 26. Опишите два способа, которыми можно попасть в состояние ЯМ ЯС7Р на рис. 6.26. 27.
В чем состоят потенциальные недостатки использования алгоритма Нагля в сильно перегруженной сети? 28. Рассмотрите эффект использования алгоритма затяжного пуска в линии со значением времени прохождения сигнала в оба конца, равным 10 мс, без перегрузок. Размер окна получателя 24 Кбайт, а максимальный размер сегмента равен 2 Кбайт.
Через какое время может быть послано полное окно7 29. Предположим, окно перегрузки протокола ТСР установлено на 18 Кбайт, когда происходит тайм-аут. Каким будет размер окна, если четыре последующих передачи будут успешными7 Максимальный размер прелполагается равным 1 Кбайт. 30. Текущее значение оценки врсмспи прохождения сигнала в оба конца протокола ТСР К?Т равно 30 мс, а следующие полтверждепия приходят через 26, 32 и 24 мс. Каково будет новое значение К?7? Используйте а - 0,9. 31. ТСР-машина посылает окна по 65 535 байт по гигабитному каналу, в котором время прохождения сигнала в один конец равно 10 мс.
Какова максимальная достижимая пропускная способность канала? Чему равна эффективность использования линии? 666 Глава 6. Транспортный уровень 32 Какова максимальная скорость, с которой хост может посылать в линию ТСР- пакеты, содержащие 1500 байт полезной нагрузки, сели максимальное время жизни пакета в сети равно 120 с? Требуется, чтобы порядковые номера не зацикливались. При расчете учитывайте накладные расходы на ТСР, 1Р и ЕгЬсгпеп Предполагается, что кадры ЕгЬегпег могут посылаться непрерывно. 33, Чему равна максимальная скорость передачи данных для каждого соединения, если максимальный размер ТРО1)-модуля равен 128 байт, максимальное время жизни ТРОП-модуля равно 30 с н используются 8-разрядные порядковые номера ТРО1)-модулей? 34 Предположим, вы измеряется время, необходимое для получения ТРОП-модуля, Когда возникает прерывание, вы читаете показания системных часов в миллисекундах.