Как пинговать сервер 1с

Обновлено: 08.07.2024

Внешняя компонента для тех, кто не хочет использовать для пинга программу ping.exe или WMI. С помощью компоненты можно проверить доступность соединения с хостом в сети по протоколу ICMP.
Преимущества:

  1. Не требуется наличие программы ping.exe;
  2. Не требуется наличие COM-объектов;
  3. Не требуется наличие прав администратора;
  4. Удобно работать с результатом выполнения;
  1. Нет поддержки IPv6;
  2. Нет поддержки Linux;
  3. Возможно еще куча др. недостатков о которых я не подумал.

Для работы компоненты требуется библиотека ICMP.DLL, которая присутствует по умолчанию в любой ОС Windows начиная с XP и выше. Компонента тестировалась на Windows 10, платформа 1С версии 8.3.10.2650 (x86). На 64-х разрядных платформах работа не тестировалась.

Внешняя компонента написана по технологии Native API, имеет всего 1 метод и 1 свойство.
Методы:
1. Ping | ЭхоЗапрос(<Адрес>, <РазмерПакет>, <Таймаут>, <КодОшибки>, <IPАдресХоста>) - Выполняет эхо-запрос на указанный адрес;
Параметры:
<Адрес> - Тип Строка. Адрес куда нужно послать пинг в виде имени или IP-адреса (IPv4). IPv6 не поддерживается.
<РазмерПакета> - Тип Число. Размер посылаемого пакета в байтах. Параметр не обязательный, значение по умолчанию 32.
<Таймаут> - Тип Число. Таймаут это-запроса в миллисекундах. Параметр не обязательный, значение по умолчанию 5000.
<КодОшибки> - Тип Число. Параметр не обязательный, в качестве параметра должна передаваться переменная в которую будет помещен код ошибки, в случае возникновения ошибки при отправке эхо-запроса.
Возможные коды ошибок:
0 = "Success"
11001 = "Buffer Too Small"
11002 = "Destination Net Unreachable"
11003 = "Destination Host Unreachable"
11004 = "Destination Protocol Unreachable"
11005 = "Destination Port Unreachable"
11006 = "No Resources"
11007 = "Bad Option"
11008 = "Hardware Error"
11009 = "Packet Too Big"
11010 = "Request Timed Out"
11011 = "Bad Request"
11012 = "Bad Route"
11013 = "TimeToLive Expired Transit"
11014 = "TimeToLive Expired Reassembly"
11015 = "Parameter Problem"
11016 = "Source Quench"
11017 = "Option Too Big"
11018 = "Bad Destination"
11032 = "Negotiating IPSEC"
11050 = "General Failure"
<IPАдресХоста> - Тип Строка. Параметр не обязательный, в качестве параметра должна передаваться переменная в которую будет помещен IP-адрес (IPv4) отвечающего хоста. Таким образом можно узнать IP-адрес по имени хоста переданного в параметре <Адрес>.

Возвращаемое значение: Тип Число. Время между эхо-запросом и эхо-ответом в миллисекундах. В случае возникновения ошибки возвращаемое значение равно -1.

Свойства:
1. Version | Версия - Тип Строка. Содержит версию компоненты в виде строки. Данное свойство доступно только для чтения. Текущая версия 1.0.

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

В сети интернет, в частности, на форумах, в случае возникновения проблемы с подключением к какому-либо узлу (серверу), рекомендуют проверить пинг или выполнить трассировку маршрута и таким образом проверить доступность сервера.

Однако не всегда можно встретить информацию о том, как именно выполняется эта проверка: как пинговать или как сделать трассу.

Содержание

Проверка пинга

Для проверки пинга используется одноименная команда ping, которую необходимо вводить в командной строке. Запустить командную строку можно следующими способами:

1) Пуск -> Все программы -> Стандартные -> Командная строка

2) Пуск -> Выполнить -> cmd

cmd

В данной ОС существует множество терминалов, поэтому для этих целей можно использовать любой из установленных на ПК. Обычно стандартный терминал можно запустить сочетанием клавиш CTRL+ALT+T.

Запуск терминала в Linux

Итак, чтобы пропинговать определенный сервер, необходимо выполнить команду:

Например, для пинга адреса 11.222.33.44 необходимо выполнить команду:

Ниже приведён пример результатов выполнения пинга одного из IP адресов.

Как проверить пинг и трассировку

Как видно из результатов, было передано и получено 4 пакета размером 32 байта. Время обмена одним пакетом составило 47 милисекунд.

Стоит отметить, что в Windows по умолчанию выполняется отправка только 4 пакетов. В Linux обмен пакетами продолжается до тех пор, пока пользователь самостоятельно не остановит процесс сочетанием клавиш CTRL+C. Чтобы запустить ping аналогичным образом в Windows, необходимо использовать параметр -t. Например:

Остановка обмена пакетами выполняется тем же сочетанием клавиш – CTRL+C.

Установка количества отправляемых пакетов

Чтобы задать максимальное количество отправляемых пакетов, необходимо использовать команду следующего вида:

Изменение размера отправляемых пакетов

Чтобы выполнить ping с использованием пакетов определенного размера (в байтах), необходимо использовать следующую команду:

В данном случае производилась отправка пакетов размером в 64 байта.

Проверка трассировки

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

Проверка трассировки

Для выполнения трассировки используется следующая команда:

Стоит отметить, что по умолчанию при трассировке также выполняется DNS-запрос на разрешение IP адреса в доменное имя для каждого проходящего маршрутизатора. Эту опцию можно отключить, таким образом, сократив время получения результатов трассировки.

Чтобы активировать эту опцию необходимо использовать следующий вид команды:

В работе бухгалтера иногда бывают случаи, когда при попытке открыть 1С происходят сложности с подключением к удаленному серверу, на котором расположена информационная база данных (ИБ).

Остановимся на рассмотрении проверки сетевого соединения в случаях, когда это происходит при подключении к терминальному серверу или при использовании сетевой ИБ в виде каталога с общим доступом по сети.

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





Для решения этой проблемы и возобновления работоспособности соединения с информационной базой 1С Вам необходимо обратиться к системному администратору (компьютерщику).

При наличии связи с сервером в окне командной строки будет следующая информация:


Если связь с сервером есть, но информационная база не открывается, то Вам стоит проверить наличие этой базы на сервере. Если же всё на месте, но не работает, то для решения этой проблемы и возобновления работоспособности информационной базы в 1С Вам необходимо обратиться к системному администратору (компьютерщику). Так же это касается и ошибки подключения к удаленному рабочему столу.

В случае, если у Вас появятся какие-либо сложности, свяжитесь с нами, мы обязательно поможем.

Если у Вас появились вопросы по статье или остались нерешенные проблемы обсудить их Вы можете на Форуме 1С Вопросы и ответы

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

Географическая близость сервера не всегда равна близости на уровне IP маршрутизации. Так, например, сервер в другой стране может быть «ближе» к вам, чем сервер в вашем городе. Все из-за особенностей маршрутизации и построения сетей.


Измеряем задержки

Для начала научимся измерять задержки. Эта задача не так проста, как может показаться, потому что для разных протоколов и размеров пакета задержки могут отличаться. Также можно не заметить кратковременные явления, например провалы продолжительностью в несколько миллисекунд.

ICMP — обычный ping

Будем использовать юниксовую утилиту ping, она позволяет вручную установить интервалы между посылками пакетов, чего не умеет версия ping для windows. Это важно, потому что, если паузы между пакетами долгие, можно просто не увидеть, что происходит между ними.

Размер пакета (опция -s) — по умолчанию утилита ping посылает пакеты размером 64 байта. С такими маленькими пакетами могут быть не заметны явления, проявляющиеся с большими пакетами, поэтому мы будет устанавливать размер пакета 1300 байт.

Интервал между пакетами (опция -i) — время между посылками данных. По умолчанию пакеты посылаются раз в секунду, это очень долго, реальные программы шлют сотни и тысячи пакетов в секунду, поэтому установим интервал 0.1 секунду. Меньше просто не разрешает программа.

В итоге команда выглядит так:


Такая конструкция позволяет увидеть более реалистичную картину задержек.

Пинг по UDP и TCP

Утилита nping от разработчиков знаменитого сканера nmap умеет генерировать любые пакеты. Ее можно использовать в том числе для измерения задержек.
Так как UDP и TCP работают на определенных, нам нужно «пинговать» конкретный порт. Попробуем пропинговать TCP 80, то есть порт веб-сервера:


По умолчанию nping посылает 4 пакета и останавливается. Опция -c 0 включает бесконечную посылку пакетов, чтобы остановить программу, нужно нажать Ctrl+C. В конце будет показана статистика. Видим, что среднее значение rtt (round-trip time) равно 101мс.

MTR — traceroute на стероидах

Программа MTR (англ. My Traceroute) — продвинутая утилита для трассировки маршрутов до удаленного хоста. В отличии от обычной системной утилиты traceroute (в windows это утилита tracert), умеет показывать задержки до каждого хоста в цепочке следования пакета. Также умеет трассировать маршруты не только по ICMP, но и по UDP и TCP.

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

WiFi против кабеля



Эта тема не совсем относится к статье, но на мой взгляд очень важна в контексте задержек. Я очень люблю WiFi, но, если у меня есть хоть малейшая возможность подключиться кабелем к интернету, я ею воспользуюсь. Также я всегда отговариваю людей использовать WiFi камеры.
Если вы играете в серьезные онлайн-шутеры, вещаете потоковое видео, торгуете на бирже: пожалуйста, используйте интернет по кабелю.

Вот наглядный тест для сравнения WiFi и кабельного подключения. Это ping до WiFi роутера, то есть еще даже не интернет.

image


(Кликабельно) Сравнение ping до WiFi роутера по кабелю и по WiFi

Видно, что по WiFi задержки больше на 1мс и иногда бывают пакеты с задержками в десять раз больше! И это только короткий отрезок времени. При этом тот же самый роутер выдает стабильные задержки <1мс.

В примере выше используется WiFi 802.11n на 2.4GHz, к точке доступа по WiFi подключен только ноутбук и телефон. Если бы на точке доступа было больше клиентов, результаты были бы сильно хуже. Именно поэтому я так против перевода всех офисных компьютеров на WiFi, если есть возможность дотянуться до них кабелем.

IP связность


При заходе на сайт видим, что наш IP-адрес принадлежит автономной системе AS42610.

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



Граф связности автономных систем провайдера

Большинство точек обмена трафиком предоставляют специальный инструмент, называемый, looking glass, позволяющий выполнить ping и traceroute со стороны конкретного роутера на точке обмена.

Вот, например, looking glass от МГТС

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

Выбираем ближайший сервер

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



Кнопка ведет на страницу теста задержек до всех наших датацентров. Чтобы посмотреть результаты тестирования нажмите на точку датацентра на карте

Читайте также: