?? 目錄.txt
字號:
目 錄
譯者序
前言
第1章 概述 1
1.1 引言 1
1.2 源代碼表示 1
1.2.1 將擁塞窗口設置為1 1
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 包含插口地址結構的mbuf 11
1.9.2 包含數據的mbuf 12
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_pullup 39
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線路規程:SLIPDISC 101
5.3.2 SLIP初始化:slopen和slinit 103
5.3.3 SLIP輸入處理:slinput 105
5.3.4 SLIP輸出處理:sloutput 109
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和
SIOCSIFDSTADDR 132
6.6.4 地址指派:SIOCSIFADDR 133
6.6.5 in_ifinit函數 133
6.6.6 網絡掩碼指派:SIOCSIFNETMASK 136
6.6.7 目的地址指派:SIOCSIFDSTADDR 137
6.6.8 獲取接口信息 137
6.6.9 每個接口多個IP地址 138
6.6.10 附加IP地址:SIOCAIFADDR 139
6.6.11 刪除IP地址:SIOCDIFADDR 140
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 小結 194
第9章 IP選項處理 196
9.1 引言 196
9.2 代碼介紹 196
9.2.1 全局變量 196
9.2.2 統計量 197
9.3 選項格式 197
9.4 ip_dooptions函數 198
9.5 記錄路由選項 200
9.6 源站和記錄路由選項 202
9.6.1 save_rte函數 205
9.6.2 ip_srcroute函數 206
9.7 時間戳選項 207
9.8 ip_insertoptions函數 210
9.9 ip_pcbopts函數 214
9.10 一些限制 217
9.11 小結 217
第10章 IP的分片與重裝 218
10.1 引言 218
10.2 代碼介紹 219
10.2.1 全局變量 220
10.2.2 統計量 220
10.3 分片 220
10.4 ip_optcopy函數 223
10.5 重裝 224
10.6 ip_reass函數 227
10.7 ip_slowtimo函數 237
10.8 小結 238
第11章 ICMP:Internet控制報文協議 239
11.1 引言 239
11.2 代碼介紹 242
11.2.1 全局變量 242
11.2.2 統計量 242
11.2.3 SNMP變量 243
11.3 icmp結構 244
11.4 ICMP 的protosw結構 245
11.5 輸入處理:icmp_input函數 246
11.6 差錯處理 249
11.7 請求處理 251
11.7.1 回顯詢問:ICMP_ECHO和
ICMP_ECHOREPLY 252
11.7.2 時間戳詢問:ICMP_TSTAMP和
ICMP_TSTAMPREPLY 253
11.7.3 地址掩碼詢問:ICMP_MASKREQ和
ICMP_MASKREPLY 253
11.7.4 信息詢問:ICMP_IREQ和ICMP_
IREQREPLY 255
11.7.5 路由器發現:ICMP_ROUTERADVERT
和ICMP_ROUTERSOLICIT 255
11.8 重定向處理 255
11.9 回答處理 257
11.10 輸出處理 257
11.11 icmp_error函數 258
11.12 icmp_reflect函數 261
11.13 icmp_send函數 265
11.14 icmp_sysctl函數 266
11.15 小結 266
第12章 IP多播 268
12.1 引言 268
12.2 代碼介紹 269
12.2.1 全局變量 270
12.2.2 統計量 270
12.3 以太網多播地址 270
12.4 ether_multi結構 271
12.5 以太網多播接收 273
12.6 in_multi結構 273
12.7 ip_moptions結構 275
12.8 多播的插口選項 276
12.9 多播的TTL值 277
12.9.1 MBONE 278
12.9.2 擴展環搜索 278
12.10 ip_setmoptions函數 278
12.10.1 選擇一個明確的多播接口:IP_
MULTICAST_IF 280
12.10.2 選擇明確的多播TTL: IP_
MULTICAST_TTL 281
12.10.3 選擇多播環回:IP_MULTICAST_
LOOP 281
12.11 加入一個IP多播組 282
12.11.1 in_addmulti函數 285
12.11.2 slioctl和loioctl函數:SIOCADDMULTI和SIOCDELMULTI 287
12.11.3 leioctl函數:SIOCADDMULTI和
SIOCDELMULTI 288
12.11.4 ether_addmulti函數 288
12.12 離開一個IP多播組 291
12.12.1 in_delmulti函數 292
12.12.2 ether_delmulti函數 293
12.13 ip_getmoptions函數 295
12.14 多播輸入處理:ipintr函數 296
12.15 多播輸出處理:ip_output函數 298
12.16 性能的考慮 301
12.17 小結 301
第13章 IGMP:Internet組管理協議 303
13.1 引言 303
13.2 代碼介紹 304
13.2.1 全局變量 304
13.2.2 統計量 304
13.2.3 SNMP變量 305
13.3 igmp結構 305
13.4 IGMP的protosw的結構 306
13.5 加入一個組:igmp_joingroup函數 306
13.6 igmp_fasttimo函數 308
13.7 輸入處理:igmp_input函數 311
13.7.1 成員關系查詢:IGMP_HOST_
MEMBERSHIP_QUERY 312
13.7.2 成員關系報告:IGMP_HOST_
MEMBERSHIP_REPORT 313
13.8 離開一個組:igmp_leavegroup函數 314
13.9 小結 315
第14章 IP多播選路 316
14.1 引言 316
14.2 代碼介紹 316
14.2.1 全局變量 316
14.2.2 統計量 317
14.2.3 SNMP變量 317
14.3 多播輸出處理(續) 317
14.4 mrouted守護程序 318
14.5 虛擬接口 321
14.5.1 虛擬接口表 322
14.5.2 add_vif函數 324
14.5.3 del_vif函數 326
14.6 IGMP(續) 327
14.6.1 add_lgrp函數 328
14.6.2 del_lgrp函數 329
14.6.3 grplst_member函數 330
14.7 多播選路 331
14.7.1 多播選路表 334
14.7.2 del_mrt函數 335
14.7.3 add_mrt函數 336
14.7.4 mrtfind函數 337
14.8 多播轉發:ip_mforward函數 338
14.8.1 phyint_send函數 343
14.8.2 tunnel_send函數 344
14.9 清理:ip_mrouter_done函數 345
14.10 小結 346
第15章 插口層 348
15.1 引言 348
15.2 代碼介紹 349
15.3 socket結構 349
15.4 系統調用 354
15.4.1 舉例 355
15.4.2 系統調用小結 355
15.5 進程、描述符和插口 357
15.6 socket系統調用 358
15.6.1 socreate函數 359
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -