great circle routing
Patent Information
- Application Number
- CN202611057142.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2020-05-29
- Filing Date
- 2021-05-07
- Publication Date
- 2026-10-16
AI Technical Summary
这类路由方案是无线网络已知的,但尚未广泛应用于卫星网络
[0009] The purpose of this invention is to provide a method and apparatus for forwarding and routing data packets in satellite networks and the like.
Smart Images

Figure CN122932759A_ABST
Abstract
Description
[0001] This application is a divisional application. The original application has the application number 202180037369.8 and the original application date is May 7, 2021. The entire contents of the original application are incorporated herein by reference.
[0002] Cross-referencing related applications This application claims the benefit of priority to U.S. non-provisional patent application No. 16 / 887,675, filed May 29, 2020, entitled “Orthodromic Routing,” the entire contents of which are incorporated herein by reference. Technical Field
[0003] This invention relates to packet data networks, such as optical satellite mesh networks, and more particularly to a method and apparatus for supporting the forwarding and routing of data packets in such networks. Background Technology
[0004] To provide internet routing services and other functionalities, low Earth orbit (LEO) satellite constellations are being developed. The current proposal involves distributing a group of satellites in space and organizing them into a mesh network. Free-space optical (i.e., laser) links have been proposed as a way to provide high-bandwidth network connections between satellites. Other types of links, such as radio frequency (RF) or microwave links, are also possible. The latency generated by using LEO satellite systems is generally lower than that of medium Earth orbit (MEO) or geostationary orbit (GEO) systems, but a large number of satellites are required.
[0005] Data packets can be routed along various paths via satellite mesh networks. Because satellites move rapidly relative to the Earth's surface, routing data packets to their ground destinations requires considering both the satellite's position and its proximity to the destination. In such scenarios, rapidly calculating effective routes requires significant computation, and current routing methods need improvement and customization of satellite mesh networks.
[0006] Geographic location routing involves routing data packets based on geographic location information, without relying on network topology information. This type of routing scheme is known in wireless networks but is not yet widely used in satellite networks. Furthermore, these schemes require improvement in either computational efficiency or applicability to satellite mesh network scenarios.
[0007] Therefore, there is a need for a method and apparatus for supporting the forwarding of data packets in satellite mesh networks and similar networks, thereby avoiding or reducing one or more limitations of the prior art.
[0008] The purpose of the background art is to disclose information that the applicant believes may be relevant to the present invention. It is neither necessary nor appropriate to acknowledge that any of the foregoing information constitutes prior art in relation to the present invention. Summary of the Invention
[0009] The purpose of this invention is to provide a method and apparatus for forwarding and routing data packets in satellite networks and the like.
[0010] According to embodiments of the present invention, a method for routing data packets in a network is provided. In some aspects, the data packet specifies the physical location of its destination. In some aspects, the method is performed at a first node in the network that possesses the data packet. The method includes: maintaining physical location information of nodes in a finite portion of the network directly coupled to the first node, and maintaining routing information for the finite portion of the network. In some aspects, the finite portion of the network may include at least one node indirectly coupled to the first node via at least one intermediate node. In some aspects, the method includes: selecting a target node from the nodes in the finite portion of the network, wherein the target node satisfies a predetermined target of a great circle distance to the physical location of the destination of the data packet. In some aspects, the method includes: determining, based on the routing information, a next node belonging to the finite portion of the network and located on an available network path between the node and the target node. In some aspects, the method further includes: forwarding the data packet to the next node.
[0011] According to an embodiment of the present invention, a method for routing data packets in a network is provided. The data packet specifies the physical location of its destination. The method includes performing the above method steps at some or all nodes of the network when some or all nodes possess the data packet.
[0012] According to embodiments of the present invention, an apparatus for routing data packets in a network is provided. In some aspects, the data packet specifies the physical location of its destination. The apparatus is located at a first node in the network that possesses the data packet and includes a network interface and processing electronics. The apparatus is used to maintain physical location information of nodes in a finite portion of the network directly coupled to the first node. In some aspects, the apparatus is used to maintain routing information for the finite portion of the network. In some aspects, the finite portion of the network includes at least one node indirectly coupled to the first node via at least one intermediate node. In some aspects, the apparatus is further used to select a target node from the nodes in the finite portion of the network, wherein the target node satisfies a predetermined target great circle distance to the physical location of the destination of the data packet. In some aspects, the apparatus is further used to determine, based on the routing information, the next node belonging to the finite portion of the network and located on an available network path between the node and the target node. In some aspects, the apparatus is further used to forward the data packet to the next node.
[0013] According to an embodiment of the present invention, a system for routing data packets in a network is provided. The data packet specifies the physical location of its destination. The system includes a plurality of network nodes or associated means of network nodes, each network node being configured to operate as described above when possessing the data packet. That is, a system for routing data packets in a network is provided. The data packet specifies the physical location of its destination, the system includes a plurality of nodes of the network, each node including a network interface and processing electronics, and being configured, when possessing the data packet, to: maintain physical location information of a corresponding node directly coupled to the node in a finite portion of the network, and maintain routing information of the finite portion of the network, wherein the finite portion of the network includes at least one node indirectly coupled to the node through at least one intermediate node; select a target node from the nodes in the finite portion of the network, wherein the target node satisfies a predetermined target great circle distance with respect to the physical location of the destination of the data packet; determine, based on the routing information, the next node belonging to the finite portion of the network and located on an available network path between the node and the target node; and forward the data packet to the next node.
[0014] Embodiments have been described above in conjunction with various aspects of the present invention, and these embodiments can be implemented based on these aspects. Those skilled in the art will understand that embodiments can be implemented in conjunction with the aspects described therein, but may also be implemented together with other embodiments of that aspect. It will be apparent to those skilled in the art that embodiments are mutually exclusive or incompatible with each other. Some embodiments may be described in conjunction with one aspect, but may also be applicable to other aspects, as will be apparent to those skilled in the art. Attached Figure Description
[0015] Further features and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings.
[0016] Figure 1 This shows the orthodromic distance between two satellites orbiting a sphere (Earth).
[0017] Figure 2 This invention illustrates a method for routing data packets in a network, as provided by an embodiment of the present invention.
[0018] Figure 3A A portion of a network provided by an exemplary embodiment of the present invention is shown, illustrating packet routing operations in a first node.
[0019] Figure 3B A further exemplary embodiment of the present invention is shown. Figure 3A This is part of the network, showing other packet routing operations in the first node.
[0020] Figure 3C A further exemplary embodiment of the present invention is shown. Figure 3A This is part of the network, showing packet routing operations in the second node.
[0021] Figure 3D A further exemplary embodiment of the present invention is shown. Figure 3A This is part of the network, showing packet routing operations in a third node.
[0022] Figure 3E A further exemplary embodiment of the present invention is shown. Figure 3A This is part of the network, showing packet routing operations in the fourth node.
[0023] Figure 3F A further exemplary embodiment of the present invention is shown. Figure 3A This is part of the network, showing packet routing operations in the fifth node.
[0024] Figure 4This invention illustrates a method for routing data packets in a network, as provided by an embodiment of the present invention.
[0025] Figure 5 An embodiment of the present invention is shown, which provides an apparatus for routing data packets in a network.
[0026] Figure 6 These are schematic diagrams of electronic devices provided in different embodiments of the present invention, which can perform any or all of the methods and features described herein, whether explicitly or implicitly.
[0027] It should be noted that similar features are identified by similar reference numerals throughout the accompanying drawings. Detailed Implementation
[0028] The term “about” as used herein should be understood to include changes relative to the nominal value, for example, changes relative to a nominal value of + / - 10%. It should be understood that, whether specifically mentioned or not, the given values provided herein always include such changes.
[0029] Satellite networks can provide global connectivity and can also offer new coverage extensions in fifth-generation (5G) communication technologies, such as the 3rd Generation Partnership Project (3GPP). rd As described in the Generation Partnership Project (3GPP), the industry-wide interest lies in deploying inter-satellite links to route user traffic across multiple satellites. In this regard, low-earth orbit (LEO) satellite systems may be suitable due to their lower round-trip latency and launch costs compared to medium-earth orbit (MEO) and geostationary earth orbit (GEO) systems. However, an effective global network requires a potentially large number of LEO satellites. Furthermore, the dynamic nature of satellite network constellations presents challenges to existing routing protocols due to orbital seams, variable network size, and the need for timely communication of network changes to all nodes.
[0030] This invention addresses network routing challenges in satellite network contexts. Specifically, it focuses on applications to non-terrestrial high-mass (satellite) polar and Walker-delta constellation networks to provide global communication services that terrestrial (e.g., wired or fiber optic) networks may not support. Various embodiments provide a flattened network routing paradigm where each network node only needs local information about its network conditions. This limits the requirements for propagating network condition updates (e.g., via flooding link state update messages) across the network. Specifically, in various embodiments, updates only need to be communicated locally within a limited network area. Routing computation time and control plane / data plane processing complexity are also controlled due to the use of only local information. This is particularly important considering the existence of large-scale LEO satellites (which existing terrestrial routing mechanisms cannot scale) and the limited onboard processing power available on LEO satellite nodes.
[0031] While GEO satellites are stationary on the side of Earth they face, MEO and LEO satellites are mobile and have a specific time period. That is, MEO and LEO satellites meet the same point on Earth after a certain time interval, depending on their altitude. GEO satellites are located at an altitude of 22,236 miles (35,786 kilometers) above the Earth's equator. Due to their high altitude and long round-trip time, GEO satellites are not suitable for broadband, low-latency data networks. However, LEO satellites provide global coverage on Earth and can reuse frequencies more efficiently. LEO satellite networks can provide ubiquitous low-latency connectivity. A characteristic of these satellite networks is that they typically require many satellites to provide global coverage, primarily due to their low altitude.
[0032] Satellite communication technology defines a satellite constellation as a group of satellites orbiting in LEO orbit that coordinate ground coverage and share control functions. Two main types of satellite constellations are the "Polar Constellation" and the "Walker Delta Constellation." The Walker Delta Constellation provides better uniform coverage almost anywhere on Earth, except for the poles, where there is no coverage. However, the Polar Constellation provides dense coverage at the poles and sparse coverage at the equator.
[0033] Satellite network nodes can have two types of interfaces: terrestrial communication interfaces and inter-satellite link (ISL) communication interfaces. Terrestrial communication interfaces can be microwave systems operating in the X-band or Ka-band. ISL interfaces can use communication lasers and can provide high-speed optical free-space communication links between satellite nodes. ISL links include intra-orbit links, which are links between satellites in shared but spaced-apart (usually adjacent) orbits, and inter-orbit links, which are links between satellites in different (usually adjacent) orbits.
[0034] Because satellite networks are dynamic, ISL (Inter-orbit Link Length) characteristics also change dynamically. Even for intra-orbit ISL with a constant link distance, link behavior varies as the satellite passes over different parts of the Earth (e.g., the poles). For polar constellations and Walker-Delta constellations, the dynamic range of ISL characteristics for inter-orbit ISL is significantly larger. Because ISL links change dynamically, the properties of the network topology in satellite networks also change dynamically. Network topology changes, link failures and link creation, link-level optical impairments, and the Doppler effect make packet routing a major challenge in satellite data networks. This is especially true for dense LEO satellite networks where network events occur frequently. Packet addressing is another challenge. Furthermore, satellite onboard processing capabilities are limited, so it is desirable to limit the amount of onboard processing required to perform functions such as network routing.
[0035] One issue in satellite networks involves flooding behavior and integration with the network's terrestrial segments. Internet Protocol (IP)-based routing does not scale well over very large, flat satellite networks that require minimum-latency (distance) routes. This is because satellite network topology is dynamic, and the minimum-distance path changes over time.
[0036] This invention provides a routing scheme that may be applicable to a large number of large satellite networks. Spatial location can be used as part of the network node identifier. Packet routing can be used based on the geographic location of the data packet, as well as a link cost metric defined as the communication link length or associated with the communication link length. Therefore, in some embodiments, the network route for packet forwarding can be determined solely based on location (e.g., longitude / latitude) information. This helps to route packets from source to destination with minimal communication link distance.
[0037] Link failures occur frequently in large satellite networks. In single-hop geolocation routing during link failures, alternative path routing can deviate packets from their destinations. This often leads to single-hop geolocation routing failure. The reason for this problem is that the entire network area may be invisible to every node. Network convergence is relatively slow because performing network state updates (e.g., through flooding) is time-consuming. When the network state changes frequently, this results in network information at each node not adequately tracking the true network state.
[0038] When using a LEO satellite mesh network to route data packets to ground destinations, it is important to note that satellite constellations typically move rapidly relative to their destinations. This makes it difficult to determine the path for forwarding data packets within a given timeframe to efficiently reach the destination. For example, it might be desirable to determine which target satellite is currently closest (or close enough) to the ground destination so that data packets can be routed along the path to that satellite. Constellation geometry can facilitate this routing. Specifically, according to embodiments of the invention, a satellite constellation can be used to route data packets to the target satellite that is geometrically closest to the destination location. To achieve this, geographic location routing can be employed, where the destination address of each data packet includes an indication of the geometric (geographical) location of the packet's destination. For example, this location can be a part of the destination address. Geographic location routing can also be used in other scenarios. With geographic location routing, data packets specify the physical location of the destination in their headers, etc. The physical location can be given by spatial coordinates, which can be represented using latitude and longitude, coordinates in a polar coordinate system, or coordinates in a Cartesian coordinate system, etc.
[0039] Packet routing typically involves a node (e.g., a satellite) identifying the next-hop node to which the packet should be forwarded when it possesses the packet. The next-hop node should nominally be "closer" to the target node (e.g., the target satellite) and the final packet destination than the current node. The target node can be chosen as either the node closest to the final packet destination within the limited local neighborhood of the node possessing the packet, or one of the nodes closest to the final packet destination. A routing table can be maintained to identify the appropriate next-hop node based on the packet's destination information. Distributed link-state routing protocols, such as Open Shortest Path First (OSPF), can be used to maintain the routing table. Link-state information can be shared among nodes using control plane messaging.
[0040] In networks including mobile nodes such as LEO satellite nodes, the relative motion of satellites with respect to each other, ground nodes, or both leads to time-varying network topology and link availability. Therefore, maintaining global routing tables and link-state information becomes a challenging task. Thus, it is useful to consider alternative routing methods that can be implemented using limited information. This limited information may consist only of the node locations and link-state information of nodes within the local neighborhood of a given node making a routing decision. For example, according to embodiments of the invention, each network node maintains the node locations and link-state information of a limited portion of the network in which that network node is located. Data packets specify their destination location using geographical coordinates, etc., in their packet headers. Therefore, a network node can determine the distance from each node within its local neighborhood to the final destination.
[0041] Figure 1The orthodromic distance 105 between two satellites 110 and 115 orbiting a sphere (Earth) 120 is shown. The orthodromic distance 107 between two points 112 and 117 on the sphere is also shown. Point 112 is located at the intersection of a line or vector passing through the sphere 120 and also through the position of a given point 125 (typically at the center of the sphere 120) and satellite 110. Point 117 is located at the intersection of a line or vector passing through the sphere 120 and also through the position of a given point 125 and satellite 115. The orthodromic distance 107 is the length of the arc between points 112 and 117, where the arc is a portion of a circle defined by the intersection of the surface of the sphere 120 and the plane passing through points 112, 117, and 125. (Note that this plane can be equivalently defined as passing through the positions of satellites 110 and 115 and point 125.) The great circle distance 105 is similarly the length of the arc between the positions of satellites 110 and 115, where the arc is a portion of a circle defined by the intersection of a plane concentric with sphere 120 and the sphere, and includes the orbits of satellites 110 and 115. The great circle distance is also called the great circle arc distance.
[0042] This invention relates to routing and forwarding data packets in a communication network. Data packets are routed using geographic location so that they specify the physical destination location in their packet headers, etc. Figure 2 The method 200 provided according to these embodiments includes: maintaining physical location information of nodes directly coupled to a first node in a limited portion of a network 210. The physical location information may be provided by geographic coordinates, such as, but not necessarily limited to, latitude / longitude coordinates. The method further includes: maintaining routing information for a limited portion of the network 220. The routing information may include, for example, the current availability of communication links between nodes in the limited portion of the network.
[0043] For clarity, the finite portion of the network can be considered to include at least one node indirectly coupled to the first node through at least one intermediate node. That is, the finite portion of the network includes not only nodes located within one hop of the first node. While this is not absolutely necessary for operability, it allows meaningful routing to be performed within the finite portion of the network.
[0044] Method 200 further includes: selecting a target node 230. The target node is selected from nodes in a finite portion of the network such that the target node satisfies a predetermined target of great circle (great circle arc) distance with respect to the physical location of the data packet's destination. The target may be, for example, the target node being the node closest to the data packet's destination (in a finite portion of the network), or the target node being one of the k nodes relatively close to the data packet's destination (in a finite portion of the network).
[0045] To support the selection of target nodes, the method may include: determining corresponding great circle distances (or approximate distances) between the physical locations of at least some nodes in a finite portion of the network and the destination of the data packet. The great circle distances can be calculated or approximated based on the Haversine or a Cartesian function.
[0046] Method 200 further includes: determining, based on routing information, the next node that 240 belongs to a finite portion of the network and is located on an available network path between the node and the target node. For example, the next node can be determined using a shortest path first (SPF) algorithm based only on information about a finite portion of the network. The method also includes: forwarding the data packet 250 to the next node. Method 200 can then be repeated at the next node or at some or all of the subsequent nodes where the data packet is received.
[0047] Based on the above, each node in the network operates within a predefined, finite portion of the network, which is a strict subset of the entire network. Nodes maintain information about this finite portion of the network. Within this finite portion, routing protocols, such as or similar to Open Shortest Path First (OSPF), can be used for routing. Routing can utilize the geographic address specified in the data packet. This results in the packet being forwarded to a target node closer to its destination. The node closest to the target node on the path is called the next node. A node routes a packet to the next node located on the path to the target node (e.g., a Shortest Path First (SPF) path). The Shortest Path First calculation can be performed using Dijkstra's algorithm. The above process can be repeated across multiple nodes, for example, at each node receiving the packet being forwarded.
[0048] Figure 3A An exemplary network with an irregular topology is shown. A first node 310 with a data packet and a destination 320 of the data packet are shown. A finite portion 330 of the network coupled to the first node 310 is also shown. The finite portion 330 may also be referred to as the routing area of the first node 310. According to one embodiment of the invention, the first node determines a target node 332 within the finite portion 330 of the network. Figure 3B The target node 332 is shown.
[0049] In one embodiment, the target node 332 is selected as the node within a finite portion 330 of the network that has the shortest great circle distance to the destination 320. As described above, the great circle distance can be calculated using the semi-versus formula based on the node's latitude and longitude coordinates or according to the relevant Cartesian formula. The great circle distances from multiple network nodes (e.g., some or all nodes within the finite portion 330 of the network) to the destination 320 can be determined. The node with the shortest great circle distance to the destination can then be selected from these multiple nodes. For this purpose, the first node 310 can maintain the physical location information of some or all nodes in the finite portion 330 of the network.
[0050] The network also maintains routing information for a finite portion 330 of the network. This routing information may include information about available communication links between nodes within the finite portion 330 of the network. For example, location and routing information can be maintained by passing messages between nodes, indicating and responding to changes in location, routing, or both. The routing information may include a routing table, which is maintained based on one or both dynamic updates to the state of communication links between nodes in the finite portion of the network and dynamic changes to the network topology. The network topology may refer to the nodes and links present in the network (e.g., its finite portion).
[0051] Still referencing Figure 3B The first node uses its routing information (e.g., a routing table) to determine the next node 334 directly coupled to it, to which the packet should be forwarded. The next node 334 follows the available (e.g., shortest) path to the target node 332. The first node can select the target node based on latitude / longitude information. The first node can then look up the correct next node in its (e.g., SPF) routing table, i.e., the next-hop node along the path to the selected target node. Those skilled in the art will readily understand that various criteria can be used to select the next node. For example, the next node can be selected as belonging to an SPF route determined using Dijkstra's algorithm. However, the next node should follow an available network path between the first node and the target node. The selected available network path can be the preferred path to the target node, determined according to predetermined rules (e.g., SPF rules). For clarity, the next node is the node directly coupled to the first node and located on this preferred path.
[0052] Figure 3CThe diagram illustrates how the next node 334 repeats the above process when receiving data packets. The next node 334 observes the different finite parts 340 of the network (i.e., maintains location and routing information for these finite parts) and selects another target node 342 as the node within the different finite parts 340 that has the shortest great circle distance to the destination 320. Then, node 334 uses its routing information to select another next node, which is precisely the node 332 to which the data packet is to be forwarded. This next next node 332 is located on an available path to the target node 342. In other words, the next node 334 repeats the same process as the first node 310.
[0053] For the sake of completeness, Figure 3D , Figure 3E and Figure 3F The above process is repeated three times. Figure 3D In this process, node 332, which holds the data packet, sees a finite portion 350 of the network, selects a target node 352, and forwards the data packet to the selected next node along the available path leading to the target node 352. The selected next node is node 342. The finite portions of the network seen by adjacent nodes often overlap, as shown in the figure.
[0054] exist Figure 3E In the network, node 342, possessing the data packet, sees a finite portion 360 of the network, which now includes destination 320. Therefore, node 342 selects destination 320 as the target node. Node 342 forwards the data packet to the selected next node along the available path to target node 320. The selected next node is node 362. Note that node 352 could also be the selected next node; however, node 342 has different information than node 332, causing the routing path to change. That is, it is not guaranteed that the data packet passes through the target node from the previous node. The set of target nodes and intermediate nodes traversed by the data packet can be different.
[0055] exist Figure 3F In this scenario, node 362, possessing the data packet, observes a finite portion 370 of the network, which includes the destination 320. Node 362 forwards the data packet along the available path to the destination node 320 to a selected next node. In this case, the selected next node is actually the destination node 320. The selected destination node is indeed the final destination of the data packet, and the distance between the selected destination node and the destination is 0.
[0056] In the example above, the target node can be selected as the node closest (in terms of great circle distance) to the final packet destination. The selection is made from all nodes within a finite portion of the network. However, in various other embodiments, the target node can be selected from a plurality of candidate target nodes that are relatively close to the final packet destination or satisfy a predetermined objective. For example, k nodes closest (in terms of great circle distance) to the final packet destination can be identified, and the target node can then be selected from these k nodes. The selection can be random or based on predetermined and potentially arbitrary rules.
[0057] As mentioned above, the great circle distance between two nodes can be determined using the semi-sine function. The semi-sine function is used to determine the great circle distance between two points on the surface of a sphere, where the latitude and longitude coordinates of the two points are given. The semi-sine function itself is given by the formula:
[0058] here, d It's distance. r φ1, λ1, and (φ2, λ2) are the latitude and longitude coordinates of the first and second points, respectively. 2r It can be removed from the formula for calculating the distance metric, as it applies equally to all distances.
[0059] It should be noted that the great circle distance can be approximated, and it is not necessary to evaluate the semi-versus function for every pair of points. For example, simpler functions (such as polynomials or piecewise functions) can be used to perform lookup table operations or evaluation operations. The output of such operations can be approximately the same as the output of the semi-versus function. Furthermore, the operation of approximating the semi-versus function is not necessarily an exact approximation. The distance measurement is used in this invention to compare different distance pairs. Specifically, the approximate distance metric only needs the following property: when the distance between points A and B (e.g., measured using the semi-versus) is greater than the distance between points C and D, the approximate distance metric applied to points A and B is greater than the approximate distance metric applied to points C and D (note that points A and C can be the same point). To achieve the objectives of this invention, this approximate distance metric can be called the approximate semi-versus function. The approximation function makes the routing decision (i.e., target node selection) made using the approximation function substantially the same as the routing decision made using the semi-versus function or another function that accurately determines the great circle distance.
[0060] Alternatively, the great circle distance can be evaluated using a Cartesian method, described below. The positions of two points on the surface of a sphere (e.g., the Earth or an orbiting sphere at a given altitude) are represented by two vectors, P1 and P2. These two vectors originate at position O, typically the center of the sphere, with the first vector terminating at the first point and the second vector at the second point. These two vectors are represented in a three-dimensional Cartesian coordinate system. Vector P1 has X, Y, and Z coordinates in this coordinate system, given by the vector values (P1x, P1y, P1z), while vector P2 has coordinates given by the values (P2x, P2y, P2z). In this case, it can be shown that the great circle distance between the two points is a function of the dot product of the two vectors P1 and P2. Specifically, the great circle distance is given by the following equation:
[0061] Alternatively, an approximate distance to the great circle given by the functions described above can be used. For example, the function cos... –1 Approximate functions, such as linear or polynomial approximations, can be used instead. The Cartesian function shown above can be approximated in various ways similar to the semi-versine function.
[0062] According to the Cartesian function, the great circle distance between two network locations can be determined or approximated by calculating the inner product of a first vector and a second vector. The first vector originates from a first point (e.g., the center of the Earth) and points to a location within the network locations, while the second vector originates from the first point and points to another location within the network locations. One location within the network locations can be the location of a node in a finite part of the network, and the other location can be the physical location of the data packet's destination.
[0063] For simplicity, in some embodiments, when two locations are at different altitudes (e.g., one location is the location of a ground network node, and the other is the location of a satellite node), the two nodes can be assumed to be at the same altitude to calculate the great circle distance. In other embodiments, additional distance can be added to the calculated great circle distance to reflect the altitude difference.
[0064] The finite portion of a network can have a specific or configurable size. Larger sizes typically require high-end maintenance, such as in message passing and computation, to keep the routing table up-to-date. However, larger sizes are also advantageous because the shortest path to the destination node is closer to the shortest path to the final packet destination. The finite portion of the network can be sized according to operational requirements. For example, its size can be set based on the network's link-break characteristics. When link breaks are expected to be more frequent, the finite portion of the network can be larger, thus including more nodes. When link breaks are expected to be less frequent, the finite portion of the network can be smaller.
[0065] The size of a finite portion of the network (for one or more nodes) can be specified based on hop count, radius, or spatial region. For example, a finite portion of the network can be specified as including: all nodes within a predetermined number of hops (e.g., greater than 1) of the first node, all nodes within a predetermined distance of the first node, or all nodes within a predetermined spatial region (e.g., a sphere or a regular or irregular region) including or adjacent to the first node. The first node can be located at the edge or inside (e.g., at the center of) the finite portion of the network. The size of the finite portion of the network can then be controlled by adjusting the predetermined number of hops, distance, or spatial region. In this case, the first node is the node that defines the finite portion of the network. Different nodes can see different finite portions of the network.
[0066] Since each node maintains only the physical locations and routing information of a finite portion of the network (e.g., all nodes within n hops of a given node), each node only needs to maintain a limited amount of information. For example, each node might only need to maintain a database of information about a finite number of nodes (i.e., nodes within a finite portion of its network). Furthermore, nodes only need to compute paths (e.g., using the SPF algorithm), considering nodes within their finite portion, rather than all nodes in the network. This not only reduces the memory required to maintain such a database in each node but also reduces the SPF computation time (Dijkstra's runtime). When the network portion is small enough, SPF can be computed almost in real time. However, for reliable routing, it is useful for each node to have the latest state of all links in the finite portion of the network that it sees. In some embodiments, to achieve this, any event occurring about any link or node is flooded to at least all network nodes that keep track of the state of that link or node in their databases. That is, events in a given network location are passed to nodes that consider that given network location as part of a finite portion of the network. This approach is simpler than flooding state update messages across the network because state update messages in response to a given event are limited to a small portion of the entire network. For example, if the network portion size is limited to all nodes within n hops of a given node, it might be necessary to route any event (such as a link / node failure or creation) to all network nodes within n hops (instead of more) of the event. It's worth noting that this reduces the complexity of control plane operations as well as data plane operations because the forwarding table is small and can be looked up relatively quickly. For example, control plane operations could include flooding and updating the network topology on nodes, updating SPF calculations, and routing and forwarding tables.
[0067] Nodes in a network can be relatively fixed, or they can move relative to each other. For example, in a network that includes satellite network nodes or terrestrial mobile network nodes, some or all of the nodes move relative to each other. In response to the movement of nodes, the physical location information possessed by a network node (relative to other nodes in a finite part of the network) can change over time. This change can be in response to internally stored timelines, such as calendars or ephemeris data, or to external messages indicating such location changes.
[0068] Figure 4 A great circle routing method 400 comprising two main phases is illustrated according to an embodiment of the present invention. In the first phase, target selection 410 is performed. Target selection includes selecting a target node that satisfies a great circle distance target, as described herein. The target node can be selected from a limited portion of the network being tracked by the node performing the target selection. In the second phase, one-hop shortest path packet forwarding 420 is performed, wherein a next node is determined, wherein the next node belongs to a limited portion of the network and is located on an available network path between the node and the target node, and the packet is forwarded to the next node.
[0069] Some embodiments of the present invention offer the following potential advantages: The scaling problem in broadband satellite networks is solved by requiring each node to track only a limited portion of the network. A distributed link-state protocol is implemented in large, flattened networks. Performance and routing are directly related by using distance as a cost metric. The routing range of individual network elements is reduced, but gateway routers are not necessarily required. The requirement for flooding information across the network is reduced. Shortest path calculations and associated data structures are reduced. Routing is simplified by modifying the use of the link-state protocol and combining it with geographic coordinates. All nodes can potentially operate in the same manner. Multiple subnet behaviors can be obtained without the need for gateway routers. Computational and storage requirements are also reduced, which is beneficial for resource-constrained deployments (e.g., in satellites and IoT devices).
[0070] While embodiments of the present invention are primarily described in conjunction with routing in satellite mesh networks (e.g., with polar, Walker-Delta, or other constellation configurations), it should be understood that the present invention can also be applied to other network scenarios, such as other geometric or geographic routing systems that do not necessarily involve satellites, or other non-geometric or non-geographic routing systems, where data packets are routed solely based on network addresses (e.g., through nested subnetting) and network topology. Embodiments of the present invention can be applied to networks with stable topologies or networks with dynamic or hyper-dynamic topology changes.
[0071] Embodiments of the present invention can be implemented using electronic hardware, software, or any combination thereof. In some embodiments, the forwarding plane is implemented by one or more computer processors executing program instructions stored in memory. In some embodiments, the forwarding plane is implemented partially or entirely in hardware, for example using one or more field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs) to rapidly perform the processing operations required to implement the forwarding plane operation. Forwarding plane operation may include: determining the cost or utility (e.g., distance or approximate distance) associated with forwarding packets to a destination device, determining a subset of destination devices with the lowest cost or highest utility, selecting one destination device, and forwarding packets to the selected destination device.
[0072] Figure 5 An embodiment of the present invention illustrates an apparatus 500 for routing data packets in a network. The apparatus is located at a node 510 of the network that possesses the data packets, such as, but not necessarily limited to, a satellite node. The apparatus includes a network interface 520 and processing electronics 530. The processing electronics may include a computer processor that executes program instructions stored in memory, or other electronic devices such as digital circuits, including FPGAs and ASICs. The network interface may include an optical communication interface or a radio communication interface, such as a transmitter and receiver. The apparatus may include several functional components, each implemented partially or entirely using the underlying network interface 520 and processing electronics 530.
[0073] The apparatus includes a network tracking component 540 for maintaining current information about a finite portion of the network directly coupled to node 510. This information may include physical location information of nodes within the finite portion of the network and routing information for that portion. This information can be maintained by receiving and processing control plane messages representing current network conditions, or by predicting changes in network conditions or combinations thereof based on an internal model. The apparatus also includes a target node selection component 545. This component selects target nodes from the nodes in the finite portion of the network, wherein the target nodes satisfy a given target of great circle distance to the physical location of a data packet's destination. This may include selecting the target node as the node closest to the data packet's destination location, or selecting a target location from k nodes closest to the data packet's destination location.
[0074] The apparatus may include a distance calculation component 547, which may be part of or a separate component coupled to a target node selection component 545. The distance calculation component is used to determine great circle distances or approximate great circle distances between pairs of network nodes, between network nodes and packet destination locations, or between geographic coordinates.
[0075] The apparatus further includes a packet routing component 550 for determining, based on routing information, the next node belonging to a finite portion of the network and located on an available network path between a node and a target node. The next node can be determined according to a routing table, which selects the next node based on the target node. The routing table can be maintained by a network tracing component 540 based on current network information. For this purpose, for example, the network tracing component can maintain the routing table according to a shortest path first algorithm, which determines the shortest paths to potential target nodes and associates these paths with the next node along the corresponding shortest path to the target node.
[0076] The device also includes a packet forwarding component 555 for forwarding packets to the next node using the network interface 520.
[0077] Figure 6 This is a schematic diagram of an electronic device 600 provided in different embodiments of the present invention. The electronic device 600 can perform any or all of the methods and features described explicitly or implicitly herein. For example, a computer equipped with network capabilities can be configured as the electronic device 600. The electronic device 600 can be used to implement... Figure 5 Device 500, etc.
[0078] As shown in the figure, the device includes a processor 610, such as a Central Processing Unit (CPU) or a dedicated processor, such as a Graphics Processing Unit (GPU) or other such processor unit; memory 620; non-transient mass storage 630; I / O interface 640; network interface 650; and transceiver 660, all of which are communicatively coupled via a bidirectional bus 670. According to some embodiments, any or all of the elements shown may be used, or only a subset of the elements may be used. Furthermore, device 600 may include multiple instances of some elements, such as multiple processors, multiple memories, or multiple transceivers. Additionally, elements of the hardware device may be directly coupled to other elements without a bidirectional bus. Alternatively or additionally, in addition to processors and memory, other electronic devices such as integrated circuits may be employed to perform the required logical operations.
[0079] Memory 620 may include any type of non-transitory memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), read-only memory (ROM), or combinations thereof. Mass storage unit 630 may include any type of non-transitory storage device, such as a solid-state drive, hard disk drive, disk drive, optical disk drive, USB flash drive, or any computer program product for storing data and machine-executable program code. According to some embodiments, memory 620 or mass storage unit 630 may have statements and instructions executable by processor 610 recorded thereon for performing any of the above-described methods.
[0080] It should be understood that although specific embodiments of the technology have been described herein for illustrative purposes, various modifications may be made without departing from the scope of the technology. The specification and drawings are to be considered merely as an illustration of the invention as defined in the appended claims, and any and all modifications, variations, combinations, or equivalents falling within the scope of this specification are contemplated. Specifically, computer program products or program elements for storing machine-readable signals, or program storage or storage devices such as magnetic or optical, magnetic tape, or optical discs, are provided within the scope of this technology for controlling the operation of a computer according to the methods of this technology and / or constructing some or all of its components according to the systems of this technology.
[0081] The actions associated with the methods described herein can be implemented as coded instructions in a single computer program product. In other words, the computer program product is a computer-readable medium in which software code is recorded to execute the method when the computer program product is loaded into memory and executed on the microprocessor of a wireless communication device.
[0082] Furthermore, each operation of this method can be executed on any computing device (e.g., personal computer, server, PDA, etc.) based on one or more program elements, modules, or objects generated from any programming language such as C++ or Java. Additionally, each operation, or the file or object implementing each operation, can be executed by dedicated hardware or a circuit module designed for this purpose.
[0083] Based on the description of the above embodiments, the present invention can be implemented solely in hardware, or it can be implemented using software and necessary general-purpose hardware platforms. Based on this understanding, the technical solution of the present invention can be embodied in the form of a software product. The software product can be stored in a non-volatile or non-transitory storage medium, such as a compact disk read-only memory (CD-ROM), a USB flash drive, or a removable hard drive. The software product includes a number of instructions that enable a computer device (personal computer, server, or network device) to perform the methods provided in the embodiments of the present invention. For example, such execution may correspond to the simulation of logical operations as described herein. According to exemplary embodiments, the software product may additionally or alternatively include multiple instructions that enable a computer device to perform operations configuring or programming digital logic devices.
[0084] Although the invention has been described with reference to specific features and embodiments thereof, it will be apparent that various modifications and combinations thereof can be made without departing from the invention. The specification and drawings are to be regarded merely as an illustration of the invention as defined in the appended claims and any and all modifications, variations, combinations or equivalents falling within the scope of this specification are to be considered.
Claims
1. A method for routing data packets in a network, characterized in that, The network is a satellite mesh network, and some or all of the network nodes and nodes in a finite part of the network are satellite network nodes; The data packet specifies the physical location of the destination of the data packet, and the method includes: at a first node in the network that possesses the data packet; Maintain the physical location information of nodes directly coupled to the first node in a finite portion of the network, and maintain the routing information of the finite portion of the network, wherein the finite portion of the network includes at least one node indirectly coupled to the first node through at least one intermediate node, and the size of the finite portion of the network is dynamically determined according to the link interruption characteristics of the network. A target node is selected from the nodes in the limited portion of the network, wherein the target node satisfies a predetermined target of great circle distance with respect to the physical location of the destination of the data packet; Based on the routing information, determine the next node that belongs to the limited portion of the network and is located on the available network path between the node and the target node; The data packet is forwarded to the next node.
2. The method according to claim 1, characterized in that, The method further includes: determining a corresponding great circle distance or approximate distance between at least some of the nodes in the finite portion of the network and the physical location of the destination of the data packet.
3. The method according to claim 2, characterized in that, The great circle distance is determined by calculation using a semi-sine function, a Cartesian function, an approximate semi-sine function, or an approximate Cartesian function. The Cartesian function calculation includes calculating the inner product of a first vector and a second vector. The first vector originates from a first point and points to the physical location of one of the nodes in the finite portion of the network, and the second vector originates from the first point and points to the physical location of the destination of the data packet.
4. The method according to any one of claims 1 to 3, characterized in that, The routing information includes a routing table, which is maintained based on one or both of the dynamic state updates of communication links between nodes in the finite portion of the network and the dynamic changes in the network topology.
5. The method according to any one of claims 1 to 4, characterized in that, The determination of the next node includes: determining a preferred path through the limited portion of the network to the target node according to a predetermined rule, and determining that the next node is a node directly coupled to the first node and located on the preferred path.
6. The method according to any one of claims 1 to 5, characterized in that, The physical location of the destination is encoded in the header of the data packet.
7. The method according to any one of claims 1 to 6, characterized in that, The physical location of the destination is represented using latitude and longitude, coordinates in a polar coordinate system, or coordinates in a Cartesian coordinate system.
8. The method according to any one of claims 1 to 7, characterized in that, The limited portion of the network includes one or more of the following: all nodes of the network located within a predetermined number of hops of the first node, wherein the predetermined number is greater than 1; all nodes of the network located within a predetermined distance of the first node; and all nodes located within a predetermined spatial region including or adjacent to the first node.
9. The method according to claim 8, characterized in that, The predetermined quantity, the predetermined distance, or the predetermined spatial area are determined based on the link interruption characteristics of the network.
10. The method according to any one of claims 1 to 9, characterized in that, The physical location information of the node changes over time in response to the movement of the node.
11. The method according to any one of claims 1 to 11, characterized in that, The method further includes: selecting the target node from a plurality of candidate target nodes, wherein the plurality of candidate target nodes are nodes in the limited portion of the network that satisfy the predetermined target.
12. The method according to claim 12, characterized in that, The predetermined target means that a node is one of the candidate target nodes when it is among the k nodes in the finite part of the network that are closest to the physical location of the destination of the data packet in the great circle distance.
13. The method according to any one of claims 1 to 13, characterized in that, The predetermined target refers to the physical location of the target node that is closest to the destination of the data packet in a great circle distance among all nodes in a finite part of the network.
14. A method for routing data packets in a network, characterized in that, The network is a satellite mesh network, and some or all of the network nodes and nodes in a finite part of the network are satellite network nodes; The data packet specifies the physical location of the destination of the data packet, and the method includes: at each of the plurality of nodes in the network when the data packet is possessed; Maintain the physical location information of the corresponding nodes directly coupled to the node in a finite part of the network, and the routing information of the finite part of the network, wherein the finite part of the network includes at least one node indirectly coupled to the node through at least one intermediate node, and the size of the finite part of the network is dynamically determined according to the link interruption characteristics of the network. A target node is selected from the nodes in the limited portion of the network, wherein the target node satisfies a predetermined target of great circle distance with respect to the physical location of the destination of the data packet; Based on the routing information, determine the next node that belongs to the limited portion of the network and is located on the available network path between the node and the target node; The data packet is forwarded to the next node.
15. An apparatus for routing data packets in a network, characterized in that, The network is a satellite mesh network, and some or all of the network nodes and nodes in a limited portion of the network are satellite network nodes; the data packet specifies the physical location of the destination of the data packet, the device is located at the first node in the network that possesses the data packet, and the device includes a network interface and processing electronics and is used for: Maintain the physical location information of nodes directly coupled to the first node in a finite portion of the network, and maintain the routing information of the finite portion of the network, wherein the finite portion of the network includes at least one node indirectly coupled to the first node through at least one intermediate node, and the size of the finite portion of the network is dynamically determined according to the link interruption characteristics of the network. A target node is selected from the nodes in the limited portion of the network, wherein the target node satisfies a predetermined target of great circle distance with respect to the physical location of the destination of the data packet; Based on the routing information, determine the next node that belongs to the limited portion of the network and is located on the available network path between the node and the target node; The data packet is forwarded to the next node.
16. The apparatus according to claim 15, characterized in that, The device is also used to determine a corresponding great circle distance or approximate distance between at least some of the nodes in the finite portion of the network and the physical location of the destination of the data packet.
17. The apparatus according to claim 15 or 16, characterized in that, The determination of the next node includes: determining a preferred path through the limited portion of the network to the target node according to a predetermined rule, and determining that the next node is a node directly coupled to the first node and located on the preferred path.
18. The apparatus according to any one of claims 15 to 17, characterized in that, The limited portion of the network includes one or more of the following: all nodes of the network located within a predetermined number of hops of the first node, wherein the predetermined number is greater than 1; all nodes of the network located within a predetermined distance of the first node; and all nodes located within a predetermined spatial region including or adjacent to the first node.
19. The apparatus according to claim 18, characterized in that, The predetermined quantity, the predetermined distance, or the predetermined spatial area are determined based on the link interruption characteristics of the network.
20. The apparatus according to any one of claims 15 to 19, characterized in that, The device is further configured to select the target node from a plurality of candidate target nodes, wherein the plurality of candidate target nodes are nodes in the limited portion of the network that satisfy the predetermined target.
21. The apparatus according to claim 20, characterized in that, The predetermined target means that a node is one of the candidate target nodes when it is among the k nodes in the finite part of the network that are closest to the physical location of the destination of the data packet in the great circle distance.
22. The apparatus according to any one of claims 15 to 21, characterized in that, The predetermined target refers to the physical location of the target node that is closest to the destination of the data packet in terms of great circle distance among all nodes in the finite part of the network.