Тайм-ауты и повторные передачи TCP

         

а следующий как 12 секунд.



Упражнения

  1. На рисунке 21.5 первый тайм-аут был рассчитан как 6 секунд, а следующий как 12 секунд. Если ACK для первоначального SYN не прибыл после того, как истечет 12-секундный тайм-аут, какова будет величина следующего тайм-аута?
  2. В рассуждениях, которые следуют за рисунком 21.5, мы сказали, что временные промежутки между тайм-аутами рассчитываются как 6, 24 и затем 48 секунд, как мы видели на рисунке 4.5. Однако, если мы рассмотрим TCP соединение на несуществующий хост с системы SVR4, тайм-ауты будут 6, 12, 24 и 48 секунд. Что происходит?
  3. Сравните производительность скользящего окна TCP с TFTP протоколом с ожиданием подтверждения следующим образом. В этой главе мы передали 32768 байт примерно за 35 секунд (рисунок 21.6) по каналу со средним RTT, находящимся в районе 1,5 секунды (рисунок 21.4). Рассчитайте, сколько понадобится времени TFTP для того, чтобы осуществить ту же передачу.
  4. В разделе "Быстрая повторная передача и алгоритм быстрого восстановления" мы сказали, что прием дублированного ACK вызывается, как правило, тем, что сегмент был потерян или пришел не в свое вовремя (беспорядочно). В разделе "Пример переполнения" мы видели, что генерация дублированных ACK вызывается потерей сегмента. Нарисуйте рисунок, который доказывал бы, что приход сегмента "не в свое время" также генерирует дублированные ACK.
  5. На рисунке 21.6 между моментами времени 28,8 и 29,8 находится очень заметный пропуск. Является ли это повторной передачей?
  6. В разделе "Алгоритм предотвращения переполнения" мы сказали, что релиз 4.3BSD Tahoe осуществляет только медленный старт, если пункт назначения находится в другой сети. Как Вы думаете, что означает "другая сеть"? (Подсказка: см. приложение E.)
  7. В разделе "Обычный поток данных" главы 20 мы сказали, что TCP подтверждает каждый второй сегмент. Однако на рисунке 21.2 мы видели, что получатель подтверждает каждый сегмент. Почему?
  8. Действительно ли полезны показатели на маршрут, с господствующим маршрутом по умолчанию?


Упражнения

  1. Приведите список достоинств характеристики "оставайся в живых".
  2. Приведите список недостатков характеристики "оставайся в живых".




Упражнения

  1. Что означает, если система отправляет первоначальный сегмент SYN с коэффициентом масштабирования окна равным 0?
  2. Если хост bsdi на рисунке 24.7 поддерживает опцию масштабирования окна, какое ожидаемое значение 16-битного поля размера окна в TCP заголовке от хоста vangogh в сегменте 3? Точно так же, если опция используется на втором соединении на этом рисунке, какое будет объявленное окно в сегменте 13?
  3. Вместо фиксированного коэффициента масштабирования окна, который используется при установлении соединения, может ли опция масштабирования окна быть определена, а затем изменен коэффициент масштабирования?
  4. При какой скорости передачи данных переход через 0 номера последовательности станет реальной проблемой, в том случае, если MSL равно 2 минутам?
  5. PAWS разработан для того, чтобы работать только с одним соединением. Какие модификации должны быть сделаны для TCP, чтобы использовать PAWS как замену для ожидания 2MSL (состояние TIME_WAIT)?
  6. В примере в конце раздела "Опция масштабирования окна", почему программа sock выдала размер приемного буфера перед следующей строкой (с IP адресами и номерами портов)?
  7. Повторите расчет пропускной способности из раздела "Производительность TCP", представив себе, что MSS равно 1024.
  8. Как опция временной марки влияет на алгоритм Карна (глава 21, раздел "Определение времени возврата")?
  9. Если TCP отправляет данные с сегментом SYN, который сгенерирован при активном открытии (без использования расширений, которые мы описали в разделе "T/TCP: расширение TCP для транзакций"), что получающий TCP будет делать с данными?
  10. В разделе "T/TCP: расширение TCP для транзакций" мы сказали, что без расширения T/TCP, даже если активное открытие посылается с данными и FIN, задержка для клиента при получении отклика от сервера будет все еще удвоенное RTT плюс SPT. Покажите сегменты, с помощью которых это можно рассчитать.
  11. Сделайте повторно упражнение 14 главы 18, представив себе, что поддерживается расширение T/TCP и что минимальное RTO, поддерживаемое Berkeley системами, равно половине секунды.
  12. Если мы применили T/TCP и рассчитали время транзакции между двумя хостами, с чем мы можем это сравнить, чтобы определить его эффективность?


Упражнения

  1. Найдите все задержанные ACK на рисунке 26.5.
  2. Почему был отправлен сегмент номер 12 на рисунке 26.7?
  3. Мы говорили, что Rlogin клиент должен использовать зарезервированный порт (глава 1, раздел "Номера портов"). (Обычно, Rlogin клиент использует зарезервированный порт в диапазоне 512-1023.) Как это ограничение отражается на хосте? Существует ли способ обойти это?
  4. Прочитайте RFC 1097, описывающий Telnet опцию subliminal-message.


Упражнения

  1. Обратитесь к рисунку 27.8. Что изменится, если клиент осуществит активное открытие второго соединения данных вместо сервера?
  2. В примере для FTP клиента в этой главе мы сказали, что такие строки, как, например local: hello.c remote: hello.c
    42 bytes received in 0.0037 seconds (11 Kbytes/s)
    выдаются клиентом. Не заглядывая в исходные тексты, как можно определить, что они не от сервера?


Упражнения

  1. Прочитайте RFC 822, чтобы найти объяснение того, что называется domain literal. Попробуйте послать почту самому себе.
  2. За исключением установления и прекращения соединения, какое минимальное количество промежутков времени равных времени возврата, необходимо, чтобы послать небольшое почтовое сообщение?
  3. TCP это полнодуплексный протокол, тогда как SMTP, использующий TCP, использует его в полудуплексном режиме. Клиент посылает команду, а затем останавливается и ждет отклика. Почему клиент не может послать несколько команд за раз, например, с помощью одной записи, содержащей команды HELO, MAIL, RCPT, DATA и QUIT (представим, что тело сообщения не очень велико)?
  4. Как это полудуплексное функционирование SMTP может поставить в тупик механизм медленного старта, когда сеть работает близко к пределу своих возможностей?
  5. Если существует несколько MX записей с одним и тем же значением предпочтительности, должны ли они всегда возвращаться сервером имен в одном и том же порядке?


Упражнения

  1. На рисунке 29. 7 мы видели, что tcpdump интерпретирует пакеты как NFS запросы и отклики, и при этом печатает XID. Может ли tcpdump сделать это для любых RPC запросов или откликов?
  2. Как Вы думаете, почему в Unix системах программа RPC сервера использует динамически назначаемые порты, а не заранее известные?
  3. RPC клиент вызвал две процедуры сервера. Первая процедура потребовалось на исполнение 5 секунд, а второй - 1 секунда. Клиент имеет тайм-аут равный 4 секундам. Нарисуйте временную диаграмму того, чем обмениваются клиент и сервер. (Представьте, что на прохождение сообщения от клиента к серверу и наоборот время не тратится.)
  4. Что произойдет в примере на рисунке 29.9, если пока NFS сервер был выключен, его Ethernet плата была удалена?
  5. Когда сервер перезагрузился на рисунке 29.9, он обрабатывал запрос, начинающийся на смещении 65536 (строки 168 и 171), а затем обрабатывал следующий запрос, начинающийся со смещения 66560 (строки 172 и 173). Что произойдет с запросом, начинающимся со смещением 73728 (строка 167)?
  6. Когда мы описывали независимые от количества исполнений NFS процедуры, то показали пример отклика REMOVE, который потерялся в сети. Что произойдет в этом случае, если используется TCP вместо UDP?
  7. Если NFS сервер использует динамически назначаемый порт вместо порта 2049, что произойдет с NFS клиентом, когда сервер выйдет из строя и перезагрузится?
  8. Номеров зарезервированных портов (глава 1, раздел "Номера портов") очень-очень мало, их максимум 1023 на хост. Если NFS сервер требует, чтобы его клиенты имели зарезервированные порты (что обычно так и есть), и NFS клиент, использующий TCP, монтирует N файловых систем на N различных серверах, необходимо ли клиенту иметь различные зарезервированные номера портов для каждого соединения?


Упражнения

  1. Используйте Whois, чтобы найти владельца сети класса A с идентификатором сети 88.
  2. Используйте Whois, чтобы найти DNS сервер в домене whitehouse.gov. Совпадет ли отклик с ответом, который можно получить от системы DNS?
  3. Как Вы думаете, должен ли быть процесс xscope, показанный на рисунке 30.3, запущен на том же самом хосте, что и X сервер?
Содержание раздела