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