情怀不能当饭吃,但是,光吃饭而没有情怀是不行的 所以,继续→ ·星棋智网·多轨道壳卫星互联网中的太空路由器节点IPv6子网及地址规划(代码实现版的粗略算法)

本文主要是介绍情怀不能当饭吃,但是,光吃饭而没有情怀是不行的 所以,继续→ ·星棋智网·多轨道壳卫星互联网中的太空路由器节点IPv6子网及地址规划(代码实现版的粗略算法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IPv6地址共128位,形如 2xxx::/64的64位前缀的IPv6全球单播地址中,我们来考察这前面的一半,也就是64位的前缀部分:

前面我们假定星棋智网卫星互联网的全球公网为2426进行标识,所以,64位的网络前缀中,还剩下【3段 * 16位】地址,形如 2426:XXXX:XXXX:XXXX

现在我们的考察场景是多轨道壳卫星互联网,我们把每颗卫星看成是IPv6的太空路由器网络节点,不妨把每颗太空路由器节点抽象为 (k, p, n),位于中间轨道壳的卫星,采取“米字形”星间链路分别与 上方[Above], 下方[Below], 前方[Up], 后方[Down], 右方[Right], 左方[Left] 的6颗卫星建立激光星间链路。

又由于每条链路都需要 源端←→目的端 2卫星节点,所以中间轨道壳的卫星,在建链时,其实只需按照某种规则,比如建立 上方[Above], 前方[Up], 右方[Right] 3条激光星间链路,每条激光星间链路是一个IPv6子网

现在考虑星棋智网卫星互联网的规模大小,假定其与马斯克的星链不差上下,给它定10万颗的数量级,那么【轨道壳总数K;轨道面总数P;面内卫星数N】如何确定,对应的IPv6子网地址如何确定?

不急,不急,且听俺的思路慢慢道来…

现在我们回过头来考察IPv4点分十进制xx.xx.xx.xx的“8 bit局限性”,这里的每段‘xx’是8个比特,而2的8次方,等于256,为谨慎起见,减去全0、全1的两种情况,还有254个值可以用。

如果我们把这254分别设置为[轨道面总数P]和[面内卫星数N],此时的单轨道壳卫星总数就达到 254*254=6.4516万颗卫星,如果我们再假设给星棋智网发4层轨道壳上去,那么星棋智网卫星互联网的卫星规模可以达到20万颗。

嘿!想啥呢,别做梦!给我说说 IPv6子网如何规划,如何规划才能方便理解和应用实现?

好的!我们刚才强调了254这个值,它用十六进制表示只占用2个字符,即XX。我们IPv6的64位的子网前缀中,有【3段 * 16位】地址,形如 2426:XXXX:XXXX:XXXX

一个非常简单的想法应运而生,我们不妨把2426:XXXX:XXXX:XXXX写成2426:SSDD:SSDD:SSDD的形式,其中,S代表Source,星间链路的‘源端’,D代表Destination,星间链路的‘目的端’。

我们发现,是 3[SSDD]构成了[SSDD:SSDD:SSDD],而我们的卫星互联网规模恰好是由【轨道壳总数K;轨道面总数P;面内卫星数N】来确定的,假定某条星间链路的‘源端卫星’和‘目的端卫星’分别是:

源端卫星:   ( k下标S,  p下标S,  n下标S )

目的端卫星: ( k下标D,  p下标D,  n下标D )

并且,每个(k, p, n)中的k, p, n都是254以内的十六进制的2个字符,不妨简写为ks, kd, ps,pd,ns,nd 。

那么,连接某条星间链路的‘源端卫星’和‘目的端卫星’的IPv6子网的前缀就是:

2426: kSkD:pSpD:nSnD

比如,源端卫星(轨道壳2, 轨道面1,面内索引1)的

上方[Above] 卫星(轨道壳3,轨道面2,面内索引6

前方[Up]    卫星(轨道壳2, 轨道面1,面内索引2

右方[Right]  卫星(轨道壳2, 轨道面2,面内索引1)   

则,3条星间链路的IPv6子网分别为:

上方[Above] 链路IPv6子网前缀为 2426:0203:0102:0106

前方[Up]    链路IPv6子网前缀为 2426:0202:0101:0102

右方[Right]  链路IPv6子网前缀为 2426:0202:0102:0101

同理,‘源端卫星’和‘目的端卫星’的IPv6子网2426: kSkD:pSpD:nSnD上的‘源端卫星’和‘目的端卫星’的IP地址,还是可以用ks, kd, ps,pd,ns,nd来进行标识,不妨作为 128位IPv6地址中的后64位中的后24位,即:

源端卫星’IPv6地址:2426: kSkD:pSpD:nSnD : 0000:00kS :pSnS

目的端卫星’IPv6地址:2426: kSkD:pSpD:nSnD : 0000:00kD:pDnD

这样做的一个好处是,能够满足后续星棋智网中的任意两颗卫星进行激光建链

综上,某卫星(ks, ps, ns)的3条星间链路的IPv6子网、源/目的IP地址分别为:

上方[Above] 链路IPv6子网为 2426:kskd:pspd:nsnd /64

         源IPv6:2426:kskd:pspd:nsnd :: ks :psns

       目的IPv6:2426:kskd:pspd:nsnd :: kd:pdnd

前方[Up]     链路IPv6子网为 2426:ksks :psps:ns(ns+1) /64

         源IPv6:2426:ksks:psps:ns(ns+1) :: ks:psns

       目的IPv6:2426:ksks:psps:ns(ns+1) :: ks:ps(ns+1)

右方[Right]  链路IPv6子网为 2426:ksks:ps(ps+1):nsns /64

         源IPv6:2426:ksks:ps(ps+1):nsns :: ks:psns

       目的IPv6:2426:ksks:ps(ps+1):nsns :: ks:(ps+1) ns

最后,一图概览如下:

 

这篇关于情怀不能当饭吃,但是,光吃饭而没有情怀是不行的 所以,继续→ ·星棋智网·多轨道壳卫星互联网中的太空路由器节点IPv6子网及地址规划(代码实现版的粗略算法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112023

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到