
648 Глава 6. Транспортный уровень
При каждом импульсе сигнала времени часов указатель текущего времени
перемещается по колесу времени вперед (циклично) на одно гнездо. Если гнез-
до, на которое он указывает, не нулевое, обрабатываются все таймеры списка, на
который указывает гнездо. Многочисленные варианты основной идеи обсужда-
ются в (Varghese и Lauck, 1989).
Протоколы для гигабитных сетей
Появление гигабитных сетей приходится на начало 90-х годов. Сначала к ним
пытались применить старые протоколы, но при этом сразу же возникло множест-
во проблем. Некоторые из этих проблем, а также методы их решения в протоко-
лах будущих, даже более быстрых, сетей будут обсуждаться в данном разделе.
Первая проблема заключается в том, что многие протоколы используют
32-разрядные порядковые номера. В прежние годы, когда типичная скорость вы-
деленных линий между маршрутизаторами равнялась 56 Кбит/с, хосту, который,
бешено вращая глазами, постоянно выдавал бы данные в сеть, потребовалось бы
больше недели на то, чтобы у него закончились порядковые номера. С точки зре-
ния разработчиков TCP, 2
32
считалось неплохим приближением к бесконеч-
ности, поскольку вероятность блуждания пакетов по сети в течение недели
практически равна нулю. В Ethernet со скоростью 10 Мбит/с критическое время
снизилось с одной недели до 57 минут. Это, конечно, гораздо меньше, но даже с
таким интервалом еще можно иметь дело. Когда же Ethernet выдает в Интернет
данные со скоростью 1 Гбит/с, порядковые номера закончатся примерно через
34 с. Это уже никуда не годится, поскольку максимальное время жизни пакета
в Интернете равно 120 с. Внезапно оказалось, что 2
32
совершенно не подходит в
качестве значения, приближенного к бесконечности, поскольку стало очевидно,
что отправителю, посылающему достаточно много пакетов, придется повторять
их порядковые номера в то время, как старые пакеты все еще будут блуждать по
сети. В RFC 1323 предлагается метод борьбы с этой ситуацией.
Проблема состоит в том, что многие разработчики протоколов просто предпо-
лагали, что время цикла пространства порядковых номеров значительно превос-
ходит максимальное время жизни пакетов. Соответственно, в этих протоколах
даже не рассматривалась сама возможность того, что старые пакеты еще могут
находиться где-то в сети, когда порядковые номера опишут полный круг. В гига-
битных сетях это предположение оказалось неверным.
Вторая проблема возникла, когда выяснилось, что скорости передачи данных
увеличиваются значительно быстрее, чем скорости обработки данных. (Обраще-
ние к разработчикам компьютеров: идите и побейте разработчиков средств связи!
Мы рассчитываем на вас.) В 70-е годы объединенная сеть ARPANET работала
на скорости 56 Кбит/с и состояла из компьютеров с производительностью около
1 MIPS (1 млн инструкций в секунду). Использовались пакеты размером
1008 бит — таким образом, сеть ARPANET могла доставлять около 56 пакетов в
секунду. Поскольку время передачи пакета составляло около 18 мс, хост мог за-
тратить 18 000 инструкций на обработку одного пакета. Конечно, это полностью
загрузило бы центральный процессор, однако можно было снизить это число до
Вопросы производительности
649
9000 инструкций при половинной занятости процессора, предоставляя ему воз-
можность выполнять всю необходимую работу.
Сравните эти цифры с цифрами для современных компьютеров, имеющих
производительность 1000 MIPS и обменивающихся 1500-байтными пакетами по
гигабитной линии. Пакеты могут прибывать с частотой свыше 80 000 пакетов в
секунду, поэтому, если мы хотим зарезервировать половину мощности процессо-
ра для приложений, обработка пакета должна быть завершена за 6,25 мкс. За это
время компьютер с производительностью 1000 млн инструкций в секунду может
выполнить 6250 инструкций — лишь треть того, что было доступно хостам сети
ARPANET. Более того, современные RISC-инструкции выполняют меньше дей-
ствий, чем старые CISC-инструкции, так что проблема, на самом деле, оказыва-
ется еще тяжелее. Отсюда можно сделать следующий вывод: у протокола оста-
лось меньше времени на обработку пакетов, поэтому протоколы должны стать
проще.
Третья проблема состоит в том, что протокол с возвратом на п плохо работает
в линиях с большим значением произведения пропускной способности на задерж-
ку. Рассмотрим, к примеру, линию длиной 4000 км, работающую со скоростью
1 Гбит/с. Время прохождения сигнала в оба конца равно 40 мс. За это время от-
правитель успевает передать 5 Мбайт. Если обнаруживается ошибка, потребует-
ся 40 мс, чтобы оповестить об этом отправителя. При использовании протокола
с возвратом на п отправителю потребуется повторять передачу не только повре-
жденного пакета, но также и до 5 Мбайт пакетов, переданных после поврежден-
ного. Очевидно, что этот протокол использует ресурсы очень неэффективно.
Суть четвертой проблемы состоит в том, что гигабитные линии принципиаль-
но отличаются от мегабитных — в длинных гигабитных линиях главным ограни-
чивающим фактором является не пропускная способность, а задержка. На рис. 6.40
изображена зависимость времени, требующегося для передачи файла разме-
ром 1 Мбит по линии длиной в 4000 км, от скорости передачи. На скоростях до
1 Мбит/с время передачи, в основном, зависит от скорости передачи данных.
При скорости 1 Гбит/с задержка в 40 мс значительно превосходит 1 мс (время,
требующееся для передачи битов по оптоволоконному кабелю). Дальнейшее
увеличение скорости вообще не оказывает почти никакого действия на время пе-
редачи файла.
Изображенная на рис. 6.40 зависимость демонстрирует ограничения сетевых
протоколов. Она показывает, что протоколы с ожиданием подтверждений, такие
как удаленный вызов процедуры (RPC, Remote Procedure Call), имеют врожден-
ное ограничение на производительность. Это ограничение связано со скоростью
света. Никакие технологические прорывы в области оптики здесь не помогут (хотя
могли бы помочь новые законы физики).
Пятая проблема, которую стоит упомянуть, связана не с протоколами или тех-
нологиями, а с появлением новых гигабитных мультимедийных приложений, для
которых постоянство времени передачи пакета так же важно, как и само среднее
значение задержки. Низкая, но постоянная скорость доставки часто предпочти-
тельнее высокой, но непостоянной.