Packet forwarding with partial ordering including path cost or utility
By partially sorting the path cost or utility in a satellite mesh network, identifying and selecting the destination equipment with the lowest cost or the highest utility, and forwarding data packets, solving the problems of complexity and low efficiency of routing computing in the prior art, and achieving more efficient data packet forwarding.
Patent Information
- Application Number
- CN202180030851.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-05-26
- Filing Date
- 2021-05-10
- Publication Date
- 2025-06-06
- Estimated Expiration
- 2041-05-10
AI Technical Summary
The prior art has a large amount of calculations when quickly calculating effective routing paths in satellite mesh networks, and geographic routing needs to be improved in terms of computing efficiency and applicability.
By partially sorting the path cost or utility in the network, unsorted subsets of the k next destination devices with the lowest cost or the highest utility are identified and a destination device is selected to forward the packet.
Reduces the complexity and computational volume of routing computing, and improves the efficiency and applicability of packet forwarding, especially in dynamic satellite mesh networks.
Smart Images

Figure CN115443686B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims the benefit of priority to U.S. Patent Application No. 16 / 882,952, filed on May 26, 2020, entitled “Packet Forwarding Incorporating Partial Sorting of Path Costs or Utilities,” the entire contents of which are incorporated herein by reference. Technical Field
[0003] The present application relates to packet data networks, such as optical satellite mesh networks, and more particularly to a method and apparatus for supporting forwarding of data packets in such networks. Background Art
[0004] A constellation of low earth orbit (LEO) satellites is being developed to provide internet routing services, among other things. It is being proposed to distribute a group of satellites in space and organize them into a mesh network. Free space optical (i.e., laser) links have been proposed as a way to provide high bandwidth network connectivity between satellites. Other types of links, such as radio frequency or microwave links, are also possible.
[0005] Packets can be routed along a variety of paths through satellite mesh networks. Since satellites move rapidly relative to the Earth’s surface, routing packets to ground destinations requires taking into account the satellite’s location and the distance to the destination location. Quickly calculating valid routing paths in these scenarios is computationally intensive, and current routing methods require improvements and customization of satellite mesh networks.
[0006] Geographic routing involves routing packets based on geographic location information, without necessarily relying on network topology information. Such routing schemes are known for wireless networks but have not been widely used in satellite networks. Furthermore, these schemes need to be improved in terms of computational efficiency and / or applicability to satellite mesh networks.
[0007] Therefore, there is a need for a method and apparatus for supporting forwarding of data packets in satellite mesh networks and similar networks that avoids or mitigates 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 application. It is not necessary to admit nor should it be construed that any of the above information constitutes prior art against the present application. Summary of the invention
[0009] The purpose of the embodiments of the present application is to provide a method and apparatus for forwarding data packets, for example in a satellite network utilizing multipath forwarding, wherein the path costs or utilities are partially sorted. The sorting is sufficient to identify a set of k next destinations with the lowest cost or highest utility, but these next destinations need not be fully sorted by cost.
[0010] According to an embodiment of the present application, a method for routing a data packet in a network is provided. The method comprises: for each of a plurality of destination devices that can further process the data packet to route the data packet to another (e.g., final) destination, determining a corresponding cost or utility associated with forwarding the data packet to the one of the plurality of destination devices. The method comprises: for a predetermined value k, determining an unordered subset of k destination devices with the lowest cost or the highest utility. The method comprises: selecting a destination device in the subset of the destination devices. The method comprises: forwarding the data packet to the selected one of the destination devices in the subset of the destination devices.
[0011] According to an embodiment of the present application, a device for routing data packets in a network is provided. The device includes a cost determiner, which is used to: for each destination device among a plurality of destination devices that can further process the data packet to route the data packet to other destinations, determine the corresponding cost or utility associated with forwarding the data packet to the one destination device among the plurality of destination devices. The device includes a destination subset selector, which is used to: for a predetermined value k, determine an unordered subset of k destination devices with the lowest cost or the highest utility. The device includes a destination selector, which is used to select a destination device in the subset of the destination devices. The device includes a data packet forwarder, which is used to forward the data packet to the selected one destination device in the subset of the destination devices.
[0012] Embodiments have been described above in conjunction with various aspects of the application, and these embodiments can be implemented based on these aspects. It will be appreciated by those skilled in the art that embodiments can be implemented in conjunction with the aspects in which they are described, but can also be implemented together with other embodiments of this aspect. When the embodiments are mutually exclusive or incompatible with each other, this will be apparent to those skilled in the art. Some embodiments can be described in conjunction with an aspect, but can also be applied to other aspects, which will be apparent to those skilled in the art. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Further features and advantages of the present application will become apparent from the following detailed description in conjunction with the accompanying drawings.
[0014] Figure 1AIt shows that in the prior art scenario to be solved by the embodiments of the present application, a satellite moves rapidly relative to a ground destination communicatively coupled to the satellite.
[0015] Figure 1B A portion of a satellite constellation communicating with a terrestrial destination provided by one embodiment of the present application is shown.
[0016] Figure 1C A portion of a satellite constellation communicating with a terrestrial destination provided by another embodiment of the present application is shown.
[0017] Figure 2 A method for routing data packets in a network provided by an embodiment of the present application is shown.
[0018] Figure 3 It is a block diagram of forwarding plane operation provided by an embodiment of the present application.
[0019] Figure 4 It is a block diagram of forwarding plane operation provided by another embodiment of the present application, wherein the forwarding cost is equal to the distance to the destination.
[0020] Figure 5 The comparator element of the sorting network provided by the prior art is shown.
[0021] Figure 6 A four-element sequencing network provided by the prior art is shown.
[0022] Figure 7 A selector assembly including a plurality of comparator elements provided in the prior art is shown.
[0023] Figure 8 A full selector provided in the prior art and used in the embodiments of the present application is shown.
[0024] Fig. 9 An embodiment of the present application provides three Figure 8 A tree of selected objects.
[0025] Fig.10 A method for determining an unordered subset of k destination devices with the lowest cost or the highest utility provided by an embodiment of the present application is shown.
[0026] Fig.11 It is a schematic diagram of an electronic device provided in different embodiments of the present application, and the electronic device can perform any or all operations of the above methods and features explicitly or implicitly described in this document.
[0027] It should be noted that throughout the drawings, like features are identified by like reference numerals. DETAILED DESCRIPTION
[0028] The term "about" as used herein should be understood to include variations relative to the nominal value, for example, variations of + / -10% relative to the nominal value. It should be understood that given values provided herein always include such variations, whether specifically mentioned or not.
[0029] When using a LEO satellite mesh network to route data packets to a terrestrial destination, it is worth noting that the satellite constellation typically moves rapidly relative to the destination. This makes it difficult to determine the path for forwarding data packets at a given time in order to efficiently reach the destination. For example, it is desirable to determine which satellite is currently closest (or close enough) to a terrestrial destination so that the data packet can be routed to that satellite. Constellation geometry can help achieve this routing. Specifically, according to an embodiment of the present application, a satellite constellation can be used to route data packets to the satellite that is geometrically closest to the destination location. To help achieve this, geographic routing can be employed, in which the destination address of each data packet includes an indication of the geometric (geographical) location of the destination of the data packet. For example, this location can be part of the destination address.
[0030] Figure 1A The basic technical difficulty is shown, where the satellite 105 moves quickly (e.g., at 8000 m / s) relative to the ground destination 110. In less than a minute, the satellite in the air can be 300 km away from the destination. Therefore, the route to the destination must be updated in a timely manner.
[0031] Figure 1B A portion of a satellite constellation is shown by way of an example. The satellite constellation includes a first satellite 120 that stores data packets for forwarding to a ground destination 125 and a plurality of intermediate satellites 130, 132, 134, 136, 138, 140. The communication links are shown as dashed lines, and the satellites move relative to the ground. Although each intermediate satellite can communicate with the destination 125, it is desirable for a satellite that is relatively close to the destination to communicate with the destination. In this scenario, the intermediate satellites 130, 132, 134, 136, 138, 140 can all communicate directly with the destination 125.
[0032] Figure 1CA portion of a satellite constellation is also shown by way of another example. The satellite constellation includes a first satellite 120 that stores data packets for forwarding to a terrestrial destination 125 and a plurality of intermediate satellites 150, 152, 154 that are communicatively connected to the first satellite 120 but not directly connected to the destination 125. Other intermediate satellites 160, 162, 164 are communicatively connected to the destination 125 but not directly connected to the first satellite 120. However, the intermediate satellites 150, 152, 154 are communicatively connected to the other intermediate satellites 160, 162, 164. Thus, the first satellite can communicate with the destination via a three-hop path. Other scenarios involving communication links with different numbers of hops are also applicable.
[0033] It should be noted that in Figure 1B and Figure 1C In each scenario, each intermediate satellite to which the first satellite 120 can potentially transmit a packet is at an identifiable physical distance from the destination 125. This distance can be used to represent the type of cost associated with forwarding the packet to that particular intermediate satellite. When the intermediate satellite is farther from the destination, it is considered undesirable to route the packet to that intermediate satellite, and therefore the cost is higher. This applies to the metric of whether the intermediate satellite can transmit the packet directly to the destination (although scenarios can be designed where the total path length traversed by the packet is not minimized under this "greedy" forwarding method).
[0034] More generally, considering a data packet at a first location (e.g., a first satellite), a cost or utility may be associated with forwarding the data packet to a destination device (e.g., an intermediate satellite that is communicatively coupled directly to the first satellite). In some cases, this may be further generalized to a destination device that is indirectly coupled to the first location, however, for simplicity, only direct coupling is considered here. Once these costs or utilities are determined, a destination device associated with a relatively low (or lowest) cost or a relatively high (or highest) utility may be selected, and the data packet may be forwarded to the selected destination device. In a dynamic network, such as in a fast-orbit satellite constellation or network where the destination device moves frequently, the cost or utility may be updated continuously or intermittently. In general, the cost or utility may represent distance, signal quality, charges, bandwidth limitations, quality of service, or fairness limitations, etc.
[0035] Routing systems typically include different subsystems. Two notable subsystems are referred to in this article as the control plane and the forwarding plane. The forwarding plane is sometimes also called the user plane or data plane. The control plane is responsible for monitoring the network topology and establishing routes. These routes can be programmed into the forwarding plane, which actually uses these routes to forward packets. The forwarding plane is usually implemented in hardware for high-performance systems and in software for low-performance systems (for example, Linux includes an IP forwarding plane in the kernel).
[0036] In normal IP forwarding, when there are multiple routes of equal cost or utility, it is desirable to select a specific route for each flow. However, different flows between the same pair of nodes may take different of the multiple routes. The intent here is to multiplex between routes of equal cost to provide a form of load balancing.
[0037] In a geometry-based routing system, the path cost can be based on the path distance. Therefore, it is unlikely that there are multiple routes with the same cost. However, different routes can have substantially similar costs. This is particularly applicable to satellite mesh networks. An embodiment of the present application provides multipath forwarding in such a system. Specifically, an embodiment of the present application is used to identify paths with similar but not necessarily identical costs (or utilities), and to select from these paths when it is necessary to forward a data packet. A selector can be used to identify paths with similar costs (or utilities) without completely sorting the paths by cost. A threshold function can be combined with a selector to identify paths with similar costs (or utilities). For example, a path can correspond to a next-hop destination and an interface associated therewith.
[0038] According to various implementations, the forwarding plane is configured with a list of data entries (tuples), each of which includes a destination address and a corresponding interface. The corresponding interface is used to forward the data packet to a given destination address. For example, an interface may correspond to a specific optical communication link. For example, an interface may be a free-space optical link between satellites. Different interfaces may be mapped to different communication links. An interface may correspond to a virtual interface, which in turn may correspond to one or more physical interfaces. The destination address may include a geometric location and may also include other routing information. As with geometric routing or geographic routing, the destination address may represent a physical location rather than a network location (e.g., a numeric identifier in a list of consecutive subnets).
[0039] When the forwarding plane is operating, it receives a stream of packets to be forwarded (e.g., at a rate of 10 packets per second). 8 For each packet, the forwarding plane is used to check the list of destination addresses, select a set of addresses with the lowest cost or highest utility based on a metric such as a distance metric, and then select an address to forward the packet to. The interface associated with the address is used to forward the packet.
[0040] Accordingly, refer to Figure 2 , an embodiment of the present application provides a method 200 for routing a data packet in a network. The method can be implemented in a forwarding plane. The method includes: for each destination device in a plurality of destination devices that can further process the data packet to route the data packet to other destinations, determining 210 a corresponding cost or utility associated with forwarding the data packet to one of the plurality of destination devices. The method includes: for a predetermined value k (e.g., 8, 16, 1000), determining 220 an unsorted subset of the k destination devices with the lowest cost or the highest utility. It is noteworthy that using a selector such as the Alexseev selector described elsewhere in this document, the determination of the subset does not require the destination devices to be completely sorted according to the cost or the utility, such as. The method also includes: selecting 230 a destination device in the subset of the destination devices. This selection may include a filtering step so that only members of the subset whose cost or utility is within a given range are candidate destination devices for selection. That is, even if the k destination devices with the lowest cost are initially provided as candidate destination devices for selection, the cost of some of these destination devices (in terms of actual value rather than relative value) may be significantly higher than that of other destination devices. For example, if the cost is greater than a given threshold, destination devices with such a high cost can be excluded from the selection. The selection can also be based on address information included in the data packet. For example, a hash value can be generated based on the address information, and the destination device can be selected based on the hash value. In this way, data packets with the same address information (such as source address and destination address and optional port number) will traverse the same path. The method also includes: forwarding 240 the data packet to the selected one of the subset of destination devices.
[0041] It should be noted that the cost or utility is the cost or utility associated with forwarding the data packet from the one of the multiple destination devices to a possible final (referred to as other) destination (e.g., a ground terminal). In a typical exemplary implementation described herein, the cost corresponds to a distance (e.g., in an orbital plane or a spherical plane) between the one of the multiple destination devices (e.g., another satellite) and the other destination (e.g., a ground station).
[0042] Figure 33 is a block diagram of the forwarding plane operation provided by an embodiment of the present application. A forwarding table 310 includes a set of destination device addresses and corresponding interfaces that can be used to forward data packets to these destination devices. Although eight destination device addresses are shown, more or fewer addresses may exist. A cost determiner 320 is provided and configured for each destination device address to determine the corresponding cost or utility associated with forwarding the data packet to the destination device. As described above, the cost may correspond to or be based on the distance between the destination device and other destination devices (e.g., ground sites). A destination subset selector 330 receives the destination device address and the cost, and determines a subset of k destination devices with the lowest cost or the highest utility. Therefore, the destination subset selector may select k destination devices closest to other destinations from n available destination devices.
[0043] The output of destination subset selector 330, i.e., the k indications of the selected k destination devices, is provided to destination selector 340. Destination selector selects one of the k destination devices to forward the data packet to. In some embodiments, the selection may include a threshold operation and / or a hash operation.
[0044] The threshold operation may involve filtering the k indications of the selected destination devices so that only devices associated with costs or utilities within a predetermined range are candidate destination devices for final selection. For example, each cost may be compared with a threshold, and the corresponding destination device is provided as a candidate destination device for selection only when the cost is less than the threshold. Similarly, each utility may be compared with a threshold, and the corresponding destination device is provided as a candidate destination device for selection only when the utility is greater than the threshold. The threshold may be an absolute value, a predetermined value, or a relative value. For example, the threshold may be obtained by multiplying the average cost or utility by a constant value greater than 1 (e.g., 1.5 or 2).
[0045] The hash operation is used to select a destination device from candidate destination devices (e.g., k devices output by a threshold operation). The hash operation selects a destination device based on address information included in the data packet, rather than arbitrarily or randomly selecting it. This selection is consistent because two data packets with the same address information are routed to the same destination device. The hash operation generates a value based on the address information (e.g., based on a repeatable mapping), and then selects a destination device based on this hash value. This helps to achieve consistent routing of the same data stream while achieving different routing for different data streams. Other methods such as random or alternating selection can be used to select a destination device from the candidate destination devices. Once a destination device is selected, the data packet forwarder 350 receives an indication of the destination device (and associated interface) and forwards the data packet to the destination device.
[0046] Figure 4 Shows Figure 3 A specific variation of the embodiment in which cost determiner 340 is replaced by distance determiner 440. The distance determiner receives indications 442 of other destination addresses and determines the distance between each address in the forwarding table and the other destination addresses. The distance may correspond to a distance on a spherical surface, for example, calculated using a Haversine function or other similar function. The distance value may or may not be an accurate representation of the actual distance. However, the distance value should be a monotonic function of the actual distance.
[0047] The details of the destination subset selector (also referred to as selector function) provided by various embodiments of the present application will now be described. The selector function is mainly described in conjunction with selecting destinations with low cost (particularly corresponding to short distances between destination devices and other destination devices).
[0048] In order to select the k destination devices with the lowest cost (or highest utility) from n>k destination devices, the costs (e.g., calculated distances) need to be at least partially sorted. Sorting is computationally expensive, typically O(n log n), which does not scale well to 10 per second. 8 The invention relates to a scenario in which a data packet is forwarded at a rate of k packets per time packet. However, the inventors have recognized that it is not necessary to completely sort all destination devices by cost. Instead, it is only necessary to sort the destination devices sufficiently to identify the k destination devices with the lowest cost. The corresponding function is called "nk selector". In various embodiments, the nk selector is implemented in a parallel architecture in electronic hardware to provide a beneficial level of performance.
[0049] Donald Knuth and Addison-Wesley describe hardware sorting networks in "The Art of Computer Programming" in Section 5.3.4 of Volume 3 of Searching and Sorting, 2014. The key element of a hardware sorting network is a comparator, such as Figure 5 The comparator takes two input values, A and B, and provides the maximum of A and B at the first output and the minimum of A and B at the second output. These comparators can be combined together in a network configuration to perform a sorting function. For example, Figure 6A four-element sorting network is shown. The network receives arbitrary values at four inputs 610a to 610d, and outputs these values at outputs 630a to 630d, so that the value at 630a is the highest value among the input values, the value at 630b is the second highest value, the value at 630c is the second lowest value, and the value at 630d is the lowest value. This network can be performed in three steps. In the first step, inputs 610a and 610b are compared, and inputs 610c and 610d are also compared. The second step is to compare the outputs of the first step, and the last step is to compare the outputs of the second step. There are general methods for establishing sorting networks of arbitrary size, such as bubble sort or bitonic sort. However, these methods usually have superlinear performance and are therefore not suitable for high-performance systems. However, many sorting networks with a small number of inputs (up to 16 inputs) can be used. These networks have sublinear performance and can be used in this application.
[0050] It should be noted that although the network is shown to sort values (such as cost or utility), auxiliary information such as network addresses can be added to these values and sorted together with these values. That is, the auxiliary information passes through the sorting network after the values, but does not affect the result of the sorting because the comparator ignores the auxiliary information or because the weight of the auxiliary information in the total value does not affect the result of the comparator operation.
[0051] Figure 7 1 shows a selector component that can be used in various embodiments of the present application. This type of selector component is referred to herein as the Alekseev selector, named after its creator. Figure 5 The four comparators in are established, which are networked together. The selector receives arbitrary values at the four first inputs 710a to 710d and the four second inputs 715a to 715d, and produces the four highest values of the received values at the outputs 730a to 730d, and the four lowest values of the received values at the outputs 740a to 740d. The inputs to the first input and the second input should be completely sorted, so that the value at 710a is the highest value of the input values at the first input, the value at 710b is the second highest value, the value at 710c is the second lowest value, and the value at 710d is the lowest value, and also so that the value at 715a is the highest value of the input values at the second input, the value at 715b is the second highest value, the value at 715c is the second lowest value, and the value at 715d is the lowest value. The full sorting network can be used to provide these sorted values. That is, Figure 6 The four-element sequencing network in can be coupled to Figure 7 The input of the Alekseev selector.
[0052] Figure 8This configuration is shown, referred to as an 8-4 selector. Although an 8-4 selector is shown, an n / 2 selector can be constructed in a similar manner for any (even) value of n. The selector selects and provides n / 2 minimum value elements in a generally unsorted manner at output 814. The selector receives a first unsorted set of four elements at input 822 and a second unsorted set of four elements at input 827. Specifically, Figure 8 An Alekseev selector 810 is shown coupled to the outputs of two four-element full-sequencing networks 820, 825 operating in parallel.
[0053] The embodiment of the present application combines a sorting network with one or more (eg, Alekseev) selectors to implement an nk selector. Fig. 9 A tree is shown comprising three 8-4 selectors 910, 912, 914, each of which is as shown in FIG. Figure 8 As shown, a 16-4 selector is implemented. As needed, more (e.g., 8-4) selectors can be combined to expand this tree structure to implement selectors with different numbers of inputs and outputs. Fig. 9 The selector in takes arbitrary (unsorted) input and produces as output the four elements with the lowest cost. The execution time of such a selector tree is log 2 (n / k) scaling, thereby providing ideal good performance when scaling. In an exemplary embodiment, n can be approximately 1000 and k can be approximately 4. In another exemplary embodiment, n can be approximately 8 or 16 and k can be approximately 4. Fig. 9 The configuration can be extended to any number of stages. In general, a plurality of selector elements can be provided, which are arranged in a tree of n stages. The first stage of the n stages has n selector elements (similar to elements 910, 912) operating in parallel. Each successive stage of the n stages has one less selector element than the previous stage of the n stages. For example, Fig. 9 As shown, the first stage has two selector elements 910, 912 and the second stage has one selector element 914. The output of the selector element in each of the first n-1 stages is provided as the input of the selector element in the next stage of n stages. Multiple selector elements cooperate to determine a subset of destination devices. By providing a tree network of selectors of this form, the method can be extended to receive an arbitrarily large number of inputs and select the k destination devices with the lowest associated cost or the highest associated utility.
[0054] Fig.10 A method 1000 for determining an unordered subset of k destination devices with the lowest cost or highest utility is shown. This method combines Figure 8etc. show the configuration and operation of the selector and sorting network as described above. The method includes: sorting 1010 a first subset of destination devices by cost or utility, for example using a first sorting network. The method includes: sorting 1020 a second (usually disjoint) subset of destination devices by the cost or the utility, for example using a second sorting network in parallel with the first sorting network. The method also includes: processing 1030 the first subset and the second subset using a (e.g., Alexseev) selector. The selector provides as output a subset of k destination devices with the lowest cost or highest utility. It is worth noting that this provided subset itself is typically not sorted by cost and utility.
[0055] Method 1000 may correspond to a selector (e.g. Fig. 9 The method may include operations corresponding to the operations of other previous selectors as inputs to the final selector. For example, the first subset and the second subset may be provided as unsorted outputs of the first previous selector and the second previous selector. The first previous selector (e.g., selector 910) is used to process a first pair of subsets of multiple destination devices, each subset in the first pair of subsets being sorted by cost or utility. The second previous selector (e.g., selector 912) is used to process a second pair of subsets of multiple destination devices, each subset in the second pair of subsets being sorted by cost or utility. As needed, other previous selectors may also be provided in a tree-like manner as inputs to the first previous selector and the second previous selector, respectively.
[0056] Although the embodiments of the present application are mainly described in conjunction with routing in a satellite mesh network, it should be understood that the present application can also be applied to other network scenarios, such as in other geometric or geographic routing systems that do not necessarily involve satellites, or in other non-geometric or non-geographic routing systems, for example, in which data packets are routed solely based on network addresses (e.g., through nested subnet arrangements) and network topology.
[0057] Embodiments of the present application may 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 a memory. In some embodiments, the forwarding plane is partially or entirely implemented in hardware, such as using one or more field programmable gate arrays (FPGA) or application specific integrated circuits (ASIC) to quickly perform processing operations required to implement forwarding plane operations. Forwarding plane operations may include: determining the cost or utility associated with forwarding a data packet to a destination device, determining a subset of destination devices with the lowest cost or highest utility, selecting a destination device among the destination devices, and forwarding the data packet to the selected destination device. The subset of destination devices may be determined using sorting and selection hardware, which includes the above in combination with Figures 5 to 9 The hardware or software may generally have the above-mentioned combination Figure 3 and Figure 4 The architecture described in .
[0058] Fig.11 1 is a schematic diagram of an electronic device 1100 provided in different embodiments of the present application. The electronic device 1100 can perform any or all operations of the above methods and features described explicitly or implicitly herein. For example, a computer equipped with a network function can be configured as the electronic device 1100.
[0059] As shown, the device includes a processor 1110, such as a central processing unit (CPU) or a special processor, such as a graphics processing unit (GPU) or other such processor unit, a memory 1120, a non-transient mass storage 1130, an I / O interface 1140, a network interface 1150 and a transceiver 1160, all of which are coupled in a communication manner via a bidirectional bus 1170. According to certain embodiments, any or all of the elements shown can be used, or only a subset of the elements can be used. In addition, the device 1100 can include multiple instances of certain elements, such as multiple processors, multiple memories or multiple transceivers. In addition, the elements of the hardware device can be directly coupled to other elements without a bidirectional bus. Additionally or alternatively, in addition to processors and memories, other electronic devices such as integrated circuits can also be used to perform required logical operations.
[0060] The memory 1120 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 any combination thereof. The mass storage 1130 may include any type of non-transitory storage device, such as a solid-state drive, a hard disk drive, a disk drive, an optical drive, a USB drive, or any computer program product for storing data and machine executable program code. According to some embodiments, the memory 1120 or the mass storage 1130 may record thereon statements and instructions executable by the processor 1110 for performing any of the above-mentioned method operations.
[0061] It should be understood that although specific embodiments of the technology are 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 present application as defined by the appended claims and any and all modifications, variations, combinations or equivalents falling within the scope of the specification are contemplated. Specifically, a computer program product or program element for storing machine-readable signals, or a program storage or storage device such as a magnetic or optical fiber, tape or optical disk, is provided, within the scope of the technology, for controlling the operation of a computer according to the method of the technology and / or constructing some or all of its components according to the system of the technology.
[0062] The actions associated with the methods described herein may 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 codes are recorded to perform the method when the computer program product is loaded into a memory and executed on a microprocessor of a wireless communication device.
[0063] In addition, each operation of the method can be executed on any computing device (such as a personal computer, server, PDA, etc.) according to one or more program elements, modules or objects or a part of one or more program elements, modules or objects generated from any programming language such as C++, Java, etc. In addition, each operation or a file or object that implements each of the operations, etc. can be executed by dedicated hardware or a circuit module designed for this purpose.
[0064] Through the description of the above embodiments, the present application can be implemented only by hardware, or by software and necessary general hardware platforms. Based on such understanding, the technical solution of the present application can be embodied in the form of a software product. The software product can be stored in a non-volatile or non-transient storage medium, and the non-volatile or non-transient storage medium can be a compact disk read-only memory (CD-ROM), a USB flash drive, or a removable hard disk. The software product includes many instructions that enable a computer device (a personal computer, a server, or a network device) to execute the method provided in the embodiment of the present application. For example, such execution can correspond to the simulation of the logical operation as described herein. According to an exemplary embodiment, the software product may additionally or alternatively include a plurality of instructions that enable a computer device to perform the operation of configuring or programming a digital logic device.
[0065] Although the present application has been described with reference to the specific features and embodiments of the present application, it is apparent that various modifications and combinations of the present application can be made without departing from the present application. The specification and drawings are only to be regarded as an illustration of the present application as defined by the appended claims and any and all modifications, variations, combinations or equivalents falling within the scope of the present specification are contemplated.
Claims
1. A method for routing data packets in a network, It is characterized in that The method comprises: for each of a plurality of destination devices capable of further processing the data packet to route the data packet to other destinations, determining a respective cost or utility associated with forwarding the data packet to the one of the plurality of destination devices; For a predetermined value k, determining an unordered subset of k destination devices having the lowest cost or the highest utility; selecting a destination device from the subset of destination devices; The data packet is forwarded to a selected one of the subset of destination devices.
2. The method according to claim 1, It is characterized in that The cost or the utility is a cost or utility associated with forwarding the data packet from the one of the plurality of destination devices to the other destinations.
3. The method according to claim 1 or 2, It is characterized in that The cost corresponds to a distance between the one of the plurality of destination devices and the other destinations.
4. The method according to claim 1 or 2, It is characterized in that Determining the subset does not require a complete sorting of the plurality of destination devices according to the cost or the utility.
5. The method according to claim 1 or 2, It is characterized in that Determining the subset includes: sorting a first subset of the plurality of destination devices according to the cost or the utility; sorting a second subset of the plurality of destination devices according to the cost or the utility, wherein the second subset is disjoint from the first subset; The first subset and the second subset are processed using a selector, wherein the selector provides as output a subset of the k destination devices having the lowest cost or the highest utility, the subset being not sorted by the cost and the utility.
6. The method according to claim 5, It is characterized in that The first subset is provided as an unsorted output of a first previous selector for processing a first pair of subsets of the plurality of destination devices, each subset in the first pair of subsets being sorted by the cost or the utility; and / or The second subset is provided as an unsorted output of a second previous selector for processing a second pair of subsets of the plurality of destination devices, each subset of the second pair of subsets being sorted by the cost or the utility.
7. The method according to claim 1 or 2, It is characterized in that The unordered subset is determined using a plurality of selector elements arranged in an n-stage tree, a first stage of the n stages having n selector elements operating in parallel, each successive stage of the n stages having one fewer selector element than a previous stage of the n stages, an output of the selector element in each of the first n-1 stages being provided as an input to a selector element in a next stage of the n stages, each of the plurality of selector elements being used to: sorting a first respective subset of the plurality of destination devices according to the cost or the utility; sorting a second corresponding subset of the plurality of destination devices according to the cost or the utility, wherein the second corresponding subset is disjoint from the first corresponding subset; After the sorting, the first corresponding subset and the second corresponding subset are processed using a selector, wherein the selector provides as output a plurality of destination devices in the first corresponding subset and the second corresponding subset with the lowest cost or the highest utility, and the plurality of destination devices are not sorted according to the cost or the utility.
8. The method according to claim 1 or 2, It is characterized in that The selecting a destination device from the subset of destination devices includes selecting only from members of the subset having an associated cost or an associated utility within a predetermined range.
9. The method according to claim 1 or 2, It is characterized in that A destination device from the subset of destination devices is selected based on address information included in the data packet.
10. An apparatus for routing data packets in a network, It is characterized in that The device comprises: a cost determiner configured to: for each of a plurality of destination devices capable of further processing the data packet to route the data packet to other destinations, determine a respective cost or utility associated with forwarding the data packet to the one of the plurality of destination devices; a destination subset selector, configured to: for a predetermined value k, determine an unordered subset of k destination devices having the lowest cost or the highest utility; a destination selector for selecting a destination device from the subset of destination devices; A data packet forwarder is configured to forward the data packet to a selected one of the subset of destination devices.
11. The device according to claim 10, It is characterized in that The destination subset selector is implemented using a processor operatively coupled to a memory storing program instructions that, when executed by the processor, cause the processor to implement the destination subset selector.
12. The device according to claim 10 or 11, It is characterized in that The destination subset selector is implemented using dedicated data processing hardware.
13. The device according to claim 10 or 11, It is characterized in that The cost or the utility is a cost or utility associated with forwarding the data packet from the one of the plurality of destination devices to the other destinations.
14. The device according to claim 10 or 11, It is characterized in that The cost corresponds to a distance between the one of the plurality of destination devices and the other destinations.
15. The device according to claim 10 or 11, It is characterized in that The means is for determining the subset without fully sorting the plurality of destination devices according to the cost or the utility.
16. The device according to claim 10 or 11, It is characterized in that The device is used to determine the subset in the following manner: sorting a first subset of the plurality of destination devices according to the cost or the utility; sorting a second subset of the plurality of destination devices according to the cost or the utility, wherein the second subset is disjoint from the first subset; The first subset and the second subset are processed using a selector, wherein the selector provides as output a subset of the k destination devices having the lowest cost or the highest utility, the subset being not sorted by the cost and the utility.
17. The device according to claim 16, It is characterized in that The first subset is provided as an unsorted output of a first previous selector for processing a first pair of subsets of the plurality of destination devices, each subset in the first pair of subsets being sorted by the cost or the utility; and / or The second subset is provided as an unsorted output of a second previous selector for processing a second pair of subsets of the plurality of destination devices, each subset of the second pair of subsets being sorted by the cost or the utility.
18. The device according to claim 10 or 11, It is characterized in that The apparatus comprises a plurality of selector elements arranged in an n-stage tree, a first stage of the n stages having n selector elements operating in parallel, each successive stage of the n stages having one fewer selector element than a previous stage of the n stages, an output of the selector element in each of the first n-1 stages being provided as an input to a selector element in a next stage of the n stages, the plurality of selector elements being used in cooperation to determine the subset, each of the plurality of selector elements being used to: sorting a first respective subset of the plurality of destination devices according to the cost or the utility; sorting a second corresponding subset of the plurality of destination devices according to the cost or the utility, wherein the second corresponding subset is disjoint from the first corresponding subset; After the sorting, the first corresponding subset and the second corresponding subset are processed using a selector, wherein the selector provides as output a plurality of destination devices in the first corresponding subset and the second corresponding subset with the lowest cost or the highest utility, and the plurality of destination devices are not sorted according to the cost or the utility.
19. The device according to claim 10 or 11, It is characterized in that The selecting a destination device from the subset of destination devices includes selecting only from members of the subset having an associated cost or an associated utility within a predetermined range.
20. The device according to claim 10 or 11, It is characterized in that A destination device from the subset of destination devices is selected based on address information included in the data packet.
21. A computer-readable storage medium, It is characterized in that The method comprises instructions, which, when executed on a processor, cause the method according to any one of claims 1 to 9 to be executed.
Citation Information
Patent Citations
Energy aware routing for mesh networks
US20190104056A1