netlink 란?
커널과 사용자 영역 간 데이터 통신을 할 수 있는 IPC 통신을 할 수 있는 방법 중 하나입니다. IPC (Inter-Process Communication) 통신이란 프로세스 간 데이터 통신을 의미합니다. Netlink 는 커널과 사용자 영역에서 각각 내부적으로 사용하는 API 를 이용하여 통신하도록 동작하고 있습니다.
#include <asm/types.h> #include <sys/socket.h> #include <linux/netlink.h> int netlink_socket; netlink_socket = socket (AF_NETLINK, socket_type, netlink_family); |
참고로, socket 의 원형은 다음과 같습니다.
int socket(int domain, int type, int protocol)
Netlink 소켓을 생성할 때에는,
domain 이 AF_NETLINK ,
socket_type 에는 SOCK_RAW 또는 SOCK_DGRAM 을 설정합니다.
protocol (netlink_family) 에는 각 목적에 따라 설정할 수 있습니다.
더보기
NETLINK_ROUTE
Receives routing and link updates and may be used to modify the routing tables (both IPv4 and IPv6), IP addresses, link parameters, neighbor setups, queueing disciplines, traffic classes and packet classifiers (see rtnetlink(7)).
NETLINK_W1
Messages from 1-wire subsystem.
NETLINK_USERSOCK
Reserved for user-mode socket protocols.
NETLINK_FIREWALL
Transport IPv4 packets from netfilter to user space. Used by ip_queue kernel module.
NETLINK_INET_DIAG
INET socket monitoring.
NETLINK_NFLOG
Netfilter/iptables ULOG.
NETLINK_XFRM
IPsec.
NETLINK_SELINUX
SELinux event notifications.
NETLINK_ISCSI
Open-iSCSI.
NETLINK_AUDIT
Auditing.
NETLINK_FIB_LOOKUP
Access to FIB lookup from user space.
NETLINK_CONNECTOR
Kernel connector. See Documentation/connector/* in the Linux kernel source tree for further information.
NETLINK_NETFILTER
Netfilter subsystem.
NETLINK_IP6_FW
Transport IPv6 packets from netfilter to user space. Used by ip6_queue kernel module.
NETLINK_DNRTMSG
DECnet routing messages.
NETLINK_KOBJECT_UEVENT
Kernel messages to user space.
NETLINK_GENERIC
Generic netlink family for simplified netlink usage.
'Server' 카테고리의 다른 글
[Express] app.listen 과 http.createServer(app) 의 차이 (3) | 2021.07.07 |
---|---|
Express ExecutionPolicy 관련 오류 (0) | 2021.07.06 |
node.js 시작하기 (codeanywhere / express) (0) | 2021.02.02 |
MySQL 서버 타임존 설정 (0) | 2021.01.22 |
[RESTful] REST API 활용하기 (2) - spring-boot 게시판에 적용 (0) | 2021.01.21 |