《Linux网络内核分析与开发》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:肖宇峰等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121114458
  • 页数:356 页
图书介绍:本书全面描述了Linux网络内核的结构和源码,力图使读者了解和掌握网络内核的工作原理和开发方法。全书共分为9章,主要介绍了Linux内核和相关开发工具、Linux网络内核结构、套接字及其设计、传输层协议实现与设计、网络层实现、数据链路层实现、网络设备驱动程序及其设计、路由模块与邻居子系统、MPLS网络及其协议实现等内容。

第1章 Linux系统内核 1

1.1 Linux系统内核组成结构 1

1.1.1 内核组成结构 1

1.1.2 Linux内核源码浏览工具 2

1.2 Linux系统内核编译 3

1.2.1 Linux内核编译步骤 3

1.2.2 Linux内核编译选项 4

1.3 Linux系统内核调试工具 5

1.3.1 KGDB调试工具 6

1.3.2 UML调试工具 10

1.3.3 用虚拟机软件搭建内核调试平台 11

1.4 GDB使用 16

1.4.1 基本命令 16

1.4.2 断点 16

1.4.3 查看运行时数据 19

1.4.4 改变程序的执行 21

1.5 调试范例 21

1.5.1 调试示例程序 22

1.5.2 调试前的工作 22

1.5.3 调试运行 22

第2章 Linux网络内核 24

2.1 TCP/IP协议体系 24

2.1.1 TCP/IP协议体系架构 24

2.1.2 网络数据包的封装与解封 25

2.2 Linux网络内核组成 26

2.2.1 Linux网络内核的组成模块 26

2.2.2 内核中的数据包处理流程 28

2.3 网络内核的重要数据结构 30

2.3.1 套接字缓冲区 30

2.3.2 网络设备 42

第3章 套接字 53

3.1 套接字与套接字接口 53

3.1.1 套接字 54

3.1.2 套接字接口的使用 54

3.1.3 套接字编程实例 60

3.2 套接字内核实现 62

3.2.1 套接字创建流程 62

3.2.2 套接字数据结构 62

3.2.3 套接字功能实现 74

3.3 新协议族与套接字 94

3.3.1 数据定义 95

3.3.2 函数设计 96

第4章 传输层 99

4.1 UDP协议 99

4.1.1 UDP简介 99

4.1.2 UDP协议模块处理流程 99

4.1.3 UDP头部实现 100

4.1.4 UDP包的发送 101

4.1.5 UDP包的接收 110

4.1.6 UDP连接的建立 116

4.2 TCP协议 118

4.2.1 TCP协议简介 118

4.2.2 TCP协议模块处理流程 119

4.2.3 TCP头部实现 120

4.2.4 TCP连接建立 121

4.2.5 TCP包的发送 124

4.2.6 TCP包的接收 132

4.3 原始数据包处理模块 142

4.3.1 原始套接字简介 142

4.3.2 原始数据包处理流程 142

4.3.3 原始数据包的发送 144

4.3.4 原始数据包的接收 148

4.4 新传输层协议与套接字设计 150

4.4.1 数据结构 152

4.4.2 函数设计 153

第5章 网络层 156

5.1 IPv4介绍 156

5.2 IPv4协议实现 157

5.2.1 IP包头实现 157

5.2.2 IP层处理流程 158

5.2.3 IP包的本地发送 159

5.2.4 IP包的本地接收 168

5.2.5 IP包的转发 175

5.3 ICMP协议实现 176

5.3.1 ICMP简介 176

5.3.2 ICMP流程 178

5.4 IPv6协议实现 186

5.4.1 IPv6协议简介 186

5.4.2 给内核配置IPv6 187

5.4.3 IPv6协议模块处理流程 187

5.4.4 IPv6包的发送 188

5.4.5 IPv6包的接收 194

5.4.6 IPv6包的转发 198

5.4.7 相关协议实现 200

第6章 数据链路层 207

6.1 数据链路层协议 207

6.2 帧的发送和接收 208

6.2.1 设备初始化函数 208

6.2.2 帧的发送实现 209

6.2.3 帧的接收实现 215

6.2.4 驱动上层的数据包类型与递交方法 222

6.3 通用点对点(PPP)协议实现 225

6.3.1 点对点协议 225

6.3.2 PPP协议管理 227

6.3.3 发送帧 230

6.3.4 接收帧 233

6.4 异步PPP协议实现 234

6.4.1 PPP_async_init函数 234

6.4.2 PPP_async_send函数 235

6.4.3 PPP_asynctty_receive函数 236

6.5 以太网上的PPP协议实现 236

6.5.1 PPPoE协议规范 237

6.5.2 数据结构 238

6.5.3 PPPoE驱动程序 239

第7章 网络设备驱动程序 247

7.1 网络设备驱动程序 247

7.1.1 数据结构 247

7.1.2 网络设备的初始化 248

7.1.3 网络设备的打开和关闭 253

7.1.4 发送数据包 254

7.1.5 接收数据包 256

7.1.6 网络设备的统计信息 260

7.2 CS89x0网卡驱动程序设计 260

7.2.1 数据定义 261

7.2.2 I/O端口访问函数 262

7.2.3 CS89x0网卡的初始化 263

7.2.4 CS89x0网卡的打开和关闭 268

7.2.5 CS89x0网卡发送数据包 270

7.2.6 CS89x0网卡接收数据包 271

第8章 路由模块与邻居子系统 275

8.1 路由原理 275

8.2 路由表数据结构 277

8.2.1 路由表类型 277

8.2.2 路由表缓存类型 283

8.3 路由信息管理 285

8.3.1 路由规则管理 286

8.3.2 路由表管理 288

8.4 路由查询 290

8.4.1 发送时路由查询 291

8.4.2 接收时路由查询 299

8.5 邻居子系统 302

8.5.1 邻居子系统类型 302

8.5.2 邻居子系统处理模块 305

第9章 MPLS网络与协议实现 310

9.1 MPLS协议原理 310

9.1.1 原理介绍 310

9.1.2 Linux内核的MPLS配置 311

9.2 MPLS协议模块 313

9.2.1 流程 313

9.2.2 数据结构 314

9.2.3 初始化 318

9.2.4 MPLS标签转发表管理 321

9.2.5 MPLS层的数据发送 345

9.2.6 MPLS层的数据接收与转发 348

参考文献 355