图书介绍

Linux网络编程 第2版PDF|Epub|txt|kindle电子书版本网盘下载

Linux网络编程 第2版
  • 宋敬彬等编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302335283
  • 出版时间:2014
  • 标注页数:677页
  • 文件大小:287MB
  • 文件页数:699页
  • 主题词:Linux操作系统-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Linux网络编程 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1篇 Linux网络开发基础2

第1章 Linux操作系统概述2

1.1 Linux发展历史2

1.1.1 Linux的诞生和发展2

1.1.2 Linux名称的由来3

1.2 Linux的发展要素3

1.2.1 UNIX操作系统3

1.2.2 Minix操作系统4

1.2.3 POSIX标准4

1.3 Linux与UNIX的异同5

1.4操作系统类型选择和内核版本的选择5

1.4.1常见的不同公司发行的Linux异同5

1.4.2内核版本的选择6

1.5 Linux的系统架构7

1.5.1 Linux内核的主要模块7

1.5.2 Linux的文件结构8

1.6 GNU通用公共许可证9

1.6.1 GPL许可证的历史9

1.6.2 GPL的自由理念10

1.6.3 GPL的基本条款11

1.6.4关于GPL许可证的争议12

1.7 Linux软件开发的可借鉴之处12

1.8小结13

第2章 Linux编程环境14

2.1 Linux环境下的编辑器14

2.1.1 Vim使用简介14

2.1.2使用Vim建立文件15

2.1.3使用Vim编辑文本16

2.1.4 Vim的格式设置18

2.1.5 Vim配置文件.vimrc18

2.1.6使用其他编辑器19

2.2 Linux下的GCC编译器工具集19

2.2.1 GCC简介19

2.2.2编译程序的基本知识21

2.2.3单个文件编译成执行文件21

2.2.4编译生成目标文件22

2.2.5多文件编译22

2.2.6预处理24

2.2.7编译成汇编语言24

2.2.8生成和使用静态链接库25

2.2.9生成动态链接库26

2.2.10动态加载库29

2.2.11 GCC常用选项31

2.2.12编译环境的搭建33

2.3 Makefile文件简介33

2.3.1一个多文件的工程例子33

2.3.2多文件工程的编译35

2.3.3 Makefile的规则37

2.3.4 Makefile中使用变量39

2.3.5搜索路径42

2.3.6自动推导规则43

2.3.7递归make44

2.3.8 Makefile中的函数46

2.4用GDB调试程序47

2.4.1编译可调试程序48

2.4.2使用GDB调试程序49

2.4.3 GDB常用命令52

2.4.4其他的GDB59

2.5小结60

第3章 文件系统简介61

3.1 Linux下的文件系统61

3.1.1 Linux下文件的内涵61

3.1.2文件系统的创建62

3.1.3挂接文件系统65

3.1.4索引节点inode65

3.1.5普通文件66

3.1.6设备文件66

3.1.7虚拟文件系统VFS68

3.2文件的通用操作方法72

3.2.1文件描述符72

6.4 NFS协议和服务175

6.4.1安装NFS服务器和客户端175

6.4.2服务器端的设定176

6.4.3客户端的操作176

6.4.4 showmount命令177

6.5自定义网络服务177

6.5.1 xinetd/inetd177

6.5.2 xinetd服务配置178

6.5.3自定义网络服务179

6.6小结180

第7章 TCP网络编程基础181

7.1套接字编程基础知识181

7.1.1套接字地址结构181

7.1.2用户层和内核层交互过程183

7.2 TCP网络编程流程184

7.2.1 TCP网络编程架构184

7.2.2创建网络插口函数socket()186

7.2.3绑定一个地址端口对函数bind()189

7.2.4监听本地端口listen192

7.2.5接受一个网络请求函数accept()194

7.2.6连接目标网络服务器函数connect()199

7.2.7写入数据函数write()200

7.2.8读取数据函数read()201

7.2.9关闭套接字函数202

7.3服务器/客户端的简单例子202

7.3.1例子功能描述202

7.3.2服务器网络程序202

7.3.3服务器读取和显示字符串205

7.3.4客户端的网络程序205

7.3.5客户端读取和显示字符串206

7.3.6编译运行程序206

7.4截取信号的例子207

7.4.1信号处理207

7.4.2信号SIGPIPE207

7.4.3信号SIGINT208

7.5小结208

第8章 服务器和客户端信息的获取209

8.1字节序209

8.1.1大端字节序和小端字节序209

8.1.2字节序转换函数211

8.1.3一个字节序转换的例子213

8.2字符串IP地址和二进制IP地址的转换216

8.2.1 inet_xxx()函数216

8.2.2 inet_pton()和inet_ntop()函数218

8.2.3使用8.2.1节地址转换函数的例子219

8.2.4使用函数inet_ton()和函数inet_ntop()的例子221

8.3套接字描述符判定函数issockettype()222

8.3.1进行文件描述符判定的函数issockettype()222

8.3.2 main()函数223

8.4 IP地址与域名之间的相互转换223

8.4.1 DNS原理223

8.4.2获取主机信息的函数224

8.4.3使用主机名获取主机信息的例子227

8.4.4函数gethostbyname()不可重入的例子229

8.5协议名称处理函数230

8.5.1 xxxprotoxxx()函数231

8.5.2使用协议族函数的例子232

8.6小结235

第9章 数据的IO和复用236

9.1 IO函数236

9.1.1使用recv()函数接收数据236

9.1.2使用send()函数发送数据238

9.1.3使用readv()函数接收数据239

9.1.4使用writev()函数发送数据239

9.1.5使用recvmsg()函数接收数据241

9.1.6使用sendmsg()函数发送数据243

9.1.7IO函数的比较245

9.2使用IO函数的例子245

9.2.1客户端处理框架的例子245

9.2.2服务器端程序框架247

9.2.3使用recv()和send()函数248

9.2.4使用readv()和write()函数250

9.2.5使用recvmsg()和sendmsg()函数252

9.3 IO模型255

9.3.1阻塞IO模型255

9.3.2非阻塞IO模型255

9.3.3 IO复用256

9.3.4信号驱动IO模型256

9.3.5异步IO模型257

9.4 select()函数和pselect()函数258

9.4.1 select()函数258

9.4.2 pselect()函数260

9.5 poll()函数和ppoll()函数261

9.5.1 poll()函数261

9.5.2 ppoll()函数262

9.6非阻塞编程263

9.6.1非阻塞方式程序设计介绍263

9.6.2非阻塞程序设计的例子263

9.7小结264

第10章 基于UDP协议的接收和发送265

10.1 UDP编程框架265

10.1.1 UDP编程框图265

10.1.2 UDP服务器编程框架267

10.1.3 UDP客户端编程框架267

10.2 UDP协议程序设计的常用函数267

10.2.1建立套接字socket()和绑定套接字bind()268

10.2.2接收数据recvfrom()/recv()268

10.2.3发送数据sendto()/send()273

10.3 UDP接收和发送数据的例子277

10.3.1 UDP服务器端277

10.3.2 UDP服务器端数据处理278

10.3.3 UDP客户端279

10.3.4 UDP客户端数据处理279

10.3.5测试UDP程序280

10.4 UDP协议程序设计中的几个问题280

10.4.1 UDP报文丢失数据280

10.4.2 UDP数据发送中的乱序282

10.4.3 UDP协议中的connect()函数284

10.4.4 UDP缺乏流量控制285

10.4.5 UDP协议中的外出网络接口287

10.4.6 UDP协议中的数据报文截断288

10.5小结289

第11章 高级套接字290

11.1 UNIX域函数290

11.1.1 UNIX域函数的地址结构290

11.1.2套接字函数291

11.1.3使用UNIX域函数进行套接字编程291

11.1.4传递文件描述符293

11.1.5 socketpair()函数294

11.1.6传递文件描述符的例子295

11.2广播299

11.2.1广播的IP地址300

11.2.2广播与单播的比较300

11.2.3广播的示例301

11.3多播307

11.3.1多播的概念308

11.3.2广域网的多播308

11.3.3多播的编程308

11.3.4内核中的多播310

11.3.5一个多播例子的服务器端313

11.3.6一个多播例子的客户端315

11.4数据链路层访问317

11.4.1 SOCK_PACKET类型317

11.4.2设置套接口以捕获链路帧的编程方法317

11.4.3从套接口读取链路帧的编程方法318

11.4.4定位IP包头的编程方法319

11.4.5定位TCP报头的编程方法321

11.4.6定位UDP报头的编程方法322

11.4.7定位应用层报文数据的编程方法323

11.4.8使用SOCK_PACKET编写ARP请求程序的例子323

11.5小结326

第12章 套接字选项328

12.1获取和设置套接字选项getsocketopt()/setsocketopt()328

12.1.1 getsockopt()函数和setsocketopt()函数的介绍328

12.1.2套接字选项329

12.1.3套接字选项简单示例330

12.2 SOL_SOCKET协议族选项334

12.2.1 SO_BROADCAST广播选项334

12.2.2 SO_DEBUG调试选项335

12.2.3 SO_DONTROUTE不经过路由选项335

12.2.4 SO_ERROR错误选项335

12.2.5 SO_KEEPALIVE保持连接选项336

12.2.6 SO_LINGER缓冲区处理方式选项337

12.2.7 SO_OOBINLINE带外数据处理方式选项339

12.2.8 SO_RCVBUF和SO_SNDBUF缓冲区大小选项340

12.2.9 SO_RCVLOWAT和SO_SNDLOWAT缓冲区下限选项340

12.2.10 SO_RCVTIMEO和SO_SNDTIMEO收发超时选项341

12.2.11 SO_REUSERADDR地址重用选项341

12.2.12 SO_EXCLUSIVEADDRUSE端口独占选项342

12.2.13 SO_TYPE套接字类型选项342

12.2.14 SO_BSDCOMPAT与BSD套接字兼容选项342

12.2.15 SO_BINDTODEVICE套接字网络接口绑定选项343

12.2.16 SO_PRIORITY套接字优先级选项344

12.3 IPPROTO_IP选项344

12.3.1 IP_HDRINCL选项344

12.3.2 IP_OPTNIOS选项344

12.3.3 IP_TOS选项344

12.3.4 IP_TTL选项345

12.4 IPPROTO_TCP选项345

12.4.1 TCP_KEEPALIVE选项345

12.4.2 TCP_MAXRT选项346

12.4.3 TCP_MAXSEG选项346

12.4.4 TCP_NODELAY和TCP_CORK选项346

12.5使用套接字选项348

12.5.1设置和获取缓冲区大小348

12.5.2获取套接字类型的例子353

12.5.3使用套接字选项的综合例子353

12.6 ioctl()函数358

12.6.1 ioctl()函数的命令选项358

12.6.2 ioctl()函数的IO请求360

12.6.3 ioctl()函数的文件请求362

12.6.4 ioctl()函数的网络接口请求362

12.6.5使用ioctl()函数对ARP高速缓存操作369

12.6.6使用ioctl()函数发送路由表请求371

12.7 fcntl()函数371

12.7.1 fcntl()函数的选项372

12.7.2使用fcntl()函数修改套接字非阻塞属性372

12.7.3使用fcntl()函数设置信号属主372

12.8小结373

第13章 原始套接字374

13.1概述374

13.2原始套接字的创建375

13.2.1 SOCK_RAW选项375

13.2.2 IP_HDRINCL套接字选项376

13.2.3不需要bind()函数376

13.3原始套接字发送报文376

13.4原始套接字接收报文377

13.5原始套接字报文处理时的结构377

13.5.1 IP头部的结构377

13.5.2 ICMP头部结构378

13.5.3 UDP头部结构381

13.5.4 TCP头部结构382

13.6 ping的例子384

13.6.1协议格式384

13.6.2校验和函数385

13.6.3设置ICMP发送报文的头部386

13.6.4剥离ICMP接受报文的头部387

13.6.5计算时间差388

13.6.6发送报文389

13.6.7接收报文390

13.6.8主函数过程391

13.6.9主函数main()393

13.6.10编译测试396

13.7洪水攻击396

13.8 ICMP洪水攻击397

13.8.1 ICMP洪水攻击的原理397

13.8.2 ICMP洪水攻击的例子397

13.9 UDP洪水攻击401

13.10 SYN洪水攻击405

13.10.1 SYN洪水攻击的原理405

13.10.2 SYN洪水攻击的例子405

13.11小结409

第14章 服务器模型选择410

14.1循环服务器410

14.1.1 UDP循环服务器410

14.1.2 TCP循环服务器413

14.2简单并发服务器415

14.2.1并发服务器的模型416

14.2.2 UDP并发服务器416

14.2.3 TCP并发服务器419

14.3 TCP的高级并发服务器模型421

14.3.1单客户端单进程,统一accept()422

14.3.2单客户端单线程,统一accept()425

14.3.3单客户端单线程,各线程独自accept(),使用互斥锁427

14.4 1O复用循环服务器431

14.4.1 IO复用循环服务器模型介绍431

14.4.2 IO复用循环服务器模型的例子432

14.5小结436

第15章 IPv6简介437

15.1 IPv4的缺陷437

15.2 IPv6的特点438

15.3 IPv6的地址439

15.3.1 IPv6的单播地址439

15.3.2可聚集全球单播地址439

15.3.3本地使用单播地址440

15.3.4兼容性地址441

15.3.5 IPv6多播地址441

15.3.6 IPv6任播地址442

15.3.7主机的多个IPv6地址442

15.4 IPv6的头部443

15.4.1 IPv6头部格式443

15.4.2与IPv4头部的对比444

15.4.3 IPv6的TCP头部444

15.4.4 IPv6的UDP头部444

15.4.5 IPv6的ICMP头部445

15.5 IPv6运行环境447

15.5.1加载IPv6模块447

15.5.2查看是否支持IPv6447

15.6 IPv6的结构定义448

15.6.1 IPv6的地址族和协议族448

15.6.2套接字地址结构448

15.6.3地址兼容考虑450

15.6.4 IPv6通用地址450

15.7 IPv6的套接字函数451

15.7.1 socket()函数451

15.7.2没有发生改变的函数451

15.7.3发生改变的函数452

15.8 IPv6的套接字选项452

15.8.1 IPv6的套接字选项452

15.8.2单播跳限IPV6_UNICAST_HOPS453

15.8.3发送和接收多播包454

15.8.4 IPv6中获得时间戳的ioctl命令455

15.9 IPv6的库函数455

15.9.1地址转换函数的差异455

15.9.2域名解析函数的差异455

15.9.3测试宏458

15.10 IPv6的编程的一个简单例子458

15.10.1服务器程序458

15.10.2客户端程序460

15.10.3编译调试461

15.11小结462

第3篇 Linux内核网络编程464

第16章 Linux内核中网络部分结构以及分布464

16.1概述464

16.1.1代码目录分布464

16.1.2内核中网络部分流程简介466

16.1.3系统提供修改网络流程点468

16.1.4 sk_buff结构469

16.1.5网络协议数据结构inet_protosw471

16.2软中断CPU报文队列及其处理473

16.2.1 Linux内核网络协议层的层间传递手段——软中断473

16.2.2网络收发处理软中断的实现机制475

16.3 socket数据如何在内核中接收和发送476

16.3.1 socket()的初始化476

16.3.2接收网络数据recv()476

16.3.3发送网络数据send()477

16.4小结477

第17章 netfilter框架内报文处理478

17.1 netfilter478

17.1.1 netfilter简介478

17.1.2 netfilter框架479

17.1.3 netfilter检查时的表格480

17.1.4 netfilter的规则480

17.2 iptables和netfilter481

17.2.1 iptables简介481

17.2.2 iptables的表和链481

17.2.3使用iptables设置过滤规则483

17.3内核模块编程485

17.3.1内核“Hello World!”程序485

17.3.2内核模块的基本架构487

17.3.3内核模块加载和卸载过程489

17.3.4内核模块初始化和清理函数490

17.3.5内核模块初始化和清理过程的容错处理490

17.3.6内核模块编译所需的Makefile491

17.4 5个钩子点492

17.4.1 netfilter的5个钩子点492

17.4.2 NF_HOOK宏493

17.4.3钩子的处理规则494

17.5注册/注销钩子494

17.5.1结构nf_hook_ops494

17.5.2注册钩子495

17.5.3注销钩子496

17.5.4注册注销函数497

17.6钩子的简单处理例子498

17.6.1功能描述498

17.6.2需求分析498

17.6.3 ping回显屏蔽实现498

17.6.4禁止向目的IP地址发送数据的实现499

17.6.5端口关闭实现499

17.6.6动态配置实现499

17.6.7可加载内核实现代码501

17.6.8应用层测试代码实现508

17.6.9编译运行508

17.7一点多个钩子的优先级508

17.8校验和问题509

17.9小结510

第4篇 综合案例512

第18章 一个简单Web服务器的例子SHTTPD512

18.1 SHTTPD的需求分析512

18.1.1 SHTTPD启动参数可动态配置的需求513

18.1.2 SHTTPD的多客户端支持的需求515

18.1.3 SHTTPD支持方法的需求515

18.1.4 SHTTPD支持的HTTP协议版本的需求516

18.1.5 SHTTPD支持头部的需求517

18.1.6 SHTTPD定位URI的需求517

18.1.7 SHTTPD支持CGI的需求518

18.1.8 SHTTPD错误代码的需求519

18.2 SHTTPD的模块分析和设计519

18.2.1 SHTTPD的主函数520

18.2.2 SHTTPD命令行解析的分析设计521

18.2.3 SHTTPD配置文件解析的分析设计523

18.2.4 SHTTPD的多客户端支持的分析设计523

18.2.5 SHTTPD头部解析的分析设计526

18.2.6 SHTTPD对URI的分析设计526

18.2.7 SHTTPD支持方法的分析设计527

18.2.8 SHTTPD支持CGI的分析设计527

18.2.9 SHTTPD错误处理的分析设计530

18.3 SHTTPD各模块的实现532

18.3.1 SHTTPD命令行解析的实现532

18.3.2 SHTTPD文件配置解析的实现535

18.3.3 SHTTPD的多客户端支持的实现536

18.3.4 SHTTPD所请求URI解析的实现540

18.3.5 SHTTPD方法解析的实现541

18.3.6 SHTTPD响应方法的实现541

18.3.7 SHTTPD支持CGI的实现545

18.3.8 SHTTPD支持HTTP协议版本的实现548

18.3.9 SHTTPD内容类型的实现548

18.3.10 SHTTPD错误处理的实现550

18.3.11 SHTTPD生成目录下文件列表文件的实现552

18.3.12 SHTTPD主函数的实现554

18.4 SHTTPD的编译、调试和测试555

18.4.1建立源文件555

18.4.2制作Makefile555

18.4.3制作执行文件555

18.4.4使用不同的浏览器测试服务器程序556

18.5小结557

第19章 一个简单网络协议栈的例子SIP558

19.1 SIP网络协议栈的功能描述558

19.1.1 SIP网络协议栈的基本功能描述558

19.1.2 SIP网络协议栈的分层功能描述559

19.1.3 SIP网络协议栈的用户接口功能描述559

19.2 SIP网络协议栈的架构560

19.3 SIP网络协议栈的存储区缓存561

19.3.1 SIP存储缓冲的结构定义561

19.3.2 SIP存储缓冲的处理函数565

19.4 SIP网络协议栈的网络接口层567

19.4.1 SIP网络接口层的架构568

19.4.2 SIP网络接口层的数据结构568

19.4.3 SIP网络接口层的初始化函数570

19.4.4 SIP网络接口层的输入函数571

19.4.5 SIP网络接口层的输出函数574

19.5 SIP网络协议栈的ARP层577

19.5.1 SIP地址解析层的架构577

19.5.2 SIP地址解析层的数据结构577

19.5.3 SIP地址解析层的映射表579

19.5.4 SIP地址解析层的ARP映射表维护函数580

19.5.5 SIP地址解析层的ARP网络报文构建函数581

19.5.6 SIP地址解析层的ARP网络报文收发处理函数583

19.6 SIP网络协议栈的IP层586

19.6.1 SIP网际协议层的架构586

19.6.2 SIP网际协议层的数据结构587

19.6.3 SIP网际协议层的输入函数589

19.6.4 SIP网际协议层的输出函数593

19.6.5 SIP网际协议层的分片函数594

19.6.6 SIP网际协议层的分片组装函数595

19.7 SIP网络协议栈的ICMP层599

19.7.1 SIP控制报文协议的数据结构599

19.7.2 SIP控制报文协议的协议支持600

19.7.3 SIP控制报文协议的输入函数601

19.7.4 SIP控制报文协议的回显应答函数602

19.8 SIP网络协议栈的UDP层603

19.8.1 SIP数据报文层的数据结构603

19.8.2 SIP数据报文层的控制单元603

19.8.3 SIP数据报文层的输入函数605

19.8.4 SIP数据报文层的输出函数606

19.8.5 SIP数据报文层的建立函数606

19.8.6 SIP数据报文层的释放函数607

19.8.7 SIP数据报文层的绑定函数607

19.8.8 SIP数据报文层的发送数据函数608

19.8.9 SIP数据报文层的校验和计算609

19.9 SIP网络协议栈的协议无关层610

19.9.1 SIP协议无关层的系统架构611

19.9.2 SIP协议无关层的函数形式611

19.9.3 SIP协议无关层的接收数据函数612

19.10 SIP网络协议栈的BSD接口层613

19.10.1 SIP用户接口层的架构613

19.10.2 SIP用户接口层的套接字建立函数613

19.10.3 SIP用户接口层的套接字关闭函数614

19.10.4 SIP用户接口层的套接字绑定函数614

19.10.5 SIP用户接口层的套接字连接函数615

19.10.6 SIP用户接口层的套接字接收数据函数615

19.10.7 SIP用户接口层的发送数据函数616

19.11 SIP网络协议栈的编译617

19.11.1 SIP的文件结构617

19.11.2 SIP的Makefile618

19.11.3 SIP的编译运行618

19.12小结618

第20章 一个简单防火墙的例子SIPFW620

20.1 SIPFW防火墙的功能描述620

20.1.1 SIPFW防火墙对主机进行网络数据过滤的功能描述620

20.1.2 SIPFW防火墙用户设置防火墙规则的功能描述621

20.1.3 SIPFW防火墙配置文件等附加功能的功能描述621

20.2 SIPFW需求分析621

20.2.1 SIPFW防火墙条件和动作621

20.2.2 SIPFW防火墙支持过滤的类型和内容622

20.2.3 SIPFW防火墙过滤的方式和动作625

20.2.4 SIPFW防火墙的配置文件626

20.2.5 SIPFW防火墙命令行配置格式627

20.2.6 SIPFW防火墙的规则文件格式628

20.2.7 SIPFW防火墙的日志文件数据格式630

20.2.8 SIPFW防火墙构建所采用的技术方案630

20.3使用netlink进行用户空间和内核空间数据交互631

20.3.1 netlink的用户空间程序设计632

20.3.2 netlink的内核空间API635

20.4使用proc进行内存数据用户空间映射637

20.4.1 proc虚拟文件系统的结构637

20.4.2创建proc虚拟文件638

20.4.3删除proc虚拟文件639

20.4.4 proc文件的写函数639

20.4.5 proc文件的读函数640

20.5内核空间的文件操作函数641

20.5.1内核空间的文件结构641

20.5.2内核空间的文件建立操作641

20.5.3内核空间的文件读写操作642

20.5.4内核空间的文件关闭操作643

20.6 SIPFW防火墙的模块分析和设计644

20.6.1 SIPFW防火墙的总体架构644

20.6.2 SIPFW防火墙的用户命令解析645

20.6.3 SIPFW用户空间与内核空间的交互649

20.6.4 SIPFW防火墙内核链上的规则处理651

20.6.5 SIPFW防火墙的PROC虚拟文件系统654

20.6.6 SIPFW防火墙的配置文件和日志文件处理655

20.6.7 SIPFW防火墙的过滤模块设计657

20.7 SIPFW防火墙各功能模块的实现660

20.7.1 SIPFW防火墙的命令解析代码660

20.7.2 SIPFW防火墙的过滤规则解析模块代码664

20.7.3 SIPFW防火墙的网络数据拦截模块代码666

20.7.4 SIPFW防火墙的PROC虚拟文件系统668

20.7.5 SIPFW防火墙对配置文件的解析670

20.7.6 SIPFW防火墙内核模块初始化和退出671

20.7.7用户空间处理主函数672

20.8编译、调试和测试673

20.8.1用户程序和内核程序的Makefile673

20.8.2编译及运行674

20.8.3下发过滤规则,测试过滤结果674

20.9小结676

热门推荐