Высокая частота конфликтов в сетях со скоростью подключения 100 Мбит

Переводы статьи Переводы статьи
Код статьи: 315237 - Vizualiza?i produsele pentru care se aplic? acest articol.
Версия данной статьи для Microsoft Windows 2000 169789.

Внимание! Решение проблемы связано с внесением изменений в системный реестр. Перед внесением изменений в системный реестр рекомендуется создать архивную копию системного реестра и изучить процедуру восстановления системного реестра. За информацией по использованию редактора реестра обратитесь к следующей статье Microsoft Knowledge Base:
256986 Description of the Microsoft Windows Registry
Развернуть все | Свернуть все

В этой статье

Проблема

При использовании протокола TCP/IP и сетевого адаптера 100 Мбит наблюдается снижение быстродействия сети при копировании файлов. Может также наблюдаться снижение быстродействия при использовании обозревателя Windows Explorer в Windows XP.

Следует учитывать, что несмотря на снижение быстродействия у нескольких сетевых адаптеров 100 Мбит, эта проблема не является характерной для Windows.

Причина

Эта проблема вызвана высокой частотой ранних конфликтов в сети. Промежуток между кадрами (время ожидания рабочей станции перед тем как передать данные по сети) составляет менее 9,6 миллисекунд, указанных в стандарте IEEE 802.3.

Решение

Внимание! Некорректное использование редактора системного реестра может привести операционную систему в неработоспособное состояние и потребовать проведения полной ее переустановки. Microsoft не несет ответственности за некорректное использование редактора реестра. При изменении реестра полагайтесь на свой опыт и знания.

Для решения этой проблемы обратитесь к производителю сетевого адаптера за информацией о том, как можно увеличить задержку между фреймами.

Сетевые адаптеры Intel EtherExpress 100B имеют параметры реестра, которые управляют длиной промежутка между кадрами. Чтобы изменить этот параметр при использовании сетевого адаптера Intel EtherExpress 100B, выполните следующие действия.
  1. Запустите редактор реестра (программу Regedit.exe).
  2. Найдите следующий раздел реестра, где x означает номер сетевого адаптера:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\e100bx\Parameters
  3. В меню Правка выберите команду Создать параметр DWORD и введите следующие данные:
    Имя: Adaptive_ifs
    Тип: REG_DWORD
    Значение: 1 (включение адаптивного алгоритма)
    Адаптивный алгоритм для обнаружения конфликтов и настройки промежутка между кадрами включен по умолчанию. Установка значения 0 приводит к отключению адаптивного алгоритма. Значения от 2 до 200 задают предварительно заданный промежуток между кадрами. Начните с установки значения 20, а затем увеличьте его до 20s. Измерьте количество конфликтов и быстродействие, а затем установите окончательное значение, при котором частота конфликтов самая низкая и она не влияет на быстродействие.

ВРЕМЕННОЕ РЕШЕНИЕ

Чтобы избежать возникновения этой проблемы, можно создать параметр реестра TcpWindowSize, который заставляет отправителя, прежде чем отправлять следующую часть данных, ждать, пока не будет получено подтверждение (ACK) от получателя. Внесение этого изменения снижает потенциальную возможность конфликтов. Выполните следующие действия:
  1. Запустите редактор реестра (программу Regedit.exe).
  2. Найдите следующий раздел реестра и выделите его:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. Выберите команду Создать, затем — Параметр DWORD и введите следующие данные:
    Имя: TcpWindowSize
    Тип: REG_DWORD
    Значение: 2920 (decimal) - число байтов
    Установите значение Decimal 2920 для Ethernet или значение, в два раза превышающее максимальный размер данных TCP, для других сетевых топологий. Однако этот параметр для других сетей менять не нужно, потому что в сетях на основе таких топологий, как Token Ring или FDDI, не наблюдаются конфликты, характерные для сети Ethernet.

    Следует помнить, что изменение этого параметра может существенно повлиять на быстродействие. Как правило, в глобальных сетях и обычных сетях (10 Мбит) существует задержка между отправкой и получением данных (в зависимости от сетевой топологии). Поэтому потенциальная возможность конфликтов из-за необходимости подтверждения (ACK) со стороны TCP/IP не существует. Настройка параметра TcpWindowSize в данном случае только снижает пропускную способность.

Статус

Описанное поведение является подтвержденной ошибкой продуктов Microsoft, перечисленных в разделе "Информация… применима к:" данной статьи.

Дополнительная информация

«Конфликт» происходит, когда две станции одновременно передают данные по сети. «Ранний конфликт» — это любой конфликт, который происходит до того, как были переданы по сети 512 бит кадра. Ранние конфликты могут постоянно происходить в нормально функционирующей сети Ethernet. Их наличие не означает, что станция работает неправильно.

Спецификацией IEEE 802.3 допускается ожидание в течение 9,6 миллисекунд (промежуток между кадрами), прежде чем станция попытается передать данные по сети. Некоторые производители разрабатывают адаптеры с меньшим промежутком между кадрами для достижения более высокой скорости передачи данных. Этот сокращенный промежуток между кадрами может привести к частому возникновению конфликтов.

На потенциальную возможность возникновения конфликтов также влияет поведение протокола верхнего уровня. Спецификация TCP/IP предусматривает отправку подтверждения (ACK) для каждого следующего полученного кадра. То есть после того, как узел TCP получает два кадра данных, он передает отправителю подтверждение (ACK). Возможность конфликта особенно высока в том случае, если клиент, получивший два пакета, пытается отправить подтверждение (ACK) в тот момент, когда отправитель пытается отослать ему очередную часть данных.

Анализ копии файла Windows Explorer в Windows XP

Когда одна и та же копия файла инициируется с помощью командной строки или с помощью обозревателя Windows Explorer в Windows XP, шаблон передачи данных различен. В данном случае перенаправитель выдает 60 КБ для чтения «больших объемов данных» или «необработанных данных». Ниже приведен шаблон передачи данных:
   10 CLIENT SERVER  SMB C read & X, FID = 0x1004, Read 0xf000
   11 SERVER CLIENT  SMB R read & X, Read 0xf000
   12 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   13 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   14 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   15 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   16 CLIENT SERVER  TCP .A...., len: 0, seq:404791-404791, ack
   17 CLIENT SERVER  TCP .A...., len: 0, seq:404791-404791, ack
   18 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   19 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
   20 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes
				
На уровне TCP:
   10 CLIENT SERVER  TCP len:   64, seq:  404727-404790, ack:   6992081
   >Клиент отправляет 64 байт данных (команда SMB для чтения 4 КБ);

   11 SERVER CLIENT  TCP len: 1460, seq: 6992081-6993540, ack:    404791
   >сервер отправляет комбинированное подтверждение (ACK), а протокол SMB отправляет следующую часть данных;

   12 SERVER CLIENT  TCP len: 1460, seq: 6993541-6995000, ack:    404791
   13 SERVER CLIENT  TCP len: 1460, seq: 6995001-6996460, ack:    404791
   >сервер отправляет клиенту остальные данные.

   >**Конфликт более всего вероятен в данный момент, потому что клиент пытается отправить подтверждение (ACK).

   14 SERVER CLIENT  TCP len: 1460, seq: 6996461-6997920, ack:    404791
   15 SERVER CLIENT  TCP len: 1460, seq: 6997921-6999380, ack:    404791
   >Однако сервер может установить подключение и отправить следующую часть данных.

   16 CLIENT SERVER  TCP len:    0, seq:  404791-404791, ack:   6996461
   >Клиент может установить подключение и отправить подтверждение (ACK) о получении данных кадров 12 и 13.

   17 CLIENT SERVER  TCP len:    0, seq:  404791-404791, ack:   6999381
   >Клиент может установить подключение и отправить подтверждение (ACK) о получении данных кадров 14 и 15.

   18 SERVER CLIENT  TCP len: 1460, seq: 6999381-7000840, ack:    404791
   19 SERVER CLIENT  TCP len: 1460, seq: 7000841-7002300, ack:    404791
   >Сервер продолжает отправлять данные.

   >**Конфликт более всего вероятен в данный момент, потому что клиент пытается отправить подтверждение (ACK).

   20 SERVER CLIENT  TCP len: 1460, seq: 7002301-7003760, ack: 404791
   >Однако сервер может установить подключение и отправить следующую часть данных.
				
При использовании протокола TCP/IP подтверждение (ACK) со стороны TCP может влиять на частоту конфликтов. Тем не менее эта проблема возникает не из-за протокола TCP/IP или тех улучшений, которые позволяют обозревателю Windows Explorer выполнять чтение объемов данных до 60 КБ. Эта проблема также возникает при использовании протокола FTP. TCP/IP, перенаправитель и Windows Explorer не имеют возможности управления промежутком между кадрами. Промежуток между кадрами находится на физическом уровне, управляемом микросхемой адаптера. Если в сети наблюдается высокая частота конфликтов, обратитесь к поставщику сетевого адаптера.

За дополнительной информацией о протоколе TCP/IP обратитесь к документу под названием «TCP/IP Implementation Details» (Подробные сведения о реализации TCP/IP), который доступен на следующем анонимном узле FTP корпорации Microsoft:
ftp://ftp.microsoft.com/bussys/winnt/winnt-docs/papers/
Имя файла данного документа: Tcpipimp2.doc.

Свойства

Код статьи: 315237 - Последний отзыв: 1 декабря 2007 г. - Revision: 2.1
Информация в данной статье относится к следующим продуктам.
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional x64 Edition
Ключевые слова: 
kbnetwork kbprb KB315237

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com