基本介紹
- 書名:精通Linux核心網路
- 作者:羅森
- ISBN:978-7-115-39293-0
- 出版社:人民郵電出版社
- 出版時間:2015年
簡介,目錄,
簡介
《精通Linux核心網路》討論Linux 核心網路棧的實現及其原理,深入而詳盡地分析網路子系統及其架構,主要內容包括:核心網路基礎知識、Netlink 套接字、ARP、鄰居發現和ICMP 等重要協定的實現、IPv4 和IPv6 的深入探索、Linux 路由選擇、Netfilter 和IPsec 的實現、Linux 無線網路、InfiniBand 等。
《精通Linux核心網路》不僅適合從事網路相關項目的專業人員參考,也能為相關研究人員和學生提供極大幫助。
《精通Linux核心網路》不僅適合從事網路相關項目的專業人員參考,也能為相關研究人員和學生提供極大幫助。
目錄
目錄
第1章 緒論 1
1.1 Linux網路棧 2
1.2 網路設備 4
1.2.1 網路設備中的NAPI 5
1.2.2 數據包的收發 5
1.2.3 套接字緩衝區 7
1.3 Linux核心網路開發模型 10
1.4 總結 12
第2章 Netlink套接字 13
2.1 Netlink簇 13
2.1.1 Netlink套接字型檔 15
2.1.2 結構sockaddr_nl 15
2.1.3 用於控制TCP/IP聯網的用戶
空間包 15
2.1.4 核心Netlink套接字 16
2.1.5 Netlink訊息報頭 20
2.1.6 NETLINK_ROUTE訊息 22
2.1.7 在路由選擇表中添加和刪除
路由選擇條目 24
2.2 通用Netlink協定 25
2.2.1 創建和傳送通用Netlink訊息 29
2.2.2 套接字監視接口 31
2.3 總結 32
2.4 快速參考 32
第3章 Internet控制訊息協定(ICMP) 36
3.1 ICMPv4 36
3.1.1 ICMPv4的初始化 37
3.1.2 ICMPv4報頭 38
3.1.3 接收ICMPv4訊息 42
3.1.4 傳送ICMPv4訊息:目的地
不可達 43
3.2 ICMPv6 47
3.2.1 ICMPv6初始化 47
3.2.2 ICMPv6報頭 48
3.2.3 接收ICMPv6訊息 49
3.2.4 傳送ICMPv6訊息 52
3.3 ICMP套接字(ping套接字) 55
3.4 總結 56
3.5 快速參考 56
3.5.1 方法 56
3.5.2 表格 57
3.5.3 procfs條目 58
3.5.4 使用iptables創建“目的地
不可達”訊息 59
第4章 IPv4 61
4.1 IPv4報頭 62
4.2 IPv4的初始化 63
4.3 接收IPv4數據包 64
4.4 接收IPv4組播數據包 67
4.5 IP選項 69
4.5.1 時間戳選項 71
4.5.2 記錄路由選項 74
4.5.3 IP選項和分段 82
4.5.4 創建IP選項 84
4.6 傳送IPv4數據包 85
4.7 分段 89
4.7.1 快速路徑 90
4.7.2 慢速路徑 93
4.8 重組 94
4.9 轉發 99
4.10 總結 101
4.11 快速參考 101
4.11.1 方法 102
4.11.2 宏 104
第5章 IPv4路由選擇子系統 105
5.1 轉發和FIB 105
5.2 在路由選擇子系統中進行查找 107
5.3 FIB表 110
5.3.1 FIB信息 110
5.3.2 快取 115
5.3.3 下一跳 115
5.3.4 策略路由選擇 117
5.3.5 FIB別名 118
5.4 ICMPv4重定向訊息 121
5.4.1 生成ICMPv4重定向訊息 122
5.4.2 接收ICMPv4重定向訊息 123
5.4.3 IPv4路由選擇快取 125
5.5 總結 126
5.6 快速參考 126
5.6.1 方法 127
5.6.2 宏 128
5.6.3 表 128
5.6.4 路由標誌 129
第6章 高級路由選擇 131
6.1 組播路由選擇 131
6.1.1 IGMP 132
6.1.2 組播路由選擇表 133
6.1.3 組播轉發快取(MFC) 134
6.1.4 組播路由器 136
6.1.5 vif設備 137
6.1.6 IPv4組播接收路徑 138
6.1.7 方法ip_mr_forward() 141
6.1.8 方法ipmr_queue_xmit() 143
6.1.9 方法ipmr_forward_finish() 145
6.1.10 組播流量中的TTL 146
6.2 策略路由選擇 146
6.2.1 策略路由選擇的管理 147
6.2.2 策略路由選擇的實現 147
6.3 多路徑路由選擇 148
6.4 總結 149
6.5 快速參考 149
6.5.1 方法 149
6.5.2 宏 151
6.5.3 procfs組播條目 152
6.5.4 表 152
第7章 Linux鄰接子系統 153
7.1 鄰接子系統的核心 153
7.1.1 創建和釋放鄰居 160
7.1.2 用戶空間和鄰接子系統之間
的互動 161
7.1.3 處理網路事件 163
7.2 ARP協定(IPv4) 163
7.2.1 ARP:傳送請求 165
7.2.2 ARP:接收請求和應答 168
7.3 NDISC協定(IPv6) 174
7.3.1 重複地址檢測(DAD) 174
7.3.2 NIDSC:傳送請求 176
7.3.3 NDISC:接收鄰居請求和
通告 179
7.4 總結 185
7.5 快速參考 186
7.5.1 方法 186
7.5.2 宏 189
7.5.3 結構neigh_statistics 190
7.5.4 表 191
第8章 IPv6 192
8.1 IPv6簡介 192
8.2 IPv6地址 193
8.2.1 特殊地址 193
8.2.2 組播地址 194
8.3 IPv6報頭 195
8.4 擴展報頭 197
8.5 IPv6初始化 199
8.6 自動配置 200
8.7 接收IPv6數據包 201
8.7.1 本地投遞 204
8.7.2 轉發 206
8.8 接收IPv6組播流量 210
8.9 組播偵聽者發現(MLD) 211
8.9.1 加入和退出組播組 212
8.9.2 MLDv2組播偵聽者報告 215
8.9.3 組播源過濾 215
8.10 傳送IPv6數據包 220
8.11 IPv6路由選擇 221
8.12 總結 221
8.13 快速參考 221
8.13.1 方法 221
8.13.2 宏 224
8.13.3 表 224
8.13.4 特殊地址 225
8.13.5 IPv6路由選擇表的管理 226
第9章 Netfilter 227
9.1 Netfilter框架 227
9.2 Netfilter掛接點 228
註冊Netfilter鉤子回調函式 229
9.3 連線跟蹤 230
9.3.1 連線跟蹤的初始化 231
9.3.2 連線跟蹤條目 234
9.3.3 連線跟蹤輔助方法和期望
連線 238
9.3.4 iptables 241
9.3.5 投遞到當前主機 243
9.3.6 轉發數據包 245
9.3.7 網路地址轉換(NAT) 245
9.3.8 NAT鉤子回調函式和連線
跟蹤鉤子回調函式 247
9.3.9 NAT鉤子回調函式 250
9.3.10 連線跟蹤擴展 252
9.4 總結 253
9.5 快速參考 253
9.5.1 方法 253
9.5.2 宏 255
9.5.3 表 255
9.5.4 工具和庫 256
第10章 IPsec 257
10.1 概述 257
10.2 Internet密鑰交換(IKE) 257
10.3 IPsec和加密 259
10.4 XFRM框架 259
10.4.1 XFRM的初始化 260
10.4.2 XFRM策略 260
10.4.3 XFRM狀態(安全關聯) 263
10.5 IPv4 ESP的實現 266
10.6 接收IPsec數據包(傳輸模式) 268
10.7 傳送IPsec數據包(傳輸模式) 271
10.8 XFRM查找 272
10.9 IPsec的NAT穿越功能 275
10.10 總結 276
10.11 快速參考 276
10.11.1 方法 276
10.11.2 表 278
第11章 第4層協定 280
11.1 套接字 280
11.2 創建套接字 281
11.3 用戶數據包協定(UDP) 285
11.3.1 UDP的初始化 286
11.3.2 傳送UDP數據包 287
11.3.3 接收來自網路層(L3)的
UDP數據包 290
11.4 傳輸控制協定(TCP) 293
11.4.1 TCP報頭 293
11.4.2 TCP的初始化 295
11.4.3 TCP定時器 296
11.4.4 TCP套接字的初始化 297
11.4.5 TCP連線的建立 297
11.4.6 接收來自網路層(L3)的
TCP數據包 298
11.4.7 傳送TCP數據包 299
11.5 流控制傳輸協定(SCTP) 300
11.5.1 SCTP數據包和數據塊 301
11.5.2 SCTP塊頭 302
11.5.3 SCTP塊 302
11.5.4 SCTP關聯 303
11.5.5 建立SCTP關聯 305
11.5.6 接收SCTP數據包 305
11.5.7 傳送SCTP數據包 306
11.5.8 SCTP心跳 306
11.5.9 SCTP多流 306
11.5.10 SCTP多宿主 307
11.6 數據報擁塞控制協定(DCCP) 307
11.6.1 DCCP報頭 307
11.6.2 DCCP的初始化 3