《深入理解Linux網路技術內幕》閱讀筆記(二十)

2021-07-05 16:56:44 字數 711 閱讀 6224

858 static int __netlink_sendskb(struct sock *sk, struct sk_buff *skb)859
/個人結論↑/

如上圖所示,若命令為ip address add 則是由函式ipaddr_modify處理。

ip-over-ip,也稱為ip隧道或ipip,就是傳輸在其他ip封包內的ip封包。該協議在vpn等中有其用處。

ipv4設計時並沒有考慮安全問題。因此,開發出了幾種細緻度有所不同的方法:應用程式點多點方法,如ssl,主機點對點方法,若ipsec等。ssl需要應用程式使用它的安全層(位於tcp之上),而ipsec(多數人所謂的vpn)就不是這樣,ipsec位於l3層之上,因此,對於應用程式而言是看不見的。雖然ipv4和ipv6都可以使用ipsec,但是,ipsec更適合ipv6.

unsigned char __pad1,__pad2: 因為當位置對齊32位邊界時,記憶體的訪問速度會比較快。linux核心資料結構通常會採用無用字段(__padn)做填充,以便使其尺寸為32位的倍數。這就是__pad1,__pad2的用途,除此別無它用。

ipv4_devconf結構是儲存每個裝置的配置,而ipv4_config儲存的配置則是用於主機身上。

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

通過中斷,nic能夠告知其驅動程式幾種不同的事情,包括 1.接收一幀。2.傳輸失敗。3.dma傳輸已成功完成。給定乙個幀傳輸,當幀上載至nic的記憶體準備在此媒介上傳輸時,驅動程式就會將持有該幀的緩衝區釋放掉。使用同步傳輸時 無dma 當該幀已上傳至nic,驅動程式就會立刻知道。但使用dma時,也就...

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

pci的優點之一是,其支援尋找irq和每個裝置所需的其他資源的探測方式相當優雅。模組可以在載入期間接收一些輸入引數,以告知該如何配置其所負責的所有裝置。但是,有些時候,特別是pci這類匯流排,讓驅動程式自行檢查系統上的裝置,然後為其負責的那些裝置做配置會比較簡單一點。必要時,可以退回到手動配置。探測...

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

當特定事件發生時,裝置驅動程式會代表核心指示裝置產生硬體中斷。處理函式會把該幀排入佇列某處,然後通知核心。該技術是低流量負載下的最佳選擇。遺憾的是,在高流量負載下就無法良好運作 每接收乙個幀就強制產生中斷,很快就會讓cpu為處理中斷事件浪費所有的時間。負責接收幀的 分成兩部分,首先,驅動程式把該幀拷...