또는 모든 알고리즘을 사용하여 고유한 값을 할당할 수 있습니다. nl_그룹은 멀티캐스트 통신에 사용됩니다. 이 필드의 각 비트는 멀티캐스트 주소입니다. 특정 그룹에서 수신 을 받아야 하는 모든 프로세스는 비트를 설정해야 합니다. 예를 들어 프로세스가 멀티캐스트 주소 3과 5에서 수신을 원할 경우 비트는 다음과 같이 저장됩니다. 멀티캐스트를 지원하며, 시스템 호출, ioctls 및 proc에 비해 또 다른 이점입니다. 한 프로세스는 netlink 그룹 주소로 메시지를 멀티캐스트할 수 있으며 다른 프로세스의 수에 관계없이 해당 그룹 주소를 들을 수 있습니다. 이렇게 하면 커널에서 사용자 공간으로 이벤트 배포를 위한 거의 완벽한 메커니즘이 제공됩니다. Linux에서 라우팅 소켓의 동등한 기능은 netlink 소켓 프로토콜 유형 NETLINK_ROUTE에서 제공합니다. Netlink 소켓은 BSD의 라우팅 소켓의 기능 수퍼세트를 제공합니다. Unicast 수신 예: 수신기의 경우 먼저 Netlink 소켓은 보낸 사람의 경우와 마찬가지로 소켓 API를 사용하여 생성됩니다. 그런 다음 보낸 사람과 마찬가지로 수신기는 보낸 사람의 경우와 동일한 고유 주소로 소켓을 바인딩합니다. src_addr.nl_pid는 다음과 같이 초기화되어야 합니다: 프로세스에서 각 스레드가 자체 Netlink 소켓을 원하는 경우 nl_pid를 초기화할 수 있습니다.

커널 공간 넷링크 API는 커널, 넷/코어/af_netlink.c의 네트링크 코어에서 지원됩니다. 커널 측면에서 API는 사용자 공간 API와 다릅니다. 이 API는 커널 모듈에서 netlink 소켓에 액세스하고 사용자 공간 응용 프로그램과 통신하는 데 사용할 수 있습니다. 기존 netlink 소켓 프로토콜 형식을 활용하지 않는 한 netlink.h에 상수를 추가하여 고유한 프로토콜 형식을 추가해야 합니다. 예를 들어 netlink.h에 이 줄을 삽입하여 테스트 목적으로 netlink 프로토콜 유형을 추가할 수 있습니다: Netlink 메시지 헤더는 다음 형식을 사용합니다: (RFC 3549의 다이어그램): 이에 대한 코드는 다른 예제와 마찬가지로 사소한 것은 아니지만 살펴볼 수 있습니다. 당신이 참조를 원하는 경우 내 구현. Netlink 소켓 Netlink 소켓은 사용자 공간 프로세스 와 프로세스와 커널 간의 통신을 위해 사용되는 통신 메커니즘입니다. 또한 사용자 공간 스레드와 커널 간의 통신에 사용할 수도 있습니다.

그것은 전체 이중 통신 메커니즘, 즉, 커널 자체가 통신을 시작할 수 있습니다. 이 메커니즘의 장점 중 하나는 사용자 공간에서 소프트웨어 프로그래머가 잘 알고 있는 인기 있는 소켓 API가 Netlink 통신에 사용되므로 새로운 연구가 필요하지 않다는 것입니다. Netlink 소켓은 커널을 오염시키기 시작하는 시스템 호출, ioctls 및 proc filesall보다 쉽게 추가 할 수 있습니다. 이러한 모든 새로운 기능에 대해 추가 되는 경우, 다음 나중에, 그것은 이러한 기능을 제거 하기 어려워진다-문제 커널 개발자는 proc 파일 시스템의 경우에 현재 직면 하 고 있다.