太空中的网络协议:建造基于太空的ISP

Charles R. Martin & Ben Popper ,来源:Stack Overflow

 

     现在,将你的产品平台放入太空。

 

     这是SpaceX公司全球性的星链项目,它将提供全球范围内的高速度上网服务,尤其针对于那些难以到达的地区,这些地区的上网服务以前是很贵的或复杂的。

 

     Stack Overflow对话了星链软件的两位负责人 — Akash Badshah 和 Andy Bohn,关于他们的开发方法和实践。星链软件大致可分为两部分:1. 保证卫星飞行的软件。2. 用于支持飞行部件、管理网络、控制星链卫星星座 — 即在太空轨道中的星链卫星,并且同时要保持卫星星座与地球上的互联网间的相互通信。

 

     现在的星链卫星星座是由成百上千颗小型的、低轨道卫星组成,并且他们的数量还将增加。低轨道意味着低延时。如果是在地球36000公里的同步轨道上,那信号来回传输时间将达0.24秒。星链当前运行在约540多公里高度的轨道上,信号时延只是上述时间的百分之一级别。

 

    Bohn是网络软件团队的一名经理,他说:“我们有一系列的地面服务来指明,网络中的端到端对话。有趣的事情是,我们的卫星彼此离的很近。因此,一颗卫星可能只会从你头顶上经过几分钟。位于用户房顶的天线需要及时作出改变,它在与哪颗卫星通信。”

 

    “考虑移动电话与地面固定基站通信的情形,无需频繁切换基站,因为它们之间的连接是稳定的。” Bohn说道,“但对星链来说,其中一个主要挑战是,我们的’基站’是环绕地球运行的,所以与Internet的路由连接必须频繁变换。我的团队通过计算想要的网络拓扑来统筹规划这一过程,分发网络资源,并且配置硬件。”

 

     当然 ,星链卫星也有它们自己的问题。每颗卫星不仅要在可见范围内保持与地面站的连接,但不同于其它卫星,星链卫星还要在大范围内实现自我导航。当你发射成百上千颗卫星时,将不再有充足的时间将每颗卫星放入它自己的具体轨道中,取而代之的是,由地面来控制规划它在整个星座中的一个位置,然后卫星将自己引导过去。当每颗卫星在它计划的轨道中与地面保持更新时,地球上的网络会提供持续的交通数据和整个星座变化的信息。

 

     星链软件,包括卫星端和地面端的,几乎都是用C++写的,只有某些原型开发是用Python。软件是在一个持续的集成环境中开发的,团队会经常将代码合并到Master分支上,每周都会将新的软件版本部署到星链卫星上。

 

     “我们使用C++来开发大多数的航天器控制软件。作为一门低阶语言,在SpaceX中会有大量的继承性,我们用它来实现一些底层控制。C++用于我们的嵌入式Linux计算机,而我们所有不同航天器都会用到。” Badshah解释道,“我们从龙飞船和猎鹰火箭项目中学到了很多,如何分享数据和解决同一类问题。”

 

    新的的代码要通过一个扩展测试循环,使用很多不同的测试框架,从简单的单元测试到运行大量的模拟。其中的一些有趣的测试包括,卫星与地面分离时的所有事情,以及测试通信,还有在一个卫星操作的模拟环境中的测试平台。重点是,星链项目已经建立了一个近地太空空间的模拟环境。

 

     “为开发和测试这些算法,我们有一个全尺寸的模拟器,它运行在一个持续集成的高性能计算机集群上。模拟器能运行C++代码也能运行Python原型程序。” Bohn说道,“Python版本允许在设计阶段快速迭代。一旦我们对算法结果感到满意,就立即转而使用C++,这样在正式版本中会有更好的效率。”

 

     卫星使用的软件一准备好,就会打包传送给它们。首先会部署给轨道上的少量卫星,并且进行测试。如果发现了问题,那么将回退回来。如果与预期一致,那么就部署到剩余的其它卫星上。

  

    C++的另一个好处是它的内存管理机制。不管在卫星发射前检查多少次,可能都会遗漏一些bug。“我们已经建立起核心架构,在初始化的时候就会分配所有的内存。” Badshah说道 , “我们也有不同的工具,来让程序保持在内存中的一块特定区域内。它让我们知道程序是否与计算机进行了正确的资源分享。你不想发生的情况是,其中一台计算机遭受了辐射冲击,并且它与其它计算机没有在共享内存中同,那么它会轻轻地把自己释放了。”

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值