《深入理解Linux網絡技術內幕》閱讀筆記(三)

Netlink
Netlink套接字代表用戶空間和內核的IP網絡配置之間的首選接口。Netlink也可作爲內核部分以及多個用戶空間進程之間的消息傳輸系統。
通過Netlink套接字,你可以使用標準套接字API打開或關閉套接字,使用套接字傳輸數據或者接收套接字數據。
Netlink使用新的PF_NETLINK協議族,只支持SOCK_DGRAM類型,而且定義了幾種協議,每一種都用於網絡協議棧的不同組件(或一組組件)。例如,NETLINK_ROUTE協議用於大多數網絡功能,如路由和鄰居協議,而NETLINK_FIRWALL用於防火牆(Netfilter)。
使用Netlink套接字時,終端點通常是由打開此套接字的進程的ID(PID)標識,而特殊值0代表的就是內核。Netlink的功能之一就是傳播單播和多播消息:目的地終端點地址可以是一個PID,一個多播羣組ID或者兩者的組合。內核定義Netlink多播羣組的目的是傳出特定種類事件的通知消息,而用戶程序如果對這類通知信息感興趣,可以向這些羣組註冊。
Netlink相對於其他用戶-內核接口,若ioctl,的優點之一,就是內核可以啓動傳輸,而不只是僅限於響應用戶空間的請求而返回信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章