Применение ICMP
Большая часть пакетов ICMP формируется и отправляется автоматически сетевым оборудованиям. Но некоторые типы сообщений формируются утилитами, которые применяются для диагностики сети. Рассмотрим утилиты ping и traceroute (в Windows tracert)
Утилита ping
Утилита ping используется, чтобы проверить доступность компьютера в сети. Возможно подключиться к этому компьютеру или нельзя. Ping использует это-протокол ICMP. Компьютер, который хочет проверить доступность другого, отправляет эхо-запрос (тип=8, код=0).
Компьютер, который получил такой запрос, в ответ отправляет эхо-ответ ICMP с типом 0, если эхо-ответ не пришел, значит установить с компьютером соединение по сети невозможно.
Пример использования утилиты ping для проверки возможности подключиться к сайту ВКонтакте. По умолчанию утилита ping запускает 4 эхо-запроса и для каждого эхо-запроса получен эхо-ответ. В ответе указывается некоторая диагностическая информация.
Утилита traceroute
Утилита traceroute позволяет определить маршрут от отправителя к получателю. Под маршрутом имеется в виду перечень всех маршрутизаторов через которые проходит пакет.
Пример работы утилиты traceroute ее windows вариант tracert для определения маршрута к сайту ВКонтакте.
Работа утилиты traceroute
Как утилита traceroute узнает маршрутизатор? Для этого утилита использует ICMP сообщения время жизни истекло. Чтобы этого достичь, сначала отправляется сообщение у которого время жизни установлено в единицу TTL=1.
Пакет доходит до первого маршрутизатора, маршрутизатор уменьшает время жизни TTL=0 и маршрутизатор отбрасывает пакет.
И генерирует сообщение об ошибке ICMP с типом 11, код 0 время жизни истекло. Утилита traceroute из заголовка IP пакета в которого вложен ICMP извлекает IP-адрес маршрутизатора.
На следующем этапе отправляется пакет с временем жизни равным двум TTL=2.
На первом маршрутизаторе время жизни уменьшается до единицы и пакет переходит на второй маршрутизатор.
Второй маршрутизатор снова уменьшает время на 1, время жизни становится нулем. Пакет отбрасывается и уже второй маршрутизатор отправляет сообщение время жизни истекло. Утилита traceroute извлекает адрес второго маршрутизатора из IP заголовка этого сообщения.
И так происходит до тех пор пока пакет не дойдет до узла назначения.
Проверка работоспособности сервиса FTP
- На компьютере, отличном от того, на котором проверяется сервер FTP, войдите в какой-нибудь каталог, в котором имеются файлы средних размеров, подходящие для передачи по FTP.
- Запустите командный процессор (MS-DOS) и наберите в командной строке команду ftp и имя компьютера, на котором установлен сервер FTP, например
ftp ws12
- После этого сервер FTP предлагает ввести имя пользователя и пароль.
- Введите имя одного из пользователей компьютера, на котором установлен сервер FTP, например, adm_ws12.
- Передайте в компьютер, на котором установлен сервер FTP, несколько файлов (для передачи файла используется команда put имя_файла, а для приема — get имя_файла).
- Убедитесь, что передача прошла успешно, распечатав содержимое каталога командой ls или ls -l .
- Выход из севиса ftp — по команде bye.
Работа с командной строкой
После небольшой корректировки примера убедимся работоспособности. Данный проект реализует эхо-сервер на основе TCP/IP протокола. То есть пакеты, отправленные на микроконтроллер (далее МК), будут получены обратно. Работать будем с командной строкой Windows и командой ping. Соединяется персональный компьютер (далее ПК) с платой с помощью патч-корда, который идет в комплекте с отладочной платой. С помощью сочетания клавиш Win+R открываем окно «выполнить», прописываем команду cmd. Посмотреть IP-адрес компьютера можно с помощью команды
Увеличить фото
Рисунок 1 — Определение IP адреса
На рисунке 1 можно увидеть IP. Здесь нужно понимать важную особенность. Она состоит в том, что в данный момент компьютер подключен к сети с выходом в Интернет. В настройках соединения по локальной сети стоит получение IP адреса автоматически. Это означает, что когда провод (patch-cord) будет извлечен из компьютера (и связи с Интернетом не будет), а плата будет подключена, этот IP изменится приблизительно через минуту. То есть, компьютер будет посылать запросы маршрутизатору в сеть «Кто Я?» и, поскольку ответа он не получит, IP изменится с динамического на статический.
Воспользуемся ARP-таблицей. ARP — протокол сетевого уровня, предназначенный для преобразования IP-адресов (адресов сетевого уровня) в MAC-адреса (адреса канального уровня) в сетях TCP/IP. ARP-таблица отображает IP и MAC подключенных к серверу сетевых устройств. Чтобы отобразить таблицу воспользуемся командной:
Увеличить фото
Рисунок 2 — Таблица ARP
Как можно видеть на рисунке 2, отобразились все IP, подключенные к серверу, и, как можно заметить, в рассматриваемой подсети 1ХХ.ХХ.Х.XX все IP динамические.
Диагностика разрешения имен (nslookup, dig)
Разобравшись с сетевой связностью и маршрутизацией приходим к следующему этапу — разрешение доменных имен. В большинстве случаев в работе с удаленными сервисами мы не используем IP-адреса, а указываем доменные имена удаленных ресурсов. За перевод символических имен в IP-адреса отвечает служба DNS — это сеть серверов, которые содержат актуальную информацию о соответствии имен и IP в пределах доверенных им доменных зон.
Самый простой способ проверить работает ли разрешение имен — запустить утилиту ping с указанием доменного имени вместо IP-адреса (например, ping ya.ru). Если ответные пакеты от удаленного сервера приходят, значит все работает как надо. В противном случае нужно проверить прописан ли DNS-сервер в сетевых настройках и удается ли получить от него ответ.
Способы выяснения какой DNS-сервер использует наш сервер различаются в зависимости от используемой версии и дистрибутива ОС Linux. Например, если ОС используется Network Manager для управления сетевыми интерфейсами (CentOS, RedHat и др.), может помочь вывод команды nmcli:
Скриншот №7. Команда nmcli
В настройках сетевого интерфейса, в разделе DNS configuration, мы увидим IP-адрес сервера. В Ubuntu 18.04 и выше, использующих Netplan, используем команду systemd-resolve —status:
Скриншот №8. Команда systemd-resolve —status
Используемый сервер также будет указан в настройках интерфейса, в разделе DNS Servers. В более старых версиях Ubuntu потребуется проверить содержимое файлов /etc/resolve.conf и /etc/network/interfaces. Если сервер не указан, воспользуйтесь статьей для ОС Ubuntu 18.04 или CentOS, чтобы скорректировать настройки.
Проверить работу сервиса разрешения имен нам помогут утилиты nslookup или dig. Функционально они почти идентичны: G-вывод утилиты dig содержит больше диагностической информации и гибко регулируется, но это далеко не всегда нужно. Поэтому используйте ту утилиту, которая удобна в конкретной ситуации. Если эти команды недоступны, потребуется доставить пакеты на CentOS/RedHat:
для Debian/Ubuntu:
После успешной установки сделаем тестовые запросы:
Скриншот №9. Тестовые запросы
В разделе Answer Section видим ответ от DNS сервера — IP-адрес для A-записи с доменным именем ya.ru. Разрешение имени работает корректно:
Скриншот №10. Подтверждение корректной работы
Аналогичный запрос утилитой nslookup выдает более компактный вывод, но вся нужная сейчас информация в нем присутствует.
Что же делать, если в ответе отсутствует IP-адрес? Возможно, DNS-сервер недоступен. Для проверки можно отправить тестовый запрос на другой DNS-сервер. Обе утилиты позволяют эти сделать. Направим тестовый запрос на DNS-сервер Google:
Скриншот №11. Отправка тестового запроса 1
Скриншот №12. Отправка тестового запроса 2
Если имена разрешаются публичным DNS-сервером корректно, а установленным по умолчанию в ОС нет, вероятно, есть проблема в работе этого DNS-сервера. Временным решением данной проблемы может быть использование публичного DNS-сервера в качестве сервера для разрешения имен в операционной системе. В том случае, если разрешение имен не работает ни через локальный, ни через публичный DNS сервер — стоит проверить не блокируют ли правила файрвола отправку на удаленный порт 53 TCP/UDP пакетов (именно на этом порту DNS-серверы принимают запросы).
Часто используемые параметры:
- nslookup имя сервер — разрешить доменное имя, используя альтернативый сервер;
- nslookup –type=тип имя — получить запись указанного типа для доменного имени (например, nslookup -type=mx ya.ru – получить MX-записи для домена ya.ru);
- dig @сервер имя — разрешить доменное имя, используя альтернативый сервер;
- dig имя тип — получить запись указанного типа для доменного имени (например, dig ya.ru mx — получить MX-записи для домена ya.ru).
Как обычно, полный набор опций и параметров для указанных утилит можно найти во встроенной справке операционной системы, используя команду man.
220140
Минск
ул. Домбровская, д. 9
+375 (173) 88-72-49
700
300
ООО «ИТГЛОБАЛКОМ БЕЛ»
700
300
Клиенты TCP: Hercules
Hercules — это программа для работы как с последовательными интерфейсами, так и с UDP/IP и TCP/IP — соединениями в режиме «клиент» и в режиме «сервер». Запустив программу, переходим во вкладку TCP Client, вводим IP. Пробуем установить соединение с помощью утилиты ping. Контроллер реагирует.
Увеличить фото
Рисунок 6 — Интерфейс утилиты Hercules
Теперь установим соединение по TCP/IP с МК. Такое соединение в данном протоколе устанавливается с помощью «тройного рукопожатия»
Для соединения очень важно указать порт. Поскольку мы устанавливаем TELNET-соединение, номер порта определён в файле tcpip.h следующим параметром:
Зададим соответствующее значение в программе и подключаемся, оставив IP неизменным (рисунок 7).
Увеличить фото
Рисунок 7 — Задание порта
После установления соединения в нижнем поле введем текст для посылки в контроллер и нажмем Send. В основном окне программы Received/Send data видим отправленное сообщение, выделенное фиолетовым цветом, а то, что отвечает микроконтроллер — чёрным (рисунок 8).
Увеличить фото
Рисунок 8 — Эхо ответ микроконтроллера
Применение программы ICMP-Traceroute
3.1 Принцип
Причины не использования опции маршрутизации записи IP (RR):
- Во-первых, не все маршрутизаторы изначально поддерживали параметры маршрутизации записи.
- Во-вторых, маршрутизация записей обычно является односторонней.
- Последняя и самая важная причина заключается в том, что заголовок IP имеет ограниченное пространство для параметров и не может хранить большинство текущих путей.
Трассировка операции:Сначала отправляется датаграмма UDP с полем TTL, равным 1, а затем поле TTL увеличивается на 1, чтобы определить каждый маршрутизатор на пути. Каждый маршрутизатор возвращает сообщение 2 тайм-аута ICMP при отбрасывании дейтаграмм UDP, и конечный хост назначения генерирует сообщение о недоступности порта ICMP.
- Каждый проходящий маршрутизатор уменьшает значение TTL на 1., Маршрутизатор не пересылает дейтаграмму (хост назначения, который получил эту дейтаграмму, может передать ее приложению, поскольку нет необходимости пересылать дейтаграмму. Но при нормальных обстоятельствах система не должна получать поле TTL, равное 0 дейтаграмма). Напротив, Ключ программы Traceroute заключается в том, что исходным адресом IP-пакета, содержащего эту информацию ICMP, является IP-адрес маршрутизатора.
- Программа Traceroute отправляет дейтаграмму UDP узлу назначения, но выбирает невозможное значение в качестве номера порта UDP (более 30000), что делает невозможным использование порта любым приложением на узле назначения. Потому что, когда приходит датаграмма,
Что касается программы Traceroute, есть несколько вещей, на которые следует обратить внимание:
- Прежде всего,
- Во-вторых,Это указывает на то, что напечатанное время кругового обхода может не отражать разницу во времени между отправкой и возвратом дейтаграммы (если дейтаграмма UDP занимает 1 секунду от источника к маршрутизатору, а сообщение ICMP использует другой маршрут для возврата к источнику, это занимает 3 Секунды, напечатанное время прохождения туда и обратно составляет 4 секунды
- В-третьих,Это отличается от опции маршрутизации IP-записи. Записанный IP-адрес относится к адресу интерфейса отправки. Поскольку каждый определенный маршрутизатор имеет два или более интерфейса, результаты, полученные при запуске программы traceroute с хоста A на хост B и при запуске программы traceroute с хоста B на хост A, могут отличаться.
Есть два разных сообщения ICMP об истечении времени ожидания, и поле кода в их сообщении ICMP отличается. Сообщение ICMP, используемое программой Traceroute, генерируется, когда значение TTL равно 0, а его поле кода равно 0.
3.3 Варианты маршрутизации исходной станции IP
Идея исходной маршрутизации заключается в том, что отправитель определяет маршрутизацию. Это может принимать следующие две формы:
- Строгая исходная маршрутизация, Отправитель указывает точный маршрут, который должна использовать датаграмма IP. Если маршрутизатор обнаружит, что следующий маршрутизатор, указанный исходным маршрутом, не находится в его напрямую подключенной сети, он возвращает сообщение об ошибке ICMP «сбой исходного маршрута».
- Свободный выбор исходного маршрута, Отправитель указывает список IP-адресов, через которые проходит дейтаграмма, но дейтаграмма может проходить через другие маршрутизаторы между любыми двумя адресами, указанными в списке.
Для произвольной исходной маршрутизации значение поля кода равно 0x83, а для строгой исходной маршрутизации — 0x89.
3.4 Сравнение программ ping и traceroute
Сравните различия между программами ping и traceroute при обработке нескольких экземпляров клиентов на одном хосте.
Сравните различия между программами ping и traceroute при расчете времени прохождения туда-обратно.
Страница HTML
Есть интересный проект под МК 1986ВЕ3Т, который является небольшой модификацией стандартного примера. В нём ПК соединяется с МК по TCP/IP, а последний, в свою очередь, отправляет html-страницу, которую можно открыть в браузере на компьютере. На страничке выводится информация о МК Миландра серии «Авиа», а также реализована возможность светодиодной индикации на плате. Для реализации такого проект в стандартный пример были внесены небольшие изменения:
-
добавлен код html страницы в массив DataOut[],
-
сделана инициализация диодов и добавлена функция для обработки присылаемых с ПК данных для индикации.
(Проект приложен к статье.)
Но обо всём по порядку. Для начала изменим значение TCPLocalPort в файле tcpip.c:
Поскольку раньше МК возвращал то, что было в него отправлено, по принципу стандартного «ЭХО», то сейчас изменим аргументы функции TCPTransmitTxBuffer
следующим образом:
где функция (sizeof(DataOut) -1) (вычитание единицы необходимо для того, чтобы не учитывать символ ‘\0’, который компилятор автоматически подставляет для обозначения конца строки) реализует подсчёт символов массива DataOut (в нём содержится HTML код нашей странички) и возвращает результат как аргумент функции TCPTransmitTxBuffer(); второй аргумент является указателем на массив данных DataOut. Также после отправки данных с помощью функции TCPTransmitTxBuffer(…) необходимо вызвать функцию TCPClose(), чтобы указать браузеру об окончании передачи страницы.
Теперь при обращении из браузера по IP адресу МК будет загружаться страничка из массива DataOut.
HTML страничка также подразумевает управление МК, а именно, зажигание светодиодов на плате с помощью передачи параметров кнопками «LED1 ON», «LED1 OFF» и другими. Чтобы МК воспринимал параметры, отправляемые ему с ПК, добавим функцию светодиодной индикации Drive_Led() в проект, листинг приведён ниже.
Таймаут при вызове connect
alarm
void alarm_hndlr( int sig ) { return; } int main( int argc, char **argv ) { // ... signal( SIGALRM, alarm_hndlr ); alarm( 5 ); int rc = connect( s, (struct sockaddr * )&peer, sizeof( peer ) ); alarm( ); if( rc < ) { if( errno == EINTR ) error( 1, , "Timeout\n" ); // ... }
Способ простой, но имеет ряд проблем.
- Таймер, используемый в вызове alarm не должен больше нигде применяться.
- Перезапустить connect сразу не получится. Необходимо будет подождать, закрыть и заново открыть сокет.
- Некоторые системы могут возобновлять connect
Неблокирующие соединения
Неплохо об асинхронной работе с сокетами расписано тут:
http://www.wangafu.net/~nickm/libevent-book/01_intro.html
Суть в том, чтобы использовать неблокирующие сокеты и следить за ними с помощью системных вызовов.
Жалко только, что переносимое решение «из коробки» можно реализовать только с тупым и медленным select.
select
int main( int argc, char **argv ) { struct sockaddr_in peer; INIT() // set_address( argv1], argv2], &peer, "tcp" ); SOCKET s = socket( AAF_INET, SOCK_STREAM, ); if( !isvalidsock( s ) ) error( 1, errno, "Socket colling error" ); /* Добавляет флаг "не блокирующий" к флагам сокета (как дескриптора файла)*/ int flags = fcntl( s, F_GETFL, ) ); if( flags < ) error( 1, errno, "Error calling fcntl(F_GETFL)" ); if( fcntl( s, F_SETFL, flags | O_NONBLOCK ) < ) error( 1, errno, "Error calling fcntl(F_SETFL)" ); int rc = connect( s, (struct sockaddr * )&peer, sizeof( peer ) ); if( rc < && errno != EINPROGRESS ) error( 1, errno, "Error calling connect" ); if( rc == ) // вдруг уже не надо ждать { if( fcntl( s, F_SETFL, flags ) < ) error( 1, errno, "Error calling fcntl (flags recovery)"); client( s, &peer ); return ; } /* Если ждать надо, ждем с помощью select'а*/ fd_set rdevents; fd_set wrevents; fs_set exevents; FD_ZERO( &rdevents ); FD_SET( s, &rdevents ); wrevents = rdevents; exevents = rdevents; struct timeval tv; tv.tv_sec = 5; tv.tv_usec = ; rc = select( s + 1, &rdevents, &wrevents, &exevents, &tv ); if( rc < ) error( 1, errno, "Error calling select" ); else if( rc == ) error( 1, , "Connection timeout" ); else if( isconnected( s, &rdevents, &wrevents, &exevents ) ) { if( fcntl( s, F_SETFL, flags ) < ) error( 1, errno, "Error calling fcntl (flags recovery)" ) client( s, &peer ); } else error( 1, errno, "Error calling connect" ); return ; } /* В UNIX и WINDOWS разные методы уведомления об успешной попытке соединения, поэтому проверка вынесена в отдельную функцию.*/ // UNIX int isconnected( SOCKET s, fd_set *rd, fd_set *wr, fd_set *ex) { int err; int len = sizeof( err ); errno = ; /*предполагаем, что ошибки нет*/ if( !FD_ISSET( s, rd ), !FD_ISSET( s, wr ) ) return ; if( getsockopt( s, SOL_SOCKET, SO_ERROR, &err, &len ) < ) return ; errno = err; /* если мы не соединились */ return err == ; } // Windows int isconnected( SOCKET s, fd_set *rd, fd_set *wr, fd_set *ex) { WSASetLastError( ); if( !FD_ISSET( s, rd ) && !FD_ISSET( s, wr ) ) return ; if( !FD_ISSET( s, ex ) ) return ; return 1; }
Краткое описание:
Advanced TCP/IP Data Logger позволяет захватывать данные, передаваемые по протоколу TCP/IP или UDP и сохранять их в файл, а также передавать в другие приложения , или , или просто другое Windows приложение. Advanced TCP/IP Data Logger в реальном времени собирает данные от любого устройства или инструмента и может использоваться как при работе в локальной сети, так и при работе в Интернет.
Advanced TCP/IP Data Logger собирает данные, обрабатывает их соответственно вашим нуждам, выделяет блоки данных из общего потока и затем передает данные в любое приложение Windows или DOS — путем отправки в окно приложения, передает данные через (Dynamic Data Exchange), , и т.п. Это идеальное решение для автоматизированных систем сбора данных, которые используют в своем составе устройства с Ethernet портами.
Как починить подключение к интернету с помощью NetAdapter Repair?
Немного отойду от темы статьи, и дам вам небольшой совет. Убедитесь, что возникшая на вашем компьютере проблема с подключением к интернету, или с работой локальной сети не является причиной неполадок на стороне роутера/модема (если он есть), или интернет-провайдера (можно позвонить в поддержку и все выяснить). Проверьте, работает ли интернет на других устройствах через это же подключение, подключите интернет напрямую (без роутера), отключите роутер на несколько минут, перезагрузите компьютер. Не стоит сразу применять какие-то решения непосредственно на компьютере (чтобы не сделать еще хуже), если причина возникшей проблемы не на стороне вашего компьютера.
Вернемся к NetAdapter Repair и рассмотрим представленные в этой программе функции, применив которые мы можем решить возникшие проблемы с подключением к сети.
В самом верху находится большая кнопка «Advanced Repair». Нажатием на эту кнопку можно внести основные, расширенные исправления в сетевые настройки Windows (сброс основных настроек). После нажатия на нее появится окно, где нужно подтвердить выполнение следующих действий:
- WinSock/TCP IP Repair – сброс настроек TCP/IP. Как это выполнить вручную, я писал здесь (для Windows 7/8/10) и здесь (для Windows 10).
- Clear all Proxy/VPN Settings – очистка настроек прокси и VPN. Кстати, очень часто именно из-за этих настроек не открываются сайты в браузерах. При том, что подключение к интернету есть. Вручную так же можно проверить и очистить настройки прокси.
- Windows Firewall Repair – восстановление заводских настроек брандмауэра Windows.
Для подтверждения нужно нажать Ok. Дальше начнут появляться черные окна. Затем в программе появится окно с кнопкой Restart и обратным отсчетом. Нажимаем на эту кнопку и ждем, пока компьютер перезагрузиться.
Возможно, вам не придется делать расширенный сброс, а достаточно будет применить определенные решения с помощью отдельных кнопок, которые находятся ниже.
Дополнительные инструменты:
- Release and Renew DHCP Address – обновление IP-адреса. Повторное подключение к DHCP-серверу.
- Clear Hosts File – очистка файла hosts. View – просмотр файла hosts. Эта функция может быть полезной, когда перестали открываться все, или какие-то определенные сайты. В основном это происходит после заражения компьютера вирусами, или вредоносным ПО.
- Clear Static IP Settings – очистка статических настроек IP-адресов. Очень полезный инструмент. После нажатия на эту кнопку будет установлено автоматическое получение IP-адресов. Подробнее об этом я писал в статье автоматическое получение IP-адреса в Windows.
- Change to Google DNS – для текущего подключения будут прописаны DNS-cервера Google (которые 8.8.8.8 / 8.8.4.4). Это можно сделать вручную по инструкции как заменить DNS на Google Public DNS. Но в программе NetAdapter Repair это все делается нажатием на одну кнопку.
- Flush DNS Cache – запускает очистку кэша DNS. Может решить ошибку «DNS-сервер не отвечает» при открытии сайтов в браузере. После этого можно прописать DNS от Google (см. предыдущий пункт).
- Clear ARP/Route Table – выполняет полную очистку таблицы маршрутизации.
- NetBIOS Reload and Release – перезагрузка протокола NetBIOS.
- Clear SSL State – функция очистки SSL.
- Enable LAN Adapters – включение сетевых адаптеров (сетевых карт).
- Enable Wireless Adapters – включение беспроводных Wi-Fi адаптеров. Может пригодится: как включить Wi-Fi в Windows 7, или беспроводная сеть – Отключено в Windows 10.
- Reset Internet Options Security/Privacy – сброс настроек безопасность и конфиденциальность браузеров до значений по умолчанию.
- Set Network Windows Services Default – установка заводских настроек для сетевых служб Windows.
Их можно нажимать, и по отдельности выполнять определенные действия, или выделить необходимы/все пункты галочками и запустить исправление нажатием на кнопку «Run All Selected».
Очень много полезных инструментов, которые очень легко применять. Да, все это можно сделать и вручную, но это сложно и долго. А с помощью NetAdapter Repair можно решить проблему с подключением к интернету буквально в несколько кликов. По крайней мере, можно попытаться. Если, конечно, причина каких-то сетевых настройках Windows.
23
Сергей
Программы / Браузеры
Утилита Tracert
Отсылает ICMP (аналогичная по сути утилита tcptraceroute отсылает TCP) запросы и определяет каждый узел при похождении пакета от компьютера запроса до цели. В выводе показывает все хопы(маршрутизаторы) в виде строк след-го вида () 74.881 ms 74.888 ms 74.895 ms
где значения в ms разница между временем отправки пакета и получением ответа. По умолчанию делается 3 запроса.
В командную строку введите tracert . При обнаружении знаков * в одном из хопов или появлении строки «request timeout» c большой долей вероятности вы нашли узел, где прерывается маршрут пакетов и решение вопроса стоит искать совместно с владельцами таких серверов
Также обратите внимание на большие значения в ms.
Создание базовой базы
Для сравнения текущей пропускной способности необходимо создать базовый уровень производительности. Чтобы лучше понять сеть, создайте базовый уровень в начале развертывания.
Базовый уровень формируется следующими основными пунктами:
- Сети источника и назначения
- Задержка и количество переходов между этими сетями
- Возможности и конфигурация процессора и интерфейса
- Сроки тестов (рабочие часы/нерабо-часы/часы пик)
- Версии ОС
- Нажатие тяги и пропускной способности пропускной способности
Примечание
Создайте базовую линию с одинаковыми моделями серверов (одинаковое количество карт NIC и емкость процессора), чтобы производительность обработки была почти равной.
Следите за буфером и отслеживайте количество транспортных сеансов, созданных с помощью средств тестирования. Четыре одновременных транспортных сеанса TCP могут оценивать использование ЦП вчетвером с включенной поддержкой RSS.
Ниже параметров для измерения пропускной способности и создания базового плана:
-
Скачайте средство ctsTraffic. Ниже описаны некоторые параметры средства ctsTraffic.
Параметр Описание Этот параметр используется для прослушивания порта на серверах. Если указано, средство ctsTraffic прослушивает все IP-адреса, доступные на этом компьютере. Например, . Этот параметр используется для клиентов и указывает IP-адрес сервера, на котором ctsTraffic.exe запущен и находится в состоянии прослушивания. Например, . Средство CtsTraffic по умолчанию использует шаблон Push. Это означает, что данные отправляются от клиента на сервер. Когда этот переключатель используется как на клиенте, так и на сервере, данные получаются на клиенте. Не используйте этот параметр при выполнении push-теста. Этот параметр указывает количество подключений TCP. Одновременно с клиентом будут создаваться розетки TCP. Восьмерка обычно используется в качестве очередей RSS на сетевых картах средней сети 8. Например, . Этот параметр указывает умноженное количество подключений в . Например, . С 10 итерациями клиент будет пытаться 80 подключений в общей сложности. Если этот параметр не указан, клиент будет продолжать попытки 8 подключений до 1000 подключений. Используйте этот параметр, чтобы смыть параметр консоли уровня 1 в файл, совместимый с Microsoft Excel. Используйте этот параметр, чтобы смыть подробные сведения. Например, сведения о уровне розетки, например время, заданная каждой розеткой для передачи данных. Вы можете проверить, есть ли какие-либо ошибки или дополнительные устранения неполадок с помощью этого параметра. Этот параметр указывает представление или выход на мониторе во время тестирования. Например, . -
Open Resource Monitor на стороне приема. Например, если вы используете, откройте его на клиенте, в противном случае откройте его на сервере.
-
Запустите средство ctsTraffic на сервере и запустите следующую команду:
-
Запустите средство ctsTraffic на клиенте и запустите следующую команду:
-
Убедитесь, что процессоры приемной стороны используются в 10 раз. Если они не работают, проверьте проблему с RSS, чтобы узнать, какой из них работает не так, как ожидалось.
-
Вычислять пропускную способность в битах в секунду в зависимости от результата на клиенте. Обратитесь к примеру на следующем скриншоте:
В этом примере пропускная способность составляет почти 19 Гб/с и рассчитывается следующим образом:
(85 899 349 200 bytes/36.678 seconds) * 8 = 18 735 885 097.33355 (биты/секунда)
Информация и диагностика сети в NetAdapter Repair
- Public IP Address – это наш внешний IP-адрес, который выдал интернет-провайдер.
- Computer Host Name – имя компьютера в локальной сети.
- Network Adapter – в этом поле указано название сетевого адаптера, через которое в данный момент у нас выполняется подключение к сети и для которого отображается информация. Мы можем выбрать другой адаптер из списка и посмотреть информацию о нем. Но обычно в этом нет необходимости.
- Local IP Address – это IP-адрес, который присвоен нашему компьютеру Wi-Fi роутером, или модемом. То есть, внутренний IP-адрес.
- MAC Address – здесь указан MAC-адрес текущего адаптера. Нажав на кнопку «Spof» можно сменить MAC-адрес.
- Default Gateway – основной шлюз.
- DNS Servers – адрес DNS-сервера.
- DHCP Server – адрес DHCP-сервера.
- Subnet Mask – маска подсети.
Для удобства поставил номера возле каждого пункта (которые соответствую списку выше).
Доступно два средства диагностики:
- Ping IP – проверка возможности подключения к интернету. Идет отправка пинг к сайту Google. Точнее к его IP-адресу.
- Ping DNS – проверка соединения с публичными DNS-серверами Google.
Кнопки запуска диагностики находится сверху, а результаты выводятся в отдельном поле снизу.
Конечно, все это можно выполнить и без NetAdapter Repair – через командную строку Windows. Но согласитесь, работать с программой намного проще, чем прописывать какие-то команды в командной строке.
Назначение утилиты ping
Утилита Ping — В Windows есть утилита для проверки соединений в сетях на основе TCP/IP, а также обиходное наименование самого запроса. С помощью данной утилиты вы посылаете пакеты на нужный вам адрес или хост и смотрите есть ли ответ или нет, если его нет и нет запрещающих правил блокировать ICMP пакеты, то можно сделать вывод что хост не доступен. Данная программка есть как в Windows так и в Linux системах, и пишется везде одинаково, единственное могут быть разные дополнительные ключи.
Откройте командную строку в Windows и введите ping, а Linux системах в консоли команда та же. Перед вами откроется описание утилиты со всеми ключами.
Утилита ping или как проверить доступность хоста. Сетевые утилиты 1 часть-02