当前位置:首页 > 工业技术
精通Linux内核网络
精通Linux内核网络

精通Linux内核网络PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:(以)罗森著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115392930
  • 页数:547 页
图书介绍:本书是关于Linux网络实现的最新读本,主要内容包括套接字缓冲区等内核网络基础知识、ARP、ICMP等协议的实现要点、IPv4和IPv6的深入探讨、netfilter和IPsec的实现、无线网络实现等等。
《精通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的初始化 309

11.6.3 DCCP套接字的初始化 310

11.6.4接收来自网络层(L3)的DCCP数据包 311

11.6.5发送DCCP数据包 311

11.6.6 DCCP和NAT 312

11.7总结 313

11.8快速参考 313

11.8.1方法 313

11.8.2宏 315

11.8.3表 315

第12章 无线子系统 317

12.1 mac80211子系统 317

12.2 802.11 MAC帧头 318

12.3 802.11 MAC帧头的其他成员 320

12.4网络拓扑 321

12.4.1基础设施BSS 321

12.4.2 IBSS(对等模式) 322

12.5省电模式 322

12.5.1进入省电模式 322

12.5.2退出省电模式 322

12.5.3处理组播/广播缓冲区 323

12.6管理层 325

12.6.1扫描 325

12.6.2身份验证 325

12.6.3关联 325

12.6.4重新关联 325

12.7 mac80211的实现 326

12.7.1接收路径 328

12.7.2传输路径 328

12.7.3分段 329

12.7.4 mac80211 debugfs 330

12.7.5无线模式 331

12.8高吞吐量(IEEE 802.11n) 331

12.9网状网络(802.11s) 334

12.9.1 HWMP 335

12.9.2组建网状网络 336

12.10 Linux无线开发流程 337

12.11总结 337

12.12快速参考 338

12.12.1方法 338

12.12.2表 341

第13章 InfiniBand 343

13.1 RDMA和InfiniBand概述 343

13.1.1 RDMA栈的组织结构 344

13.1.2 RDMA技术的优点 345

13.1.3 InfiniBand硬件组件 345

13.1.4 InfiniBand中的编址 345

13.1.5 InfiniBand的功能 346

13.1.6 InfiniBand数据包 346

13.1.7管理实体 347

13.2 RDMA资源 348

13.2.1 RDMA设备 348

13.2.2 PD 350

13.2.3 AH 350

13.2.4 MR 350

13.2.5 FMR池 351

13.2.6 MW 352

13.2.7 CQ 352

13.2.8 XRC 353

13.2.9 SRQ 353

13.2.10 QP 355

13.2.11工作请求的处理 360

13.2.12 RDMA架构支持的操作 361

13.2.13组播组 365

13.2.14用户空间RDMA API和内核级RDMA API的差别 365

13.3总结 366

13.4快速参考 366

第14章 高级主题 372

14.1网络命名空间 372

14.1.1命名空间的实现 373

14.1.2 UTS命名空间的实现 381

14.1.3网络命名空间的实现 383

14.1.4网络命名空间的管理 388

14.2 cgroup 392

14.2.1 cgroup的实现 393

14.2.2 cgroup设备控制器:一个简单示例 395

14.2.3 cgroup内存控制器:一个简单示例 396

14.2.4 net_prio模块 396

14.2.5分类器cls_cgroup 397

14.2.6挂载cgroup子系统 398

14.3频繁轮询套接字 399

14.3.1全局启用 400

14.3.2对特定套接字启用 401

14.3.3调整和配置 401

14.3.4性能 401

14.4 Linux蓝牙子系统 401

14.4.1 HCI层 404

14.4.2 HCI连接 406

14.4.3 L2CAP 407

14.4.4 BNEP 407

14.4.5蓝牙数据包接收示意图 408

14.4.6 L2CAP扩展功能 409

14.4.7蓝牙工具 409

14.5 IEEE 802.15.4和6LoWPAN 410

14.5.1邻居发现优化 411

14.5.2 Linux内核的6LoWPAN实现 412

14.6 NFC 415

14.6.1 NFC标签 415

14.6.2 NFC设备 416

14.6.3通信模式和操作模式 416

14.6.4主机控制器接口 417

14.6.5 Linux对NFC的支持 417

14.6.6用户空间架构 421

14.6.7 Android NFC 421

14.7通知链 422

14.8 PCI子系统 425

14.9组合网络设备 428

14.10 PPPoE协议 428

14.10.1 PPPoE报头 429

14.10.2 PPPoE的初始化 430

14.10.3 PPPoE数据包的收发 432

14.11 Android 435

14.11.1 Android联网技术 436

14.11.2 Android内部原理:资料 437

14.12总结 438

14.13快速参考 438

14.13.1方法 438

14.13.2宏 443

附录A Linux API 444

附录B 网络管理 520

附录C 术语表 537

相关图书
作者其它书籍
返回顶部