Почему станция работает не так, как надо - 3
Проиллюстрируем сказанное на примере диагностики простейшей сети (рис. 2), состоящей из одной рабочей станции, одного коммутатора и одного сервера. Первое, с чего следует начать, это посмотреть, есть ли повторные передачи на транспортном уровне сети. При этом не имеет значения, в какой точке тракта “рабочая станция — сервер” будет собираться канальная трассировка. Важно, от кого идут повторные передачи кадров — от станции или от сервера. Например, если вы собираете канальную трассировку в точке “А” и видите, что только рабочая станция осуществляет повторные передачи, то это будет означать, что кадры теряются в сервере, коммутаторе или где-то между ними.
Если повторные передачи на транспортном уровне отсутствуют, то следует выяснить, существуют ли задержки при передаче пакетов и кто их вносит. При этом крайне важно определить, в какой точке сети выполняется трассировка. На рис. 3 показана канальная трассировка, собранная на серверном порте коммутатора (порт “В”). Параметры теста идентичны описанным выше. Из данных трассировки видно, что при обмене пакетами между рабочей станцией и сервером возникают паузы.
При выполнении операции записи рабочая станция (193.0.0.5) передает на сервер (193.0.0.3) содержимое записи в пачке из трех пакетов: 164—166. В ответном пакете 167 сервер подтверждает прием не всей пачки, а только двух ее первых пакетов. Последний пакет остается неподтвержденным. Это и является причиной задержки. Не получив подтверждения сервера о приеме всех данных, рабочая станция не завершает операцию записи. Выждав паузу 200 мс, она в соответствии с алгоритмом Delayed Acknowledgments посылает серверу пакет 169 с информацией об объеме переданных и принятых данных. Только после этого сервер подтверждает прием полученных от рабочей станции данных и операция записи завершается. Возникающие таким образом паузы приводят к снижению скорости выполнения операций записи.
Еще раз хотим обратить ваше внимание, что относительно просто поставить диагноз, почему станция работает не так, как надо, можно только в тех случаях, когда заранее известно, как станция должна работать, и в данном случае вы можете этого добиться, задавая различные параметры теста. Таким образом, выявить дефект, анализируя трассировку тестового трафика, существенно проще, чем при анализе трассировки трафика пользовательского приложения.