A routing method and device, a routing device and a storage medium
By encoding satellites and using their layer number, orbit number, and satellite number to reflect their relative positions, the next-hop satellite can be selected, solving the problems of complex path calculation and high computational overhead in low-Earth orbit satellite networks, and achieving efficient and stable routing selection.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-19
- Publication Date
- 2026-03-17
AI Technical Summary
Existing routing protocols face challenges in low-Earth orbit satellite networks, including complex path calculations, high computational overhead, and low network stability and efficiency, especially when satellite nodes move frequently and resources are limited.
By encoding satellites and using their layer number, orbit number, and satellite number to reflect their relative positions, and combining the encoding of neighboring satellites to select the next-hop satellite, the complexity of path selection is reduced and link status updates are optimized, thus reducing reliance on global topology information.
It enables efficient and accurate routing in low-Earth orbit satellite networks, reduces computational overhead and topology update complexity, and improves network recovery speed and stability.
Smart Images

Figure CN119652399B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a routing method, apparatus, routing device, and storage medium. Background Technology
[0002] With the development of Low Earth Orbit (LEO) satellite networks, building an integrated space-ground network has become a key technological direction. This network architecture is based on a dual-plane design, using a terrestrial network as its foundation and expanding through satellite networks to achieve global user access and interconnection. As a crucial component of global communication, the integrated space-ground network requires efficient interaction of routing protocols and dynamic adaptability.
[0003] Routing protocols are well-established in terrestrial networks, effectively managing relatively static network topologies. However, in satellite networks (especially low-Earth orbit satellite networks), the frequent movement of satellite nodes and resource constraints pose significant challenges to direct interaction between traditional terrestrial protocols.
[0004] Among related technologies, Multi-Protocol Label Switching (MPLS) technology has been proposed, which simplifies routing and forwarding decisions in satellite networks, thereby improving network throughput.
[0005] However, the above methods still have problems such as complex path calculations and high computational costs. Summary of the Invention
[0006] This application provides a routing method, apparatus, device, and storage medium for efficient satellite network routing.
[0007] In a first aspect, embodiments of this application provide a first routing method, which includes:
[0008] Based on the satellite code of the first satellite and the satellite code of the target satellite, it is determined whether the first satellite is the target satellite; wherein, the satellite code includes part or all of the satellite's layer number, orbit number, and satellite number;
[0009] If the first satellite is not the target satellite, then the next-hop satellite is selected from the neighboring satellites based on the satellite code of the first satellite, the satellite code of the target satellite, and the satellite codes of each neighboring satellite.
[0010] The above scheme encodes satellites, and the resulting satellite codes reflect the relative positions of the satellites. During the routing process, since the satellite code of the first satellite reflects the relative position of the current node, the satellite code of the target satellite reflects the relative position of the target node, and the satellite codes of each neighboring satellite reflect the relative positions of the neighboring nodes, combining these three pieces of information can accurately and efficiently determine the next hop path of the first satellite, thereby determining its next hop satellite. The complexity of searching and updating is low, reducing computational overhead.
[0011] In some optional implementations, the satellite code includes the satellite's layer number, orbit number, and satellite number; selecting the next-hop satellite from the neighboring satellites based on the satellite code of the first satellite, the satellite code of the target satellite, and the satellite codes of each neighboring satellite includes:
[0012] If the layer number of the first satellite is different from that of the target satellite, then the second satellite among the neighboring satellites is selected as the next-hop satellite; wherein the layer number of the second satellite is closer to that of the target satellite than that of the first satellite; or,
[0013] If the first satellite and the target satellite have the same layer number, but different orbit numbers, then the third satellite among the neighboring satellites is designated as the next-hop satellite; wherein the orbit number of the third satellite is closer to the orbit number of the target satellite than that of the first satellite; or,
[0014] If the first satellite and the target satellite have the same layer number and the same orbit number, then the fourth satellite among the neighboring satellites is designated as the next-hop satellite; wherein the fourth satellite is the target satellite, or the fourth satellite's satellite number is closer to the target satellite's satellite number than the first satellite's satellite number.
[0015] In some alternative implementations, after selecting the next-hop satellite from the neighboring satellites, the method further includes:
[0016] If the link between the first satellite and the next-hop satellite is available, the target data is sent to the next-hop satellite.
[0017] In some alternative implementations, sending the target data to the next-hop satellite includes:
[0018] Determine the communication cost information between the first satellite and the next-hop satellite;
[0019] If the communication cost information is less than the communication cost limit corresponding to the current service, then the target data will be sent to the next-hop satellite.
[0020] Some optional implementations also include:
[0021] If the link is unavailable, and / or the communication cost information is greater than or equal to the communication cost limit, then a next-hop satellite is reselected from the other neighboring satellites of the first satellite.
[0022] In some alternative implementations, the satellite codes of each neighboring satellite are determined in the following ways:
[0023] Based on the port mapping relationship corresponding to the first satellite, the satellite codes of neighboring satellites corresponding to each port of the first satellite are determined; wherein, the port mapping relationship includes the mapping between each port of the first satellite and the satellite codes of neighboring satellites.
[0024] In some alternative implementations, the satellite codes of each neighboring satellite are determined in the following ways:
[0025] Based on the addresses of each port of the first satellite, the satellite codes of the neighboring satellites corresponding to each port of the first satellite are determined; wherein, the address of each port contains some or all of the information in the satellite codes of the corresponding neighboring satellites.
[0026] In some optional implementations, the port address includes the satellite code of the first satellite, the satellite code of the corresponding neighboring satellite, and the target routing direction; the target routing direction is the direction of the first satellite relative to the neighboring satellite, or the direction of the neighboring satellite relative to the first satellite.
[0027] In some alternative implementations, the satellite code of the target satellite is determined in the following ways:
[0028] The target data is parsed to determine the satellite code of the target satellite.
[0029] In some optional implementations, before determining whether the first satellite is the target satellite based on the satellite code of the first satellite and the satellite code of the target satellite, the method further includes:
[0030] It was determined that there was no target routing information between the target satellite and the target satellite.
[0031] After sending the target data to the next-hop satellite, the process also includes:
[0032] Establish target routing information between the first satellite and the target satellite.
[0033] Some optional implementations also include:
[0034] If there is target routing information between the target satellite and the target satellite, the next-hop satellite is determined based on the target routing information.
[0035] Secondly, embodiments of this application provide a first routing device, which includes:
[0036] The encoding determination module is used to determine whether the first satellite is the target satellite based on the satellite encoding of the first satellite and the satellite encoding of the target satellite; wherein, the satellite encoding includes part or all of the layer number, orbit number and satellite number of the satellite;
[0037] The routing module is configured to select a next-hop satellite from the neighboring satellites based on the satellite code of the first satellite, the satellite code of the target satellite, and the satellite codes of each neighboring satellite if the first satellite is not the target satellite.
[0038] In some optional implementations, the satellite code includes the satellite's layer number, orbit number, and satellite number; the routing module is specifically used for:
[0039] If the layer number of the first satellite is different from that of the target satellite, then the second satellite among the neighboring satellites is selected as the next-hop satellite; wherein the layer number of the second satellite is closer to that of the target satellite than that of the first satellite; or,
[0040] If the first satellite and the target satellite have the same layer number, but different orbit numbers, then the third satellite among the neighboring satellites is designated as the next-hop satellite; wherein the orbit number of the third satellite is closer to the orbit number of the target satellite than that of the first satellite; or,
[0041] If the first satellite and the target satellite have the same layer number and the same orbit number, then the fourth satellite among the neighboring satellites is designated as the next-hop satellite; wherein the fourth satellite is the target satellite, or the fourth satellite's satellite number is closer to the target satellite's satellite number than the first satellite's satellite number.
[0042] In some optional implementations, after selecting the next-hop satellite from the neighboring satellites, the routing module is further configured to:
[0043] If the link between the first satellite and the next-hop satellite is available, the target data is sent to the next-hop satellite.
[0044] In some optional implementations, the routing module is specifically used for:
[0045] Determine the communication cost information between the first satellite and the next-hop satellite;
[0046] If the communication cost information is less than the communication cost limit corresponding to the current service, then the target data will be sent to the next-hop satellite.
[0047] In some optional implementations, the routing module is further configured to:
[0048] If the link is unavailable, and / or the communication cost information is greater than or equal to the communication cost limit, then a next-hop satellite is reselected from the other neighboring satellites of the first satellite.
[0049] In some optional implementations, the encoding determination module is further configured to:
[0050] Based on the port mapping relationship corresponding to the first satellite, the satellite codes of neighboring satellites corresponding to each port of the first satellite are determined; wherein, the port mapping relationship includes the mapping between each port of the first satellite and the satellite codes of neighboring satellites.
[0051] In some optional implementations, the encoding determination module is further configured to:
[0052] Based on the addresses of each port of the first satellite, the satellite codes of the neighboring satellites corresponding to each port of the first satellite are determined; wherein, the address of each port contains some or all of the information in the satellite codes of the corresponding neighboring satellites.
[0053] In some optional implementations, the port address includes the satellite code of the first satellite, the satellite code of the corresponding neighboring satellite, and the target routing direction; the target routing direction is the direction of the first satellite relative to the neighboring satellite, or the direction of the neighboring satellite relative to the first satellite.
[0054] In some optional implementations, the encoding determination module is further configured to:
[0055] The target data is parsed to determine the satellite code of the target satellite.
[0056] In some optional implementations, before the encoding determination module determines whether the first satellite is the target satellite based on the satellite encoding of the first satellite and the satellite encoding of the target satellite, it is further configured to:
[0057] It was determined that there was no target routing information between the target satellite and the target satellite.
[0058] After the routing module sends the target data to the next-hop satellite, it is also used for:
[0059] Establish target routing information between the first satellite and the target satellite.
[0060] In some alternative implementations, the routing module is also used for:
[0061] If there is target routing information between the target satellite and the target satellite, the next-hop satellite is determined based on the target routing information.
[0062] Thirdly, embodiments of this application provide a routing device, including at least one processor and at least one memory, wherein the memory stores a computer program, and when the program is executed by the processor, the processor performs any of the routing methods described in the first aspect above.
[0063] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program executable by a processor, which, when run on the processor, causes the processor to perform any of the routing methods described in the first aspect above. Attached Figure Description
[0064] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0065] Figure 1 A flowchart illustrating the first routing method provided in this application embodiment;
[0066] Figure 2 A satellite network topology diagram provided for embodiments of this application;
[0067] Figure 3 A flowchart illustrating the second routing method provided in this application embodiment;
[0068] Figure 4 A flowchart illustrating the third routing method provided in this application embodiment;
[0069] Figure 5 A flowchart illustrating the fourth routing method provided in this application embodiment;
[0070] Figure 6 A flowchart illustrating the fifth routing method provided in this application embodiment;
[0071] Figure 7 This is a schematic diagram of the routing device provided in the embodiments of this application;
[0072] Figure 8 This is a schematic diagram of the routing device provided in an embodiment of this application. Detailed Implementation
[0073] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0074] The terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this application, unless otherwise stated, "a plurality of" means two or more.
[0075] In the description of this application, it should be noted that, unless otherwise expressly specified and limited, the term "connection" should be interpreted broadly. For example, it can refer to a direct connection, an indirect connection through an intermediate medium, or a connection within two devices. Those skilled in the art can understand the specific meaning of the above term in this application based on the specific circumstances.
[0076] With the development of LEO networks, building an integrated space-ground network has become one of the key technological directions. This network architecture is based on a dual-plane design, using a terrestrial network as its foundation and extending through a satellite network to achieve global user access and interconnection. As a crucial component of global communication, the integrated space-ground network requires efficient interaction of routing protocols and dynamic adaptability.
[0077] Routing protocols are already very mature in terrestrial networks and can effectively manage relatively static network topologies, such as OSPF and BGP.
[0078] However, in satellite networks (especially low-Earth orbit satellite networks), the frequent movement of satellite nodes and limited resources pose significant challenges to the direct interaction of traditional terrestrial protocols.
[0079] Among related technologies, MPLS technology has been proposed, which simplifies routing and forwarding decisions in satellite networks by inserting tags in the packet header, thereby improving network throughput.
[0080] Some embodiments also propose the application of Software Defined Networking (SDN) and Network Function Virtualization (NFV) technologies in terrestrial networks. However, SDN exhibits significant latency and reliability issues in low-Earth orbit satellite networks. Satellite motion increases communication latency between the SDN controller and the satellite, leading to delayed routing decisions. Furthermore, the fault tolerance of the SDN centralized controller is poor; a controller failure can impact routing decisions across the entire network. These problems are even more pronounced in environments with regular addressing.
[0081] In some embodiments, a link-state management scheme based on the Border Gateway Protocol (BGP Link-State, BGP-LS) has been introduced into satellite networks, which can achieve route convergence more quickly and effectively address link breakage issues.
[0082] However, existing BGP-LS schemes heavily rely on link-state information updates. This frequent link-state announcements not only increase network load but also limit the flexibility of path selection. This high dependence on link state means that when links frequently break, it's necessary to wait for broadcast updates, thus impacting network stability and efficiency.
[0083] In some embodiments, a mobile IP communication scheme is proposed. The mobile IP mechanism ensures the stability of user communication during cross-regional and cross-satellite handover by dynamically updating the device's location information.
[0084] However, path calculation usually requires traversing the entire network topology, especially when links break frequently. This process will greatly increase the computational burden and lead to network latency.
[0085] In summary, all of the above methods require global route selection, which results in complex path calculations and high computational costs.
[0086] In view of this, embodiments of this application propose a routing method, apparatus, routing device, and storage medium for efficient satellite network routing.
[0087] During communication, individual satellites in a satellite network may move, but the satellite network itself usually moves as a whole; that is, the relative positions of different satellites typically do not change significantly. Therefore, based on the ordered nature of the satellites, routing can be more efficient.
[0088] The technical solution of this application and how it solves the above-mentioned technical problems will be described in detail below with reference to the accompanying drawings and specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.
[0089] In this embodiment, the first satellite is the current node that needs to transmit data during the routing process;
[0090] The target satellite is the final destination of the data transmitted via the first satellite;
[0091] The next-hop satellite is the next-hop node to which the first satellite directly transmits data.
[0092] It is understandable that the next-hop satellite and the target satellite can be the same or different. If they are the same, the mission ends and the routing is completed. If they are different, the next-hop satellite will be used as the first satellite and the same routing method will be used to determine its next-hop satellite until the target satellite is reached.
[0093] The satellites mentioned in this embodiment refer to satellite nodes participating in communication within a spatial topology. These satellites are all encoded using the encoding method described in this embodiment, and the satellite codes can uniquely identify the satellites. These satellites may also employ communication nodes with similar spatial topologies.
[0094] Figure 1 A flowchart illustrating the first routing method provided in this application embodiment is shown below. Figure 1 As shown, it includes the following steps:
[0095] Step S101: Based on the satellite code of the first satellite and the satellite code of the target satellite, determine whether the first satellite is the target satellite.
[0096] The satellite code includes part or all of the satellite's layer number, orbit number, and satellite number.
[0097] Layer number represents the satellite's spatial altitude information and can be expressed using numbers, letters, or other symbols.
[0098] The orbit number indicates the satellite's orbital position and can be expressed using numbers, letters, or other symbols.
[0099] The satellite number indicates the satellite's position in orbit (in sequence), and can be expressed using numbers, letters, or other symbols.
[0100] As mentioned above, while individual satellites in a satellite network may move, the network itself typically moves as a whole, meaning the relative positions of different satellites usually don't change significantly. Therefore, based on the ordered nature of the satellites, routing can be more efficient.
[0101] In practice, satellites are encoded based on some or all of their layer number, orbit number, and satellite number. The resulting satellite code reflects the satellite's relative position.
[0102] This embodiment does not limit the specific encoding method; numbers, letters, or symbols can be used. For example, satellite A is in layer 1, orbit 2, satellite number 3, and satellite code is 10203, or 123, etc.
[0103] In addition, in satellite coding, the layer number can be integrated into the orbit number, or the orbit number can be integrated into the satellite number, etc.
[0104] See Figure 2 The diagram shown is a satellite network topology diagram provided in this embodiment. Figure 2 Take, for example, several satellites with the same layer number coded as 10203, 10204, 10205, 10303, 10304, 10305, 10403, 10404, and 10405;
[0105] Among them, satellites coded 10203, 10204 and 10205 are in the same orbit (orbit number 2); satellites coded 10303, 10304 and 10305 are in the same orbit (orbit number 3); and satellites coded 10403, 10404 and 10405 are in the same orbit (orbit number 4).
[0106] The above Figure 2 Taking satellite networks of the same tier as an example, in practical applications, satellite networks are usually arranged in three dimensions (including satellites of different tiers).
[0107] Step S102: If the first satellite is not the target satellite, then select the next-hop satellite from the neighboring satellites based on the satellite code of the first satellite, the satellite code of the target satellite, and the satellite codes of each neighboring satellite.
[0108] Since the satellite code of the first satellite reflects the relative position of the current node, the satellite code of the target satellite reflects the relative position of the target node, and the satellite codes of each neighboring satellite reflect the relative positions of the neighboring nodes;
[0109] By combining these three pieces of information, the next hop path of the first satellite can be determined, thereby identifying its next hop satellite.
[0110] Assuming N is the number of nodes in the network, global routing requires node traversal, meaning that for each satellite, all nodes in the network must be traversed, resulting in a path selection complexity of O(N log N). However, this embodiment can directly deduce the next-hop satellite based on satellite codes, without traversing all nodes in the network. It only needs to know the satellite codes of the target satellite and neighboring satellites to find the next-hop satellite, resulting in lower search and update complexity and a path selection complexity of O(log N).
[0111] The above scheme encodes satellites, and the resulting satellite codes reflect the relative positions of the satellites. During the routing process, since the satellite code of the first satellite reflects the relative position of the current node, the satellite code of the target satellite reflects the relative position of the target node, and the satellite codes of each neighboring satellite reflect the relative positions of the neighboring nodes, combining these three pieces of information can accurately and efficiently determine the next hop path of the first satellite, thereby determining its next hop satellite. The complexity of searching and updating is low, reducing computational overhead.
[0112] In addition, during global routing, the Shortest Path First (SLT) algorithm based on BGP-LS requires each node to maintain a global topology view, and all path calculations depend on a complete link-state table.
[0113] In this embodiment, if a link failure occurs, the link loss information needs to be notified to other nodes. For example... Figure 1 The link failure shown from 10203 to 10204 will trigger a BGP-LS route update (UPDATE) message at 10203. The UPDATE message can include path attributes and address information (NLRI). Path attributes include standard BGP-LS attributes, and the address in the next hop (NEXT_HOP) includes the satellite code; the NLRI also includes the satellite code. Link failure information can be directly used for path calculation.
[0114] In the shortest path first (SFB) algorithm, all nodes can only update their topology view and recalculate paths after receiving link state updates. Each node must rely on global link state information to execute the complete shortest path algorithm to calculate a new path. The complexity is O(N log N + E), where E is the total number of links in the network.
[0115] In this embodiment, during data transmission, the next-hop satellite is directly selected by the first satellite. Only the broken link route needs to be updated, reducing reliance on link status updates and optimizing the network topology update mechanism. Furthermore, the routing method in this embodiment can quickly find new paths, significantly improving network recovery speed.
[0116] Specifically, in the event of a link failure, the first satellite selects the next-hop satellite through steps S101-S103 described above. As mentioned above, this embodiment can directly deduce the next-hop satellite based on satellite coding, resulting in low complexity for searching and updating, and a path selection complexity of O(log N).
[0117] In some alternative implementations, the satellite code of the target satellite can be determined in, but is not limited to, the following ways:
[0118] The target data is parsed to determine the satellite code of the target satellite.
[0119] Taking Internet Protocol version 6 (IPv6) data as an example, the satellite codes of the source and target satellites are parsed from the IPv6 address.
[0120] In some alternative implementations, the satellite codes of neighboring satellites can be determined in, but are not limited to, the following ways:
[0121] Based on the port mapping relationship corresponding to the first satellite, the satellite codes of neighboring satellites corresponding to each port of the first satellite are determined; wherein, the port mapping relationship includes the mapping between each port of the first satellite and the satellite codes of neighboring satellites.
[0122] Based on the addresses of each port of the first satellite, the satellite codes of the neighboring satellites corresponding to each port of the first satellite are determined; wherein, the address of each port contains some or all of the information in the satellite codes of the corresponding neighboring satellites.
[0123] In practice, for satellites not located at the edge, there are six routing directions: upper layer, lower layer, upper orbit of the same layer, lower orbit of the same layer, the preceding satellite in the same orbit, and the following satellite in the same orbit; for satellites at the edge, there are also multiple routing directions. Each satellite routes in different directions through different ports.
[0124] Based on this, in some embodiments, a port mapping relationship can be established for each satellite, including the mapping between each port of a satellite and the satellite codes of neighboring satellites; by looking up the port mapping relationship, it can be determined which neighboring satellite corresponds to each port.
[0125] In some embodiments, the addresses of each port of a satellite can be set, and the address of each port contains part or all of the information in the satellite code of the corresponding neighboring satellite; by viewing the address of each port, it is also possible to know which neighboring satellite corresponds to each port.
[0126] If multiple network services are involved, the port mapping relationship and port address may also contain the identifier of the network service. The satellite encoding method may be the same or different in different network services.
[0127] Additionally, the port mapping relationship and port address may also include the satellite code of the current satellite and the target routing direction. The target routing direction is the direction of the first satellite relative to neighboring satellites, or the direction of the neighboring satellites relative to the first satellite. For example, 1 indicates the upper layer, 2 indicates the lower layer, 3 indicates the upper orbit of the same layer, 4 indicates the lower orbit of the same layer, 5 indicates the preceding satellite in the same orbit, and 6 indicates the following satellite in the same orbit.
[0128] Because there are limitations on the number of bits in each segment of the address, when the satellite code has a large number of bits, the satellite code can be split and then combined to obtain the port address.
[0129] The following is a specific example of a port address:
[0130] Satellite A has a satellite code of 10203, and its port 1 corresponds to satellite B, which has a satellite code of 20203. Satellite A is located in the lower layer of satellite B.
[0131] In the first method, the address of port 1 is set to 2600:0102:0203:0203:2 / 112; where 2600 is the prefix (representing network service); in 0102, 1 represents the layer number of satellite A, and 2 represents the layer number of satellite B; the first 0203 is the last four bits of the satellite code of satellite A (orbit number + satellite number); the second 0203 is the last four bits of the satellite code of satellite B (orbit number + satellite number); 2 indicates that satellite A is in a lower layer than satellite B; and 112 is the prefix length, specifying the bit length of the prefix. This method generates the port address based on the satellite codes of neighboring satellites and the local satellite.
[0132] The second method sets the port 1 address to 2600:0002:0203:0203:2 / 112; where 2600 is the prefix (representing network service); 0002 represents the layer number of satellite B; the first 0203 is the last four bits of satellite code for satellite A (orbit number + satellite number); the second 0203 is the last four bits of satellite code for satellite B (orbit number + satellite number); 2 indicates that satellite A is in a lower layer than satellite B; and 112 is the prefix length, specifying the bit length of the prefix. This method generates the port address based on partial information from the satellite codes of neighboring satellites and the local satellite.
[0133] The above two address encoding methods are merely illustrative examples.
[0134] Figure 3 A flowchart illustrating the second routing method provided in this application embodiment is shown below. Figure 3 As shown, it includes the following steps:
[0135] Step S301: Based on the satellite code of the first satellite and the satellite code of the target satellite, determine whether the first satellite is the target satellite.
[0136] The satellite code includes the layer number, orbit number, and satellite number of the satellite.
[0137] The specific implementation of step S301 can be found in other embodiments, and will not be repeated here.
[0138] Step S302: If the layer number of the first satellite is different from that of the target satellite, then the second satellite among the neighboring satellites is taken as the next-hop satellite; wherein the layer number of the second satellite is closer to that of the target satellite than that of the first satellite.
[0139] In practice, to ensure efficient and orderly routing, routing can be performed in the order of layer number - orbit number - satellite number;
[0140] This allows for sequential routing jumps between different layer numbers, within the same layer number, and within the same track.
[0141] Based on this, if the first satellite and the target satellite have different layer numbers, the second satellite, which is closer to the target satellite's layer number, is selected as the next hop satellite. This allows the satellite to jump to the same layer number as or closer to the target satellite.
[0142] For example, the layer number of the first satellite is L1, the layer number of the second satellite is L2, and the layer number of the target satellite is L3. L2 and L3 can be the same or different, and |L3-L1|>|L3-L2|.
[0143] Figure 4 A flowchart illustrating the third routing method provided in this application embodiment is shown below. Figure 4 As shown, it includes the following steps:
[0144] Step S401: Based on the satellite code of the first satellite and the satellite code of the target satellite, determine whether the first satellite is the target satellite.
[0145] The satellite code includes the satellite's layer number, orbit number, and satellite number.
[0146] The specific implementation of step S401 can be found in other embodiments, and will not be repeated here.
[0147] Step S402: If the first satellite and the target satellite have the same layer number, and the first satellite and the target satellite have different orbit numbers, then the third satellite among the neighboring satellites is taken as the next hop satellite; wherein the orbit number of the third satellite is closer to the orbit number of the target satellite than the orbit number of the first satellite.
[0148] As mentioned above, in order to perform efficient and orderly routing, routing can be performed in the order of layer number - orbit number - satellite number;
[0149] This allows for sequential routing jumps between different layer numbers, within the same layer number, and within the same track.
[0150] Based on this, if the first satellite and the target satellite have the same layer number but different orbit numbers, the third satellite, which is closer to the target satellite's orbit number, is selected as the next hop satellite. This allows the satellite to jump to an orbit that is the same as or closer to the target satellite.
[0151] For example, the orbit number of the first satellite is O1, the orbit number of the second satellite is O2, and the orbit number of the target satellite is O3. O2 and O3 can be the same or different, and |O3-O1|>|O3-O2|.
[0152] Figure 5 A flowchart illustrating the fourth routing method provided in this application embodiment is shown below. Figure 5 As shown, it includes the following steps:
[0153] Step S501: Based on the satellite code of the first satellite and the satellite code of the target satellite, determine whether the first satellite is the target satellite.
[0154] The satellite code includes the satellite's layer number, orbit number, and satellite number.
[0155] The specific implementation of step S501 can be found in other embodiments, and will not be repeated here.
[0156] Step S502: If the first satellite and the target satellite have the same layer number and the same orbit number, then the fourth satellite among the neighboring satellites is taken as the next hop satellite; wherein the fourth satellite is the target satellite, or the fourth satellite has a satellite number closer to the target satellite than the first satellite.
[0157] As mentioned above, in order to perform efficient and orderly routing, routing can be performed in the order of layer number - orbit number - satellite number;
[0158] This allows for sequential routing jumps between different layer numbers, within the same layer number, and within the same track.
[0159] Based on this, if the first satellite and the target satellite have the same layer number and orbit number, the fourth satellite with a satellite number closer to the target satellite is selected as the next hop satellite, so that it can jump to a satellite that is the same as or closer to the target satellite.
[0160] For example, the satellite number of the first satellite is S1, the satellite number of the second satellite is S2, and the satellite number of the target satellite is S3. S2 and S3 can be the same or different, and |S3-S1|>|S3-S2|.
[0161] Figure 6 A flowchart illustrating the fifth routing method provided in this application embodiment is shown below. Figure 6 As shown, it includes the following steps:
[0162] Step S601: Based on the satellite code of the first satellite and the satellite code of the target satellite, determine whether the first satellite is the target satellite.
[0163] The satellite code includes part or all of the satellite's layer number, orbit number, and satellite number;
[0164] Step S602: If the first satellite is not the target satellite, then select the next-hop satellite from the neighboring satellites based on the satellite code of the first satellite, the satellite code of the target satellite, and the satellite codes of each neighboring satellite.
[0165] The specific implementation of steps S601 to S602 can be found in other embodiments, and will not be repeated here.
[0166] Step S603: If the link between the first satellite and the next-hop satellite is available, then the target data is sent to the next-hop satellite.
[0167] In practice, after the first satellite determines the next-hop satellite, if the link between the first satellite and the next-hop satellite is available, the target data will be sent to the next-hop satellite.
[0168] For example, target data is sent to the next-hop satellite via the corresponding port.
[0169] In some optional implementations, step S603 above further includes the following steps:
[0170] Determine the communication cost information between the first satellite and the next-hop satellite;
[0171] If the communication cost information is less than the communication cost limit corresponding to the current service, then the target data will be sent to the next-hop satellite.
[0172] Since the path selection in the above embodiments only considers the satellite's location and does not consider the path cost, if all paths do not consider the path cost, problems such as link overload may occur.
[0173] Based on this, this embodiment determines the communication cost information between the first satellite and the next-hop satellite, as well as the communication cost limit corresponding to the current service; if the communication cost information is less than the communication cost limit, it means that the path cost is within the allowable range, and the target data is sent to the next-hop satellite.
[0174] This embodiment does not specifically limit the communication cost limit, but allows setting priorities for each service, with each priority corresponding to a communication cost limit; the higher the priority, the higher the communication cost limit. For example, services with high communication quality requirements, such as high-fidelity information transmission for aircraft and intelligent device control in unmanned areas, have high priority; services with relatively high communication quality requirements and needing to maintain a relatively stable link, such as real-time voice transmission, have medium priority; and services with low communication stability requirements, such as video and image downloads and social software, have low priority.
[0175] In some alternative implementations, after S602 above, the following steps may also be performed:
[0176] If the link is unavailable, and / or the communication cost information is greater than or equal to the communication cost limit, then a next-hop satellite is reselected from the other neighboring satellites of the first satellite.
[0177] In practice, if the link between the first satellite and the next-hop satellite is unavailable, data transmission is impossible; if the communication cost information between the first satellite and the next-hop satellite is greater than or equal to the communication cost limit, it indicates that the transmission cost of using this path is too high; if any of these conditions are met, a new next-hop satellite is selected from the other neighboring satellites of the first satellite, and a new path is selected by detouring.
[0178] This embodiment does not limit the specific implementation method of reselecting the next-hop satellite from the other neighboring satellites of the first satellite. For example, if the next-hop satellite is the second satellite mentioned above, a third satellite is selected (although it is not transferred to the same layer number, the orbit number is closer); if the next-hop satellite is the third satellite mentioned above, a fourth satellite is selected (although it is not transferred to the same orbit, the satellite number is closer); if the next-hop satellite is the fourth satellite mentioned above, a satellite far away from the orbit number is selected (by transferring to other orbits to bypass it), etc.
[0179] In some optional implementations, the following steps are performed before step S601 described above:
[0180] It was determined that there was no target routing information between the target satellite and the target satellite.
[0181] Correspondingly, after step 603, the following steps are also performed:
[0182] Establish target routing information between the first satellite and the target satellite.
[0183] In this embodiment, once the route (target routing information) between the first satellite and the target satellite is determined through any of the above methods, the target routing information will be saved at the first satellite, and the route can be directly accessed by viewing the target routing information later.
[0184] In practice, each satellite acts as the first satellite when data is transmitted to each hop satellite during the routing process. Therefore, each satellite involved will save the corresponding target routing information to achieve fast routing.
[0185] Some optional implementations also include:
[0186] If there is target routing information between the target satellite and the target satellite, the next-hop satellite is determined based on the target routing information.
[0187] In practice, if there is target routing information at the first satellite, it means that the route between the first satellite and the target satellite has been determined before, and the target routing information can be used directly to proceed to the target satellite.
[0188] like Figure 7 As shown, this application embodiment provides a routing device 700, which includes:
[0189] The encoding determination module 701 is used to determine whether the first satellite is the target satellite based on the satellite encoding of the first satellite and the satellite encoding of the target satellite; wherein, the satellite encoding includes part or all of the layer number, orbit number and satellite number of the satellite;
[0190] The routing module 702 is configured to select a next-hop satellite from the neighboring satellites based on the satellite code of the first satellite, the satellite code of the target satellite, and the satellite codes of each neighboring satellite if the first satellite is not the target satellite.
[0191] In some optional implementations, the satellite code includes the satellite's layer number, orbit number, and satellite number; the routing module 702 is specifically used for:
[0192] If the layer number of the first satellite is different from that of the target satellite, then the second satellite among the neighboring satellites is selected as the next-hop satellite; wherein the layer number of the second satellite is closer to that of the target satellite than that of the first satellite; or,
[0193] If the first satellite and the target satellite have the same layer number, but different orbit numbers, then the third satellite among the neighboring satellites is designated as the next-hop satellite; wherein the orbit number of the third satellite is closer to the orbit number of the target satellite than that of the first satellite; or,
[0194] If the first satellite and the target satellite have the same layer number and the same orbit number, then the fourth satellite among the neighboring satellites is designated as the next-hop satellite; wherein the fourth satellite is the target satellite, or the fourth satellite's satellite number is closer to the target satellite's satellite number than the first satellite's satellite number.
[0195] In some optional implementations, after selecting the next-hop satellite from the neighboring satellites, the routing module 702 is further configured to:
[0196] If the link between the first satellite and the next-hop satellite is available, the target data is sent to the next-hop satellite.
[0197] In some optional implementations, the routing module 702 is specifically used for:
[0198] Determine the communication cost information between the first satellite and the next-hop satellite;
[0199] If the communication cost information is less than the communication cost limit corresponding to the current service, then the target data will be sent to the next-hop satellite.
[0200] In some optional implementations, the routing module 702 is further configured to:
[0201] If the link is unavailable, and / or the communication cost information is greater than or equal to the communication cost limit, then a next-hop satellite is reselected from the other neighboring satellites of the first satellite.
[0202] In some optional implementations, the encoding determination module 701 is further configured to:
[0203] Based on the port mapping relationship corresponding to the first satellite, the satellite codes of neighboring satellites corresponding to each port of the first satellite are determined; wherein, the port mapping relationship includes the mapping between each port of the first satellite and the satellite codes of neighboring satellites.
[0204] In some optional implementations, the encoding determination module 701 is further configured to:
[0205] Based on the addresses of each port of the first satellite, the satellite codes of the neighboring satellites corresponding to each port of the first satellite are determined; wherein, the address of each port contains some or all of the information in the satellite codes of the corresponding neighboring satellites.
[0206] In some optional implementations, the port address includes the satellite code of the first satellite, the satellite code of the corresponding neighboring satellite, and the target routing direction; the target routing direction is the direction of the first satellite relative to the neighboring satellite, or the direction of the neighboring satellite relative to the first satellite.
[0207] In some optional implementations, the encoding determination module 701 is further configured to:
[0208] The target data is parsed to determine the satellite code of the target satellite.
[0209] In some optional implementations, before the encoding determination module 701 determines whether the first satellite is the target satellite based on the satellite encoding of the first satellite and the satellite encoding of the target satellite, it is further configured to:
[0210] It was determined that there was no target routing information between the target satellite and the target satellite.
[0211] After the routing module 702 sends the target data to the next-hop satellite, it is also used for:
[0212] Establish target routing information between the first satellite and the target satellite.
[0213] In some alternative implementations, the routing module 702 is also used for:
[0214] If there is target routing information between the target satellite and the target satellite, the next-hop satellite is determined based on the target routing information.
[0215] Since this device is the same as the device in the method of this application embodiment, and the principle of the device in solving the problem is similar to that of the method, the implementation of the device can be referred to the implementation of the method, and the repeated parts will not be described again.
[0216] Based on the same technical concept, embodiments of this application also provide a routing device 800, such as... Figure 8 As shown, it includes at least one processor 801 and a memory 802 connected to at least one processor. In this embodiment, the specific connection medium between the processor 801 and the memory 802 is not limited. Figure 8 Taking the connection between the processor 801 and the memory 802 via bus 803 as an example, the bus can be divided into address bus, data bus, control bus, etc. For ease of illustration, Figure 8 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0217] The processor 801 serves as the satellite's control center, connecting to various parts of the satellite via various interfaces and lines. It performs data processing by running or executing instructions stored in the memory 802 and accessing data stored in the memory 802. Optionally, the processor 801 may include one or more processing units. The processor 801 may integrate an application processor and a modem processor. The application processor primarily handles the operating system, user interface, and applications, while the modem processor primarily handles issuing instructions. It is understood that the modem processor may not be integrated into the processor 801. In some embodiments, the processor 801 and the memory 802 may be implemented on the same chip; in other embodiments, they may be implemented on separate chips.
[0218] Processor 801 can be a general-purpose processor, such as a CPU, digital signal processor, application-specific integrated circuit (ASIC), field-programmable gate array or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component, capable of implementing or executing the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the routing method embodiments can be directly manifested as being executed by a hardware processor, or executed by a combination of hardware and software modules within the processor.
[0219] Memory 802, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules. Memory 802 may include at least one type of storage medium, such as flash memory, hard disk, multimedia card, card-type memory, random access memory (RAM), static random access memory (SRAM), programmable read-only memory (PROM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), magnetic memory, magnetic disk, optical disk, etc. Memory 802 can be any other medium capable of carrying or storing desired program code in the form of instructions or data structures that can be accessed by a computer, but is not limited thereto. In the embodiments of this application, memory 802 can also be a circuit or any other device capable of implementing storage functions for storing program instructions and / or data.
[0220] In this embodiment, the memory 802 stores a computer program, which, when executed by the processor 801, causes the processor 801 to perform the following:
[0221] Based on the satellite code of the first satellite and the satellite code of the target satellite, it is determined whether the first satellite is the target satellite; wherein, the satellite code includes part or all of the satellite's layer number, orbit number, and satellite number;
[0222] If the first satellite is not the target satellite, then the next-hop satellite is selected from the neighboring satellites based on the satellite code of the first satellite, the satellite code of the target satellite, and the satellite codes of each neighboring satellite.
[0223] In some optional implementations, the satellite code includes the satellite's layer number, orbit number, and satellite number; processor 801 specifically executes:
[0224] If the layer number of the first satellite is different from that of the target satellite, then the second satellite among the neighboring satellites is selected as the next-hop satellite; wherein the layer number of the second satellite is closer to that of the target satellite than that of the first satellite; or,
[0225] If the first satellite and the target satellite have the same layer number, but different orbit numbers, then the third satellite among the neighboring satellites is designated as the next-hop satellite; wherein the orbit number of the third satellite is closer to the orbit number of the target satellite than that of the first satellite; or,
[0226] If the first satellite and the target satellite have the same layer number and the same orbit number, then the fourth satellite among the neighboring satellites is designated as the next-hop satellite; wherein the fourth satellite is the target satellite, or the fourth satellite's satellite number is closer to the target satellite's satellite number than the first satellite's satellite number.
[0227] In some alternative implementations, after selecting the next-hop satellite from the neighboring satellites, processor 801 further performs:
[0228] If the link between the first satellite and the next-hop satellite is available, the target data is sent to the next-hop satellite.
[0229] In some alternative implementations, processor 801 specifically performs:
[0230] Determine the communication cost information between the first satellite and the next-hop satellite;
[0231] If the communication cost information is less than the communication cost limit corresponding to the current service, then the target data will be sent to the next-hop satellite.
[0232] In some alternative implementations, processor 801 also performs:
[0233] If the link is unavailable, and / or the communication cost information is greater than or equal to the communication cost limit, then a next-hop satellite is reselected from the other neighboring satellites of the first satellite.
[0234] In some alternative implementations, processor 801 also performs:
[0235] Based on the port mapping relationship corresponding to the first satellite, the satellite codes of neighboring satellites corresponding to each port of the first satellite are determined; wherein, the port mapping relationship includes the mapping between each port of the first satellite and the satellite codes of neighboring satellites.
[0236] In some alternative implementations, processor 801 also performs:
[0237] Based on the addresses of each port of the first satellite, the satellite codes of the neighboring satellites corresponding to each port of the first satellite are determined; wherein, the address of each port contains some or all of the information in the satellite codes of the corresponding neighboring satellites.
[0238] In some optional implementations, the port address includes the satellite code of the first satellite, the satellite code of the corresponding neighboring satellite, and the target routing direction; the target routing direction is the direction of the first satellite relative to the neighboring satellite, or the direction of the neighboring satellite relative to the first satellite.
[0239] In some alternative implementations, processor 801 also performs:
[0240] The target data is parsed to determine the satellite code of the target satellite.
[0241] In some optional implementations, before determining whether the first satellite is the target satellite based on the satellite code of the first satellite and the satellite code of the target satellite, the processor 801 further performs:
[0242] It was determined that there was no target routing information between the target satellite and the target satellite.
[0243] After sending the target data to the next-hop satellite, processor 801 also performs:
[0244] Establish target routing information between the first satellite and the target satellite.
[0245] In some alternative implementations, processor 801 also performs:
[0246] If there is target routing information between the target satellite and the target satellite, the next-hop satellite is determined based on the target routing information.
[0247] Since the satellite is the same satellite in the method of this application embodiment, and the principle of the satellite in solving the problem is similar to that of the method, the implementation of the satellite can be referred to the implementation of the method, and the repeated parts will not be described again.
[0248] Based on the same technical concept, embodiments of this application also provide a computer-readable storage medium storing a computer program executable by a processor, which, when run on the processor, causes the processor to perform the steps of the above-described routing method.
[0249] In some alternative implementations, various aspects of the routing method provided in this application may also be implemented as a program product containing computer-executable instructions that, when the program product is run on a computer device, cause the computer device to perform the steps of the routing method according to the various exemplary embodiments of this application described above.
[0250] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0251] This application is described with reference to flowchart illustrations and / or block diagrams of the method, satellite (system), and computer program product according to this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing device to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing device, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0252] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0253] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0254] Although preferred embodiments of this application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of this application.
[0255] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.
Claims
1. A routing method characterized by, The method applied to a first satellite comprises: determining whether the first satellite is a target satellite based on a satellite code of the first satellite and a satellite code of the target satellite; wherein the satellite code comprises part or all of a layer number, an orbit number and a satellite number of the satellite; the layer number represents space height information to which the corresponding satellite belongs, the orbit number represents an orbit in which the corresponding satellite is located, and the satellite number represents an order of the corresponding satellite in the orbit; if the first satellite is not the target satellite, selecting a next-hop satellite from neighbor satellites based on the satellite code of the first satellite, the satellite code of the target satellite and satellite codes of the neighbor satellites; determining the satellite codes of the neighbor satellites by the following way: determining the satellite codes of the neighbor satellites corresponding to each port of the first satellite based on addresses of the ports of the first satellite; wherein the address of the port is generated based on an identifier of a network service, the satellite code of the first satellite, the satellite code of the corresponding neighbor satellite and a target routing direction; the target routing direction is a direction of the first satellite relative to the neighbor satellite, or a direction of the neighbor satellite relative to the first satellite; the encoding manner of the satellite is different in different network services.
2. The method of claim 1, wherein, The satellite code comprises a layer number, an orbit number and a satellite number of the satellite; selecting the next-hop satellite from the neighbor satellites based on the satellite code of the first satellite, the satellite code of the target satellite and the satellite codes of the neighbor satellites comprises: if the layer numbers of the first satellite and the target satellite are different, taking a second satellite in the neighbor satellites as the next-hop satellite; wherein the layer number of the second satellite is closer to the layer number of the target satellite than the layer number of the first satellite; or if the layer numbers of the first satellite and the target satellite are the same, and the orbit numbers of the first satellite and the target satellite are different, taking a third satellite in the neighbor satellites as the next-hop satellite; wherein the orbit number of the third satellite is closer to the orbit number of the target satellite than the orbit number of the first satellite; or if the layer numbers of the first satellite and the target satellite are the same, and the orbit numbers of the first satellite and the target satellite are the same, taking a fourth satellite in the neighbor satellites as the next-hop satellite; wherein the fourth satellite is the target satellite, or the satellite number of the fourth satellite is closer to the satellite number of the target satellite than the satellite number of the first satellite.
3. The method of claim 1, wherein, After selecting the next-hop satellite from the neighbor satellites, the method further comprises: if a link between the first satellite and the next-hop satellite is available, sending target data to the next-hop satellite.
4. The method of claim 3, wherein, Sending the target data to the next-hop satellite comprises: determining communication cost information between the first satellite and the next-hop satellite; if the communication cost information is less than a communication cost limit value corresponding to current service, sending the target data to the next-hop satellite.
5. The method of claim 4, wherein, The method further comprises: if the link is unavailable, and / or the communication cost information is greater than or equal to the communication cost limit value, reselecting the next-hop satellite from other neighbor satellites of the first satellite.
6. The method of claim 1, wherein, The satellite code of the target satellite is determined in the following manner: The target data is parsed to determine the satellite code of the target satellite.
7. The method of claim 3, wherein, Before determining whether the first satellite is the target satellite based on the satellite code of the first satellite and the satellite code of the target satellite, further comprising: It is determined that there is no target routing information between the target satellite; After sending the target data to the next-hop satellite, further comprising: Target routing information between the first satellite and the target satellite is established.
8. The method of claim 7, wherein, Further comprising: If there is target routing information between the target satellite, the next-hop satellite is determined based on the target routing information.
9. A routing device, characterized by The method comprises at least one processor and at least one memory, wherein the memory stores a computer program, and when the program is executed by the processor, the processor executes the method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Giant low-orbit Internet constellation routing method
CN113783600A
Distributed routing method and device for satellite network and storage medium
CN114158106A
Large-scale constellation network low-overhead space vector segmentation routing method
CN115696492A