Книга: TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
10.15 Барьеры для производительности
10.15 Барьеры для производительности
TCP доказал свою гибкость, работая в сетях со скоростью обмена в сотни или миллионы бит за секунду. Этот протокол позволил достичь хороших результатов в современных локальных сетях с топологиями Ethernet, Token-Ring и Fiber Distributed Data Interface (FDDI), а также для низкоскоростных линий связи или соединений на дальние расстояния (подобных спутниковым связям).
TCP разработан так, чтобы реагировать на экстремальные условия, например на перегрузки в сети. Однако в текущей версии протокола имеются особенности, ограничивающие производительность в перспективных технологиях, которые предлагают полосу пропускания в сотни и тысячи мегабайт. Чтобы понять возникающие проблемы, рассмотрим простой (хотя и нереалистичный) пример.
Предположим, что при перемещении файла между двумя системами необходимо выполнять обмен непрерывным потоком настолько эффективно, насколько это возможно. Допустим, что:
? Максимальный размер сегмента приемника — 1 Кбайт.
? Приемное окно — 4 Кбайт.
? Полоса пропускания позволяет пересылать по два сегмента за 1 с.
? Принимающее приложение поглощает данные по мере их поступления.
? Сообщения ACK прибывают через 2 с.
Отправитель способен посылать данные непрерывно. Ведь когда выделенный для окна объем будет заполнен, прибывает ACK, разрешающий отправку другого сегмента:
SEND SEGMENT 1.
SEND SEGMENT 2.
SEND SEGMENT 3.
SEND SEGMENT 4.
Через 2 с:
RECEIVE ACK OF SEGMENT 1, CAN SEND SEGMENT 5.
RECEIVE ACK OF SEGMENT 2, CAN SEND SEGMENT 6.
RECEIVE ACK OF SEGMENT 3, CAN SEND SEGMENT 7.
RECEIVE ACK OF SEGMENT 4, CAN SEND SEGMENT 8.
Еще через 2 с:
RECEIVE ACK OF SEGMENT 5, CAN SEND SEGMENT 9.
. . .
Если приемное окно было только в 2 Кбайт, отправитель будет вынужден ждать одну секунду из каждых двух перед отправкой следующих данных. Фактически, чтобы удержать непрерывный поток данных, приемное окно должно иметь размер не менее:
Окно = Полоса пропускания?Время цикла
Хотя пример несколько преувеличен (для обеспечения более простых чисел), малое окно может привести к проблемам при соединениях через спутниковые связи с большой задержкой.
Теперь рассмотрим, что происходит с высокоскоростными соединениями. Например, если полоса пропускания и скорость пересылки измеряются 10 млн. бит в секунду, но время цикла составляет 100 мс (1/10 секунды), то для непрерывного потока приемное окно должно хранить, по крайней мере, 1 000 000 бит, т.е. 125 000 байт. Но наибольшее число, которое можно записать в поле заголовка для приемного окна TCP, равно 65 536.
Другая проблема возникает при высоких скоростях обмена, поскольку порядковые номера очень быстро закончатся. Если по соединению можно будет пересылать данные со скоростью 4 Гбайт/с, то порядковые номера должны обновляться в течение каждой секунды. Не будет возможности различить старые дублирующие датаграммы, которые были отсрочены более чем на секунду при перемещении по Интернету, от свежих новых данных.
Сейчас активно проводятся новые исследования для улучшения TCP/IP и устранения упомянутых выше препятствий.
- 10.1 Введение
- 10.2 Концепции TCP
- 10.3 Механизм обеспечения надежности TCP
- 10.4 Установка соединения
- 10.5 Пересылка данных
- 10.6 Закрытие соединения
- 10.7 Управление потоком
- 10.8 Заголовок TCP
- 10.9 Пример сегмента TCP
- 10.10 Поддержка работы сеанса
- 10.11 Завершение сеанса
- 10.12 Производительность
- 10.13 Алгоритмы повышения производительности
- 10.14 Соответствие требованиям разработчика
- 10.15 Барьеры для производительности
- 10.16 Функции TCP
- 10.17 Состояния TCP
- 10.18 Замечания о реализациях
- 10.19 Дополнительная литература
- Повышение производительности приложений с помощью хранимых процедур
- 2.10.5. Безопасность против производительности
- 15.7. Мониторинг производительности
- Барьеры на пути подражателей
- Глава 32, которую написал Майкл Миджет Как, управляя продажниками, обходить их психологические барьеры
- Журналы и оповещения производительности
- Повышение производительности системы
- 13.12 Замечания о производительности
- Барьеры и порядок выполнения
- ПРИЛОЖЕНИЕ В Результаты измерения производительности
- Учет факторов производительности при организации управленияпамятью
- Модельная программа для исследования факторов производительности