Design Method of Virtual Network Function Forwarding Graph Adapted to Multiple IoT Service Scenarios
By designing a loop-free virtual network function forwarding graph in the Internet of Things (IoT) environment, merging VNF nodes of the same type and embedding new SFC flows, the problem of balancing the number of nodes and links in VNF-FG design is solved, reducing operating costs and improving network service efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SOUTHWEST PETROLEUM UNIV
- Filing Date
- 2023-06-27
- Publication Date
- 2026-07-17
AI Technical Summary
In the Internet of Things (IoT) environment, the design of virtual network function forwarding graphs (VNF-FG) faces the NP-hard problem of how to balance minimizing the number of nodes and links in the VNF-FG to reduce operating costs while avoiding loop conflicts. Existing technologies are unable to effectively solve this challenge.
A virtual network function forwarding graph design method is proposed to adapt to multiple service scenarios of the Internet of Things. The method designs a loop-free VNF-FG through steps in offline and online scenarios, including merging VNF nodes of the same type, eliminating loops, embedding new SFC flows to minimize the number of nodes and links, utilizing existing resources, and ensuring loop-free nature.
It minimizes the number of VNF nodes and logical links in both offline and online scenarios, reduces virtual machine instantiation costs, provides a complete VNF-FG design process, and improves the efficiency and flexibility of network services.
Smart Images

Figure CN116708267B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of virtual network function technology, and more specifically to a design method for virtual network function forwarding graphs adapted to multiple service scenarios of the Internet of Things. Background Technology
[0002] With the rapid development of Internet of Things (IoT) technology, the number of IoT terminal devices is growing exponentially, and network services are becoming increasingly complex and diverse, posing significant challenges to IoT. The combination of Software-Defined Networking (SDN) and Network Functions Virtualization (NFV) technologies has given rise to a new generation of IoT. NFV technology transforms traditional hardware-based network function boxes into virtual network functions (VNFs) running on general-purpose servers, enabling flexible deployment of network functions. SDN, as a new generation network paradigm, has greatly accelerated the application of NFV technology in IoT with its open network management model. Different user service requests arriving at IoT terminals need to be orderly processed through different Service Function Chains (SFCs) composed of VNFs (a series of VNFs, where 's' indicates different types of VNFs) to meet varying security and performance requirements. Therefore, the European Telecommunications Standards Institute (ETS) advocates the use of Virtual Network Function Forwarding Graphs (VNF-FG) to represent the complex network services of IoT terminals.
[0003] A VNF-FG is a Directed Acyclic Graph (DAG) that provides an efficient way to define and manage network connections and communication between VNFs, enabling more efficient, flexible, and scalable network services. Service providers receive network service requests and complete the VNF-FG design to provide specific network services. The VNF-FG design directly determines the efficiency of VNF placement and the performance of NFVs. Considering that applications in the IoT environment are all represented as a DAG, service providers urgently need to design VNF-FGs for IoT terminals to achieve end-to-end network services.
[0004] The essence of VNF-FG design is to merge identical VNFs from SFC requests of different network flows received by IoT terminals, ensuring that the resulting directed graph is acyclic. If the constraint that only identical VNFs can be merged is relaxed, the problem can be viewed as selecting several instances of VNFs from each SFC to complete the mapping of VNFs in the VNF-FG, which is equivalent to the VNFs placement problem. The VNFs placement problem is NP-hard; therefore, VNF-FG design is also NP-hard. Compared to the simpler SFC design, VNF-FG design is more challenging. There is a conflict between maximizing the merging of identical VNFs to minimize the number of virtual nodes and links in the VNF-FG and ensuring that the VNF-FG is acyclic. Finding a balance between these two is the primary issue that VNF-FG design needs to consider. Identifying the key VNF instances that cause loops and further breaking them is the core of solving this problem.
[0005] In a VNF-FG, VNF nodes ultimately need to be mapped to underlying physical nodes. VNF software uses virtual machines to provide services to users. However, instantiating and running virtual machines incurs costs. Therefore, by reducing the number of nodes in a VNF-FG, the number of virtual machine instances can be reduced, effectively lowering operating costs. Summary of the Invention
[0006] The purpose of this invention is to propose a design method for virtual network function forwarding graphs that are adapted to multiple service scenarios of the Internet of Things, and to design a virtual network function forwarding graph that minimizes the number of logical links and VNF nodes in both offline and online scenarios.
[0007] The technical solution of this invention is divided into virtual network function forwarding graph design methods in offline and online scenarios, including the following steps:
[0008] S1. Design of Virtual Network Function Forwarding Graph in Offline Scenarios: For a group of traffic requests for different network services from IoT terminals, VNFs of the same type in each SFC are directly merged into one node to obtain a new virtual topology graph. Loops in the graph are found and eliminated to design a loop-free VNF-FG.
[0009] Step S1 includes the following sub-steps:
[0010] S11. Based on the SFC of the service request, merge the VNFs of the same type in each SFC directly into a virtual VNF node to obtain a new virtual topology graph.
[0011] S12. Traverse the newly generated virtual topology graph in step S11, calculate the loops in it, and sort them in descending order of loop length.
[0012] S13. Select the longest loop, and calculate the longest common subsequence p between this loop sequence and each SFC. ij ;
[0013] S14, p ij The longest sequence is placed in P i ;
[0014] S15, Traversing P i For each sequence, calculate the number of times the flow traverses the last VNF in each path, T. i , will T i The smallest sequence is placed into set P. it ;
[0015] S16, Reverse traversal of P it For each path in the graph, increase the number of each VNF node to the number of times this VNF is traversed by the flow, while ensuring that the flow to which the traversed path belongs exclusively has an instance node representing this type of VNF.
[0016] S17. Determine if the number of flows between this VNF node and the previous VNF node is 1. If yes, proceed to step S18; otherwise, return to step S16 and continue to traverse this path in reverse.
[0017] S18. Stop traversing this path and check if P has been completely traversed. it If yes, proceed to step S19; otherwise, return to step S16.
[0018] S19. Return all generated topology graphs;
[0019] S110. In the obtained topology graph, find the graph with the fewest newly added VNF nodes;
[0020] S111. Determine if there are still loops in the topology graph. If so, return to step S12 to continue traversing the loops; otherwise, end the traversal.
[0021] S2. Online Scenario Virtual Network Function Forwarding Graph Design: Embed a newly arrived SFC flow into the designed VNF-FG, with particular emphasis on utilizing existing virtual nodes and links, and generating a loop-free VNF-FG.
[0022] Step S2 includes the following sub-steps:
[0023] S21. Traverse each link of the newly arrived SFC;
[0024] S22. Determine if a path can be found in the existing VNF-FG to represent this link. If yes, proceed to step S23; otherwise, return to step S21 to continue traversing the links and make m i =0;
[0025] S23. Select the path with the smallest number of jumps and make m i =1;
[0026] S24. Determine if the number of times the link has been traversed is greater than 1. If yes, proceed to sub-step S241; otherwise, return to step S21 to continue traversing the next link.
[0027] S241. For any two adjacent links (which are already represented by existing paths), if the VNFs connecting them are represented by different VNF nodes in the new virtual topology graph, then the one with the smaller total number of hops is selected.
[0028] S25. Determine whether the links of SFC have been traversed. If yes, proceed to step S26 and update the virtual topology graph. Otherwise, return to step S21 to continue traversing the links.
[0029] S26. Repeat the process for each link of the newly arrived SFC;
[0030] S27, Determine m i If the value is 0, proceed to step S28; otherwise, return to step S26.
[0031] S28. Determine whether the VNFs connecting the beginning and end of this link have been represented by the VNF nodes in the diagram. If yes, proceed to step S29; otherwise, proceed to step S210.
[0032] S29. Connect the two VNF nodes in the virtual topology, and determine whether there is a loop in the connected virtual topology. If so, add a VNF node and proceed to step S213; otherwise, return to step S26.
[0033] S210. Determine whether the VNFs at the beginning and end of this link are not represented by the VNF nodes in the graph. If so, proceed to step S211; otherwise, proceed to step S212.
[0034] S211. Determine whether the VNF nodes of the first and last VNF types of the connection link exist in the graph. If so, proceed to step S2111; otherwise, proceed to step S2116.
[0035] S2111. Find the first and last VNFs of type VNF in the virtual topology graph, put them into the sequence and sort them in ascending order of resource requirements.
[0036] S2112. Construct links in the nodes of the two sequences in turn;
[0037] S2113. Determine whether the connected graph is acyclic. If so, stop and proceed to step S2114. Otherwise, continue to disconnect the link and return to step S2112 to continue constructing the link.
[0038] S2114. Determine whether both sequences have been traversed. If yes, proceed to step S2115; otherwise, return to step S26.
[0039] S2115. Add a new VNF node to the end VNF and connect it to another node. Return to step S26.
[0040] S2116. Determine whether the VNF nodes of the first and last VNF types of the connection link do not exist in the graph. If so, proceed to step S2117; otherwise, proceed to step S2118.
[0041] S2117. Generate new VNF nodes of type first and last VNF and connect them directly. Return to step S26.
[0042] S2118. Generate a VNF node representing another VNF type, connect it to the VNF node in the graph used to represent another VNF, and return to step S26.
[0043] S212. Determine whether the VNF nodes of the same type of VNF that are not represented by VNF nodes exist in the graph. If yes, proceed to step S2121; otherwise, proceed to step S2125.
[0044] Step S212 includes the following sub-steps S2121-S2125:
[0045] S2121. Find all VNFs of the same type and put them into a list in ascending order of resource requirements;
[0046] S2122, connect to another VNF node in sequence;
[0047] S2123. Determine whether the connected graph is acyclic. If yes, return to step S2124; otherwise, return to step S2122.
[0048] S2124. Determine whether the sequence has been traversed. If yes, proceed to step S2125; otherwise, return to step S26.
[0049] S2125. Generate a VNF node representing this VNF type and connect it to another VNF node. Return to S26 to finish.
[0050] S213. Determine whether the SFC link has been traversed. If yes, end the process and return to the topology graph. Otherwise, return to step S26 to continue traversing.
[0051] The beneficial effects of this invention are:
[0052] (1) This invention fills the gap in the design phase of VNF-FG in the current service deployment and resource allocation work, and provides a complete process for designing VNF-FG structure (representing the specific provision of network service) based on the user's network service request in both offline and online scenarios.
[0053] (2) This invention considers VNF-FG design not only in offline scenarios but also in online scenarios. When designing VNF-FG in offline scenarios, it makes full use of VNFs of the same type in each SFC to minimize the number of nodes in the final VNF-FG. When designing VNF-FG in online scenarios, it fully considers different situations and embeds each link of the SFC sequentially, making full use of the nodes and links in the existing VNF-FG.
[0054] (3) Reduced mapping costs: When designing VNF-FG, this invention maximizes the use of VNFs of the same type to generate the fewest number of virtual nodes, which can reduce link mapping costs and virtual machine instantiation costs. Attached Figure Description
[0055] Figure 1 The diagram shown is a flowchart of the design process of a virtual network function forwarding graph design method adapted to multiple scenarios provided by the present invention in an offline scenario.
[0056] Figure 2 This is a schematic diagram of an SFC request to be integrated into a VNF-FG for the implementation of this invention.
[0057] Figure 3 This is a schematic diagram illustrating the initial aggregation of SFC requests into a loop diagram for the purpose of implementing the present invention.
[0058] Figure 4 A schematic diagram of the topology loop provided for the implementation of this invention.
[0059] Figure 5 A schematic diagram of topology graph loop removal provided for implementation of the present invention.
[0060] Figure 6 This is a schematic diagram illustrating the failure of topology graph deloop removal provided for the implementation of this invention.
[0061] Figure 7 The flowchart of steps S21-S25 of the design method for a virtual network function forwarding graph adapted to multiple scenarios provided for the implementation of the present invention is shown.
[0062] Figure 8 The flowchart of steps S26-S213 of the design method for a virtual network function forwarding graph adapted to multiple scenarios provided for the implementation of the present invention is shown.
[0063] Figure 9 The flowchart of step S211 in the online scenario provided for the implementation of the present invention is shown.
[0064] Figure 10 The flowchart of step S212 in the online scenario provided for the implementation of the present invention is shown.
[0065] Figure 11 This is a schematic diagram illustrating different SFC requests in different scenarios for the implementation of this invention.
[0066] Figure 12 A schematic diagram of a VNF-FG to be embedded in an SFC in a given scenario, provided for the implementation of this invention.
[0067] Figure 13 This is a schematic diagram showing the SFC embedded in a scene, provided for the implementation of the present invention.
[0068] Figure 14 This is a schematic diagram illustrating different scenarios of link embedding in different contexts, provided for the implementation of this invention. Detailed Implementation
[0069] The following specific examples illustrate the implementation of the present invention. Those skilled in the art can easily understand other advantages and effects of the present invention from the content disclosed in this specification. The present invention can also be implemented or applied through other different specific embodiments, and various details in this specification can be modified or changed based on different viewpoints and applications without departing from the spirit of the present invention. It should be noted that the illustrations provided in the following embodiments are only schematic representations of the basic concept of the present invention. Unless otherwise specified, the following embodiments and features can be combined with each other.
[0070] The accompanying drawings are for illustrative purposes only and are schematic diagrams, not actual pictures. They should not be construed as limiting the invention. To better illustrate the embodiments of the invention, some parts in the drawings may be omitted, enlarged, or reduced, and do not represent the actual product dimensions. It is understandable to those skilled in the art that some well-known structures and their descriptions may be omitted in the drawings.
[0071] The purpose of this invention is to propose a design method for virtual network function forwarding graphs that are adapted to multiple service scenarios of the Internet of Things. The method designs a virtual network function forwarding graph that minimizes the number of logical links and VNF nodes in both offline and online scenarios, including the following steps S1 and S2.
[0072] S1. Design of Virtual Network Function Forwarding Graph in Offline Scenarios: For a group of traffic requests for different network services from IoT terminals, VNFs of the same type in each SFC are directly merged into one node to obtain a new virtual topology graph. Loops in the graph are found and eliminated to design a loop-free VNF-FG.
[0073] Step S1 includes the following sub-steps S11-111:
[0074] S11. Based on the SFC of the service request, merge the VNFs of the same type in each SFC directly into a virtual node to obtain a new virtual topology graph.
[0075] like Figure 2 As shown, three network service requests are given. Each SFC initially contains several types of VNFs. Then, VNFs of the same type in each SFC are directly merged. The final synthesized topology is shown below. Figure 3 As shown; and because VNF-FG requires a directed acyclic graph, therefore Figure 3 Loops cannot exist, so proceed to step S12 to find and eliminate loops.
[0076] S12. Traverse the newly generated virtual topology graph in step S11, calculate the loops in it, and sort them in descending order of loop length.
[0077] S13. Select the longest loop, and calculate the longest common subsequence p between this loop sequence and each SFC. ij ;
[0078] S14, p ij The longest sequence is placed in P i ;
[0079] S15, Traversing P i For each sequence, calculate the number of times the flow traverses the last VNF in each path, T. i , will T i The smallest sequence is placed into set P. it ;
[0080] S16, Reverse traversal of P it For each path in the graph, increase the number of each VNF node to the number of times this VNF is traversed by the flow, while ensuring that the flow to which the traversed path belongs exclusively has an instance node representing this type of VNF.
[0081] S17. Determine if the number of flows between this VNF node and the previous VNF node is 1. If yes, proceed to step S18; otherwise, return to step S16 and continue to traverse this path in reverse.
[0082] S18. Stop traversing this path and check if P has been completely traversed. it If yes, proceed to step S19; otherwise, return to step S16.
[0083] S19. Return all generated topology graphs;
[0084] S110. In the obtained topology graph, find the graph with the fewest newly added VNF nodes;
[0085] S111. Determine if there are still loops in the topology graph. If so, return to step S12 to continue traversing the loops; otherwise, end the traversal.
[0086] like Figure 3 and Figure 4 As shown, there are three loops: c1: (2, 3, 4, 5), c2: (3, 4, 5), and c3: (2, 5), with c1 being the longest. The paths of the three flows on c1 are p1: (2, 3, 4, 5), p2: (5, 2, 3, 4), and p3: (3, 4). According to step S15, we start traversing from the longest path, i.e., p1 and p2. The end node of p1 is VNF5, which is traversed by the flow 2 times. The end node of p2 is VNF4, which is traversed by the flow 3 times. Therefore, we traverse p1 first.
[0087] In p1, VNF5 is traversed by the flow 2 times, therefore its instance count is increased to 2, as follows: Figure 5 The number of VNF5s is increased to two, where flow f1 must exclusively occupy VNF5b; otherwise, as shown... Figure 6 As shown, the loop still exists. At this point, loop c1 is eliminated, and only flow f1 passes through the link between VNF4 and VNF5, so there is no need to continue traversing in step S18.
[0088] For p2, there are 3 flows through its last node VNF4, which requires 3 VNF4 instances. The last hop from VNF3 to VNF4 has 3 flows, indicating that VNF3 needs further investigation. Clearly, loop elimination based on p1 is better because it requires fewer additional instances.
[0089] VNF-FG design may have multiple results that satisfy the acyclic requirement. To obtain the logical links and the number of virtual nodes N, total The minimum number of VNF-FGs, in this embodiment of the invention, is the sum N of the total number of logical links and the total number of virtual nodes. total The definition is as follows:
[0090] ;
[0091] Where β1 and β2 are balance factors, V is the set of all candidate virtual nodes, u is a virtual node; F is the set of all VNF types, f j For some type of VNF, T u,fj Determine whether node u is used to represent a VNF of type fj. (u,v) is the link between node u and node v, Ψ u,vThis indicates whether the link (u,v) exists. Therefore, this invention not only considers the case of acyclic VNF-FG, but also designs a VNF-FG with the fewest nodes and links.
[0092] S2. Online Scenario Virtual Network Function Forwarding Graph Design: Embed a newly arrived SFC flow into the designed VNF-FG, with particular emphasis on utilizing existing VNF nodes and links, and generating a loop-free VNF-FG.
[0093] Step S2 includes the following sub-steps S21-S213:
[0094] S21. Traverse each link of the newly arrived SFC;
[0095] S22. Determine if a path can be found in the existing VNF-FG to represent this link. If yes, proceed to step S23; otherwise, return to step S21 to continue traversing the links and make m i =0;
[0096] like Figure 11 As shown, f1 is a newly arrived SFC sequence. Figure 12 For VNF-FG, Figure 11 The link between VNF1 and VNF4 on the middle stream f1 is Figure 12 In the VNF-FG class, a path L:{VNF1,VNF3b,VNF4} can be found to represent this link.
[0097] S23. Select the path with the smallest number of jumps and make m i =1;
[0098] S24. Determine if the number of times the link has been traversed is greater than 1. If yes, proceed to sub-step S241; otherwise, return to step S21 to continue traversing the next link.
[0099] S241. For any two adjacent links (which are already represented by existing paths), if the VNFs connecting them are represented by different VNF nodes in the new virtual topology graph, then the one with the smaller total number of hops is selected.
[0100] like Figure 12 As shown, VNF3a and VNF3b in the topology are VNFs of the same type; Figure 11In the middle stream f1, the link between VNF1 and VNF4 can be represented by two existing paths in the topology: L1: {VNF1, VNF3a} and L2: {VNF1, VNF3b}. The link between VNF3 and VNF4 can be represented by two existing paths: L3: {VNF3a, VNF6, VNF4} and L4: {VNF3b, VNF4}. The total number of hops between L1 and L3 is 3, and the total number of hops between L2 and L4 is 2. Therefore, the path L2+L4 is selected.
[0101] S25. Determine whether the links of SFC have been traversed. If yes, proceed to step S26 and update the virtual topology graph. Otherwise, return to step S21 to continue traversing the links.
[0102] S26. Repeat the process for each link of the newly arrived SFC;
[0103] S27, Determine m i If the value is 0, proceed to step S28; otherwise, return to step S26.
[0104] S28. Determine whether the VNFs connecting the beginning and end of this link have been represented by the VNF nodes in the diagram. If yes, proceed to step S29; otherwise, proceed to step S210.
[0105] like Figure 14 As shown in (a), in the current diagram, the head and tail VNFs connecting this link are represented by nodes A and B respectively, so only one link needs to be newly established between A and B.
[0106] S29. Connect the two VNF nodes in the virtual topology, and determine whether there is a loop in the connected virtual topology. If so, add a VNF node and proceed to step S213; otherwise, return to step S26.
[0107] like Figure 11 As shown in the figure, the link between VNF1 and VNF4 in flow f1 is... Figure 12 The path L1:{VNF1,VNF3a,VNF4} represents the path; the link between VNF4 and VNF2 cannot be... Figure 9 Find a path representation in the topology, but the link between VNF2 and VNF5 is... Figure 9 The path L2:{VNF2,VNF5} represents this, therefore only one path needs to be added between these two nodes, such as... Figure 13 The dashed path between VNF4 and VNF2 shown is sufficient. If a loop is created, simply add a terminal VNF instance.
[0108] like Figure 14 (a) shows all possible outcomes in this case, either by directly connecting the VNF node or by adding a corresponding VNF node under a ring after the connection.
[0109] S210. Determine whether the VNFs at the beginning and end of this link are not represented by the VNF nodes in the graph. If so, proceed to step S211; otherwise, proceed to step S212.
[0110] like Figure 14 As shown in (c) and (d), (c) indicates that the VNFs corresponding to the first link of the SFC are not represented by virtual nodes; (d) indicates that the VNFs corresponding to the links in the middle of the SFC are not represented by virtual nodes.
[0111] Specifically, such as Figure 11 As shown in f3, VNF1 can... Figure 12 The corresponding virtual node is found and represented by it, but neither VNF7 nor VNF8 can find the corresponding type of virtual node in the graph. Among them, one link connecting VNF1 and VNF7 is not represented, and neither link connecting VNF7 and VNF8 is represented.
[0112] S211. Determine whether the VNF nodes of the first and last VNF types of the connection link exist in the graph. If so, proceed to step S2111; otherwise, proceed to step S2116.
[0113] Step S211 includes the following sub-steps S2111-S2116:
[0114] S2111. Find the first and last VNFs of type VNF in the virtual topology graph, put them into the sequence and sort them in ascending order of resource requirements.
[0115] S2112. Construct links in the nodes of the two sequences in turn;
[0116] S2113. Determine whether the connected graph is acyclic. If so, stop and proceed to step S2114. Otherwise, continue to disconnect the link and return to step S2112 to continue constructing the link.
[0117] S2114. Determine whether both sequences have been traversed. If yes, proceed to step S2115; otherwise, return to step S26.
[0118] S2115. Add a new VNF node to the end VNF and connect it to another node. Return to step S26.
[0119] S2116. Determine whether the VNF nodes of the first and last VNF types of the connection link do not exist in the graph. If so, proceed to step S2117; otherwise, proceed to step S2118.
[0120] S2117. Generate new VNF nodes of type first and last VNF and connect them directly. Return to step S26.
[0121] like Figure 11 Specifically, such as Figure 11 As shown in f3, neither VNF7 nor VNF8 can find a corresponding type of virtual node in the graph. Both of these VNFs need to generate new virtual nodes in the graph to represent them.
[0122] S2118. Generate a VNF node representing another VNF type, connect it to the VNF node in the graph used to represent another VNF, and return to step S26.
[0123] S212. Determine whether the VNF nodes of the same type of VNF that are not represented by VNF nodes exist in the graph. If yes, proceed to step S2121; otherwise, proceed to step S2125.
[0124] Step S212 includes the following sub-steps S2121-S2122:
[0125] S2121. Find all VNFs of the same type and put them into a list in ascending order of resource requirements;
[0126] S2122, connect to another VNF node in sequence;
[0127] S2123. Determine whether the connected graph is acyclic. If yes, return to step S2124; otherwise, return to step S2122.
[0128] S2124. Determine whether the sequence has been traversed. If yes, proceed to step S2125; otherwise, return to step S26.
[0129] S2125. Generate a VNF node representing this VNF type and connect it to another VNF node. Return to S26 to finish.
[0130] S213. Determine whether the SFC link has been traversed. If yes, end the process and return to the topology graph. Otherwise, return to step S26 to continue traversing.
[0131] like Figure 14 As shown in (b), A has been represented by a VNF node in the graph, while B has not. If a VNF node of type B exists in the graph, a new link is created directly between A and B. If there is a loop, a VNF node of type B is added.
[0132] Those skilled in the art will recognize that the embodiments described herein are intended to help the reader understand the principles of the invention, and should be understood that the scope of protection of the invention is not limited to such specific statements and embodiments. Those skilled in the art can make various other specific modifications and combinations based on the technical teachings disclosed in this invention without departing from the spirit of the invention, and these modifications and combinations are still within the scope of protection of this invention.
Claims
1. A method for designing a virtual network function forwarding graph in an offline scenario, characterized in that, include: For a group of traffic requests for different network services from IoT terminals, VNFs of the same type in each SFC are merged into one node to obtain a new virtual topology. Loops in the new virtual topology are found and eliminated to design a loop-free VNF-FG. The design of acyclic VNF-FG involves the following steps: S11. Based on the SFC of the service request, merge the VNFs of the same type in each SFC into a virtual node to obtain a new virtual topology graph. S12. Traverse the newly generated virtual topology graph in step S11, calculate the loops in it, and sort them in descending order of loop length. S13. Select the longest loop, and calculate the longest common subsequence p between this loop sequence and each SFC. ij ; S14, p ij The longest sequence is placed in P i ; S15, Traversing P i For each sequence, calculate the number of times the flow traverses the last VNF in each path, T. i , will T i The smallest sequence is placed into set P. it ; S16, Reverse traversal of P it For each path, the number of nodes of each VNF in the virtual topology graph is increased to the number of times this VNF is traversed by the flow, so that the SFC to which the traversed path belongs exclusively occupies an instance node representing this type of VNF. S17. Determine if the number of flows between this VNF node and the previous VNF node is 1. If yes, proceed to step S18; otherwise, return to step S16 and continue to traverse this path in reverse. S18. Stop traversing this path and check if P has been completely traversed. it If so, proceed to step S19; Otherwise, return to step S16; S19. Return all generated virtual topology graphs; S110. In the obtained virtual topology graph, find the target virtual topology graph with the fewest newly added VNF nodes; S111. Determine if there are still loops in the target virtual topology graph. If so, return to step S12 to continue traversing the loops; otherwise, end the traversal.