根据自己的理解,梳理的一下SNS3功能代码架构,如有不妥或理解不一致的地方,欢迎交流探讨。
在sns3工程中,包括了若干UT(及UT下的User)、1个GEO、5个GW(及GW下的User)几个实体(node),各节点包含的主要部分及节点间连接方式如下图所示:
UT实体主要模拟UT行为,每个UT安装一个Classifer、Llc、Mac及Phy,实现与GW的通信;GEO主要模拟星上行为,实现对接收到信号(来自UT的信号及来自GW的信号)的放大、转发,主要包括的UserPhy、FeedPhy;GW相对来说较为复杂,模型以波束为单位,每个波束均安装一个Llc、Mac及Phy,从而实现按波束进行调度。进一步说,如上图,GW1包含4个波束,则GW1实体中有4个Llc、Mac及Phy,按波束进行关联。
UT与GEO、GEO与GW均通过无线信道进行通信,模型中抽象了Channel,关联到物理层,从而实现数据的收发。UT下的User通过CSMA channel与UT实现数据收发,一个UT与UT下所有的User共用一个channel,通过MAC地址进行区分User。在基站侧,由于基站间可能会发生切换,因此抽象一个Router实现路由,所有GW共用一个Router,GW与Router通过SatSimpleChannel、Router与User通过CSMA Channel进行数据收发,其中GW和GW下所有User共用一个Channel,通过MAC地址区分User。