很多朋友想了解關於net-link的一些資料信息,下麵是(揚升資訊www.balincan8.com)小編整理的與net-link相關的內容分享給大家,一起來看看吧。
本文目錄預覽:

- 1、linux下netlink的使用簡介
- 2、netlink最大傳輸字節
一、linux下netlink的使用簡介
Netlink套接字是用以實現用戶進程與內核進程通信的一種特殊的進程間通信(IPC) ,也是網絡應用程序與內核通信的最常用的接口。
在Linux 內核中,使用netlink 進行應用與內核通信的應用有很多,如
Netlink 是一種在內核與用戶應用間進行雙向數據傳輸的非常好的方式,用戶態應用使用標準的 socket API 就可以使用 netlink 提供的強大功能,內核態需要使用專門的內核 API 來使用 netlink。
一般來說用戶空間和內核空間的通信方式有三種: /proc、ioctl、Netlink 。而前兩種都是單向的,而Netlink可以實現雙工通信。
Netlink 相對於係統調用,ioctl 以及 /proc文件係統而言,具有以下優點:
Netlink協議基於BSD socket和 AF_NETLINK 地址簇,使用32位的端口號尋址,每個Netlink協議通常與一個或一組內核服務/組件相關聯,如 NETLINK_ROUTE 用於獲取和設置路由與鏈路信息、 NETLINK_KOBJECT_UEVENT 用於內核向用戶空間的udev進程發送通知等。
用戶態應用使用標準的 socket API有sendto(),recvfrom(), sendmsg(), recvmsg()。
Netlink通信跟常用UDP Socket通信類似, struct sockaddr_nl 是netlink通信地址,跟普通 socket struct sockaddr_in 類似。
netlink_kernel_create內核函數用於創建內核socket與用戶態通信
首先將編譯出來的Netlink內核模塊插入到係統當中(insmod netlink_test.ko),然後運行應用程序,可以看到如下輸出:
二、netlink最大傳輸字節
netlink最大傳輸字節是18個字節。
Netlink 是一種特殊的 socket,它是 Linux 所特有的,類似於 BSD 中的AF_ROUTE 但又遠比它的功能強大,目前在最新的 Linux 內核(2.6.14)中使用netlink 進行應用與內核通信的應用很多。
包括:路由 daemon(NETLINK_ROUTE),1-wire 子係統(NETLINK_W1),用戶態 socket 協議(NETLINK_USERSOCK),防火牆(NETLINK_FIREWALL),socket 監視(NETLINK_INET_DIAG),netfilter 日誌(NETLINK_NFLOG),ipsec 安全策略(NETLINK_XFRM),SELinux 事件通知(NETLINK_SELINUX),iSCSI 子係統(NETLINK_ISCSI),進程審計(NETLINK_AUDIT),轉發信息表查詢(NETLINK_FIB_LOOKUP),netlink connector(NETLINK_CONNECTOR),netfilter 子係統(NETLINK_NETFILTER),IPv6 防火牆(NETLINK_IP6_FW),DECnet 路由信息(NETLINK_DNRTMSG),內核事件向用戶態通知(NETLINK_KOBJECT_UEVENT),通用 netlink(NETLINK_GENERIC)。
Netlink 是一種在內核與用戶應用間進行雙向數據傳輸的非常好的方式,用戶態應用使用標準的 socket API 就可以使用 netlink 提供的強大功能,內核態需要使用專門的內核 API 來使用 netlink。
Netlink 相對於係統調用,ioctl 以及 /proc 文件係統而言具有以下優點:
1,為了使用 netlink,用戶僅需要在 include/linux/netlink.h 中增加一個新類型的 netlink 協議定義即可, 如 #define NETLINK_MYTEST 17 然後,內核和用戶態應用就可以立即通過 socket API 使用該 netlink 協議類型進行數據交換。但係統調用需要增加新的係統調用,ioctl 則需要增加設備或文件, 那需要不少代碼,proc 文件係統則需要在 /proc 下添加新的文件或目錄,那將使本來就混亂的 /proc 更加混亂。
2. netlink是一種異步通信機製,在內核與用戶態應用之間傳遞的消息保存在socket緩存隊列中,發送消息隻是把消息保存在接收者的socket的接收隊列,而不需要等待接收者收到消息,但係統調用與 ioctl 則是同步通信機製,如果傳遞的數據太長,將影響調度粒度。
3.使用 netlink 的內核部分可以采用模塊的方式實現,使用 netlink 的應用部分和內核部分沒有編譯時依賴,但係統調用就有依賴,而且新的係統調用的實現必須靜態地連接到內核中,它無法在模塊中實現,使用新係統調用的應用在編譯時需要依賴內核。
4.netlink 支持多播,內核模塊或應用可以把消息多播給一個netlink組,屬於該neilink 組的任何內核模塊或應用都能接收到該消息,內核事件向用戶態的通知機製就使用了這一特性,任何對內核事件感興趣的應用都能收到該子係統發送的內核事件,在後麵的文章中將介紹這一機製的使用。
5.內核可以使用 netlink 首先發起會話,但係統調用和 ioctl 隻能由用戶應用發起調用。
6.netlink 使用標準的 socket API,因此很容易使用,但係統調用和 ioctl則需要專門的培訓才能使用。
以上就是小編對於net-link的相關信息的介紹,希望能對大家有所幫助。
本文到此結束,希望對大家有所幫助呢。
Tags:
今日更新消息 廣西新增本土病例33+236 在此通報最新詳情炒涼皮的做法家常做法(需要什麽材料)7月27日更新消息 廣發銀行股權變更:國網英大集團向財政部無償劃轉5.2%股份,退居第三大股東疫情期間怎扔垃圾(隔離人員產生的生活垃圾怎麽處理)陳喬恩和阮經天演的電視劇叫什麽(陳喬恩和阮經天合作了哪部劇)城市網紅打卡地點(盤點各個城市的網紅打卡地)吃雞按鍵振動怎麽取消(吃雞按鍵振動取消方法)乘風破浪的姐姐到底講的什麽(乘風破浪的姐姐簡介)鎮和縣哪個大(和縣哪個鎮大)重陽節怎麽過(重陽節怎麽過的作文200字)隱秘的角落的導演(隱秘的角落的導演個人介紹)夜來香的養殖方法和注意事項(夜來香的簡介)操作無效連接已關閉-4470怎麽解決(怎麽關機)重慶市曆任書記(重慶市曆任市長)一般中學教師資格證報名條件(教師資格證報名條件)2022年7月27日當日最新消息 國產閃存跳級式發展:明年追上232層 與三星技術差距隻有1年2022年7月27日當日最新消息 明月離焦鏡片臨床進度公布獲得專家肯定 市場前景被看好一家人的微信群名(適合一家人的微信群名)野葛粉(野生葛根粉的作用與好處)重慶到深圳機票(重慶機票)
转载:感谢您对网站平台的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源演示站”。