Community division dtn routing method based on clustering algorithm

By using a community-based DTN routing method based on clustering algorithms, which divides communities by satellite node trajectory similarity and optimizes satellite network routing paths, the problems of low packet delivery rate and latency are solved, achieving efficient packet forwarding and low-overhead transmission.

CN116723471BActive Publication Date: 2026-03-27CHANGCHUN UNIV OF SCI & TECH
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-05-25
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

Existing space satellite delay-tolerant networks suffer from problems such as low packet delivery rate, long end-to-end average latency, and high network overhead.

Method used

A community-based DTN routing method based on clustering algorithm is adopted. By obtaining the satellite node encounter matrix, calculating the activity interval, selecting the initial central satellite node, dividing the community according to trajectory similarity, and setting central satellite nodes inside and outside the community, iterative clustering is performed using the Circle-k-means clustering algorithm to optimize the routing path.

Benefits of technology

It improves packet forwarding efficiency, reduces end-to-end transmission latency and network overhead, and adapts to the needs of changing satellite network topology.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116723471B_ABST
    Figure CN116723471B_ABST
Patent Text Reader

Abstract

The application relates to a community division DTN routing algorithm based on a clustering algorithm, relates to the field of delay-tolerant network satellite communication, and utilizes a Circle-k-means clustering algorithm to cluster satellite nodes according to trajectory similarity, transforms a community center satellite node according to the trajectory similarity sum of the community satellite trajectory where the satellite node is located, continuously iterates a clustering process until all communities in the satellite network are in a stable state, and starts routing and forwarding messages.The center satellite node queries an index table currently maintained by the center satellite node according to the destination address of the message, and decides whether the message is executed for intra-community forwarding or inter-community forwarding.The application can greatly reduce repeated forwarding of the same message in the network, so that the purposes of improving data packet forwarding efficiency, reducing end-to-end transmission delay and reducing network overhead are achieved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The application belongs to the technical field of delay tolerant network satellite communication, and particularly relates to a community division DTN routing method based on a clustering algorithm. BACKGROUND

[0002] With the rapid development of space information technology, satellite networks will play an increasingly important role in global communication, navigation and positioning, weather prediction, environmental and disaster monitoring, resource detection and military applications. The space network platform with satellite network as the core has become a strategic engineering that countries continue to research and develop. Unlike ground networks, due to factors such as satellite orbit and the number of inter-satellite links possessed by satellites, in a space self-organizing network composed of multiple satellites, the connection between satellites and between satellites and ground stations cannot be guaranteed to be long, inter-satellite links may exhibit characteristics such as large delay, intermittent availability and two-way bandwidth asymmetry delay tolerant network. This series of characteristics makes it not necessarily exist end-to-end connection between any two nodes in the space self-organizing network at all times, which cannot meet the basic communication conditions required by the TCP / IP protocol, but meets the typical network characteristics of delay tolerant network (DTN). In order to make the satellite network have higher message delivery rate, lower average transmission delay and smaller network overhead, a good satellite DTN routing strategy helps to select the appropriate next hop node, which is the basis and key to achieve the above goals.

[0003] The delay tolerance of a delay tolerant network (DTN) is mainly embodied in a "storage-carry-forward" process of a message, which converts an original mode of establishing an end-to-end connection and transmitting data into a "hop-to-hop" mode of transmission by multiple intermediate nodes. Currently, there are many classic routing algorithms. For example, an Epidemic algorithm using a flooding mechanism; a Prophet algorithm determining routing by comparing historical probability information; a Spray and wait algorithm controlling the number of copies of a message in the network to avoid network congestion caused by excessive flooding; and a First Contact algorithm, an Earliest-Delivery algorithm, etc. For a space satellite delay tolerant network, satellite nodes are not randomly moving at will, each satellite has a relatively fixed motion trajectory, and even several satellites often move at different positions on the same orbit and have a fixed relative position. This behavior feature causes the space satellite delay tolerant network to have obvious differences from the traditional delay tolerant network: due to the restriction of the motion trajectory, any two nodes in the network may be in long-term communication or have no contact opportunity. Although the traditional DTN routing protocol can be compatible with this difference, it does not use this feature for enhanced design in routing design and selection. Therefore, the existing space satellite delay tolerant network has problems of low data packet delivery rate, long end-to-end average delay, and large network overhead.

[0004] In summary, how to design a routing algorithm that can select the optimal path according to the properties of satellite nodes has great research significance for improving the message delivery performance of the space satellite network. SUMMARY

[0005] The purpose of the present application is to solve the problems of low data packet delivery rate, long end-to-end average delay, and large network overhead in the existing space satellite delay tolerant network, and to provide a community division DTN routing method based on a clustering algorithm.

[0006] The technical solution adopted by the present application to solve the technical problems is as follows:

[0007] The community division DTN routing method based on the clustering algorithm of the present application comprises the following steps:

[0008] Step one, obtain a satellite node encounter matrix, set the number of clusters and the total number of satellite nodes, and calculate the initial activity interval;

[0009] Step two, calculate the activity of each satellite node in the current time window; add the satellite nodes with the initial activity interval in the current time window to the list of candidate center satellite nodes;

[0010] Step three, randomly select k satellite nodes in the list of candidate central satellite nodes as initial central satellite nodes;

[0011] Step four, divide k communities according to trajectory similarity, and all are marked as unstable communities;

[0012] Step five, update the central satellite nodes and community radius of all unstable communities;

[0013] Step six, select a query community;

[0014] Step seven, search for the neighbor communities of the current query community;

[0015] Step eight, divide the stable area and active area of the query community;

[0016] Step nine, judge whether the satellite nodes of the current query community have changed, if not, mark it as a stable community and do not participate in the next iteration; if the satellite nodes of the current query community have changed, mark it as an unstable community;

[0017] Step ten, judge whether all unstable communities in the current iteration have completed re-division, if so, execute step eleven; if there are still unstable communities that have not been re-divided, execute step six;

[0018] Step eleven, judge whether all communities are marked as stable communities, if so, execute step twelve; if there are still unstable communities, execute step five;

[0019] Step twelve, output the final result of community division;

[0020] Step thirteen, when the satellite node carrying the message is a community central satellite node, check the index table of the current community central satellite node, and execute step fourteen; when the satellite node carrying the message is not a community central satellite node, execute step sixteen;

[0021] Step fourteen, by checking the index table mentioned in step thirteen, it is found that when the destination satellite node is within the community where the central satellite node carrying the message is located, the central satellite node forwards the message when it meets the destination satellite node;

[0022] Step fifteen, when the destination satellite node is not within the community where the central satellite node carrying the message is located, the message needs to be forwarded to the central satellite nodes of other communities, and after the central satellite nodes of other communities successfully receive the message, execute step thirteen;

[0023] Step sixteen, when the satellite node carrying the message is a normal satellite node within the community, the message is forwarded to the central satellite node of the community, and after the central satellite node of the community successfully receives the message, execute step fourteen;

[0024] Step 17: If the message is not delivered to the destination satellite node, proceed to step 13 to continue forwarding the message until it is delivered to the destination satellite node and the forwarding ends.

[0025] Furthermore, in step one, multiple satellite nodes are set up on the STK software to simulate a satellite scenario, and the satellite node encounter matrix is ​​obtained using Matlab software; the calculation formula for the initial activity interval is as follows:

[0026] (1)

[0027] In the formula, EV section The initial activity range is defined by N, the total number of satellite nodes, and the number of clusters.

[0028] Furthermore, in step two, the formula for calculating the activity level of each satellite node within the current time window is as follows:

[0029] (2)

[0030] In the formula, To predict satellite nodes Activity level within the (k+1)th time window; To predict satellite nodes The number of encountering satellite nodes within the k-th time window, each time a time window expires. The count of encountering satellite nodes within the new time window is reset to zero and begins to be recalculated.

[0031] Furthermore, the specific steps for step four are as follows:

[0032] According to formula (3), the trajectory similarity between each satellite node and the k initial center satellite nodes is calculated respectively. The satellite node with the maximum trajectory similarity and the corresponding initial center satellite node are classified into the same community, and the flag of all communities is initialized. i =False ( i=i,...,k ), flag=False indicates that the community is unstable, and determines whether to update the community center satellite node and community radius; if there is a community with less than 2 satellite nodes, return to step 3 and randomly select k satellite nodes from the candidate center satellite node list as the initial center satellite nodes; the initial clustering ends here;

[0033] (3)

[0034] In the formula, This represents the set of historical encounter satellite nodes for satellite node c. This represents the set of historical encounter satellite nodes for satellite node x. This represents the trajectory similarity between satellite node x and satellite node c. The trajectory similarity is asymmetric. The intersection of the historical encounter satellite node set of satellite node x and the historical encounter satellite node set of satellite node c is equal to ( ∩ The number of satellite nodes in the set and the historical encounter of satellite node x. The ratio of the number of satellite nodes in the middle.

[0035] Furthermore, the specific steps for step five are as follows:

[0036] Each satellite node within the unstable community is designated as the central satellite node. The sum of the community trajectory similarities is calculated according to formula (4), and the satellite node with the largest sum of community trajectory similarities is selected as the new central satellite node. The trajectory similarity distance between the satellite nodes in the community and this central satellite node is calculated according to formula (5), and the maximum value of the trajectory similarity distance is recorded as the community radius r. i ;

[0037] (4)

[0038] (5)

[0039] In the formula, This represents the set of historical encounter satellite nodes for satellite node c. Represents satellite node x i Historical Encounter Satellite Node Set The sum of the similarity of the community trajectories is represented by , dist(x,y) represents the trajectory similarity distance between satellite node y and satellite node x, which is used to measure the trajectory similarity between satellite node y and satellite node x, and SD(x,y) represents the trajectory similarity between satellite node y and satellite node x.

[0040] Furthermore, the specific steps for step seven are as follows:

[0041] For each query community C i Create an empty list of neighbors. If formula (6) is satisfied, then community C j It is a query community C i The neighboring community, community C j Central satellite node c j Add to Neighbors List ; and in accordance with the query community C i The searched neighboring communities are sorted in ascending order of trajectory similarity distance between the central satellite nodes;

[0042] (6)

[0043] wherein, denotes the trajectory similarity between satellite node x and the center satellite node c j of the query community C i , c i is the center satellite node of the query community C i , c j is the center satellite node of the community C j , and r i is the community radius of the query community C i .

[0044] Further, the specific operation steps of step eight are as follows:

[0045] The stable area of the query community C i is divided according to formula (7), and the remaining area including those satellite nodes not in the stable area is defined as the active area of the query community C i ; the active area of the query community C is divided into annular areas according to formula (8), the trajectory similarity distance between the satellite node x located in the hth annular area and the center satellite node of the query community C itself and the h nearest neighbor communities is calculated, and the satellite node x in the active area of the query community C is re-divided into the community with the minimum trajectory similarity distance;

[0046] (7)

[0047] (8)

[0048] wherein, denotes the trajectory similarity distance between the satellite node x and the center satellite node c of the query community C in the time window t, denotes the trajectory similarity distance between the center satellite node c j of the community C and the center satellite node c of the query community C in the time window t, denotes the neighbor community center satellite node set of the query community C , SD(c,c i ) denotes the trajectory similarity between the center satellite node c i of the ith neighbor community of the query community C and the center satellite node c of the query community C, SD(c,x) denotes the trajectory similarity between the satellite node x in the active area of the query community C and the center satellite node c of the query community C, and SD(x,c i+1) represents the center satellite node c of the i+1th community of the query community C i+1 and the trajectory similarity between the center satellite node c of the query community C, r represents the community radius of the query community C, and k' represents the number of neighbor communities of the query community C.

[0049] The present application has the following advantages:

[0050] The present application provides a community division DTN routing method based on a clustering algorithm, which utilizes a Circle-k-means clustering algorithm, clusters satellite nodes according to trajectory similarity, and transforms the center satellite node of a community according to the sum of trajectory similarity of the satellite nodes in the community, iterates the clustering process until all communities in the satellite network are in a stable state, and starts routing and forwarding messages. The center satellite node queries the index table currently maintained by itself according to the destination address of the message, and decides whether to perform community internal forwarding or community inter-forwarding of the message.

[0051] The Circle-k-means clustering algorithm used in the present application has simple operation and can reduce a large amount of distance calculation in the operation process, and has high clustering efficiency, and therefore can well adapt to the characteristics of the satellite delay tolerant network, i.e., the constantly changing topology structure and the high requirement for calculation speed. The satellite distribution in the satellite delay tolerant network is uneven, which meets the use scenario of the Circle-k-means clustering algorithm.

[0052] The present application divides communities of satellite nodes according to trajectory similarity for message forwarding, i.e., divides satellite nodes with high trajectory similarity into a community, performs different communication modes in and between communities, sets a center satellite node in the community, other satellite nodes in the community are ordinary satellite nodes, the center satellite node serves as a hub for message forwarding of satellite nodes in different communities, is responsible for maintaining the position index table of all ordinary satellite nodes in the community and maintaining the distribution information of other community center satellite nodes in the network, can greatly reduce repeated forwarding of the same message in the network, and achieves the purposes of improving the data packet forwarding efficiency, reducing the end-to-end transmission delay, and reducing the network overhead. BRIEF DESCRIPTION OF DRAWINGS

[0053] Figure 1 The present application provides a Circle-k-means clustering process flowchart of steps one to twelve in the community division DTN routing method based on a clustering algorithm.

[0054] Figure 2 The present application provides a routing process flowchart of steps thirteen to seventeen in the community division DTN routing method based on a clustering algorithm.

[0055] Figure 3This is a 3D view of a space satellite DTN network constellation with 32 satellite nodes deployed on STK software in Example 1. Detailed Implementation

[0056] The present invention will be further described in detail below with reference to the accompanying drawings.

[0057] Combination Figure 1 and Figure 2 This embodiment describes a community-based DTN routing method based on clustering algorithms, with the following specific steps:

[0058] Step 1: Set up multiple satellite nodes in STK (Satellite Tool Kit) software to simulate a satellite scenario. Use Matlab software to obtain the satellite node encounter matrix and set a time window t. If two satellites are connected within a complete time window t, then the two satellites are considered visible.

[0059] First, input the satellite node encounter matrix, the number of clusters k, and the total number of satellite nodes N; then calculate the initial activity interval EV according to formula (1). section .

[0060] (1)

[0061] In the formula, EV section The initial activity range is defined by N, the total number of satellite nodes, and the number of clusters.

[0062] Step 2: Calculate the activity level of each satellite node in the current time window according to formula (2), and add the satellite nodes whose activity level in the current time window is within the initial activity level range to the list of candidate center satellite nodes.

[0063] (2)

[0064] In the formula, To predict satellite nodes Activity level within the (k+1)th time window; To predict satellite nodes The number of encountering satellite nodes within the k-th time window, each time a time window expires. The count of encountering satellite nodes within the new time window is reset to zero and the count is recalculated.

[0065] Step 3: Randomly select k satellite nodes from the list of candidate center satellite nodes as the initial center satellite nodes.

[0066] Step 4: Divide the community into k communities based on trajectory similarity and mark them all as unstable communities;

[0067] The Circle-k-means clustering algorithm (this invention treats each classification region as a circular region based on the traditional k-means algorithm, and introduces community center satellite nodes and community radius to improve clustering speed and thus improve routing and forwarding algorithm efficiency; therefore, it is called the Circle-k-means clustering algorithm in this invention) is used to perform clustering operations on satellite nodes in the network based on trajectory similarity. The specific operation steps are as follows:

[0068] According to formula (3), the trajectory similarity between each satellite node and the k initial center satellite nodes is calculated respectively. The satellite node with the maximum trajectory similarity and the corresponding initial center satellite node are classified into the same community, and the flag of all communities is initialized. i =False ( i=i,...,k ), flag=False indicates that the community is unstable, and determines whether to update the community center satellite node and community radius; if there is a community with less than 2 satellite nodes, return to step 3 and randomly select k satellite nodes from the candidate center satellite node list as the initial center satellite nodes; the initial clustering ends here;

[0069] (3)

[0070] In the formula, This represents the set of historical encounter satellite nodes for satellite node c. This represents the set of historical encounter satellite nodes for satellite node x. This represents the trajectory similarity between satellite node x and satellite node c. The trajectory similarity is asymmetric. The intersection of the historical encounter satellite node set of satellite node x and the historical encounter satellite node set of satellite node c is equal to ( ∩ The number of satellite nodes in the set and the historical encounter of satellite node x. The ratio of the number of satellite nodes in the middle.

[0071] Step 5: Update the central satellite node and community radius for all unstable communities;

[0072] The specific operating steps are as follows:

[0073] Each satellite node within the unstable community is designated as the central satellite node. The sum of the community trajectory similarities is calculated according to formula (4), and the satellite node with the largest sum of community trajectory similarities is selected as the new central satellite node. The trajectory similarity distance between the satellite nodes in the community and this central satellite node is calculated according to formula (5), and the maximum value of the trajectory similarity distance is recorded as the community radius r. i ;

[0074] (4)

[0075] (5)

[0076] where, denotes the set of historical meeting satellite nodes of satellite node c, denotes the set of historical meeting satellite nodes of satellite node x, i denotes the set of historical meeting satellite nodes of satellite node x, denotes the sum of community trajectory similarity, dist(x, y) denotes the trajectory similarity distance between satellite node y and satellite node x, and is used to measure the trajectory similarity between satellite node y and satellite node x, and SD(x, y) denotes the trajectory similarity between satellite node y and satellite node x.

[0077] Step six, select a query community;

[0078] Step seven, search for neighbor communities of the current query community;

[0079] The neighbor search is performed on the query community, and the community satisfying formula (6) is the neighbor community of the query community. Specifically, for each query community C i an empty neighbor list is created if formula (6) is satisfied, the community C j is a neighbor community of the query community C i , and the center satellite node c j of the community C j is added to the neighbor list ; and the neighbor communities searched are sorted in the order of increasing trajectory similarity distance with the center satellite node of the query community C i ;

[0080] (6)

[0081] where, denotes the trajectory similarity between satellite node c j and satellite node c i , c i is the center satellite node of the query community C i , c j is the center satellite node of the community C j , and r i is the community radius of the query community C i .

[0082] Step eight, divide the stable area and the active area of the query community;

[0083] The stable area and the active area of the query community C iThe stable region, and the remaining regions, including satellite nodes not within the stable region, are defined as query community C. i The active area of ​​the query community C is divided into ring areas according to formula (8). The trajectory similarity distance between the satellite node x located in the h-th ring area and the community center satellite node of the query community C itself and the h nearest neighboring communities is calculated. The satellite node x in the active area of ​​the query community C is reassigned to the community with the smallest trajectory similarity distance.

[0084] (7)

[0085] (8)

[0086] In the formula, This indicates the query community for satellite node x and time window t. Central satellite node Trajectory similarity distance, Indicates community C within time window t j Central satellite node Query the community within the time window t Central satellite node Trajectory similarity distance, Indicates query community The set of satellite nodes in the neighboring community center, SD(c,c i ) represents the query for the central satellite node c of the i-th neighboring community of community C. i The trajectory similarity between satellite node x in the active region of query community C and the central satellite node c of query community C is given by SD(c,x). i+1 ) represents querying the central satellite node c of the (i+1)th community in community C. i+1 The trajectory similarity between the query community C and the central satellite node c is given by r, where r represents the community radius of the query community C, and k′ represents the number of neighboring communities of the query community C.

[0087] Step 9: Determine if there are any changes to the satellite nodes of the currently queried community. If there are no changes, mark it as a stable community and it will not participate in the next iteration; if there are changes to the satellite nodes of the currently queried community, mark it as an unstable community.

[0088] Step 10: Determine whether all unstable communities in the current iteration have been repartitioned. If all have been repartitioned, proceed to Step 11; if there are still unstable communities that have not been repartitioned, proceed to Step 6.

[0089] Step eleven, judging whether all communities are marked as stable communities, if all communities are marked as stable communities, step twelve is executed; if there are still unstable communities, step five is executed;

[0090] Step twelve, outputting the final result of community division;

[0091] After the source node receives the message data packet and completes the clustering operation on the satellite nodes through steps one to step twelve, the routing method of inter-community transmission and intra-community transmission is respectively adopted for the forwarding of the data packet according to the type of the satellite node carrying the message. The specific process is as follows:

[0092] Step thirteen, when the satellite node carrying the message is the community center satellite node, the index table of the current community center satellite node is checked, and step fourteen is executed; when the satellite node carrying the message is not the community center satellite node, step sixteen is executed;

[0093] Step fourteen, when the destination satellite node is in the community where the center satellite node carrying the message is located, the center satellite node meets the destination satellite node when forwarding the message according to the index table in step thirteen;

[0094] Step fifteen, when the destination satellite node is not in the community where the center satellite node carrying the message is located, the message needs to be forwarded to the center satellite node of other community, and after the center satellite node of other community successfully receives the message, step thirteen is executed;

[0095] Step sixteen, when the satellite node carrying the message is an ordinary satellite node in the community, the message is forwarded to the center satellite node of the community, and after the center satellite node of the community successfully receives the message, step fourteen is executed;

[0096] Step seventeen, if the message is not transmitted to the destination satellite node, step thirteen is executed to continue forwarding the message until the message is transmitted to the destination satellite node and the forwarding is ended; however, when the message is still not forwarded to the destination satellite node in the community for a period of time, it is considered that the destination satellite node may be re-divided into other community, at this time, the center satellite node of the community will re-check the index table to determine the position of the destination satellite node.

[0097] The technical solutions in the embodiments of the present application will be clearly and completely described in combination with the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor are within the scope of protection of the present application.

[0098] Embodiment 1: Community division DTN routing method based on clustering algorithm

[0099] (1) Deploy 32 satellite nodes on STK (Satellite Tool Kit) software, and its 3D view is as follows. Figure 3 As shown, the satellite node encounter matrix is ​​obtained using Matlab software. The initial activity interval EV is calculated by inputting the satellite node encounter matrix, the number of clusters k=5, and the total number of satellite nodes N=32. section :

[0100]

[0101] (2) Calculate the activity level of each satellite node in the current time window, and add the satellite nodes whose activity level in the current time window is within the initial activity level range to the candidate center satellite node list center_satellites.

[0102] The activity levels of each satellite node within the current time window are as follows:

[0103] {0: 6, 1: 6, 2: 3, 3: 24, 4: 19, 5: 6, 6: 8, 7: 16, 8: 24, 9: 20, 10:24, 11: 21, 12: 9, 13: 14, 14: 8, 15: 6, 16: 11, 17: 21, 18: 23, 19: 22, 20:25, 21: 22, 22: 12, 23: 13, 24: 15, 25: 10, 26: 8, 27: 17, 28: 23, 29: 23, 30: 17, 31: 20}.

[0104] The list of candidate center satellite nodes, center_satellites, is as follows:

[0105] [0, 1, 2, 5, 6, 12, 14, 15, 25, 26].

[0106] (3) Randomly select 5 satellite nodes from the list of candidate center satellite nodes as the initial center satellite nodes.

[0107] (4) Calculate the trajectory similarity between each satellite node and the five initial center satellite nodes. Assign the satellite node with the highest trajectory similarity to the corresponding initial center satellite node as the same community and initialize the flags of the five communities. i =False ( i=i,...,5 );If there is a community with fewer than 2 satellite nodes, return to step (3) and randomly select 5 satellite nodes from the list of candidate center satellite nodes as the initial center satellite nodes; the initial clustering ends here;

[0108] Centroid after the first clustering: [14, 6, 12, 26, 25];

[0109] The situation of each cluster after the first clustering: [[1, 7, 9, 14, 27, 29, 30], [2, 4, 6, 16, 18, 23, 24], [0, 5, 10, 12, 13, 20], [26, 31], [3, 8, 11, 15, 17, 19, 21, 22, 25, 28]].

[0110] (5) Each satellite node in the unstable community is designated as a center satellite node, the community trajectory similarity sum is calculated according to formula (4), and the satellite node with the maximum community trajectory similarity sum in the community is selected as a new center satellite node; the trajectory similarity distance between the satellite node in the community and the center satellite node is calculated according to formula (5), and the maximum value of the trajectory similarity distance is recorded as the community radius r i .

[0111] (6) Select an unstable community as a query community.

[0112] (7) Create an empty neighbor list for each query community C i . If formula (6) is satisfied, the community C j is a neighbor community of the query community C i , and the center satellite node c j of the community C j is added to the neighbor list ; and the searched neighbor community is sorted in the order of the trajectory similarity distance from small to large with the center satellite node of the query community C i .

[0113] (8) The stable area of the query community C i is divided according to formula (7), and the remaining area including the satellite nodes not in the stable area is defined as the active area of the query community C i ; the active area of the query community C is divided into annular areas according to formula (8), the trajectory similarity distance between the satellite node x in the hth annular area and the community center satellite nodes of the query community C itself and the first h nearest neighbor communities is calculated, and the satellite node x in the active area of the query community C is re-divided into the community with the smallest trajectory similarity distance.

[0114] (9) When there is no satellite node moving in and out of the query community C i in the current iteration, the query community C i is marked as a stable community, and at this time the query community Ci No longer participate in the next iteration, no longer update the community center satellite node and community radius; if the current query community C i There are satellite nodes in the community, mark it as an unstable community, and still need to participate in the next iteration.

[0115] (12) After several iterations, if all communities are stable communities, the clustering operation ends; if there are still communities that are not stable communities, perform step five, reupdate all unstable community center satellite nodes and community radius until all communities are stable communities End iteration, output the final result of community division.

[0116] The final satellite node community division is as follows:

[0117] {[7, 14, 29, 30, 15], [4, 16, 23, 0, 12, 20, 2, 18, 22], [5, 10, 13,9, 6, 24, 8, 19, 28], [26, 31, 1, 27], [3, 11, 17, 21, 25]}.

[0118] (13) When the satellite node carrying the message is the community center satellite node, check the index table of the current community center satellite node, and perform step fourteen; when the satellite node carrying the message is not the community center satellite node, perform step sixteen.

[0119] (14) By checking the index table in step thirteen, when the destination satellite node is in the community where the center satellite node carrying the message is located, the center satellite node carrying the message meets the destination satellite node when forwarding the message.

[0120] (15) When the destination satellite node is not in the community where the center satellite node carrying the message is located, it is necessary to forward the message to the center satellite node of other community, and after the center satellite node of other community successfully receives the message, perform step thirteen.

[0121] (16) When the satellite node carrying the message is an ordinary satellite node in the community, the message is forwarded to the center satellite node of the community, and after the center satellite node successfully receives the message, step fourteen is performed.

[0122] (17) If the message is not transmitted to the destination satellite node, perform step thirteen to continue forwarding the message until the message is transmitted to the destination satellite node; but when the message has not been forwarded to the destination satellite node in the community for a period of time, it is considered that the destination satellite node may be reclassified to other communities, at this time the community center satellite node will recheck the index table to determine the position of the destination satellite node.

[0123] The above merely describes the preferred embodiments of the present application, and it should be pointed out that those skilled in the art can make several improvements and refinements without departing from the principles of the present application, and these improvements and refinements should also be considered as falling within the protection scope of the present application.

Claims

1. A community-based DTN routing method based on clustering algorithm, characterized in that, Includes the following steps: Step 1: Obtain the satellite node encounter matrix, set the number of clusters and the total number of satellite nodes, and calculate the initial activity range; Step 2: Calculate the activity level of each satellite node within the current time window; Add satellite nodes whose activity level is within the initial activity range during the current time window to the list of candidate center satellite nodes; Step 3: Randomly select multiple satellite nodes from the list of candidate center satellite nodes as the initial center satellite nodes; Step 4: Divide the communities into multiple communities based on trajectory similarity and mark them all as unstable communities; Step 5: Update the central satellite node and community radius for all unstable communities; Step Six: Select the community to search; Step 7: Search for neighboring communities of the currently queried community; Step 8: Divide the query community into stable and active zones; Step 9: Determine if there have been any changes to the satellite nodes of the currently queried community. If there have been no changes, mark it as a stable community and it will not participate in the next iteration. If the satellite nodes of the currently queried community have changed, it will be marked as an unstable community; Step 10: Determine whether all unstable communities in the current iteration have been repartitioned. If all have been repartitioned, proceed to Step 11; if there are still unstable communities that have not been repartitioned, proceed to Step 6. Step 11: Determine if all communities are marked as stable communities. If all communities are marked as stable communities, proceed to Step 12; if there are still unstable communities, proceed to Step 5. Step 12: Output the final community division results; Step 13: When the satellite node carrying the message is a community center satellite node, check the index table of the current community center satellite node and proceed to Step 14. If the satellite node carrying the message is not the community center satellite node, proceed to step sixteen; Step Fourteen: By checking the index table described in Step Thirteen, it is found that when the destination satellite node is within the community of the central satellite node carrying the message, the central satellite node forwards the message when it meets the destination satellite node. Step 15: When the destination satellite node is not within the community of the central satellite node carrying the message, the message needs to be forwarded to the central satellite nodes of other communities. After the central satellite nodes of other communities successfully receive the message, proceed to step 13. Step 16: When the satellite node carrying the message is an ordinary satellite node within the community, the message is forwarded to the central satellite node of the community. After the community's central satellite node successfully receives the message, step 14 is executed. Step 17: If the message is not delivered to the destination satellite node, proceed to step 13 to continue forwarding the message until it is delivered to the destination satellite node and the forwarding ends.

2. The community-based DTN routing method based on clustering algorithm according to claim 1, characterized in that, In step one, multiple satellite nodes are set up on the STK software to simulate a satellite scenario, and the satellite node encounter matrix is ​​obtained using Matlab software; the calculation formula for the initial activity interval is as follows: (1) In the formula, EV section The initial activity range is defined by N, where N is the total number of satellite nodes and k1 is the number of clusters.

3. The community-based DTN routing method based on clustering algorithm according to claim 1, characterized in that, In step two, the formula for calculating the activity level of each satellite node within the current time window is as follows: (2) In the formula, To predict satellite nodes Activity level within the (k+1)th time window; To predict satellite nodes The number of encountering satellite nodes within the k-th time window, each time a time window expires. The count of encountering satellite nodes within the new time window is reset to zero and the count is recalculated.

4. The community-based DTN routing method based on clustering algorithm according to claim 3, characterized in that, The specific steps for step four are as follows: According to formula (3), the trajectory similarity between each satellite node and the k initial center satellite nodes is calculated respectively. The satellite node with the maximum trajectory similarity and the corresponding initial center satellite node are classified into the same community, and the flag of all communities is initialized. i =False ( i=i,...,k ), flag=False indicates that the community is unstable, and determines whether to update the community center satellite node and community radius; if there is a community with less than 2 satellite nodes, return to step 3 and randomly select k satellite nodes from the candidate center satellite node list as the initial center satellite nodes; the initial clustering ends here; (3) In the formula, This represents the set of historical encounter satellite nodes for satellite node c. This represents the set of historical encounter satellite nodes for satellite node x. This represents the trajectory similarity between satellite node x and satellite node c. The trajectory similarity is asymmetric. The intersection of the historical encounter satellite node set of satellite node x and the historical encounter satellite node set of satellite node c is equal to ( ∩ The number of satellite nodes in the set and the historical encounter of satellite node x. The ratio of the number of satellite nodes in the middle.

5. The community-based DTN routing method based on clustering algorithm according to claim 4, characterized in that, The specific steps for step five are as follows: Each satellite node within the unstable community is designated as the central satellite node. The sum of the community trajectory similarities is calculated according to formula (4), and the satellite node with the largest sum of community trajectory similarities is selected as the new central satellite node. The trajectory similarity distance between the satellite nodes in the community and this central satellite node is calculated according to formula (5), and the maximum value of the trajectory similarity distance is recorded as the community radius r. i ; (4) (5) In the formula, This represents the set of historical encounter satellite nodes for satellite node c. Represents satellite node x i Historical Encounter Satellite Node Set The sum of the similarity of the community trajectories is represented by , dist(x,y) represents the trajectory similarity distance between satellite node y and satellite node x, which is used to measure the trajectory similarity between satellite node y and satellite node x, and SD(x,y) represents the trajectory similarity between satellite node y and satellite node x.

6. The community-based DTN routing method based on clustering algorithm according to claim 5, characterized in that, The specific steps for step seven are as follows: For each query community C i Create an empty list of neighbors. If formula (6) is satisfied, then community C j It is a query community C i The neighboring community, community C j Central satellite node c j Add to Neighbors List ; and in accordance with the query community C i The searched neighboring communities are sorted in ascending order of trajectory similarity distance between the central satellite nodes; (6) In the formula, Indicates satellite node c j and satellite node c i The similarity of trajectories between them, c i To query community C i The central satellite node, c j For community C j The central satellite node, r i To query community C i The community radius.

7. The community-based DTN routing method based on clustering algorithm according to claim 6, characterized in that, The specific steps for step eight are as follows: Based on formula (7), the query community C is divided. i The stable region, and the remaining regions, including satellite nodes not within the stable region, are defined as query community C. i The active area of ​​the query community C is divided into ring areas according to formula (8). The trajectory similarity distance between the satellite node x located in the h-th ring area and the community center satellite node of the query community C itself and the h nearest neighboring communities is calculated. The satellite node x in the active area of ​​the query community C is reassigned to the community with the smallest trajectory similarity distance. (7) (8) In the formula, This indicates the query community within satellite node x and time window t. Central satellite node Trajectory similarity distance, Indicates community C within time window t j Central satellite node Query the community within the time window t Central satellite node Trajectory similarity distance, Indicates query community The set of satellite nodes in the neighboring community center, SD(c,c i ) represents the query for the central satellite node c of the i-th neighboring community of community C. i The trajectory similarity between satellite node x in the active region of query community C and the central satellite node c of query community C is given by SD(c,x). i+1 ) represents querying the central satellite node c of the (i+1)th community in community C. i+1 The trajectory similarity between the query community C and the central satellite node c is given by r, where r represents the community radius of the query community C, and k′ represents the number of neighboring communities of the query community C.

Citation Information

Patent Citations

  • Routing implementation method for delay tolerant network based on encounter probability and social analysis

    CN105307231A

  • Opportunistic network routing method based on spectral clustering community division

    CN107071844A