《网络程序设计》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:胡亮,李强,康健编著
  • 出 版 社:长春:吉林大学出版社
  • 出版年份:2003
  • ISBN:7560126626
  • 页数:338 页
图书介绍:本书收词5000余条,分字、音、译、组词、例句等。

第一章 网络基础 1

1.1概述 1

1.1.1计算机网络定义和应用 1

1.1.2计算机网络组成和结构 2

1.2 OSI参考模型 3

1.2.1网络分层体系结构 3

1.2.2分层的原则和目标 3

1.2.3 ISO OSI/RM 4

1.3通信方式与服务 6

1.3.1层间通信与对等层间通信 6

1.3.2服务和数据单元 7

1.3.3服务原语 8

1.3.4面向连接的和无连接的服务 10

1.4传输层原理 12

1.4.1传输层概述 12

1.4.2传输层地址 13

1.4.3传输层复用功能 13

1.4.4可靠传输 14

1.4.5传输层流量控制 17

1.4.6传输连接 19

1.4.7传输层提供的服务质量 22

1.4.8传输服务用户间的通信连接 22

1.5 TCP/IP协议族 24

1.5.1 TCP/IP层次 24

1.5.2 RFC文档 26

1.6.1 Unix标准 26

1.6.2体系结构 27

1.6.3协议无关性 28

第二章 TCP协议和UDP协议 29

2.1概述 29

2.2 UDP:用户数据报协议 29

2.2.1 UDP报头 30

2.2.2 UDP校验和 30

2.3 TCP:传输控制协议 31

2.3.1 TCP提供的服务 31

2.3.2 TCP的首部 32

2.3.3 TCP连接的建立和释放 35

2.3.4最大报文段长度 36

2.3.5 TCP的半关闭 37

2.3.6同时关闭 38

2.3.7 TCP选项 38

2.3.8 TCP的性能 39

2.3.9 T/TCP:为事务用的 TCP扩展 42

2.4传输层端口号 44

2.4.1寻址 44

2.4.2套接字接口 46

2.5面向连接编程模型 48

2.5.1面向连接编程模型使用的主要系统调用 48

2.5.2面向连接服务流程 50

2.5.3面向连接服务程序例子 52

2.6面向无连接编程模型 55

2.6.1发送和接收数据 55

2.6.2面向无连接服务流程 55

2.6.3面向无连接服务程序例子 56

2.6.4两种模型的区别 60

2.7进程通信原语 60

2.7.1报文传递 61

2.7.2远程过程调用 62

2.7.3进程通信原语的实现问题 65

第三章 IP协议 66

3.1 IP地址 66

3.2 IP报文格式 67

3.3 IP路由 70

3.3.1 IP路由选择 70

3.3.2子网编址与子网掩码 72

3.3.3 IP的未来发展 73

3.4 ARP协议和RARP协议 74

3.4.1 ARP(地址解析协议) 74

3.4.2 RARP:反向地址解析协议 77

3.5 BOOTP:引导协议 80

3.5.1 BOOTP重发策略 80

3.5.2 BOOTP的分组格式 80

3.5.3 BOOTP端口号 83

3.5.4 BOOTP穿越路由器 84

3.6 ICMP: Internet控制报文协议 84

3.6.1 ICMP报文格式和类型 84

3.6.2 ICMP地址掩码请求与应答 87

3.6.3 ICMP时间戳请求与应答 87

3.6.4 ICMP报文的BSD4.4实现 88

3.7路由套接口编程 89

3.7.1数据链路套接口地址结构 90

3.7.2读和写 91

3.7.3 sysctl操作 92

3.7.4接口名和索引函数 96

第四章 顾客服务员程序设计 104

4.1网络服务模式 104

4.1.1顾客/服务器应用 105

4.1.2顾客/服务器应用程序分类 105

4.1.3三层顾客/服务器结构 108

4.1.4中间件 108

4.1.5文件cache的一致性 109

4.1.6服务员类型 111

4.2标准Internet服务和常见的应用 111

4.2.1标准Internet服务 111

4.2.2常见的Internet应用 112

4.3并发服务器 112

4.3.1套接口对 112

4.3.2并发服务器 113

4.3.3缓冲区大小及其限制 115

4.3.4 TCP发送 116

4.3.5 UDP发送 117

4.4网络服务员工作模式 118

4.4.1 TCP迭代服务器程序 118

4.4.2 TCP并发服务器程序 119

4.4.3 BSD上的实现 122

4.5守护进程 123

4.5.1守护进程的原理 123

4.5.2 syslog守护进程 124

4.5.3 syslog守护函数 125

4.5.4 daemon init函数 127

4.5.5避免守护进程本身的多个副本互相干扰 129

4.6 Inetd超级服务员 129

第五章 名字与地址转换 134

5.1域名系统 134

5.1.1资源记录 134

5.1.2解析器和名字服务器 135

5.1.3 DNS替代方法 136

5.2 gethostbyname函数 136

5.3 RES USE INET6解析器选项 139

5.4与名字和地址有关的常用函数 141

5.4.1 gethostbyaddr函数 141

5.4.2 uname函数 142

5.4.3 gethostname函数 143

5.4.4 getservbyname和getservbyport函数 143

5.4.5其它网络相关信息 146

5.5套接字选项 146

5.5.1获取和设置套接口选项 147

5.5.2通用套接口选项 150

5.5.3 IPv4套接口选项 155

5.5.4 ICMPv6套接口选项 157

5.5.5 IPv6套接口选项 157

5.5.6 TCP套接口选项 159

5.6 fcntl函数 160

第六章 机内进程间通信 162

6.1引言 162

6.2信号 162

6.2.1 Linux系统支持的信号 163

6.2.2信号的捕获和处理 164

6.2.3信号的处理 165

6.2.4信号和系统调用 166

6.2.5 sigsetjmp和siglongjmp函数 166

6.2.6信号阻塞 168

6.2.7发送信号 168

6.2.8异步信号安全函数 170

6.3管道 170

6.3.1管道分类 171

6.3.2管道技术的实现 171

6.3.3管道程序设计 172

6.3.4管道的容量 174

6.3.5关闭管道 175

6.3.6非阻塞读和写 176

6.3.7使用select调用处理多路管道 178

6.3.8 FIFO或命名管道 180

6.4共享内存 181

6.4.1共享内存原理 181

6.4.2共享内存技术的实现 182

6.4.3共享内存的操作函数 182

6.5套接字 183

6.5.1套接字通信原理 183

6.5.2实现过程 184

6.5.3 socketpair函数 184

6.5.4性能测试 186

6.5.5结论 187

第七章 广播和多播 188

7.1概述 188

7.2广播 189

7.2.1广播的用途 189

7.2.2受限广播 190

7.2.3指向网络的广播 190

7.2.4指向子网的广播 190

7.2.5指向所有子网的广播 191

7.2.6广播的例子 191

7.2.7 IP分片和广播 192

7.3多播 192

7.3.1多播组地址 192

7.3.2多播组地址到以太网地址的转换 193

7.4单播与广播的比较 194

7.5局域网上多播与广播比较 196

7.6广域网上的多播 198

7.7多播套接口选项 200

7.8虚拟网络 204

7.8.1概述 204

7.8.2 MBone 204

7.8.3 6bone 206

第八章 带外数据 208

8.1概述 208

8.2 TCP带外数据 208

8.2.1 TCP带外数据的发送和接收 208

8.2.2 TCP带外数据处理例子 210

8.2.3 TCP带外数据总结 213

8.3 sockatmark函数 214

8.4顾客服务器心博函数 215

第九章 原始套接口和数据链路访问 220

9.1概述 220

9.2原始套接口创建 220

9.3原始套接口输出 221

9.3.1原始套接口在IPv4和IPv6上的差异 222

9.3.2 IPV6_CHECKSUM套接口选项 222

9.4原始套接口输入 223

9.5 ping程序 225

9.6 ICMP消息守护进程 234

9.7数据链路访问 236

9.7.1 BPF:BSD分组过滤器 236

9.7.2 DLPI:数据链路提供者接口 238

9.7.3 Linux:SOCK PACKET 238

9.7.4 libpcap:分组捕获函数库 239

9.7.5小结 239

第十章 线程程序设计 240

10.1概述 240

10.1.1线程 240

10.1.2线程状态 242

10.1.3线程的运行 242

10.1.4线程的分类 243

10.2线程间的同步:互斥锁 246

10.3 Solaris的线程 247

10.3.1多线程体系结构 247

10.3.2进程结构 248

10.3.3线程的执行 249

10.4 Linux系统的进程和线程管理 250

10.4.1 Linux进程 250

10.4.2 Linux线程 251

10.5使用线程技术进行网络程序设计 251

10.5.1基本线程函数 251

10.5.2线程安全函数 253

10.5.3互斥锁与条件变量 254

10.5.4 TCP并发服务器程序,每个顾客一个线程 256

10.5.5 Web客户与同时连接 257

第十一章 RPC远程过程调用 262

11.1 XDR标准 262

11.1.1数据结构传输的问题 262

11.1.2 XDR标准 263

11.2远程过程调用(RPC)的原理 269

11.2.1分布式数据处理方法 269

11.2.2 RPC系统组成及特点 270

11.2.3实现RPC要解决的问题 272

11.3 RPC的实现 273

11.3.1本地函数调用的过程 273

11.3.2远程过程的标识 274

11.3.3端口的动态映射 275

11.3.4 RPC报文 276

11.3.5 RPC开发工具 277

11.3.6 RPC设计的原则 278

11.4 SUN RPC 279

11.5加密技术 282

11.5.1传统加密方法 283

11.5.2公开密钥加密方法 286

第十二章 流 291

12.1流(STREAMS)概述 291

12.1.1流 291

12.1.2流的基本操作 293

12.1.3 STREAMS的组成 294

12.1.4多路复用 297

12.1.5 STREAMS的优点 298

12.2 STREAMS机制 299

12.2.1 STREAMS系统调用 299

12.2.2流的构造 300

12.2.3添加与删除模块 301

12.2.4关闭流 302

12.2.5 STREAMS处理例程 302

12.3消息 303

12.3.1消息类型 304

12.3.2消息结构 305

12.3.3发送和接收消息 307

12.3.4流首处理的控制 309

12.3.5消息队列和消息优先级 310

12.4服务界面 317

12.4.1服务界面的优点 318

12.4.2服务界面库 318

附录A头文件 320

附录B英文缩写词汇 332

参考文献 338