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 и устранения упомянутых выше препятствий.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Повышение производительности

Из книги Windows Vista без напряга автора Жвалевский Андрей Валентинович

Повышение производительности Окно сведений о производительности (см. рис. 8.3) не только предоставляет информацию, но и позволяет несколько повысить общую производительность системы. Для этого в левой части окна есть следующие ссылки.• Управление автозагрузкой программ.


Вопросы производительности

Из книги Asterisk™: будущее телефонии Второе издание автора Меггелен Джим Ван

Вопросы производительности При выборе оборудования для установки Asterisk главным соображением является то, насколько мощной должна быть полученная система. Это непростой вопрос, поскольку большую роль в данном случаеиграет то, как будет использоваться система. Такого


3.1.9. Входные барьеры для разработчика

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

3.1.9. Входные барьеры для разработчика Другой важной характеристикой, по которой различают операционные системы, является совокупность сложностей, препятствующих простым пользователям стать разработчиками. Существует два определяющих фактора. Одним из них является


Измерение производительности

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Измерение производительности Каждое приложение выполнялось на хост-системе по пять раз. Перед каждым запуском приложения физическая память очищалась, чтобы исключить повышение показателей производительности за счет файлов и программ, кэшированных в памяти или файлах


6.20 Замечания о производительности IP

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

6.20 Замечания о производительности IP Производительность интернета зависит от количества доступных ресурсов на хостах и маршрутизаторах и от эффективности их использования. К таким ресурсам относятся:? Полоса пропускания пересылки информации? Объем буферной


13.12 Замечания о производительности

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

13.12 Замечания о производительности Telnet не обеспечивает хорошей производительности. При эмуляции терминала ASCII (например, VT100) telnet очень неэффективен. Посланные клиентом сегменты часто содержат только один или несколько символов. Каждый символ нужно вернуть назад для


14.8 Замечания о производительности

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

14.8 Замечания о производительности На эффективность операций пересылки файлов влияют следующие факторы:? Файловая система хоста и производительность его дисков? Объем обработки по переформатированию данных? Используемая служба TCPКраткий отчет о пропускной


Соображения производительности

Из книги Взрыв обучения: Девять правил эффективного виртуального класса автора Мердок Мэттью

Соображения производительности Интересны не только затраты на порождение нового процесса (мы еще будем к ним неоднократно возвращаться), но и то, насколько «эффективно» сосуществуют параллельные процессы в ОС, насколько быстро происходит переключение контекста с


17. Ошибки и барьеры

Из книги автора

17. Ошибки и барьеры Людям нравится знать, как себя вести, если появляются какие-то препятствия, барьеры, ошибки. Мы хотим их избежать. «15 основных ошибок при знакомстве с женщинами в клубах», «15 основных ошибок в выборе сноуборда». Мы хотим уберечь себя от потенциальных


Барьеры и порядок выполнения

Из книги автора

Барьеры и порядок выполнения В случае, когда необходимо иметь дело с синхронизацией между разными процессорами или разными аппаратными устройствами, иногда возникает требование, чтобы чтение памяти (load) или запись в память (save) выполнялись в том же порядке, как это