Эффективное программирование TCP-IP


         

Каждый тест был выполнен 50




Рис. 2.17. Возвратный интерфейс

Каждый тест был выполнен 50 раз с заданным размером датаграмм (в случае UDP) или числом передаваемых за один раз байтов (в случае TCP), равным 1440. Эта величина выбрана потому, что она близка к максимальному размеру сегмента, который TCP может передать по локальной сети на базе Ethernet.

Примечание: Это число получается так. В одном фрейме Ethernet может быть передано не более 1500 байт. Каждый заголовок IP и TCP занимает 20 байт, так что остается 1460. Еще 20 байт резервировано для опций TCP. В системе BSD TCP посылает 12 байт с опциями, поэтому в этом случае максимальный размер сегмента составляет 1448 байт.

В табл. 2.2 приведены результаты, усредненные по 50 прогонам. Для каждого протокола указано три времени: по часам - время с момента запуска до завершения работы клиента; пользовательское - проведенное программой в режиме пользователя; системное - проведенное программой в режиме ядра. В колонке «Мб/с» указан результат деления общего числа посланных байтов на время по часам. В колонке «Потеряно» для UDP приведено среднее число потерянных датаграмм.

Первое, что бросается в глаза, - TCP работает намного быстрее, когда в качестве имени сервера выбрано localhost, а не bsd. Для UDP это не так – заметной разницы в производительности нет. Чтобы понять, почему производительность TCР так возрастает, когда клиент отправляет данные хосту localhost, запустим программу netstat (совет 38) с опцией -i. Здесь надо обратить внимание на две строки (ненужная информация опущена):

Name    Mtu         Network    Address

Ed0    1500       172.30       bsd

lo0      16384    127              localhost

Таблица 2.2. Сравнение производительности TCP и UDP при количестве посылаемых байтов, равном 1440





































































































































TCP



Сервер



Время по часам



Пользовательское время



Системное время



Мб/с



bsd



2,88



0,0292



1,4198



2,5



localhost



0,9558



0,0096



0,6316



7,53



sparс



7,1882



0,016



1,6226



1,002



UDP



Сервер



Время по часам



Пользовательское время



Системное время



Мб/с



Потеряно



bsd



1,9618



0,0316



1,1934



3,67



336



localhost



1,9748



0,031



1,1906



3,646



272



sparс



5,8284



0,0564



0,844



1,235



440

<

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий