图书前言

前言

随着信息技术的飞速发展,网络已成为现代社会不可或缺的基础设施。无论是传统的互联网、移动通信网络,还是新兴的物联网、卫星互联网、车联网,其协议设计、性能评估和优化都离不开高效的网络仿真技术。NS3 (Network Simulator 3)作为一款功能强大、开源免费、持续演进的离散事件网络仿真器,因其高度模块化、可扩展的设计以及对真实网络协议栈的深度模拟能力,已成为学术界和工业界进行网络研究、协议开发、系统测试和教学实践的重要工具之一。

本书的写作目的是为读者提供一份系统、深入且注重实践的NS3指南。我们注意到,尽管NS3官方提供了详尽的手册和API文档,但对初学者而言,其学习曲线依然陡峭; 对于进阶使用者,如何将NS3应用于复杂的科研场景(如自定义协议、算法创新、虚实结合仿真)也常常面临资料匮乏的挑战。现有的一些中文资料多侧重于基础入门,对NS3的核心机制和高级特性的剖析不够深入。因此,我们编写了本书,希望本书能架起一座从“会用”到“精通”的桥梁,既夯实基础,又突显前沿应用。

本书的资料来源主要分为三部分: 一是NS3官方发布的源码(v3.34 LTS)、Doxygen API、Manual和Wiki页面,这是本书最核心、最可靠的技术基础; 二是国内外顶尖学术会议和期刊上发表的相关论文,它们为本书的高级案例提供了理论依据和实验思路; 三是笔者及所在技术团队在多年的科研与工程项目中,利用NS3进行技术攻关所积累的一手实践经验、技巧和代码,这些内容是本书最具特色的部分,经过了大量仿真实验的验证。

在内容编排上,本书遵循由浅入深、理论与实践相结合的原则。第1章、第2章帮助读者建立对NS3的整体认识,完成开发环境的搭建并与常用工具链集成。第3章深入剖析NS3的架构与编程模型,这是理解并能高效使用NS3的基石。第4章详解日志、跟踪、智能指针等常用关键技术。第5章则聚焦于Socket编程、流量分析、虚实结合等高级特性。第6~11章为综合案例,通过交换机网络、无线网络、混合网络、LTE车联网、卫星网络及半物理半虚拟网络仿真等一系列由简至繁的案例,系统演示如何利用NS3解决实际的科研和工程问题。其中,第7、8章特别围绕拥塞控制这一经典课题,展示了从算法对比、现象研究到自定义实现的完整流程。

本书的特点如下。

(1) 深度与广度兼备: 不仅讲解“如何做”,更深入源码层阐释“为何如此”,同时覆盖了从有线到无线、从地面到卫星、从纯虚拟到半物理的广泛场景。

(2) 极强的实践性: 书中包含了大量完整、可独立编译运行的示例代码(均通过NS3.34测试),读者可通过实践快速上手。

(3) 聚焦前沿领域: 详细介绍了卫星网络仿真、基于TapBridge的虚实结合仿真、与QT可视化技术集成等高级主题,这些都是当前研究的热点。

(4) 系统化的案例设计: 文中示例并非零散的功能演示,而是围绕具体研究目标设计的完整仿真项目,更具参考价值。

学习本书需要读者具备一定的C++编程基础,了解面向对象编程思想,并对计算机网络(TCP/IP协议栈)有基本的理解。若具备Linux操作系统使用经验则更有利于学习。我们建议初学者按章节顺序阅读,并务必动手实践每一个例子。对于有经验的读者,可以直接跳转到感兴趣的章节进行精读。无论以何种方式使用本书,都请结合NS3官方文档和源码进行学习,这将极大地促进您的理解。

本书由袁洋独立完成撰写。何流副教授负责全书的整体结构设计与学术规范把关并审校全稿。此外,特别感谢杨力教授担任学术顾问并审定终稿。

最后,我们衷心感谢NS3开源社区的所有开发者与贡献者,他们的卓越工作是一切的基础。感谢编辑团队的辛勤付出和宝贵建议。同时,也将本书献给所有致力于网络技术研究的同行者们,你们的探索精神是我们写作的最大动力。由于著作者水平有限,书中疏漏与不足之处在所难免,恳请各位读者和专家批评指正。

谨以此书,抛砖引玉。

袁洋、何流

于南京理工大学

2026年3月