<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" docName="draft-zh-sn-emulation-arch-01" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.3 -->
  <!-- ***** FRONT MATTER ***** -->

    <front>
    <title abbrev="SN Emulation Architecture">An Emulation System Architecture for Space Network</title>
    <seriesInfo name="Internet-Draft" value="draft-zh-sn-emulation-arch-01"/>
    <author fullname="Kanglian Zhao" initials="K." surname="Zhao">
      <organization>Nanjing University</organization>
      <address>
        <postal>
          <street>No.163 Xianlin Avenue</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210023</code>
          <country>China</country>
        </postal>        
        <email>zhaokanglian@nju.edu.cn</email>  
      </address>
    </author>
    <author fullname="Hou Dongxu" initials="H." role="editor" surname="Dongxu">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street>No.50 Software Avenue</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>hou.dongxu@zte.com.cn</email>
      </address>
    </author>
    <author fullname="Xiao Min" initials="X." surname="Min">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street>No.50 Software Avenue</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>xiao.min2@zte.com.cn</email>
      </address>
    </author>
    <date month="Feb" year="2024"/>
    <area>Routing</area>
    <workgroup></workgroup>
    <keyword>Space Network</keyword>
    <keyword>Emulation Architecture</keyword>
    <keyword>Software-defined Networking</keyword>
    <abstract>
      <t>This document describes an emulation architecture which provides a realistic, flexible, and extensible 
        experimental environment for the space network (SN). The architecture includes four components, namely 
        logical plane, control plane, data plane and measurement plane. Software-defined networking (SDN), 
        virtualization technology, and traffic control mechanism are adopted to realize the real space environment 
        and arbitrary topology. Furthermore, an extensible structure is described to emulate large-scale scenarios 
        and access external emulation resources.</t>
    </abstract>
  </front>

  <middle>   
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>With the proliferation of low cost spatial information system, powerful on-board processing capacity, and 
        mature inter-satellite link technique, space network (SN) is emerging as an important part of national 
        infrastructure and research frontier. However, due to some unique characteristics of SN, e.g. long propagation 
        delay, frequent link disruption, and etc., mature terrestrial networking technologies cannot be applied to SN 
        directly. To tackle this problem, network researchers propose various new network protocols and technologies. 
        Meanwhile, the process of designing and developing network protocols and technologies is complex, in which 
        experiment phase plays an important role to decipher the performance and make helpful suggestions for improvement. 
        So it is urgent to setup an emulation architecture to carry out the research on basic theory and key technologies 
        for SN.</t>

      <t>Typical network experimental validation approaches include simulation, live testbed, and emulation. Discrete-event 
        network simulation has enough flexibility, e.g. ns-2 and OPNET. But the network simulation has no real network 
        traffic, and is hard to realize the real description of complex SN equipment and its environment through the 
        abstraction of various environmental parameters. Actual hardware based testbed has the highest emulation 
        authenticity, e.g. ORBIT, UMass DieselNet. However, for the high cost and poor extendibility of SN nodes, it is 
        difficult for the testbed to support the requirements of changeable SN emulation scenarios.</t>

      <t>Compared with network simulation and live testbed, network emulation is a hybrid approach which balances 
        authenticity and flexibility. But owing to the particularity of SN communication environment, existing emulation 
        methods are difficult to balance the authenticity, flexibility and extendibility of the emulation. This document 
        aims to present an SN emulation architecture which realizes the reliable emulation of dynamic network topology, 
        time-varying link characteristics, multiple protocol architectures, and large-scale network scenarios with the 
        goal of authenticity, flexibility and extendibility. This architecture consists of logical plane, control plane, 
        data plane, and measurement plane. The emulation architecture has a hierarchical star structure to support hardware 
        resource expansion and access external physical devices. Integrating with software defined networking (SDN) and 
        traffic control mechanism, the architecture supports the emulation of dynamic SN. Combining with virtualization 
        technology, various SN protocols and communication technologies could be implemented on the architecture flexibly 
        as real deployments. Considering changeable simulation scenarios and different network concerns, the flexible 
        configuration of network measurement on demand is realized.</t>
    </section>

    <section numbered="true" toc="default">
        <name>SN Emulation Architecture</name>
        <t>Figure 1 describes the SN emulation architecture which can be divided into four planes, namely logical plane, 
            control plane, data plane, and measurement plane. A particular network scenario is set at logical plane. 
            Corresponding settings are stored in database. Control plane reads these settings and procedures command to 
            drive emulation in data plane. Measurement plane is served to monitor network performances of simulation 
            scenarios.</t>

        <figure align="center" title="Figure 1: SN Emulation Architecture">
            <artwork type="ascii-art" xml:space="preserve">          
 ┌----------------------┐ ┌----------------┐ ┌---------------------------------------┐ ┌---------------┐
 |                      | |                | | ┌------------------------------┐      | |  Measurement  |
 | Logical Plane        | | Control Plane  | | | Server1                      |      | |    Plane      |
 |                      | |                | | | ┌-----------┐  ┌-----------┐ |      | | ┌-----------┐ |
 |                      === ┌------------┐ === | | Emulation |  | Emulation | |      === |Packet Loss| |
 |      S1          S2  | | |    Main    | | | | |   Node1   |  |   Node2   | |      | | └-----------┘ |
 |    ))*(( ----- ))*(( | | | Controller | | | | └----^--^---┘  └----^--^---┘ |      | |               |
 |      /           /   | | └------^-----┘ | | |      |  |           |  |     |      | | ┌-----------┐ |
 |     /           /    | |        |       | | | ┌----v--v-----------v--v---┐ |......| | |  Network  | |
 |    /           /     | | ┌------v-----┐ | | | |     Virtual Switch S1    | |      | | |   Delay   | |
 |   / S3        / S4   | | |  Database  | | | | └----^---------------------┘ |      | | └-----------┘ |
 | ))*(( ----- ))*((    === └------^-----┘ === |      |                       |      ===               |
 |   ^           v      | |        |       | | |    ┌-v--┐           ┌----┐   |      | | ┌-----------┐ |     
 |   ^           v      | | ┌------v-----┐ | | |    |eth1|           |eth0|   |      | | |Throughput | |
 |   ^           v      | | |   Web UI   | | | └----└--^-┘-----------└-^--┘---┘      | | └-----------┘ |
 |   ^           v      | | └------^-----┘ | |         |               |             | |               |
 | ┌------┐  ┌-------┐  | |        |       | |         |               |  ┌--------┐ | | ┌-----------┐ |
 | | End- |  |Ground |  | | ┌------v-----┐ | |   Data  |               +->| Switch | | | |Full Packet| |
 | | User |  |Station|  === |   Users    | ===   Plane |   ┌------------┐ └--------┘ === └-----------┘ | 
 | └------┘  └-------┘  | | └------------┘ | |         +-->| SDN Switch |--->......  | |    ......     |
 |                      | |                | |             └------------┘            | |               |
 └----------------------┘ └----------------┘ └---------------------------------------┘ └---------------┘
            </artwork>
        </figure>

        <section numbered="true" toc="default">
            <name>Logical Plane</name>
            <t>According to the specific network scenario, a network model could be built by logical plane which includes 
                space-based backbone transmission network, satellite links, space-based access network, ground stations, 
                terrestrial network, and end-users. The network model contains not only parameters of network nodes, but 
                also specific connection plan, channel parameters, software deployments, and network protocols.</t>
        </section>

        <section numbered="true" toc="default">
            <name>Control Plane</name>
            <t>Control plane consists of two parts: the front-end service and the back-end service. The front-end service 
                offers aWeb UI to interact with users. Users can configure various parameters of the network model and 
                visualize the network scenario through the Web UI. The back-end service is backed by the main controller 
                which is responsible for implementing commands and parameters from logical plane into data plane. The main 
                controller is a software and operates all elements in data plane. Users can configure and control the 
                environment parameters with different emulation scenarios, as well as monitor the traffic for each testing 
                through control plane. The emulation architecture is thus configurable and controllable.</t>
        </section>

        <section numbered="true" toc="default">
            <name>Data Plane</name>
            <t>Data plane is served to emulate network scenarios directly, which contains SDN switches, servers, emulation 
                nodes and etc. These underlying network resources are connected with each other in a hierarchical star network 
                structure. Emulation nodes are connected to the virtual switch on the server and represent SN nodes at logical 
                plane. Diverse software and applications are installed in the emulation node. Servers and external devices or 
                networks are linked to each other by the SDN hardware switch.</t>
        </section>
        
        <section numbered="true" toc="default">
            <name>Measurement Plane</name>
            <t>Measurement plane mainly has two functions, namely real-time network information collection and full packet 
                capture. The capture container is the basic unit of measurement plane. Each capture container covers a 
                Python-based Daemon which realizes network information collection and supports full packet capture according 
                to the configuration of users. Measurements are stored in database and real-time network information is 
                displayed by the Web UI.</t>
        </section>
    </section>   

    <section numbered="true" toc="default">
        <name>Physical Implementation Model</name>
        <t>Corresponding to the emulation architecture, a typically physical implementation model is presented which has four 
            principal parts: Web UI, main controller, emulation node and SDN switch.</t>

        <section numbered="true" toc="default">
            <name>Web UI</name>
            <t>Users interact with the emulation architecture through the Web UI. The Web UI stores network model parameters 
                configured by users into the database, and show network models in real time to make users observe the emulation 
                process intuitively.</t>
        </section>

        <section numbered="true" toc="default">
            <name>Main Controller</name>
            <t>The main controller interacts with the Web UI and is served for parameter calculation, SDN switch control and 
                node management. The calculation results are written to the database for subsequent emulation operations. The 
                parameter calculation refers to the process that the main controller reads the network model parameters, obtains 
                the relationships of visibility and link characteristics between nodes, filters the connection relationships, 
                and assigns the network configuration of emulation nodes. The SDN switch control refers to the process that the 
                main controller sends topology control flow tables to SDN switches in real time according to the target network 
                topology. The node management refers to the process that the main controller creates emulation nodes, binds nodes 
                with SDN switches, and allocates emulation resources. Besides, the main controller is also responsible for 
                generating the experimental start time and transmitting the operation state of the experiment to the Web UI.</t>
        </section>

        <section numbered="true" toc="default">
            <name>Emulation Node</name>
            <t>All emulation nodes run real network protocol stacks and applications to complete network traffic exchange. Due to 
                the advantages of flexible configuration, easy extension and convenient management, virtual nodes are generally 
                used to simulate the nodes in the target network. For some special needs or cases where emulation can not be 
                supported by pure virtual nodes, physical nodes are used, including embedded devices, satellite links, and etc.</t>
        </section>

        <section numbered="true" toc="default">
            <name>SDN Switch</name>
            <t>According to assigned network parameters, each emulation node is linked to corresponding SDN switch by the main 
                controller. SDN software switch is responsible for the connection of virtual nodes. Meanwhile SDN hardware switch 
                is in charge of the connection of physical nodes, and provides access to external networks or links for the emulation 
                architecture. SDN software switch and SDN hardware switch are connected with each other to form an interconnected 
                emulation network. Once the emulation experiment starts, the main controller sends real-time flow tables to each SDN 
                switch to simulate the dynamic topology of the target network model. SDN switches can also collect and send their 
                own states back to the Web UI for displaying, or save these states for subsequent analysis.
            </t>
        </section>
    </section>  

    <section numbered="true" toc="default">
        <name>Emulation Node Design</name>
        <t>Emulation node is actual carrier of network protocols and communication technologies which is the basic emulation element 
            of the emulation architecture.</t>

        <figure align="center" title="Figure 2: Emulation Node">
            <artwork type="ascii-art" xml:space="preserve">          
┌-----------------------------┐
│ Emulation Node              |
│ ┌-----------┐ ┌-----------┐ |
│ │ Emulation │ │  Capture  │ |
│ │ Container │ │ Container │ |
│ └----^--^---┘ └---^--^----┘ |
│      |  +---+  +--+  |      |
│    ┌-v---┐  +--+-┌---v-┐    |
│    │veth1│-----+ │veth2│    |
└-------^-------------^-------┘
        |             |
     ┌--v--┐       ┌--v--┐
     │port1│       │port2│
┌-----------------------------┐
│        Virtual Switch       │
└-----------------------------┘
            </artwork>
        </figure>

        <section numbered="true" toc="default">
            <name>Node Virtualization</name>
            <t>Virtualization is a resource management technology, which realizes the goal of virtualizing a physical computer system 
                into multiple virtual computer systems. Typical virtualization methods include virtual machine and container. This 
                document takes the container-based virtualization, such as Docker, as an example to illustrate the emulation node 
                design. Moreover, container orchestration, such as Kubernetes, could be employed to achieves functions that cannot be 
                supported by native container-based virtualization. A Pod, which is the basic arrangement unit, usually covers multiple 
                containers in Kubernetes. Containers in a Pod share some resources with each other, e.g. storage and network resources.</t>

            <t>Figure 2 describes an emulation node which is built by a Pod consists of an emulation container and a capture container. 
                Network protocols or technologies which need to be validated are deployed at the emulation container. The capture container 
                is responsible for real-time network measurement and full packets capture in simulation scenarios. Considering changeable 
                simulation scenarios and different networks, researchers need to set network measurement points as needed. Via binding 
                to each other in the form of Pod and sharing network resources, the capture container can measure and monitor all network 
                information of the emulation container. Thus, the flexible configuration of network measurement on demand is realized.</t>
        </section>

        <section numbered="true" toc="default">
            <name>Node Parameters</name>
            <t>Each emulation node has corresponding physical parameters which are used to describe real network nodes in simulation 
                scenarios. These parameters cover communication settings, location parameters, and service configurations. The web 
                front-end in the control plane provides interactive interfaces for researchers to set these parameters. Corresponding 
                settings are stored in a database.</t>

            <t>The communication settings reflect the communication characteristics of the network node, e.g. effective isotropic radiated 
                power (EIRP), G/T, modulation, communication frequency, and etc. According to the different placements of the network node 
                in SN, the location parameters should be discussed separately. For space-based nodes, the location parameters contain 
                eccentricity, period, inclination, right ascension of the ascending node, argument of perigee, and true anomaly. For 
                terrestrial-based node, the location parameters refer to longitude and latitude. Through communication settings and 
                location parameters, the calculation of connection relationships and link characteristics between nodes could be gained. 
                Service configurations are applied to initialize the function of the emulation node, involving protocols selection, data 
                transmission model, node types selection, and etc.</t>
        </section>

        <section numbered="true" toc="default">
            <name>>Multiple Network Protocols</name>
            <t>Based on different container images, various of emulation containers are created. Typically, these containers could be divided 
                into three types, namely DTN node, TCP/IP node and custom node. DTN node and TCP/IP 
                node correspond to DTN and TCP/IP network protocol architecture respectively. Furthermore, custom node provides an extension 
                method for new or modified protocol architectures in the proposed architecture. Network protocol implementation softwares, 
                e.g. ION-DTN, Quagga <xref target="Quagga" format="default"/>, and etc., and other applications would be deployed among 
                container images in advance to support different requirements of emulation.</t>
        </section>
    </section> 

    <section numbered="true" toc="default">
        <name>Dynamic Link Design</name>
        <t>The time-varying connection relationship and the dynamic link characteristic are the main features of SN. In order to analyze the 
            dynamic behaviors, a specific SN scenario is divided into multiple time slots. The network status is regarded as static and 
            represented by the initial state in each slot. The more time slots are divided, the more accurate of SN environment is emulated.</t>

        <section numbered="true" toc="default">
        <name>Implementation of Time-varying Connection Relationship</name>
            <t>The link types in SN can be classified into three categories, namely space-based link, ground-based link, and space-terrestrial 
                link. Due to the mobility of space platforms, the time-varying connection relationship is mainly reflected in space-based link 
                and space-terrestrial link. The mutual visibility between two space platforms or between a space platform and a ground-based 
                node determines whether there exist a corresponding link. Relied on the location parameters of emulation nodes, the main 
                controller calculates the actual position of nodes, and then achieves the mutual visibility between nodes at each time slot.</t>

            <figure align="center" title="Figure 3: Data Structure of Connection Relationship">
                <artwork type="ascii-art" xml:space="preserve">
+---------------------------------------------------------------+
| link_id | srcnode_port | dstnode_port | start_time | end_time |
+---------------------------------------------------------------+
                </artwork>
            </figure>

            <t>Connection relationships, which covers link_id, srcnode_port, dstnode_port, start_time and end_time, are stored in database. 
                Link_id is the link name. Srcnode_port and dstnode_port represent the connection port of source node and destination node 
                on virtual switches separately. The srcnode field in srcnode_port means the host name of emulation node. It is the same for 
                dstnode_port. Start_time and end_time represent beginning and ending times of a link connection respectively.
            </t>

            <t>Emulation nodes use virtual ethernet (veth) devices <xref target="veth" format="default"/> to access the virtual switch on the 
                server where it is located. Each veth represents an antenna or a communication channel in the network scenario. Veth devices 
                are created in pairs. One device in the pair is assigned to the emulation node as a network interface and the other is assigned 
                to the virtual programmable switch as a port. When either device is down, the link state of the pair is down. So, the variation 
                of connection relationships between pair-wise nodes equates to delete/add corresponding flow entries on virtual switches to 
                control the port up and down. But a port-based flow entry can only control the one-way link. Thus, two flow entries are needed 
                to control a link connection, which is two-way, on or off.</t>

            <t>The main controller later allocates corresponding network parameters for network interfaces at the emulation node, including 
                IP addresses, MAC addresses, interface name, and etc. The neighboring veths which are connected with each other in one hop 
                have the same subnetwork segment. Whenever corresponding forwarding rules between these veths are deployed, the links between 
                neighboring emulation nodes are working.</t>

            <figure align="center" title="Figure 4: Realization of Dynamic Link Connection">
                <artwork type="ascii-art" xml:space="preserve">          
Timer1: link is on
|=----------->|      Timer2: Link is off
|=------------------------->|             |\
+-----------------------------------------+ \
+-----------------------------------------+ /
            Entire Emulation Period       |/
                </artwork>
            </figure>

            <t>Upon the emulation starts, flow entities are issued by the main controller. As shown in Figure 4, each dynamic link corresponds 
                to a timer and two flow entities. At the start time of emulation, several timers are activated and the on/off time points of 
                each dynamic links are set in them. When timers expire, the link connection or disconnection functions are executed to deploy 
                corresponding connection or delete corresponding flow entities on virtual switches.</t>

            <figure align="center" title="Figure 5: Logical Topology in TS1">
                <artwork type="ascii-art" xml:space="preserve">          
┌-----------┐      ┌-----------┐
│ Emulation │------│ Emulation │
│   Node1   │      │   Node2   │
└-----------┘      └-----------┘
                           │
            ┌-----------┐  │
            │ Emulation │  │
            │   Node3   │--+
            └-----------┘
                </artwork>
            </figure>

            <figure align="center" title="Figure 6: Logical Topology in TS2">
                <artwork type="ascii-art" xml:space="preserve">          
┌-----------┐      ┌-----------┐
│ Emulation │------│ Emulation │
│   Node1   │      │   Node2   │
└-----------┘      └-----------┘
    │                  :
    │  ┌-----------┐   :
    │  │ Emulation │   :
    +--│   Node3   │"""
       └-----------┘
                </artwork>
            </figure>

            <figure align="center" title="Figure 7: Physical Topology in TS1">
                <artwork type="ascii-art" xml:space="preserve">          
┌-----------┐      ┌-----------┐
│ Emulation │      │ Emulation │
│   Node1   │      │   Node3   │
└---^---^---┘      └---^---^---┘
   1│   :2            5:   │6
    │   :              :   │
┌---v---v---┐      ┌---v---v---┐
│  Virtual  │======│  Virtual  │
│ Switch S1 │      │ Switch S2 │
└---^---^---┘      └-----------┘
   3│   │4
    │   │
┌---v---v---┐
│ Emulation │
│   Node2   │
└-----------┘
                </artwork>
            </figure>

            <figure align="center" title="Figure 8: Physical Topology in TS2">
                <artwork type="ascii-art" xml:space="preserve">          
┌-----------┐      ┌-----------┐
│ Emulation │      │ Emulation │
│   Node1   │      │   Node3   │
└---^---^---┘      └---^---^---┘
   1│   │2            5│   :6
    │   │              │   :
┌---v---v---┐      ┌---v---v---┐
│  Virtual  │======│  Virtual  │
│ Switch S1 │      │ Switch S2 │
└---^---^---┘      └-----------┘
   3│   :4
    │   :
┌---v---v---┐
│ Emulation │
│   Node2   │
└-----------┘
                </artwork>
            </figure>

            <t>Figure 5, Figure 6, Figure 7 and Figure 8 show the change of link connection in time slot TS1 and TS2. When Node3 disconnects 
                with Node2 and connects with Node1 directly, the main controller first deletes the bidirectional flow entries between S1-4 
                and S2-6 ports, and then adds the bidirectional forwarding rules between S1-2 and S2-5 ports in S1 and S2 separately. Because 
                the forwarding rule is a map between two physical ports in the programmable switch, we can emulate the connectivity of link 
                connections in the physical layer easily.</t>    
        </section>

        <section numbered="true" toc="default">
        <name>Implementation of Dynamic Link Characteristic</name>
            <t>In the emulation architecture, the SDN switch only offers the topology management and do not support the simulation of link 
                characteristics. So, another supplementary method is needed to fulfill this function.</t>

            <t>All emulation nodes has installed the Linux-based operation system in advance. The link characteristic configuration is done 
                via the Linux traffic control (TC) mechanism <xref target="tc" format="default"/>. NetEm is part of TC and supports the 
                emulation of network delay, packet loss ratio and etc. This mechanism also includes a Token Bucket Filter (TBF) for bandwidth 
                limitation.</t>

            <t>TC can classify different parts of data packet according to its characteristics and provide different traffic control mechanisms
                 for these packets. The queuing rule is one of the most important parts in TC which can be used to realize the classification 
                 function. Before packets are sent by network interfaces, they are added to different send queues according to the 
                 characteristics of packets. Then the kernel takes packets from these queues and delivers packets to network interfaces to 
                 complete the process of data transmission.</t>

            <t>The FIFO algorithm forms the basis for the default queuing disciplines (qdisc) on all Linux network interfaces. It transmits 
                packets as soon as it can receive and queue them. A real FIFO qdisc must have a size parameter to prevent it from overflowing 
                in case it is unable to dequeue packets as quickly as it receives them, i.e. when we have a requirement to emulate a high 
                bandwidth with a certain delay, we need to calculate the queue size to avoid discarding packets. The size of the queue is 
                defined by the parameter limit, and the unit of limit is the packet in TC. We consider the value of limit in the worst case. 
                The limit would be greater than the average delay t multiplied by the maximum packet rate. The maximum packet rate equals to 
                the maximum bandwidth B divided by the maximum transmission unit (MTU). MTU is the largest length of the frame. Its default 
                value is 1500 bytes and this value can be changed according to the need of experiments.</t>

            <t>limit>(B*t)/(8*MTU)</t>
        </section>
    </section>

    <section numbered="true" toc="default">
        <name>Network Topology Design</name>
        <t>The network topology of the emulation architecture can be divided into the lower physical network topology and the upper logical 
            network topology.</t>

        <section numbered="true" toc="default">
        <name>Lower Physical Network Topology</name>
            <t>The lower physical network topology is the basis of emulation system, which is constructed by the main controller, switches, 
                and servers. For each server in data plane, a virtual switch is implemented. Some network interfaces of the server are 
                attached to the virtual switch. To communicate with other servers, other ends of attached network interfaces are connected 
                to a high performance SDN hardware switch in the form of Virtual Extensible LAN. In this way, a distributed server cluster 
                is constructed in a star structure. The main controller is linked to virtual switches and SDN hardware switches, and it 
                controls them directly. When researchers create a specific network scenario in the logical plane, the main controller, 
                integrated with container orchestration, allocates resources and places emulation nodes at the server cluster. Emulation 
                nodes are linked to a virtual switch at each servers in a star network topology. Physical nodes and external emulation devices 
                can also be linked to the SDN hardware switch and managed by the main controller. From top to bottom, all the switches, 
                servers, and emulation nodes construct in a hierarchical star network structure. This network topology makes the platform 
                have high scalability. If computing resources need to be expanded, more virtual node servers can be simply accessed through 
                the SDN hardware switch.</t>
        </section>

        <section numbered="true" toc="default">
        <name>Upper Logical Network Topology</name>
            <t>The upper logical network topology keep consistent with the SN emulation scenario. With the scene information, including 
                time-varying connection relationships, dynamic link characteristics, emulation node parameters, and etc, the main controller 
                generates corresponding commands, such as flow entities. Then data plane is driven by these commands. In this way, the proposed 
                platform emulates a network scenario with arbitrary logical topology described in logical plane.</t>
        </section>
    </section> 

    <section numbered="true" toc="default">
        <name>Conclusions</name>
        <t>Through the above designs, the proposed emulation platform effectively provides a realistic, flexible, and extensible experimental 
            environment for SN.</t>

        <t>Virtual emulation nodes have the same functionality as physical hardware and can execute exactly the same code in a real deployment. 
            Meanwhile, the proposed emulation architecture supports the joint emulation method among virtual nodes, physical nodes, real 
            networks and real links, bringing credible emulation results.</t>
            
        <t>Integrating with SDN and traffic control mechanism, the networking can change automatically like that of a real space communication 
            environment (especially, time-varying link quality and dynamic link connection). And various network protocol architectures are 
            reconstructed by container images. These realize the reliable and flexible emulation of different SN scenarios.</t>

        <t>The platform architecture has extendibility including the horizontal extension of hardware resources and the access of external 
            physical emulation devices. The main controller offers a novel unified control for the connection relationships between emulation 
            nodes under different switches through flow tables. These features allow multiple nodes with huge individual differences to become 
            a part of the proposed platform and to be managed.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>TBA</t>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>TBA</t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="Quagga" target="https://en.wikipedia.org/wiki/Quagga">
            <front>
              <title>Quagga</title>
              <author/>
              <date/>
            </front>
        </reference>
        <reference anchor="tc" target="https://en.wikipedia.org/wiki/Tc_(Linux)#Queuing_Discipline">
            <front>
              <title>tc(Linux)</title>
              <author/>
              <date/>
            </front>
        </reference>
        <reference anchor="veth" target="https://developers.redhat.com/blog/2018/10/22/introduction-to-linux-interfaces-for-virtual-networking">
            <front>
              <title>Introduction to Linux interfaces for virtual networking</title>
              <author/>
              <date/>
            </front>
        </reference>      
        <reference anchor="I-D.ietf-tvr-use-cases" target="https://datatracker.ietf.org/doc/html/draft-ietf-tvr-use-cases-00" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-tvr-use-cases.xml">
          <front>
            <title>TVR (Time-Variant Routing) Use Cases</title>
            <author fullname="Edward J. Birrane" initials="E. J." surname="Birrane">
              <organization>JHU/APL</organization>
            </author>
            <author fullname="Nicolas Kuhn" initials="N." surname="Kuhn">
              <organization>Thales Alenia Space</organization>
            </author>
            <author fullname="Yingzhen Qu" initials="Y." surname="Qu">
              <organization>Futurewei Technologies</organization>
            </author>
            <date day="15" month="April" year="2023"/>
            <abstract>
              <t>Time-Variant Routing (TVR) refers to the calculation of a path or subpath through a network where the time of message transmission (or receipt) is part of the overall route computation. This means that, all things being equal, a TVR computation might produce different results depending on the time that the computation is performed without other detectable changes to the network topology or other cost functions associated with the route. This document introduces use cases where TVR computations could improve message exchange in a network.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tvr-use-cases-00"/>
        </reference>
        <reference anchor="I-D.hou-tvr-satellite-network-usecases" target="https://datatracker.ietf.org/doc/html/draft-hou-tvr-satellite-network-usecases-01" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.hou-tvr-satellite-network-usecases.xml">
          <front>
            <title>Satellite Network Routing Use Cases</title>
            <author fullname="Hou Dongxu" initials="H." surname="Dongxu">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Xiao Min" initials="X." surname="Min">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Fenlin Zhou" initials="F." surname="Zhou">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Dongyu Yuan" initials="D." surname="Yuan">
              <organization>ZTE Corporation</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>Time-Variant Routing (TVR) is chartered and proposed to solve the problem of time-based, scheduled changes, including the variations of links, adjacencies, cost, and traffic volumes in some cases. In a satellite network, the network is in continual motion which will cause detrimental consequences on the routing issue. However, each network node in a satellite network follows a predefined orbit around the Earth and represents an appropriate example of time-based scheduled mobility. Therefore, TVR can be implemented to improve the routing and forwarding process in satellite networks. This document mainly focuses on the use cases in this scenario.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hou-tvr-satellite-network-usecases-01"/>
        </reference>
        <reference anchor="StarLink" target="https://en.wikipedia.org/wiki/Starlink">
          <front>
            <title>Starlink</title>
            <author/>
            <date/>
          </front>
        </reference>
        <reference anchor="KUIPER" target="https://tinyurl.com/bs7syjnk">
          <front>
            <title>Amazon receives FCC approval for project Kuiper satellite constellation.</title>
            <author initials="" surname="">
              <organization/>
            </author>
          </front>
        </reference>
        <reference anchor="Large-Scale-LEO-Network-Routing" target="https://ojs.wiserpub.com/index.php/CNC/article/view/2105">
          <front>
            <title>Large Scale LEO Satellite Networks for the Future Internet: Challenges and Solutions to Addressing and Routing," Computer Networks and Communications, 1(1), 31-58</title>
            <author/>
            <date/>
          </front>
        </reference>                      
      </references>
    </references> 
 </back>
</rfc>