net/3組把協議關聯到乙個域,而且用乙個協議族常量來標識每乙個域。net/3還通過全部的編址方法將協議分組。
在乙個域中
的每乙個協議使用同類位址。而且每種位址僅僅被乙個域使用。作為結果,乙個域能通過它的協議族或位址族常量唯一標識。
下圖是是我們討論的協議和常量。
乙個協議有乙個下圖所看到的的domain結構來表示。
下圖顯示了乙個domains列表的樣例。
在編譯期間。net/3為核心中每乙個協議分配乙個protosw結構並初始化。同一時候將在乙個域中的全部協議的這個結構組織到乙個
陣列中,每乙個domain結構引用對應的protosw結構陣列。乙個核心能夠通過提供多個protosw項為同一協議提供多個介面。
protosw結構的定義例如以下:
pr_type可能的值和相應的internet協議例如以下圖所看到的。
pr_flags的值例如以下圖所看到的。
pr_input,pr_output,pr_ctlinput。pr_ctloutput和pr_usrreq這幾個函式的關係例如以下下圖所看到的:
申明全部協議的結構domain和protosw,並進行靜態初始化。對於internet協議。inetsw陣列包括protosw結構。下圖總結了
在陣列inetsw中協議資訊。
下圖為internet協議的陣列定義和domain結構的定義。
domaininit函式:
在系統初始化期間,在main函式中。核心呼叫domaininit來鏈結結構domain和protosw。
下圖顯示了鏈結的結構domain和protosw。它們
配置在核心中來支援internnet、unix和osi協議族。
函式pfctlinput給每乙個域中的每乙個協議傳送乙個控制請求,當可能影響每乙個協議的事件發生時。使用這個函式。比如乙個介面
被關閉。或路由表發生變化。當乙個icmp重定向報文到達時,icmp呼叫pfctlinput,由於重定向會影響全部internet協議。
函式通過遍歷每乙個域,然後遍歷每乙個域以下的protosw。終於呼叫protosw中的pr_ctlinput函式。
internet域沒有乙個初始化函式可是單個internet協議有。如今,我們僅檢視ip初始化函式ip_init。在該函式中,乙個功能就是
初始化陣列ip_protox.
乙個網路層協議像ip必須奮勇輸入資料報,並將它們傳遞到對應的運輸層協議。為了完畢這些,對應的protosw結構必須通過
乙個在資料報中出現的協議編號得到。
對於internet協議。這由陣列ip_protox來完畢,例如以下圖所看到的:
陣列ip_protox的下標是來自ip的協議值。被選項是inetsw陣列中處理此資料報的協議的下標。
系統呼叫sysctl訪問並改動net/3系統範圍引數。
系統管理員通過程式sysctl改動這些引數。每乙個引數有乙個分層的整數列表
來標識。並由乙個對應的型別,此系統呼叫的原型為:
int sysctl(int *name, u_int namelen, void *old, size_t * oldlenp, void *new, size_t newlen) ;
*name指向乙個包括namelen個整數的陣列。*old指向在此範圍內返回的舊值。*new指向在此範圍內傳遞的新值。
下圖總結了關於聯網名稱的組織。
在上圖中,ip**標誌的全名為:
ctl_net、pf_inet、0、ipctl_forwarding
用4個整數儲存在乙個陣列中。
net_sysctl函式:
每層的sysctl命名方案通過不同函式處理。下圖顯示了處理這些internet引數的函式。
頂層名稱由sysctl處理。
網路層名稱由net_sysctl處理,它依據族和協議將控制轉給此協議的protosw項指定的pr_sysctl函式。
TCP IP資料報結構具體解釋
tcp ip 資料報 結構 具體解釋 網路 協議 一般來說,網路程式設計我們僅僅須要呼叫一些封裝好的函式或者元件就能完畢大部分的工作,可是一些特殊的情況下,就須要深入的理解 網路資料報的結構,以及協議分析。如 網路監控,故障排查等 ip包是不安全的,可是它是網際網路的基礎,在各方面都有廣泛的應用。由...
TCP IP資料報結構具體解釋
tcp ip 資料報 結構 具體解釋 網路 協議 一般來說,網路程式設計我們僅僅須要呼叫一些封裝好的函式或者元件就能完畢大部分的工作,可是一些特殊的情況下,就須要深入的理解 網路資料報的結構,以及協議分析。如 網路監控,故障排查等 ip包是不安全的,可是它是網際網路的基礎,在各方面都有廣泛的應用。由...
TCP IP資料報結構具體解釋
tcp ip 資料報 結構 具體解釋 網路 協議 一般來說,網路程式設計我們僅僅須要呼叫一些封裝好的函式或者元件就能完畢大部分的工作,可是一些特殊的情況下,就須要深入的理解 網路資料報的結構,以及協議分析。如 網路監控,故障排查等 ip包是不安全的,可是它是網際網路的基礎,在各方面都有廣泛的應用。由...