Необходимо правильно настроить сетевой протокол tcp ip. Операционная система Windows Vista. Медленный старт и выборочное подтверждение

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


Fine Print устанавливается как драйвер для печати. Его окно появится, если вы выберите его при печати и откроете дополнительные свойства. Программа является своеобразным посредником между приложением, в котором вы работаете с документом, и принтером.

Файн Принт позволит вам распечатать буклет в любой программе. Он автоматически распределит отдельные страницы документа так, чтобы они вместились в рамки одного листа. В результате получится буклет.

Кроме этого в данном приложении присутствуют и другие варианты размещения содержимого на листе.

Экономная печать

Вы сможете выполнить печать таким образом, что будет уменьшен расход чернил принтера. Это достигается за счет таких функций, как: удаление изображений из документа, преобразование цветного документа в черно-белый, осветление.

Добавление меток и других элементов

Вы сможете в принудительном порядке добавить метки на каждую страницу, например номер страницы или текущую дату.

Кроме этого программа позволяет добавить отступ для переплета и ряд других элементов.

Выбор формата листа для печати

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

Fine Print позволяет задать пользовательские размеры листа, если вы используете нестандартную бумагу при печати.

Достоинства:

1. Приложение просто в использовании;
2. Довольно неплохое количество функций;
3. FinePrint переведен на русский;
4. Приложение бесплатное.

Недостатки:

1. Хотелось бы видеть FinePrint и в виде самостоятельного приложения, а не только дополнения.

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

Каждый владелец персонального компьютера или ноутбука сталкивался с проблемами доступа к сети Интернет. Бывало так, что все настройки произведены, доступ к сети есть, Wi-Fi настроен, а доступа к интернету нет. В сетевых подключениях, в строке состояния написано следующее: IPv4 без доступа к интернету. Как исправить ошибку и получить доступ к сети, читайте в этой статье.

Диагностика ошибки

Первое, что стоит сделать в данной ситуации - провести диагностику сетей:

  1. Нажмите Win+R и выполните команду ncpa.cpl
  2. ПКМ нажмите по проблемному сетевому подключению и выберите «Состояние».
  3. Откройте «Диагностика».
  4. В зависимости от выявленной проблемы, для ее решения, воспользуйтесь материалом по предоставленным ссылкам:
    1. .
    2. .
    3. .
    4. .
    5. DHCP сервер не включен на сетевом адаптере.

Часто бывает, что виной проблемы с доступом к интернету является неправильно настроенный DHCP сервер. Это может быть как с вашей стороны, так и со стороны интернет провайдера. Если у вас именно такая проблема, читайте дальше.

Настройки TCP/IPv4

Для начала убедимся, что не произошел обычный сбой в сети, который можно решить переподключением соединения. Нажмите ПКМ по проблемной сети и выберите «Отключить». Затем, двойным нажатием мыши, включите обратно.
В случае, если у вас роутер, перезагрузите и его.Важно! Если в сети находятся несколько компьютеров, не присваивайте проблемному IP-адрес другого устройства. Если вы это сделаете, сеть не заработает.

Настройки роутера

Если вы используете роутер, включите в настройках DHCP сервер:


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

Дважды кликните на значке «Мой компьютер» и запустите «Панель управления», дважды щелкнув по соответствующему значку левой кнопкой мыши. В окне «Панель управления» кликните на значке «Сеть», затем, установив курсор на компоненте TCP/IP, нажмите кнопку «Свойства». Отметьте «Указать IP-адрес явным образом» и впишите IP-адрес — 192.168.1.2, маску подсети — 255.255.255.0.

Далее перейдите на вкладку «Шлюз» и наберите в строке «Новый шлюз» — 192.168.1.1, нажмите кнопку «Добавить». Откройте вкладку «Конфигурация DNS», отметьте «Включить DNS», в поле «Порядок просмотра серверов DNS» наберите 192.168.1.1 и нажмите кнопку «Добавить», затем в том же поле наберите 195.34.32.116 и нажмите кнопку «Добавить».

Операционная система Windows XP/2000

Нажмите кнопку «Пуск» (Start) и выберите «Панель управления» (Control Panel). Затем выберите «Сеть и подключение к Интернету» (Network & Internet Connections), далее «Сетевые подключения» (Network Connections). Кликните правой кнопкой мыши на значке «Подключение по локальной сети», а затем нажмите кнопку «Свойства». В появившемся окне выберите «Протокол Интернета TCP/IP» (Internet Protocol TCP/IP), после чего нажмите кнопку «Свойства». В появившемся окне отметьте «Использовать следующий IP-адрес» и заполните поля «IP-адрес» — 192.168.1.2, «Маска подсети» — 255.255.255.0, «Основной шлюз» — 192.168.1.1, «Предпочитаемый DNS-сервер» — 192.168.1.1, «Альтернативный DNS-сервер» — 195.34.32.116.

Операционная система Windows Vista

В меню «Пуск» выберите раздел «Панель управления», далее — «Сеть и Интернет», пункт «Просмотр состояния сети и задач». (Если в «Панели управления» перейти к классическому виду, то Вам необходим пункт «Центр управления сетями и общим доступом».) В открывшемся окне, в колонке слева, выберите пункт «Управление сетевыми подключениями». Далее перед Вами откроется окно, в котором будут отображаться все подключения, имеющиеся на Вашем компьютере, в том числе подключение по локальной сети. Кликните один раз правой кнопкой мыши на значке «Подключение по локальной сети» и в появившемся контекстном меню выберите пункт «Свойства». Далее, в появившемся окне, выберите пункт «Протокол Интернета версии 4 (TCP/IPv4)» и нажмите кнопку «Свойства», которая располагается чуть ниже выбранного Вами пункта. В итоге перед Вами отроется окно «Свойства: Протокол Интернета версии 4 (TCP/IPv4)», где Вам необходимо отметить пункт «Использовать следующий IP-адрес» и заполните поля: «IP-адрес» — 192.168.1.2, «Маска подсети» — 255.255.255.0, «Основной шлюз» — 192.168.1.1, «Предпочитаемый DNS-сервер» — 192.168.1.1, «Альтернативный DNS-сервер» — 195.34.32.116.

Операционная система Windows Seven

В меню «Пуск» выберите раздел «Панель управления», далее — «Сеть и Интернет», пункт «Просмотр состояния сети и задач» (Если в «Панели управления» перейти к классическому виду, то Вам необходим пункт «Центр управления сетями и общим доступом».) В открывшемся окне, в колонке слева, выберите пункт «Изменение параметров адаптера». Перед Вами откроется окно, в котором будут отображаться все подключения, имеющиеся на Вашем компьютере, в том числе подключение по локальной сети. Кликните один раз правой кнопкой мыши на значке «Подключение по локальной сети» и в появившемся контекстном меню выберите пункт «Свойства». Перед Вами откроется окно: выберите пункт «Протокол Интернета версии 4 (TCP/IPv4)» и нажмите кнопку «Свойства», которая располагается чуть ниже выбранного Вами пункта. В итоге перед Вами отроется окно «Свойства: Протокола Интернета версии 4 (TCP/IPv4)», где Вам необходимо отметить пункт «Использовать следующий IP-адрес» и заполнить поля: «IP-адрес» — 192.168.1.2, «Маска подсети» — 255.255.255.0, «Основной шлюз» — 192.168.1.1, «Предпочитаемый DNS-сервер» — 192.168.1.1, «Альтернативный DNS-сервер» — 195.34.32.116.

Операционная система Macintosh English

Откройте System Preferences или выберите значок «Системные настройки», зайдите в Network. Количество интерфейсов зависит только от модели компьютера. Выберите необходимый интерфейс для настройки: для Ethernet-подключения — Built-in Ethernet. Если интерфейс неактивен (не включен Wi-Fi (Airport) или не подсоединен кабель Ethernet), то его название отображается красным цветом. Если интерфейс активен (включен Wi-Fi (Airport) или подсоединен кабель Ethernet), то его название подсвечивается желтым цветом. Если интерфейс активен и настройки TCP/IP введены, то название интерфейса — зеленого цвета.

Дважды кликните на названии выбранного интерфейса, чтобы настроить параметры интерфейса. В ниспадающем меню Configure IPv4 выберите тип получения настроек TCP/IP — Manually. Введите следующие значения: IP Address — 192.168.1.2, Subnet Mask — 255.255.255.0, Router — 192.168.1.1, DNS Servers — 192.168.1.1, 195.34.32.116, и нажмите кнопку Apply Now.

Операционная система Macintosh Rus

В Apple Menu кликните на «Системные настройки» > «Сеть». В окне «Сеть», в левом боковом окне выберите Ethernet, нажмите кнопку «Дополнительно», откройте вкладку TCP/IP, затем ниже выберите «Вручную», пропишите адрес IPv4 — 192.168.1.2, маску подсети — 255.255.255.0, маршрутизатор — 192.168.1.1. Нажмите ОК.

В главном меню «Сети» выберите «Дополнительно», перейдите на вкладку DNS, щелкните по значку «+» под окном «Серверы DNS» — в открывшемся окне укажите первый DNS-сервер — 192.168.1.1, нажмите кнопку ОК. Повторите описанные действия, при этом указав второй DNS-сервер — 195.34.32.116. После этого в окне «Сеть», в левом боковом окне, Ethernet должен загореться зеленым (также появится надпись «Подключен»). Закройте окно «Сеть».

Настройка протокола TCP/IP на сервере.

1. В меню «Пуск» выбрать «Панель управления» – «Сетевые подключения» – «Подключения по локальной сети».

2. В появившемся диалоговом окне состояния на вкладке «Общие» нажать кнопку «Свойства» для отображения диалогового окна «Подключения по локальной сети – свойства».

3. В списке компонентов, используемых этим подключением, выбрать пункт «Протокол Интернета (TCP/IP)» и нажать кнопку «Свойства».

4. В диалоговом окне «Свойства: протокол Интернета (TCP/IP)» установить переключатель в положение «Использовать следующий IP-адрес» и в поле «IP-адрес» ввести значение «192.168.10.2».

«Использовать следующие адреса DNS-серверов» и в поле «Предпочитаемый DNS-сервер» ввести значение 192.168.10.2.

Данный сервер будет служить сервером DNS сам себе.

7. Нажать кнопку «Дополнительно».

8. На вкладке «DNS» следует убедиться в том, что установлены переключатель «Дописывать основной DNS-суффикс и суффикс подключения» и флажки «Дописывать родительские суффиксы оси. DNS-суффикса» и

9. Закрыть диалоговое окно свойств протокола TCP/IP.

10. Включить флажок «При подключении вывести значок в области уведомлений» и закрыть диалоговые окна «Подключения по локальной сети – свойства» и «Состояние Подключение по локальной сети».

В углу панели задач появится значок подключения по локальной сети.

Если включить переключатель «Использовать следующие адреса серверов DNS», но не указать ни одного адреса, то в ОС Windows 2000 Server будет автоматически введен адрес: «127.0.0.1». Это адрес локального интерфейса (loop-back), через который общаются между собой процессы, работающие на одном компьютере. Если сервер является в то же время сервером DNS, то


клиент DNS будет нормально работать, обращаясь по этому адресу. Адрес

«127.0.0.1» нельзя ввести вручную.

Настройка протокола TCP/IP на компьютере-клиенте.

1. В меню «Пуск» выбрать «Панель управления» – «Сетевые подключения» – «Подключение по локальной сети».

2. В появившемся диалоговом окне состояния на вкладке «Общие» нажать кнопку «Свойства». Отобразится диалоговое окно «Подключение по локальной сети – свойства».

3. В списке компонентов, используемых этим подключением, выбрать пункт «Протокол Интернета (ТСР/IР)» и нажать кнопку «Свойства».

4. В диалоговом окне «Свойства: протокол Интернета (TCP/IP)» установить переключатель в положение «Использовать следующий IP-адрес» и в поле «IP-адрес» ввести адрес: «192.168.10.17».

5. В поле «Маска подсети» ввести значение «255.255.255.0».

6. В нижней части окна свойств установить переключатель в положение

«Использовать следующие адреса серверов DNS» и в поле «Предпочитаемый DNS-сервер» ввести значение «192.168.10.2». Нажать кнопку «Дополнительно».

7. На вкладке «DNS» убедится в том, что установлены переключатель

«Дописывать основной DNS-суффикс и суффикс подключения» и флажки

«Дописывать родительские суффиксы осн. DNS-суффикса» и

«Зарегистрировать адреса этого подключения в DNS».

8. Закрыть диалоговое окно свойств протокола TCP/IP.

9. Включить флажок «При подключении вывести значок в области уведомлений» и нажать кнопку «Закрыть».

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Что представляет собой стек протоколов TCP/IP?

2. Какие функции выполняют основные протоколы стека TCP/IP?

3. Что представляет собой IP-адрес?

4. Каким образом назначаются сетевые адреса?

5. Какие подходы предлагают разработчики стека TCP/IP для решения проблемы дефицита IP-адресов?

6. С помощью чего может быть автоматизирован процесс распределения

IP-адресов по узлам сети?

Проблемы при регистрации на сайте? НАЖМИТЕ СЮДА ! Не проходите мимо весьма интересного раздела нашего сайта - проекты посетителей . Там вы всегда найдете свежие новости, анекдоты, прогноз погоды (в ADSL-газете), телепрограмму эфирных и ADSL-TV каналов , самые свежие и интересные новости из мира высоких технологий , самые оригинальные и удивительные картинки из интернета , большой архив журналов за последние годы, аппетитные рецепты в картинках , информативные . Раздел обновляется ежедневно. Всегда свежие версии самых лучших бесплатных программ для повседневного использования в разделе Необходимые программы . Там практически все, что требуется для повседневной работы. Начните постепенно отказываться от пиратских версий в пользу более удобных и функциональных бесплатных аналогов. Если Вы все еще не пользуетесь нашим чатом , весьма советуем с ним познакомиться. Там Вы найдете много новых друзей. Кроме того, это наиболее быстрый и действенный способ связаться с администраторами проекта. Продолжает работать раздел Обновления антивирусов - всегда актуальные бесплатные обновления для Dr Web и NOD. Не успели что-то прочитать? Полное содержание бегущей строки можно найти по этой ссылке .

Тонкая настройка параметров TCP/IP под толстые каналы

Пропускная способность локальных сетей и Интернет-каналов неуклонно растет, однако вместе с ней растут и потребности, вызывающие естественное желание выжать из TCP/IP-стека максимум возможного, чем мы сейчас, собственно, и займемся, главным образом акцентируя внимания на Windows Server 2003, хотя описанные технология оптимизации справедливы и для рабочих станций, собранных на базе W2K/XP.

Введение

По поводу кручения настроек TCP/IP существуют два диаметрально противоположных мнения: многие администраторы (а вместе с ними и авторы популярных книг!) считают, что разработчики уже сделали все, что нужно и любое вмешательство в этот четко отлаженный механизм может только навредить. В то же самое время в Интернете валяется множество руководств, обещающих если не путевку в рай, то радикальное увеличение производительности ценою изменения пары-тройки ключей в системном реестре.

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

Какой прирост производительности может дать оптимизация параметров TCP/IP, при условии, что она выполнена правильно? Зависит от того, насколько настройки по умолчанию близки к свойствам используемого канала. В среднем, следует ожидать 20%...30% выигрыша, однако в "клинических" случаях скорость увеличивается в несколько раз!

Прежде чем приступать к оптимизации

Вместо того, чтобы, засучив рукава, с первых же строк бросаться в бой, лучше сперва покурить и подумать. Допустим, мы имеем 10 мегабитный канал и скачиваем/раздаем файлы с превалирующей скоростью порядка мегабайта в секунду. Понятно, что никакими ухищрениями нам не удастся поднять производительность на сколь-нибудь заметную величину. Так стоит ли возиться?! К тому же, достаточно большое количество администраторов умышленно ущемляет отдачу в районе 50-100 Кбайт/с, предотвращая перегрузку сети. Какая уж тут оптимизация...

Другое дело, если наблюдаемая пропускная способность составляет менее 2/3 от заявленной аплинком. Тут уже без оптимизации никак не обойтись! Однако помимо TCP/IP-стека за производительность отвечают и другие системные компоненты - например, процессор. При большом количестве одновременно установленных соединений, загрузка ЦП может достигать 100%, особенно с учетом того, что в дешевом сетевом оборудовании подсчет контрольных сумм пакетов реализован на программном, а не аппаратном (как у дорогих моделей) уровне.

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

Также не стоит забывать и о том, что чрезмерная фрагментация дискового пространства существенно замедляет скорость отдачи/приема файлов, что является одной из основных причин замедления загрузок web-страничек у конечных пользователей.

В общем, прежде чем лезть в TCP/IP стек, следует убедиться, что все остальные возможные причины устранены и узким местом являются именно настройки сетевых протоколов, а не что-то иное (внимание : "убедиться" это совсем не тоже самое, что "убедить себя" ).

MTU + MSS = ???

MTU (M aximum T ransmission U nit - Максимальный [размер] Передаваемого Пакета), вероятно, самый известный параметр TCP/IP, рекомендации по настройке которого можно встретить практически в любой статье по оптимизации TCP/IP. Сотни утилит предлагают свои услуги по определению предельно точного значения, но, увы, обещанного увеличения производительности как-то не достигается.

MTU задет наибольший возможный размер отправляемого IP-пакета (вместе с заголовком), нарезая отправляемые данные на порции фиксированного размера. Чем больше MTU, тем ниже накладные расходы на передачу служебной информации, а, значит, выше "КПД" канала. С другой стороны, маршрутизаторы сваливают пакеты, поступающие от разных узлов, в общую очередь и потому гораздо выгоднее отправить один большой пакет, чем два маленьких, причем чем сильнее загружен маршрутизатор, тем больший выигрыш мы получим.


Рисунок 1.

Так в чем же дело?! Выкручиваем MTU до предела и... скорость падает до нуля. Почему? Причина в том, что с ростом размера пакетов увеличивается и время, необходимое для их повторной передачи в том случае, если пакет потерян или искажен. К тому же, промежуточные узлы имеют свои собственные настройки, и если размер передаваемого пакета, превышает текущий MTU, пакет разрезается на два или более пакетов, (т.е. фрагментируется) и эти фрагменты собираются воедино только на узле-приемнике, в результате чего пропускная способность уменьшается. Причем, если MTU узла отправителя лишь чуть-чуть превышает MTU промежуточного узла, то второй пакет состоит практически из одного заголовка, в результате чего зависимость скорость передачи от размера превращается в характерную пилообразную кривую (см. рис. 2).

Значения MTU, используемые Windows Server 2003 по умолчанию, приведены в таблице 1, однако при желании их можно изменить.



Рисунок 2. Зависимость скорости передачи данных от размера MTU (по данным http://member.nifty.ne.jp/oso/faq.mtu-faq.html ).

Запускаем утилиту "Редактора Реестра" и открываем в ней следующий раздел: HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interfaceGUID . Видим там параметр MTU типа DWORD (а если не видим, то создаем) и вводим размер в байтах (0xFFFFFFFF означает "использовать значение MTU по умолчанию). Интерфейсы заданы GUID-идентификаторами и обычно их бывает намного больше одного. Как среди них найти интерфейс кабельного модема или конкретной сетевой карты? Да очень просто - по IP-адресу!



Рисунок 3. Тонкая настройка TCP/IP параметров через "Редактор Реестра".

Существует возможность автоматического определения маршрута, по которому пакеты с заданным MTU проходят без фрагментации (параметр EnablePMTUDiscovery типа DWORD, находящийся в той же ветви реестра, что и MTU (значение "1" включает данную функцию, "0" - выключает). Однако многие администраторы промежуточных узлов по соображениям "безопасности" блокируют отправку ICMP-сообщений и узел-отправитель остается в полном неведении относительно факта фрагментации. Специально для обнаружения таких вот "неправильных" маршрутизаторов (прозванных "черными дырами" или, по-английски, Black Hole), Windows поддерживает специальный алгоритм, управляемый параметром EnablePMTUDiscovery (во всем аналогичным EnablePMTUDiscovery).



Рисунок 4. "Черными дырами" называют маршрутизаторы, не отправляющие ICMP-сообщения о факте фрагментации ретранслируемого пакета, что создает большие проблемы при попытке определения оптимального значения MTU.

В подавляющем большинстве случаев использование опций EnablePMTUDiscovery и EnablePMTUDiscovery приводит к снижению производительности и значение MTU лучше выбирать, отталкиваясь от таблицы 2, или действовать методом перебора.

Еще один параметр - MSS (M aximum S egment S ize - Максимальный Размер Сегмента) отвечает за максимальный размер передаваемых данных за вычетом длины заголовка IP-пакета (см. рис. 1). Трогать его не следует, да и Windows это все равно не позволяет. В общем случае, MSS = MTU - 40 байт.

Таблица 1. Значения MTU и MSS по умолчанию в Microsoft Windows Server 2003.

Таблица 2. Значения MTU, автоматически выбираемые Microsoft Windows Server 2003 в зависимости от типа подключения.

TCP Receive Window

Размер TCP-окна - малоизвестный, но чрезвычайно важный (в плане производительности) параметр, способный увеличить пропускную способность в несколько раз. Рассмотрим два узла - "A" и "B" и заставим узел "A" передавать узлу "B" данные, разбитые на сегменты, размер которых (как уже говорилось) определяется параметром MSS. Протокол TCP работает с установкой соединения, что обязывает его отправлять уведомления об успешно принятых сегментах. Неподтвержденные сегменты спустя некоторое время передаются узлом "A" вновь.

Промежуток времени между отправкой пакета и его получением называется латентностью (latency) и эта латентность в зависимости от типа и загруженности сети варьируется от 20 ms (и менее) до 100 ms (и более). Легко посчитать, что если бы подтверждался каждый сегмент, до даже в низколатентной сети реальная скорость передачи заметно отставала от ее реальных возможностей и была бы равна MTU / (2 * latency), что образует предел в 6 мегабит/сек, независящий от пропускной способности. Кошмар! Ну, как дальше жить?!

Вот потому-то создатели TCP/IP и разрешили узлу "A" отправлять более одного сегмента, не дожидаясь подтверждения. Максимальное количество сегментов, которые можно передать до прихода подтверждения и называется размером TCP-окна (процесс передачи хорошо проиллюстрированном на анимированном gif"e: http://cable-dsl.home.att.net/rwinanim.htm ). Почему этот параметр так важен для достижения наибольшей производительности?

Допустим, мы имеем 10-мегабитный канал и передаем 7 сегментов по 1460 байт каждый, потратив на этого 8 ms. Если латентность составляет 100 ms, то... 100 ms + 92 ms = 192 ms. Мы, как идиоты, ждем подтверждения целых 192 ms и 96% времени узел "А" проводит в бездействии, используя лишь 4% пропускной способности канала. Это, конечно, крайний случай, но все-таки не настолько далекий от истины, как можно было бы подумать.

В процессе установки соединения, узел "A" предлагает узлу "B" установить размер окна, равный 16 Кбайтам (значение по умолчанию, прописанное в параметре ТсрWindowSize реестра, который при желании можно изменить). Размер окна всегда округляется до целого количества сегментов (см. параметр MSS).

Если размер окна превышает 64 Кбайт, система активирует алгоритм автоматического масштабирования, который, впрочем, работает только в том случае, если узел B также поддерживает этот механизм, поэтому лучше задавать размер TCP-окна вручную, руководствуясь таблицей 3. (Однако следует помнить, что слишком большое окно забивает канал пакетами, вызывая перегрузку сети, препятствующую пересылке уведомлений, в результате чего производительность падает).

Минимально необходимый размер TCP-окна
Скорость канала в (Килобит/сек)
500 1000 1500 2000 2500
Латентность канала (ms) 50 2K 5K 7K 10K 12K
100 5K 10K 15K 20K 24K
150 7K 15K 22K 29K 37K
200 10K 20K 29K 39K 49K
250 12K 24K 37K 49K 61K
Windows 9x/NT по умолчанию 8K
Windows Me/2000/XP Server 2003 по умолчанию Скорость канала
< 1 Мегабит/сек 100 Мегабит/сек > 100 Мегабит/сек
8 KB 17 KB 64 KB
Рекомендуемые значения 32-63K

Один за всех - все за одного!

Если клиенты локальной сети работают через Proxy-сервер, то для достижения максимальной производительности достаточно изменить размер TCP-окна непосредственно на самом сервере.

При работе же через NAT необходимо настроить TCP-окно на каждой рабочей станции, подключенной к локальной сети.

Медленный старт и выборочное подтверждение

Для предотвращения перегрузок сети в протокол TCP был введен так называемый "медленный старт " ("slow start"), подробно описанный в RFC 1122 и RFC 2581.

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

Экспоненциальный рост ширины окна "съедает" совсем немного времени при передачи огромных файлов, но вот при установке множества TCP/IP соединений (характерных, например, для браузеров), обменивающихся крошечными порциями данных (классический пример которых - web-сервер), медленный старт заметно снижает эффективность широких каналов, кроме того даже при кратковременной перегрузке сети система сбрасывает размер окна в единицу, в результате чего график скорости отдачи файла из степной равнины превращается в холмистую терраформу (см. рис. 5).



Рисунок 5. "Медленный старт" и его последствия (CW - размер окна в сегментах).

Кроме того, система поддерживает специальный параметр Slow Start Threshold Size (Пороговый Размер [окна] Медленного Старта), по умолчанию равный 65636, но после распознавания ситуации "перегрузка сети", принимающий значение W / 2 и в дальнейшем является верхней границей экспоненциального роста параметра CW, что вызывает драматическое падение производительности (см. рис. 6).



Рисунок 6. Уменьшение размеров TCP-окна при обнаружении перегрузки сети.

Непосредственно отключить "медленный старт" штатными средствами Windows (не прибегая к патчу ядра) нельзя, однако если задействовать SACK-алгоритм (Selective Acknowledgement - Выборочное подтверждение, одно из расширений TCP-протокола, описанное в RFC 2018), "медленный старт" вырубается сам собой, становясь при этом никому не нужным пережитком старины.

Выборочное подтверждение передачи позволяет осуществлять повторную передачу неподтвержденных сегментов в одном окне (при неактивном SACK"е потерянные сегменты передаются один за другим в индивидуальном порядке). Другими словами, узел "А" повторно передает узлу "B" только реально потерянные сегменты, а не весь блок, в состав которого входят и успешно принятые пакеты. Очевидно, что максимальный прирост производительности будет наблюдаться на нестабильных каналах связи, регулярно теряющих пакеты.

Для активации алгоритма SACK достаточно установить параметр реестра SackOpts в значение "1" (значение по умолчанию для W2K и XP).

Время, работающее против нас

С подтвержденными сегментами все ясно. Если подтверждение пришло, сегмент можно считать успешно доставленным. Весь вопрос в том, сколько это самое подтверждение ждать и когда начинать повторную пересылку.

По умолчанию Windows Server 2003 ждет три секунды (при желании это значение можно изменить редактированием параметра TcpInitialRTT ), после чего осуществляет повторную посылку неподтвержденных пакетов, а сам интервал ожидания увеличивают в соответствии с алгоритмом SRTT (Smoothed Round Trip Time - сглаженное оцененное время обращения). Максимальное количество повторных передач хранится в параметре TcpMaxDataRetransmissions (по умолчанию равному пяти), при достижении которого соединение разрывается.

Очевидно, что на нестабильных каналах, страдающих хроническими задержками, количество разрывов соединений можно сократить путем увеличения параметра TcpMaxDataRetransmissions до любой разумной величины (но не больше FFFFFFFFh). С другой стороны, для повышения производительности и "нейтрализации" пагубного влияния потерянных пакетов на быстрых каналах с малым временем задержки значение TcpInitialRTT рекомендуется уменьшить до одной секунды.

Главный недостаток статического таймера в его неспособности реагировать на кратковременные изменения характеристик канала связи. Выбранное системой время ожидания подтверждения оказывается то мало, то велико. Производительность падает, пользователь рвет и мечет, а пропускная способность "плавает" в очень широких пределах, заметно отставая от ожидаемой.

Задержанное подтверждение (Delayed Acknowledgement) - еще одно расширение протокола TCP/IP, описанное в RFC 1122 и впервые реализованное в W2K (а также в NT 4.0 SP4). Вместо того, чтобы подтверждать каждый полученный сегмент, узел "B" теперь отправляет подтверждение только в случае, если в течении определенного промежутка времени (хранящегося в параметре TcpDelAckTicks и по умолчанию равном 200 ms), от узла "A" не было получено ни одного сегмента. Другими словами, если сегменты идут дружными косяками и все работает нормально, подтверждения не отправляются до тех пор, пока в сети не возникнет "затор". Немного подождав, узел "B" высылает подтверждение обо всех полученных сегментах, давая узлу "A" возможность самостоятельно разобраться - какие сегменты потерялись в дороге и передать их повторно с минимальными накладными расходами.

К сожалению, задержка, выбранная компанией Microsoft по умолчанию, близка к латентности сетей с большими задержками, что сводит на нет все достоинства данного алгоритма и для повышения производительности значение TcpDelAckTicks рекомендуется увеличить в несколько раз. Соответственно, на низколатентных сетях его лучше уменьшить, ликвидируя никому не нужные простои.

Значения данного параметра могут варьироваться в диапазоне от 0 до 6, выражаемом в десятых долях секунды, т.е. единица соответствует 100 ms, а нуль трактуется как запрет на использование задержанных подтверждений.

При использовании TCP-окон большого размера рекомендуется задействовать алгоритм временных меток (TCP-Timestamps), описанный в RFC 1323, и автоматически адаптирующий значение таймера повторной передачи даже в условиях быстро меняющихся характеристик канала связи. За это отвечает параметр Tcp1323Opts, который, будучи установленным в значение 3, разрешает использование всех расширений RFC 1323.

Заключение

В статье рассмотрены лишь некоторые опции TCP/IP-протокола, в наибольшей степени ответственные за его производительность. Но помимо них существует и другие, за разъяснением которых мы оправляем читателя по ссылкам ниже.

Полезные ссылки

Оптимизация работы протокола ТСР в распределенных сетях:
http://www.gurnov.ru/kms_catalog+stat+cat_id-4+page-1+nums-14.html

Enabling High Performance Data Transfers:
http://www.psc.edu/networking/projects/tcptune/

Step-by-step instructions for tuning TCP under Windows:
http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html

UNIX IP Stack Tuning Guide:
http://www.cymru.com/Documents/ip-stack-tuning.html

Navas Cable Modem/DSL Tuning Guide:
http://cable-dsl.home.att.net

Microsoft Windows 2000 TCP/IP Implementation Details:
http://www.microsoft.com/technet/network/deploy/depovg/tcpip2k.mspx

TCP/IP and NBT configuration parameters for Windows 2000 or for Windows NT:
http://support.microsoft.com/kb/120642/

PMTU black hole detection algorithm change for Windows:
http://support.microsoft.com/kb/136970/

Default MTU size for different network topology:
http://support.microsoft.com/kb/140375/

Dial-Up and Home Networking Troubleshooting Reference:
http://www.internetweekly.org/llarrow/mtumss.html




Top