齣版者的話
譯者序
前言
第1章 概述1
1.1 引言1
1.2 源代碼錶示1
1.2.1 將擁塞窗口設置為11
1.2.2 印刷約定2
1.3 曆史2
1.4 應用編程接口3
1.5 程序示例4
1.6 係統調用和庫函數6
1.7 網絡實現概述6
1.8 描述符7
1.9 mbuf與輸齣處理11
1.9.1 包含插口地址結構的mbuf11
1.9.2 包含數據的mbuf12
1.9.3 添加IP和UDP首部13
1.9.4 IP輸齣14
1.9.5 以太網輸齣14
1.9.6 UDP輸齣小結14
1.10 輸入處理15
1.10.1 以太網輸入15
1.10.2 IP輸入15
1.10.3 UDP輸入16
1.10.4 進程輸入17
1.11 網絡實現概述(續)17
1.12 中斷級彆與並發18
1.13 源代碼組織20
1.14 測試網絡21
1.15 小結22
第2章 mbuf:存儲器緩存24
2.1 引言24
2.2 代碼介紹27
2.2.1 全局變量27
2.2.2 統計28
2.2.3 內核統計28
2.3 mbuf的定義29
2.4 mbuf結構29
2.5 簡單的mbuf宏和函數31
2.5.1 m_get函數32
2.5.2 MGET宏32
2.5.3 m_retry函數33
2.5.4 mbuf鎖34
2.6 m_devget和m_pullup函數34
2.6.1 m_devget函數34
2.6.2 mtod和dtom宏36
2.6.3 m_pullup函數和連續的協議首部36
2.6.4 m_pullup和IP的分片與重組37
2.6.5 TCP重組避免調用m_pullup39
2.6.6 m_pullup使用總結40
2.7 mbuf宏和函數的小結40
2.8 Net/3聯網數據結構小結42
2.9 m_copy和簇引用計數43
2.10 其他選擇47
2.11 小結47
第3章 接口層49
3.1 引言49
3.2 代碼介紹49
3.2.1 全局變量49
3.2.2 SNMP變量50
3.3 ifnet結構51
3.4 ifaddr結構57
3.5 sockaddr結構58
3.6 ifnet與ifaddr的專用化59
3.7 網絡初始化概述60
3.8 以太網初始化61
3.9 SLIP初始化64
3.10 環迴初始化65
3.11 if_attach函數66
3.12 ifinit函數72
3.13 小結73
第4章 接口:以太網74
4.1 引言74
4.2 代碼介紹75
4.2.1 全局變量75
4.2.2 統計量75
4.2.3 SNMP變量76
4.3 以太網接口77
4.3.1 leintr函數79
4.3.2 leread函數79
4.3.3 ether_input函數81
4.3.4 ether_output函數84
4.3.5 lestart函數87
4.4 ioctl係統調用89
4.4.1 ifioctl函數90
4.4.2 ifconf函數91
4.4.3 舉例94
4.4.4 通用接口ioctl命令95
4.4.5 if_down和if_up函數96
4.4.6 以太網、SLIP和環迴97
4.5 小結98
第5章 接口:SLIP和環迴100
5.1 引言100
5.2 代碼介紹100
5.2.1 全局變量100
5.2.2 統計量101
5.3 SLIP接口101
5.3.1 SLIP綫路規程:SLIPDISC101
5.3.2 SLIP初始化:slopen和slinit103
5.3.3 SLIP輸入處理:slinput105
5.3.4 SLIP輸齣處理:sloutput109
5.3.5 slstart函數111
5.3.6 SLIP分組丟失116
5.3.7 SLIP性能考慮117
5.3.8 slclose函數117
5.3.9 sltioctl函數118
5.4 環迴接口119
5.5 小結121
第6章 IP編址123
6.1 引言123
6.1.1 IP地址123
6.1.2 IP地址的印刷規定123
6.1.3 主機和路由器124
6.2 代碼介紹125
6.3 接口和地址小結125
6.4 sockaddr_in結構126
6.5 in_ifaddr結構127
6.6 地址指派128
6.6.1 ifioctl函數130
6.6.2 in_control函數130
6.6.3 前提條件:SIOCSIFADDR、SIOCSIFNETMASK和SIOCSIFDSTADDR132
6.6.4 地址指派:SIOCSIFADDR133
6.6.5 in_ifinit函數133
6.6.6 網絡掩碼指派:SIOCSIFNETMASK136
6.6.7 目的地址指派:SIOCSIFDSTADDR137
6.6.8 獲取接口信息137
6.6.9 每個接口多個IP地址138
6.6.10 附加IP地址:SIOCAIFADDR139
6.6.11 刪除IP地址:SIOCDIFADDR140
6.7 接口ioctl處理141
6.7.1 leioctl函數141
6.7.2 slioctl函數142
6.7.3 loioctl函數143
6.8 Internet實用函數144
6.9 ifnet實用函數144
6.10 小結145
第7章 域和協議146
7.1 引言146
7.2 代碼介紹146
7.2.1 全局變量147
7.2.2 統計量147
7.3 domain結構147
7.4 protosw結構148
7.5 IP 的domain和protosw結構150
7.6 pffindproto和pffindtype函數155
7.7 pfctlinput函數157
7.8 IP初始化157
7.8.1 Internet傳輸分用157
7.8.2 ip_init函數158
7.9 sysctl係統調用159
7.10 小結161
第8章 IP:網際協議162
8.1 引言162
8.2 代碼介紹163
8.2.1 全局變量163
8.2.2 統計量163
8.2.3 SNMP變量164
8.3 IP分組165
8.4 輸入處理:ipintr函數167
8.4.1 ipintr概觀167
8.4.2 驗證168
8.4.3 轉發或不轉發171
8.4.4 重裝和分用173
8.5 轉發:ip_forward函數174
8.6 輸齣處理:ip_output函數180
8.6.1 首部初始化181
8.6.2 路由選擇182
8.6.3 源地址選擇和分片184
8.7 Internet檢驗和:in_cksum函數186
8.8 setsockopt和getsockopt係統調用190
8.8.1 PRCO_SETOPT的處理192
8.8.2 PRCO_GETOPT的處理193
8.9 ip_sysctl函數193
8.10
· · · · · · (
收起)