因功能要求,需要在Exata上移植一个网络层协议,并且验证路由表的正确性,实现卫星之间数据包可达。

介绍

Exata是一款网络仿真软件,主要用于仿真卫星通信网络。它由美国北卡罗来纳州立大学计算机科学系的研究人员开发,旨在模拟和评估卫星通信网络在各种条件下的性能。

Exata软件能够模拟各种卫星通信网络,包括地球轨道卫星网络、地面站网络、航空器网络和海洋平台网络。它支持不同的网络拓扑结构和协议,并能够模拟各种不同的信道和干扰条件。

使用Exata进行卫星通信仿真,可以评估网络性能和带宽利用率、确定网络拓扑结构和协议、预测网络覆盖范围和可靠性、分析网络容量和负载平衡等。Exata还可以通过可视化工具实时显示仿真结果,帮助用户更直观地理解和分析网络性能。

网络层设计

一般来说,路由器的三层指的是物理层、数据链路层和网络层。物理层主要负责物理传输介质的传输;数据链路层负责将数据封装成帧并进行错误检测和纠正;而网络层则负责网络之间的路由选择和地址转换。

在卫星组网中,每颗卫星既是接受服务的主机,同时也是路由器。

具体的网络层内部模块如下:

按照功能分类,可以划分为以下几个部分:

  • 初始化模块:初始化各种参数,包括路由表、路由表项存活时间、路由表周期广播时间、路由表触发广播时间等。另外还有函数对数据包的发送功率、延迟、优先级等参数进行初始化,我在项目中暂时没有用到。
  • 上行模块(本项目协议栈丢弃了传输层,网络层直接对接应用层):网络层接收数据包给应用层、应用层发送数据包给网络层。这一步中,IP协议会为上行数据包解析IP包头,为下行数据包添加IP包头。
  • 路由功能模块:接收数据链路层的上行包,以及应用层的下行包,查找路由表确定下一跳发送的卫星节点。
  • 路由表更新模块:包括定时更新和触发更新。定时更新通过设置定时器实现,周期性地广播当前卫星的所有路由表信息。当卫星收到了一个路由包,就会解析并且更新自己的路由表,如果发现某一项路由表项失效,就会调用触发更新广播自身的路由表。另外,路由表项的生存时间由定时器控制,当路由表项超时后,也会调用触发更新。
  • 下行模块:网络层发送数据包给数据链路层,数据链路层发送数据包给网络层。这一步中,数据链路层会为上行数据包解析mac包头,IP协议会为下行数据包添加IP包头。

查询路由表

该项目中,路由表使用双向链表存储表项。路由功能模块向路由表查询后,得到如下的结构体指针。

参数项 类型 说明
srcID unsigned short 本节点ID
destID unsigned short 目标节点ID
nextID unsigned short 下一跳节点ID
metric unsigned char 跳数
routeState ROUTE_STATE 该路由表项是否有效
serialNumber unsigned int 序列号
aliveTimeout unsigned int 路由表项生存时间
triggerFlag bool 是否需要触发更新
quality unsigned short 质量(未使用)
prior ROUTE_ENTRY_TYPE* 前一项路由表项
next ROUTE_ENTRY_TYPE* 后一项路由表项

下图是一个6节点卫星拓扑:

运行仿真,打印出节点1的具体路由表。可以发现,节点1到节点6、4、2、5都是一跳可达,而到节点3需要两跳,经过节点2转发。

目的节点 下一跳 总跳数 路由表项是否有效 序列号 表项存活时间 质量
1 1 0 1 28 60000 0
6 6 1 1 26 57000 0
4 4 1 1 28 60000 0
2 2 1 1 28 59000 0
3 2 2 1 24 56000 0
5 5 1 1 28 59000 0

实验

通过实验,验证了移植的网络层协议能够正常工作,卫星之间最多两跳满足互相连通。

Exata卫星通信仿真相关推荐

  1. 指数衰减函数c语言,使用Matlab实现对Ka波段卫星通信衰减 信道的性能仿真

    使用Matlab实现对Ka波段卫星通信衰减信道的性能仿真 日期:2005年10月29日人气:0 查看:[大字体中字体小字体] (空军工程大学电讯工程学院陕西西安710077)摘要:介绍了利用Matla ...

  2. ka matlab信道,使用Matlab实现对Ka波段卫星通信衰减信道的性能仿真

    使用Matlab实现对Ka波段卫星通信衰减信道的性能仿真 使用Matlab实现对Ka波段卫星通信衰减 信道的性能仿真 日期:2005年10月29日 人气:0 查看:[大字体 中字体 小字体] (空军工 ...

  3. OQPSK:Offset Quadrature Phase Shift Keying偏移正交相移键控的MATLAB仿真/FPGA实现

    偏移正交相移键控(OQPSK:Offset Quadrature Phase Shift Keying)调制技术广泛应用于卫星通信和移动通信领域,具有频谱利用率高.频谱特性好等特点.设计并实现了基于F ...

  4. simulink m序列仿真(待验证)

    文章目录 原理 仿真框图 仿真结果 仿真分析 总结与体会 原理 m序列是最长线性反馈移位寄存器序列的简称.它是由带线性反馈的移存器产生的周期最长的序列.一种典型的伪随机序列.在通信领域有着广泛的应用, ...

  5. 扩频技术matlab仿真,基于Simulink的扩频通信仿真

    李姝仪  00101114  1404358975@qq.com 摘要:介绍了直接序列扩频通信的理论基础和模型,并通过MATLAB提供的Simulink 仿真平台对直扩通信系统进行了仿真,在不同的条件 ...

  6. 混频通信的matlab仿真,基于MATLAB的扩频通信系统仿真研究—上海交通大学

    基于MATLAB 的扩频通信系统仿真研究 范伟 翟传润 战兴群 (上海交通大学电子信息与电气工程学院,200030,上海) 摘要 本文阐述了扩展频谱通信技术的理论基础和实现方法,利用MATLAB 提供 ...

  7. gps卫星位置计算程序matlab_科研项目 | BD/ GPS卫星导航仿真测试系统研究

    一.项目背景 在移动互联和互联网+的时代,卫星导航定位已经成为生活中不可或缺的部分.目前,我国的交通.银行.电力.采矿.测绘等部门以及大众化市场都需要大量的定位.授时服务.许多企业也形成了覆盖卫星导航 ...

  8. 【GNURadio实验报告】实验2-使用GNURadio仿真OOK信号

    [GNURadio实验报告]实验2-使用GNURadio模拟简易的OOK/ASK信号 一.OOK是什么? (一)简介 (二)信号产生 (三)数学公式 二.流图设计-发送端 (一)信号源为Vector ...

  9. 基于matlab的雷达和通信系统,基于MATLAB的多功能通信信号源仿真

    第 29 卷 第 3 期 2006 年 9 月 电 子 器 件 Chinese Journal of Electron Devices Vol. 29 No. 3 Sep. 2006 Simulati ...

最新文章

  1. 34岁,外企倒闭成功上岸大厂,50K,附面试秘籍
  2. Spring Cloud【Finchley】-12使用Hystrix Dashboard实现Hystrix数据的可视化监控
  3. ABAP:向自建表写入数据时,需要注意的问题
  4. java+mysql性能优化_Java培训实战教程之mysql优化
  5. 【视频】视频基本参数介绍
  6. 软件测试工程师-数据库
  7. java 不兼容类型_java – 不兼容的类型和新鲜的类型变量
  8. Zookeeper启动zkServer.cmd闪退, zk服务启动跟报错:Unexpected exception, exiting abnormally java.net.BindException
  9. 仿真技术为“工业 4.0”插上想象的翅膀
  10. vue入门:(class与style绑定)
  11. Android多线程基础知识详解(傻瓜教程)
  12. 通讯(transport)
  13. 平面标定(Homography变换)
  14. 【渝粤教育】广东开放大学 中国文化与中国文学 形成性考核 (46)
  15. 【数据挖掘概念与技术】学习笔记5-数据立方体技术
  16. SpringMVC中文件的上传和下载
  17. 操作系统精选习题——第二章
  18. 无效回表谁的锅?存储引擎:这事儿不赖我
  19. Verilog VHDL三种建模描述方式——2选1数据选择器
  20. ie的java弹窗点不动_IE浏览器 点一些网页上的按钮没反应是为什么?

热门文章

  1. ESP8266固件下载及烧录(收录AT固件下载地址+固件烧录注意事项)
  2. 如何提高系统稳定性?
  3. Android电视清理系统应用,智能电视删除自带软件,这个方法最简单!
  4. 计算机启动一直进pe,win7装完系统后开机自动进入pe界面怎么办
  5. 【使用 arm-poky-linux-gnueabi-gcc -v 指令可以查看 gcc 版本时报错】
  6. 上周丢钥匙事件的反思感悟
  7. python数据分析的钥匙——pandas库
  8. FPGA实现AD采集
  9. java 手动垃圾回收_java如何进行垃圾回收的
  10. seo图片优化-详解alt标签的使用方法