本书是《VxWorks开发人员指南丛书》的网络程序员开发指南分册,根据Wind River公司的技术文档VxWorksNetworkProgrammer'sGuide翻译而成。
主要内容包括:VxWorks网络编程概论、VxWorks网络栈、数据链路层组件、网络栈配置、网络配置协议、动态路由协议、VxWorks下的套接字、远程访问应用、DNS和SNTP、添加网络接口驱动程序、添加网络服务等,从基本理论到各层协议的编程开发,详细讲述基于VxWorks操作系统网络应用程序的开发。
本书语言通畅、条理清晰、内容详细,主要针对从事以VxWorks操作系统为基础内核的嵌入式系统开发人员,作为了解VxWorks并且将其应用到项目中的指导手册。
第1章 概览
1.1 引言
1.2 章节概览
1.3 UML语言注解
1.4 推荐参考文献
第2章 VxWorks网络栈
2.1 引言
2.2 支持的协议和工具
2.3 设置与网络任务相关的任务优先级
第3章 数据链路层组件
3.1 引言
3.2 以太网驱动支持
3.2.1 BSD数据报过滤器(BPF)
3.2.2 附加的滤波器语法
3.3 共享内存的底板网络驱动
3.3.1 底板的共享内存区域
3.3.2 处理器间中断
3.3.3 顺序编址
3.3.4 共享内存网络的配置
3.4 用户接口
第4章 网络栈的配置
4.1 引言
4.2 配置设置摘要
4.3 创建时配置网络栈,
4.3.1 网络协议的可检测性
4.3.2 配置ARP.IP.TCP.UDP.IGMP和ICMP协议
4.3.3 网络存储池配置
4.3.4 测试网络连接
4.3.5 支持多个网络接口驱动程序
4.4 TCP/IP概述
4.5 配置IP到链路层的接口
4.5.1 绑定IP到MUX(链路层)
4.5.2 给接口分配IP地址和网络掩码
4.5.3 配置IP广播地址
4.6 VxWorks下的IGMP
4.6.1 包含IGMPv2
4.6.2 1GMPv2APIs
4.7 手动编辑路由表
4.8 透明子网的代理ARP
4.8.1 代理ARP协议概述
4.8.2 路由和代理ARP服务器
4.8.3 代理ARP和广播数据报
4.8.4 代理ARP配置
4.9 使用无编号接口
4.10 网络字节顺序
4.11 给IP地址配置主机名
第5章 网络配置协议
5.1 引言
5.2 BOOTP自举引导协议
5.3 DHCP动态主机配置协议
5.3.1 在镜像中包括DHCP组件
5.3.2 配置DHCP客户机
5.3.3 配置DHCP服务器
5.3.4 配置支持DHCP的中继代理
5.3.5 应用程序中的DHCP
5.4 DHCP.BOOTP以及网络初始化的引导参数
5.5 SNMP简单网络管理协议
第6章 动态路由协议
6.1 引言
6.2 路由信息协议RIP
6.2.1 VxWorksRIP协议调试函数
6.2.2 RIP协议配置
6.2.3 生成RIP不支持接口设备清单
第7章 VxWorks套接字
7.1 引言
7.2 BSD套接字
7.2.1 VxWorks规范的套接字的依存性
7.2.2 节数据报套接字(UDP)
7.2.3 流套接字(基于TCP)
7.3 ZBUF套接字
7.3.1 ZBUF套接字和保护域
7.3.2 ZBUF函数调用和发送数据缓存区数据
7.3.3 ZBUF套接字数据结构的操作
7.3.4 ZBUF套接字调用函数
第8章 远程访问应用
8.1 引言
8.2 RSH.FTP和netDrv
8.2.1 RSH
8.2.2 FTP
8.2.3 使用netDrv
8.3 NFS和nfsDrv
8.3.1 VxWorksNFS客户机
8.3.2 VxWorksNFS服务器
8.4 TFTP
8.4.1 主机TFFP服务器
8.4.2 VxWorksTFrP服务器
8.4.3 VxWorksTFrP客户机
8.5 RPC远程过程调用
8.6 rlogin
8.7 telnet
第9章 DNS和SNTP
9.1 引言
9.2 域名系统DNS
9.2.1 域名
9.2.2 VxWorks解析器
9.3 SNTP:一个简单的定时协议
9.3.1 SNTP客户机的使用
9.3.2 SNTP服务器的使用
第10章 添加新的网络接口驱动程序
10.1 引言
10.1.1 MUX和OSI网络模型
10.1.2 协议层与MUX的接口
10.1.3 数据链路层与MUX接口
10.1.4 END和NPT驱动程序的差异
10.1.5 管理网络驱动程序和网络服务的存储区
10.1.6 在驱动程序中支持发散/聚集(Scatter-Crather)方式数据传送
10.1.7 早期的NPT驱动程序中的连接层头文件分配
10.1.8 缓冲区地址对齐
10.2 END驱动程序实现
10.2.1 END操作
10.2.2 TheEND驱动程序和MUX接口
10.3 NPT驱动程序的实现
10.3.1 NFT操作
10.3.2 TheNPT驱动程序和MUX接口
10.4 移植BSD驱动程序到MUX
10.4.1 移除引用设备号
10.4.2 生成一个END对象来表示设备
10.4.3 实现标准的END或NPT程序进入配给函数
10.5 支持多网络接口的驱动程序
10.5.1 为多个驱动程序配置VxWorks
10.5.2 在运行时启动额外的驱动程序
10.6 避免内存泄漏
第11章 添加新的网络服务
11.1 引言
11.2 写网络服务子层
11.2.1 接口初始化
11.2.2 数据结构和资源
11.2.3 子层函数(sublayerRoutines)
11.3 与MUX对接
11.3.1 使用muxTkBind()注册的服务函数
11.3.2 使用muxBind()注册服务函数
11.4 在服务中添加套接字接口
11.4.1 实现一个套接字后端
11.4.2 在套接字后端中使能Zbuf支持
11.4.3 套接字函数的实现
附录A netBuflib的使用
附录B MUX/NPT函数以及数据结构
附录C 捆绑的PPP、SLIP和CSLIP协议
VxWorks是美国风河公司(Wind River System公司,即WRS公司)研制的一个高性能实时操作系统。WRS公司组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。
VxWorks是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。目前,VxWorks由于具有开放式结构并且支持工业标准,使开发者只需做最少的工作即可设计出有效的适合于不同用户要求的产品,因而越来越受到消费电子行业的青睐。
本文主要讲述了标准的VxWorks网络栈。VxWorks网络栈是VxWorks内部的一个与BSD 4.4兼容的实时TCP/IP堆栈,它从基于BSD 4.3的堆栈升级而来,增加了完全的路由支持以及Intemet的一些新特性,使得VxWorks的网络性能更加优越。
本书布局如下。第1章对全书的内容作了简要的介绍。第2章主要对VxWorks支持的协议和工具作了简单的介绍。第3章到第9章分别对各个网络单元进行了介绍。第3章讨论了对数据链路层配置的一般要求和网络驱动程序。第4章介绍了TCP/IP协议包,侧重强调了TCP/IP协议包的组成,例如TCP/IP协议本身,以及UDP(用户数据报协议)、ARP(地址解析协议)、IGMP(网际组播传输协议)和无编号接口的IP协议等的使用。第5章主要讨论了VxWorks中,DHCP、BOOTP以及SNMP协议的配置。第6章讨论了路由信息协议(RIP)。第7章讨论了VxWorks下的套接字工具。第8章讨论了对基于网络连接的资源的远程访问应用。第9章介绍了如何在VxWorks中配置及使用DNS(域名服务系统)和SNTP(简单网络定时协议)。第10章和第11章分别对VxWorks下如何利用MUX添加新的网络接口驱动程序和添加新的网络服务应用程序进行了介绍,并给出了相关的函数。
本书由王金刚、宫霄霖和熊辉编译,参加翻译工作的人员还有高伟、苏淇、丁大尉、姜平、杨锡劢等。由于VxWorks嵌入式系统在国内的应用还处于起始阶段,相关的书籍和材料有限,再加上时间仓促以及编译人员水平有限,不足之处在所难免,希望读者提出宝贵意见。