Программы ONC-RPC в Wireshark

Опубликовано: 24 Февраля, 2023

Протокол ONC-RPC представляет собой набор стандартов для удаленных вызовов процедур и позволяет компьютерным программам обмениваться данными по сети. Эта статья поможет вам понять программы ONC-RPC (удаленный вызов процедур ONC), которые передают информацию через Wireshark.

ONC-RPC:

В области разработки программного обеспечения удаленный вызов процедуры (RPC) — это способ компьютерной программы вызвать выполнение подпрограммы или процедуры в другом адресном пространстве, часто на другом компьютере в той же сети. Удаленные вызовы процедур могут передаваться по сетям с использованием интернет-протоколов, таких как TCP/IP и UDP. Эти вызовы входят в число многих низкоуровневых интернет-протоколов, называемых «стеком TCP/IP», которые напрямую соответствуют протоколам более высокого уровня стандартизации, таким как HTTP и SMTP. Следовательно, RPC — это одна из форм интернет-сервиса, которую можно использовать как через TCP, так и через UDP; они позволяют программам, работающим на разных компьютерах, подключенных к IP-сети, такой как Интернет, взаимодействовать друг с другом.

Процесс обработки ONC RPC:

В первые годы существования Интернета удаленные вызовы процедур реализовывались с использованием протокола межпроцессного взаимодействия, поскольку протокол TCP/IP был недоступен. Этот протокол также известен как Microsoft RPC и Sun RPC (а в последнее время — как стандартный RPC). Основная идея этой модели программирования заключается в том, что клиентская программа вызывает одну или несколько функций на сервере, которые обрабатывают запрос и возвращают результаты клиенту. Процесс обработки ONC RPC приведен ниже:

  • Приложение генерирует запрос PDU и отправляет его на сервер.
  • Сервер обрабатывает запрос, создает ответный PDU и отправляет его обратно.
  • Теперь работа клиента состоит в том, чтобы получить ответ от сервера, обработать его, получить от него некоторые данные (или выполнить какое-либо другое действие) и вернуть это значение в другом PDU на сервер для подтверждения.
  • Таким образом, RPC можно использовать как в качестве протокола связи между клиентом и сервером, так и в качестве протокола между сервером и клиентом.
  • Первые два шага каждого направления идентичны; Шаги 3 и 4 различаются в зависимости от того, в каком направлении вы идете.

Первым шагом в этом процессе является понимание того, как Wireshark имеет два разных представления, которые можно использовать как для захвата, так и для анализа пакетов, а именно:

  • В представлении списка пакетов отображаются все пакеты, отправленные и полученные вашим устройством. Вы можете отфильтровывать пакеты по определенным критериям, таким как TCP- или IP-адреса или типы протоколов.
  • В представлении «Сведения о пакете» отображается индивидуальная информация для каждого пакета, который появился в списке пакетов.
  • После выбора пакета вы можете расширить несколько значений, таких как количество байтов, тип протокола и другую информацию для детального анализа.
    • Создайте программу ONC-RPC: Чтобы создать программу ONC-RPC, вам потребуется использовать язык, поддерживающий стандарт CORBA, и включить в программу файл с именем «ORB.def». Файл ORB.def содержит информацию о том, как ONC-RPC будет работать в сети, включая имена и адреса компьютерных систем. В следующей таблице показаны основные параметры, используемые для создания файла ORB.def. ORB расшифровывается как Object Request Broker и представляет собой программу, которая обрабатывает вызовы в сети.
    • Создайте заголовочный файл и добавьте в него методы. Мы можем создать заголовочный файл и добавить в него методы, включая удаленные процедуры и функции. Метод будет выполняться при вызове другими программами или исполняемыми файлами. Ниже показан пример создания пакета ONC-RPC. Пакет следует соглашению об именах «имя моего пакета. имя моего пакета». Как и в случае с функцией, имя параметра является путем и является обязательным. Возвращаемое значение является необязательным, и если вы его не укажете, оно должно быть равно 0. Имя параметра будет начинаться с первой буквы метода, за которой следуют два знака подчеркивания и еще один знак подчеркивания в указанном порядке.
    • Напишите свои методы: каждый метод будет вызывать другой метод так же, как функция вызывает метод в другой функции. Каждый из методов обернут объектом ORB.

Исправление проблем:

Если у вас возникли проблемы при запуске программы, убедитесь, что ваш исполняемый файл находится в той же папке, что и предыдущие программы. Вам также необходимо убедиться, что вы вызываете методы или функции в одном и том же пакете. Например, если вы создали пакет с именем myPackage1 и хотите вызвать один из его методов, но использовать имя, вдохновленное другим пакетом, это не сработает. Причина в том, что ваш метод не сможет его найти, и на экране появится сообщение об ошибке.
Пакеты ORB также могут обрабатывать исключения в ваших методах с помощью метода throw().