作品简介

ns-3是国际上一款主流的开源网络模拟器。伴随者互联网上新型协议的普及和5G网络的问世,ns-3正在逐渐展现它强大的生命力。

《开源网络模拟器ns-3-架构与实践》一书从架构和使用角度出发,结合作者多的实践,深入浅出地讲解了ns-3的开源生态圈、使用方法和设计模式,在此基础上自顶向下地系统阐述了从应用层到物理层的各种ns-3关键模型。作者希望通过本书的讲解,能够降低读者对ns-3的学习门槛,更加流畅地阅读并理解源代码。本书的目标读者为计算机网络专业的本科生、硕士和博士研究生,以及工作中使用ns-3进行模拟实验的工程师们。

本书的写作得到了ns-3社区的大力支持。ns-3项目创始人之一,华盛顿大学Tom Henderson教授亲自为本书作序。

周迪之,开源爱好者,软件工程师,2014年于加拿大UNB大学取得计算机科学博士学位,加拿大总督金质奖章获得者。设计实现了ns-3的LTE基站下行分组分发算法、延迟容忍网络Bundle协议、Wiselib开源传感器算法库ns-3转换层等重要组件,拥有丰富的ns-3开发经验。业余时间从事开源的传播推广,是“编程之夏”科技自媒体发起人(微信公众号:codesummer)。

作品目录

  • Preface
  • 前言
  • 第1篇 全局之观
  • 第1章 概述
  • 1.1 什么是ns-3
  • 1.2 Hello, world
  • 1.3 ns-3社区
  • 1.4 ns-3简史
  • 1.5 写作习惯
  • 第2章 通览
  • 2.1 下载、编译与运行
  • 2.2 源代码的目录结构
  • 2.3 再谈编译:“./waf configure”命令
  • 2.4 初识脚本
  • 2.5 再探脚本:常用技术解析
  • 2.6 网络是如何模拟的
  • 2.7 信息入口:结点类
  • 2.8 ns-3与编程之夏
  • 第2篇 设计之道
  • 第3章 对象模型架构
  • 第4章 Ptr智能指针
  • 4.1 设计原理
  • 4.2 使用实例
  • 4.3 适用范围
  • 第5章 对象模型的基石:元信息
  • 5.1 什么是元信息
  • 5.2 元信息存储:IidManager类
  • 5.3 元信息管理接口:TypeId类
  • 5.4 TypeId的使用
  • 第6章 Object类
  • 6.1 对象聚合
  • 6.2 Object的创建与获取
  • 第7章 ObjectBase类
  • 7.1 属性配置
  • 7.2 trace变量
  • 第3篇 模拟之路
  • 第8章 应用层
  • 8.1 架构与脚本
  • 8.2 内置应用:Application
  • 8.3 自定义应用层协议
  • 第9章 传输层
  • 9.1 架构与脚本
  • 9.2 TCP
  • 9.3 UDP
  • 9.4 传输层协议开发
  • 9.5 示例脚本
  • 9.6 非发行版的传输层协议
  • 第10章 网络层
  • 10.1 架构与脚本
  • 10.2 脚本配置与trace
  • 10.3 IP分组头结构
  • 10.4 IP地址分配
  • 10.5 路由协议
  • 10.6 网络层协议开发
  • 第11章 链路与物理层
  • 11.1 有线网络:PPP与CSMA
  • 11.2 无线局域网:Wi-Fi
  • 11.3 蜂窝网:LTE
  • 11.4 其他无线网络模块简介
  • 第12章 数据收集与统计
  • 12.1 一个例子
  • 12.2 数据收集
  • 12.3 数据统计
  • 12.4 局限
  • 第13章 与物理网络交互
  • 13.1 TapBridge:模拟网络+物理结点
  • 13.2 FdNetDevice:模拟结点+物理网络
  • 第14章 网络分组Packet类
  • 14.1 分组结构
  • 14.2 分组创建
  • 14.3 分组头与分组尾
  • 14.4 分段与重组
  • 14.5 标签:Tag类
  • 附录
  • 附录A 网络地址
  • 附录B 第三方ns-3项目
  • 参考文献
展开全部