网络编程与分层协议设计

网络编程与分层协议设计

刘飚, 编著

出版社:机械工业出版社

年代:2011

定价:29.0

书籍简介:

本书以Linux网络套接字编程和网络分层协议的设计与程序实现为主题,详细介绍如何在Linux平台下进行套接字程序设计,并着重以Linux网络协议栈中IP层的核心功能IP报文分段与重组为例,设计并实现一个基于分层协议的应用实例,用于模拟IP报文的分段和重组过程。本书旨在通过具有一定复杂度的应用,切实帮助读者掌握网络协议分层的设计思想和程序实现方法。此外,本书的许多程序示例直接使用了Linux的内核链表和散列链表,以及内核的其他数据结构和多线程等程序设计技巧,通过实际应用的形式有效地衔接了C语言、数据结构、操作系统、计算机网络和网络协议分析等课程的相关内容。

书籍目录:

前言

教学和阅读建议

第1章 TCP/IP网络编程基础1

1.1 网络和网络互联1

1.1.1 ISO/OSI网络模型和TCP/IP协议栈1

1.1.2 IP地址和端口2

1.2 客户端/服务器编程模型3

1.2.1 循环式服务器3

1.2.2 并发式服务器3

1.3 本章小结4

习题4

第2章 Linux下的C编程环境5

2.1 进程5

2.1.1 进程标识5

2.1.2 创建进程6

2.1.3 终止进程6

2.1.4 僵死进程7

2.1.5 子进程退出的异步善后处理7

2.2 线程8

2.2.1 线程标识9

2.2.2 创建线程9

2.2.3 终止线程10

2.2.4 线程同步11

2.3 信号14

2.3.1 信号的概念14

2.3.2 常用信号及其含义14

2.3.3 信号集和信号掩码15

2.3.4 信号处理16

2.3.5 可重入函数18

2.4 时间20

2.4.1 时间表示21

2.4.2 获得时间21

2.4.3 休眠时间22

2.4.4 间隔定时器23

2.5 文件24

2.6 本章小结26

习题26

第3章 网络编程中常用的典型知识28

3.1 结构体大小的计算28

3.2 数据存储与字节序29

3.3 常用数据结构30

3.3.1 Linux链表30

3.3.2 Linux散列链表33

3.4 函数指针34

3.5 校验和35

3.6 用户态下多定时器的实现37

3.7 本章小结47

习题48

第4章 基础套接字49

4.1 套接字基本概念49

4.1.1 创建套接字49

4.1.2 域和地址族50

4.1.3 套接字地址50

4.1.4 流式套接字和数据报套接字51

4.1.5 使用套接字51

4.1.6 套接字编程常用基本函数和数据类型55

4.1.7 客户端/服务器通信方式56

4.2 流式套接字客户端/服务器编程57

4.3 并发流式套接字服务器编程63

4.3.1 服务器主进程67

4.3.2 服务器子进程67

4.3.3 服务器子进程终止67

4.4 数据报套接字客户端/服务器编程67

4.5 本章小结73

习题73

第5章 高级套接字75

5.1 套接字选项75

5.1.1 getsockopt和setsockopt75

5.1.2 套接字通用选项示例76

5.2 I/O多路复用78

5.2.1 I/O多路复用模型79

5.2.2 select函数79

5.2.3 文件描述符集合的使用80

5.2.4 文件描述符的可读写状态82

5.2.5 最大文件描述符个数82

5.2.6 select函数的应用82

5.3 非阻塞I/O90

5.3.1 非阻塞I/O模型90

5.3.2 fcntl函数设置非阻塞模式91

5.3.3 非阻塞模式下的read和write92

5.3.4 非阻塞模式下的connect92

5.3.5 非阻塞模式下的accept93

5.4 信号驱动I/O94

5.4.1 信号驱动I/O模型94

5.4.2 设置套接字工作于信号驱动I/O模式94

5.4.3 信号驱动I/O示例95

5.5 事件I/O100

5.5.1 创建epoll上下文环境epoll_create101

5.5.2 epoll设置epoll_ctl101

5.5.3 等待事件发生epoll_wait103

5.5.4 epoll程序示例104

5.5.5 边沿触发ET和水平触发LT109

5.6 原始套接字110

5.6.1 创建原始套接字111

5.6.2 原始套接字数据发送111

5.6.3 原始套接字数据接收111

5.7 本章小结111

习题112

第6章 网络协议113

6.1 IP协议113

6.1.1 IP协议格式113

6.1.2 IP协议头的C语言定义114

6.1.3 IP报文分段115

6.1.4 IP报文分段重组116

6.2 ICMP协议118

6.2.1 ICMP消息类型118

6.2.2 ICMP消息通用格式118

6.2.3 ICMP查询请求和应答消息格式118

6.2.4 ICMP消息格式的C语言定义119

6.3 FTP协议119

6.3.1 FTP连接管理120

6.3.2 FTP通信过程121

6.3.3 FTP命令处理122

6.3.4 数据(文件)传输过程123

6.3.5 数据传输端口124

6.4 一个简单应用层协议示例125

6.5 分层协议示例-IP报文分段和重组模拟127

6.5.1 程序功能描述128

6.5.2 分层协议栈129

6.5.3 分层协议定义130

6.6 本章小结131

习题132

第7章 ICMP协议程序设计133

7.1 ping程序功能模块133

7.2 回应请求和应答实例分析133

7.3 ping程序实现134

7.4 ping程序的编译和测试140

7.5 本章小结140

习题140

第8章 FTP协议程序设计141

8.1 FTP交互命令实例分析141

8.2 FTP客户端程序功能模块143

8.3 FTP客户端程序实现144

8.4 FTP客户端程序的编译和测试168

8.5 本章小结169

习题169

第9章 IP报文分段和重组模拟程序设计170

9.1 主机工作流程170

9.2 转发服务器工作流程171

9.3 消息分段172

9.4 主机程序功能模块172

9.5 转发服务器程序功能模块175

9.6 消息分段的错序和丢失模拟176

9.7 关键数据结构177

9.8 主机程序实现180

9.9 转发服务器程序实现220

9.10 IP报文分段和重组模拟程序的编译和运行240

9.11 本章小结243

习题243

附录A C/C++源文件编辑244

附录B C/C++源文件编译247

附录C C/C++源文件调试250

参考文献253

内容摘要:

《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》以Linux网络套接字编程和网络分层协议的设计与程序实现为主题,详细介绍如何在Linux平台下进行套接字程序设计,并给出了一个基于分层协议的应用实例,用于模拟Linux网络协议栈中IP层的核心功能—IP报文的分段和重组过程。《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》旨在通过具有一定复杂度的应用,切实帮助读者掌握网络协议分层的设计思想和程序实现方法。此外,《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》的许多程序示例直接使用了Linux的内核链表和散列链表,以及内核的其他数据结构和多线程等程序设计技巧,通过实际应用的形式有效地衔接了C语言、数据结构、操作系统、计算机网络和网络协议分析等课程的相关内容。
《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》可作为高等院校计算机、网络工程、通信工程等专业本科生与研究生“网络程序设计”课程的教材,也可作为相关领域工程技术人员的参考用书。

编辑推荐:

《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》以Linux为平台,循序渐进地介绍了Linux网络套接字编程的基本原理和使用方法,并着重突出了网络分层协议的设计和程序实现。全书通过多个示例展示了Linux内核通用数据结构的使用,充分体现了数据结构+算法的程序设计思想,帮助读者切实掌握常用数据结构及其应用场景,从而快速提高网络软件的设计水平。程序示例丰富,具有一定复杂度。《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》提供了大量的程序示例,对Linux网络套接字编程的基本概念和协议分层的设计实现进行了详细说明。这些示例的设计和选择都经过精心安排,其中较为基础的程序示例除了演示基本的功能外,还反复作为后续较复杂程序示例的基本功能组件。从而形成了程序示例的有机搭配,既可帮助读者了解网络编程和分层协议设计的基本知识,又能让读者通过这些实际示例反复运用所学知识,达到熟能生巧和融会贯通。广泛使用优秀开源代码。《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》的程序示例大量直接或间接应用了优秀的开源软件,例如Linux内核的通用链表和散列链表在多个程序示例中作为基础组件而广泛使用。此外,《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》还参考并模拟了Linux网络内核源码中IP报文分段和重组的核心处理过程。通过学习优秀开源软件的设计实现,并且在正确的场合使用各类优秀开源软件,是快速提高网络编程能力的一条捷径。内容紧凑,中心突出。《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》围绕网络分层协议设计和实现这个中心进行讲解,所介绍的基础知识都是为掌握后续较复杂的示例而进行的必要铺垫,基本上做到了使读者在不参考其他书籍的情况下就能顺利掌握《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》的核心内容。读者对象广泛。《高等院校计算机教材系列·网络编程与分层协议设计:基于Linux平台实现》既可以单独作为网络编程的入门教材。也可以作为网络协议分析等相关课程的辅助实践教材。

书籍规格:

书籍详细信息
书名网络编程与分层协议设计站内查询相似图书
9787111350521
如需购买下载《网络编程与分层协议设计》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位机械工业出版社
版次1版印次1
定价(元)29.0语种简体中文
尺寸26 × 19装帧平装
页数 268 印数 4000

书籍信息归属:

网络编程与分层协议设计是机械工业出版社于2011.8出版的中图分类号为 TP316.89 的主题关于 Linux操作系统-高等学校-教材 ,程序设计-高等学校-教材 的书籍。