raw(7) Miscellaneous Information Manual raw(7) raw - IPv4 #include #include raw_socket = socket(AF_INET, SOCK_RAW, int protocol); IPv4 . . IPv4 IP IP_HDRINCL . IP. IP . CAP_NET_RAW . protocol . IANA getprotobyname(3). IPPROTO_RAW IP_HDRINCL IP . IP IPPROTO_RAW . +-----------------------------------------------------------------------------------------------------------------------+ | IP IP_HDRINCL | +--------------------------------------------------------+--------------------------------------------------------------+ | IP | | +--------------------------------------------------------+--------------------------------------------------------------+ | | | +--------------------------------------------------------+--------------------------------------------------------------+ | | | +--------------------------------------------------------+--------------------------------------------------------------+ | | | +--------------------------------------------------------+--------------------------------------------------------------+ IP_HDRINCL IP . MSG_DONTROUTE . IP_HDRINCL IP setsockopt(2) ip(7) . 2.2 IP IP. ( ICMP). ( ). (sendto(2) recvfrom(2) ) sockaddr_in ip(7). sin_port IP 2.2 0 ( ). sin_port . setsockopt(2) getsockopt(2) IPPROTO_RAW. ICMP_FILTER IPPROTO_ICMP. ICMP . ICMP. ip(7) IPPROTO_IP . IP_RECVERR. EMSGSIZE EPROTO . IP_RECVERR . EACCES . EFAULT . EINVAL . EMSGSIZE . MTU ( IP_MTU_DISCOVER) IPv4 64 . EOPNOTSUPP ( MSG_OOB). EPERM . 0 CAP_NET_RAW . EPROTO ICMP . IP_RECVERR ICMP_FILTER 2.2. . 2.0 BSD SO_BSDCOMPAT 2.2 . MTU ( ). MTU IP EMSGSIZE . . MTU IP_MTU_DISCOVER /proc/sys/net/ipv4/ip_no_pmtu_disc ip(7) . MTU . . bind(2). IP . SO_BINDTODEVICE socket(7). IPPROTO_RAW . IP packet(7) ETH_P_IP. IP . ICMP IP_RECVERR ip(7). IP ICMP TCP . () . BSD . ( IP_HDRINCL). . . IP sin_port 2.2. IP_HDRINCL. . IP_HDRINCL MTU . IP sin_port 2.2. socket(2) . recvmsg(2), sendmsg(2), capabilities(7), ip(7), socket(7) RFC 1191 MTU . RFC 791 IP. 3 . . : . 6.18 8 2026 raw(7)