Протокол межсетевых управляющих сообщений
#include <sys/socket.h>#include <netinet/in.h>int socket( AF_INET,SOCK_RAW,proto );
ICMP - это протокол сообщений об ошибках и управляющих сообщений, используемый протоколом IP и семейством Интернет-протоколов. Доступ к протоколу можно получить через «сырой сокет» для функций мониторинга и диагностики сети.
Для передачи параметра proto в socket(), который используется для создания сокета ICMP, вызовите getprotobyname(). Предполагается использование ICMP сокетов, которые не требуют установления соединения, с sendto() и recvfrom(), хотя также можно использовать и connect() для исправления назначения будущих пакетов (в этом случае можно использовать системные вызовы read() или recv(), и write() или send()).
К исходящим пакетам автоматически в начало добавляется IP-заголовок, основанный на адресе назначения. Входящие пакеты принимаются без изменений заголовка IP и параметров IP.
Дескриптор сокета. Если возникла ошибка функция возвращает -1
, код ошибки записывается в errno.
connect(), getprotobyname(), read(), recv(), recvfrom(), send(), sendto(), socket(), write()
Основано на RFC 792
Предыдущий раздел: Описание API сетевой библиотеки