на школьную страницу...

Анализ эффективности TCP в различных операционных системах

Выпускная работа А.С.Гудовщиковой, 2011 г.

Научный руководитель: Евгений Викторович Соколов

При использовании протокола TCP данные передаются упакованными в TCP-сегменты, состоящие из заголовка и полезной нагрузки. TCP-сегменты, в свою очередь, упаковываются в IP-пакеты, а последние — в кадры Ethernet. Пакеты также содержат заголовки, а кадры — еще и концевики.

При передаче данных по сети передается и описанная служебная информация. Размеры всех заголовков и концевиков в сумме составляют не менее 67 байт, в то время как полезных данных может быть значительно меньше. Предельный объем полезной нагрузки, определяемый максимальным размером кадра Ethernet, составляет 1460 байт. В случае побайтной передачи данных эффективность передачи становится приблизительно равной 1%, но при реализации некоторых приложений бывает удобно осуществлять передачу именно побайтно. Симметричная ситуация может возникать и при приеме данных, в случае, когда приложение считывает не более одного байта из потока. В идеале, для повышения эффективности ОС может буферизовать передаваемые данные, например, используя при реализации системной службы TCP алгоритмы Кларка и Нагля.

Для ОС Windows и Linux были разработаны приложения, отправляющие и получающие данные при помощи стандартных функций BSD Sockets. В приложениях, разработанных для ОС Windows, отправление данных производится при помощи функции send(), а получение функцией recv(); в приложениях, разработанных для ОС Linux, отправление данных происходит при помощи вызова функции write(), получение – read().

Описание экспериментов и полученные результаты






Заключение

Таким образом, мы можем сделать следующие выводы:

  1. При небольшом размере окна получателя (2 байта):
    1. Передача данных в случае, когда получателем является ОС Windows Vista, выполняется примерно в два раза медленнее, чем в случае, когда им служит ОС Linux.
    2. Если передается небольшой объем полезных данных (32 байта), то ОС Linux осуществляет отправку в 5 раз быстрее нежели ОС Windows Vista.
  2. 2. При большом размере окна получателя (216 байт):
    1. Если объем полезной нагрузки мал (32 байта), то ОС Linux осуществляет отправку в 25 раз быстрее, но с увеличением этого объема скорость передачи данных в ОС Windows Vista пропорционально возрастает, пока не стабилизируется на значении 11 Мбайт/с. Данная скорость такая же, как в ОС Linux, и определяется пропускной способностью сети.
  3. При увеличении размера принимающего буфера улучшается максимальная скорость передачи данных. Но при небольших объемах полезной нагрузки в ОС Windows Vista скорость передачи почти не изменяется. Таким образом, объем передаваемых полезных данных значительнее влияет на скорость передачи данных, нежели размер принимающего буфера.

Flag Counter