Can you summarize the following document?
        
  Netlink用於替代複雜和不夠靈活的ioctl通訊方式,ioctl方法主要用設定和取得外部socket, 為了提供向後相容,ioctl將一直被Linux核心所支援,用法如下:  Netlink在Linux核心2.0版本中作為字元裝置被首次提供使用。這個介面已經過時了,但是作為 一種ioctl通訊方法,它仍可繼續使用。Netlink socket介面從Linux核心2.2開始提供使用。

  不像BSD套接字存取網際網路協議那樣,頭資訊中的標識和目的地都是自動生成(如TCP), Netlink訊息頭(結構體nlmsghdr)必須由傳送方準備好,就像socket工作在SOCK_RAW模式下 一樣。儘管SOCK_DGRAM被用於建立它。  然而,資料部分可能進一步巢狀其它特定的子訊息系統。

  AF_NETLINK協議家族提供了多個子協議。每個介面連線不同的核心元件並且有各自的訊息集。 如:  由於缺少標準,SOCK_DGRAM和SOCK_RAW並不保證在每個Linux發行版(或其它作業系統)被聲 明。有些原始碼中宣告兩種都可以使用,紅帽的文件中宣告SOCK_RAW一直可以被使用,而 iproute2交換使用兩者。

  Netlink所支援的協議如下(並不完全): NETLINK_ROUTE NETLINK_ROUTE提供路由和連線資訊。這些資訊主要被使用者空間的路由守護程序使用。對於這個 協議,Linux宣告瞭大量的子訊息:  NETLINK_FIREWALL  NETLINK_NFLOG  NETLINK_ARPD  NETLINK_AUDIT  NETLINK_IPV6_FW  NETLINK_ROUTE6  NETLINK_TAPBASE  NETLINK_TCPDIAG  NETLINK_XFRM

  使用者也可以在自己的核心中新增自定義的Netlink處理器。這允許其它Netlink協議被開發用於連線新的核心模組。
Netlink套接字家族(英語:Netlink socket family)是一組Linux核心介面(Linux kernel interfaces),可用於行程間通訊,Linux核心與使用者空間的程序間、使用者程序間的通訊。然而它並不像網路套接字可以用於主機間通訊,Netlink只能用於同一主機上程序通訊,並通過PID來標識它們。