WO2021008497A1 - 数据传输方法、网络节点及存储介质 - Google Patents

数据传输方法、网络节点及存储介质 Download PDF

Info

Publication number
WO2021008497A1
WO2021008497A1 PCT/CN2020/101672 CN2020101672W WO2021008497A1 WO 2021008497 A1 WO2021008497 A1 WO 2021008497A1 CN 2020101672 W CN2020101672 W CN 2020101672W WO 2021008497 A1 WO2021008497 A1 WO 2021008497A1
Authority
WO
WIPO (PCT)
Prior art keywords
path
underlying
segment identifier
bottom layer
tlv
Prior art date
Application number
PCT/CN2020/101672
Other languages
English (en)
French (fr)
Inventor
杜宗鹏
董杰
常晓东
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP20839903.0A priority Critical patent/EP3985930A4/en
Publication of WO2021008497A1 publication Critical patent/WO2021008497A1/zh
Priority to US17/573,094 priority patent/US20220131791A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • H04L45/507Label distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/243Multipath using M+N parallel active paths

Definitions

  • This application relates to the field of communication technology, and in particular to a data transmission method, network node and storage medium.
  • Segment Routing is a protocol designed to forward data packets in the network based on the concept of source routing. SR divides the network path into segments, and assigns segment IDs (full English name: segment ID, English abbreviation: SID) to these segments or nodes. By carrying sequential segment IDs in the data packet, the data packet can pass the segment ID The indicated forwarding path is transmitted. Segment routing (SRv6) based on Internet Protocol Version 6 (Internet Protocol Version 6, IPv6) refers to the combination of SR technology and IPv6 protocol, which is defined as an instantiated SID according to the IPv6 address format, and is based on the IPv6 forwarding plane. Realize the function of SR.
  • IPv6 Internet Protocol Version 6
  • different nodes in the SRv6 network can be connected by Internet Protocol address (full English name: internet protocol address, abbreviated: IP) layer links.
  • IP Internet Protocol address
  • the node can publish at least one endpoint three-level cross-connection segment identifier (End.X SID, End stands for endpoint, which means endpoint; X stands for crossing, which means three-layer cross-connect, and SID stands for segment identifier ), each End.X SID is used to identify an IP layer link directly connected to the node, and other nodes in the network can determine the corresponding end of each IP layer link in the network by sending and receiving End.X SIDs issued by each other SID.
  • the head node When a data packet enters the SRv6 network, the head node will receive the data packet and determine the forwarding path of the data packet. After that, in a possible implementation, the head node can obtain the data according to each IP layer link that the forwarding path needs to pass through. The End.X SID corresponding to each IP-layer link writes the obtained End.X SID into the data packet, and then sends the data packet carrying the End.X SID to the next node.
  • the node When any node receives a data packet, the node will parse the data packet to get the End.X SID carried in the data packet, and send the data packet out of the IP layer outbound interface bound to End.X SID, then the data packet will pass The IP layer link corresponding to the outbound interface of the IP layer reaches the next node, and the next node will continue to forward the data packet by performing similar steps until the data packet reaches the destination node.
  • the head node can obtain the endpoint segment identifier corresponding to each node according to each node that the forwarding path needs to pass through (End SID, End means endpoint, meaning endpoint, SID means segment identifier), Write the obtained End SID into the data packet, and then send the data packet carrying the End SID to the next node.
  • End SID End means endpoint, meaning endpoint, SID means segment identifier
  • the node will parse the data packet to obtain the End SID carried in the data packet, and send the data packet to the node corresponding to the End SID, and the data packet will arrive at the node corresponding to the End SID.
  • each node continues to forward data packets by performing similar steps until the data packets reach the destination node.
  • nodes in the SRv6 network can only perceive links at the IP layer, but cannot perceive the underlying path. Therefore, even if different nodes are connected through multiple underlying paths, the nodes can only be fixed through the pre-configured underlying path.
  • the transmission of data packets causes the underlying path of the transmission of data packets to be unable to be controlled according to business requirements, resulting in poor flexibility.
  • This application provides a data transmission method, network node, and storage medium, which can allow nodes in a segmented routing network to perceive the underlying path, thereby improving the flexibility of transmitting data packets.
  • the technical solution is as follows:
  • a data transmission method is provided, which is applied to a first network node, and the first network node and the second network node are connected by at least one underlying path, and the underlying path refers to the data link layer.
  • Path, physical layer path, or path constructed by tunnel technology the method includes: issuing at least one bottom layer segment identifier, each of the bottom layer segment identifiers corresponding to one or more bottom layer paths in the at least one bottom layer path; Receiving a data packet carrying a target underlying segment identifier; sending the data packet through an underlying path corresponding to the target underlying segment identifier in the at least one underlying path, and the target underlying segment identifier is one of the at least one underlying segment identifier Any underlying segment identifier.
  • nodes in the segment routing network can perceive the underlying path through the underlying segment identifier. Then, when transmitting data packets, it can be based on the underlying segment carried by the data packet. Identification. Data packets are sent through the underlying path corresponding to the underlying segment identifier. Therefore, according to business requirements, you can specify which underlying path the data packet will transmit the data packet through, so that different data packets can be transmitted through different underlying paths, which improves the transmission of data packets. Flexibility helps in traffic planning.
  • the nodes in the SRv6 network can perceive each optical path through the underlying segment identifier, thus supporting the POI scenario, and can flexibly select the transmission traffic according to the needs.
  • Light path when the underlying path is an optical path, by issuing the underlying segment identifier, the nodes in the SRv6 network can perceive each optical path through the underlying segment identifier, thus supporting the POI scenario, and can flexibly select the transmission traffic according to the needs.
  • Light path when the underlying path is an optical path, by issuing the underlying segment identifier, the nodes in the SRv6 network can perceive each optical path through the underlying segment identifier, thus supporting the POI scenario, and can flexibly select the transmission traffic according to the needs. Light path.
  • one or more bottom layer segment identifiers in the at least one bottom layer segment identifier are bottom layer link segment identifiers.
  • one or more of the at least one underlying path is an optical path, an asynchronous transfer mode (ATM) path, a frame relay (FR) path, and a back-to-back Ethernet (ethernet) path.
  • Path generic routing encapsulation (GRE) tunnel, flexible Ethernet (Flex Ethernet, FlexE) path, multi-protocol label switching resource reservation protocol traffic engineering (multi-protocol label switching resource reservation protocol traffic engineering , MPLS RSVP-TE tunnel, IP tunnel or user datagram protocol (user datagram protocol, UDP) tunnel.
  • GRE generic routing encapsulation
  • FlexE flexible Ethernet
  • multi-protocol label switching resource reservation protocol traffic engineering multi-protocol label switching resource reservation protocol traffic engineering
  • MPLS RSVP-TE tunnel IP tunnel or user datagram protocol (user datagram protocol, UDP) tunnel.
  • the optical path is a dense wavelength division multiplexing (DWDM) path or an optical transport network (optical transport network, OTN) path.
  • DWDM dense wavelength division multiplexing
  • OTN optical transport network
  • the issuing at least one underlying segment identifier includes: issuing at least two underlying segment identifiers, the at least two underlying segment identifiers corresponding to the same endpoint three-level cross-connect segment identifier (End.X SID), so The endpoint three-layer cross-connect segment identifier is used to identify the three-layer adjacency relationship between the first network node and the second network node.
  • End.X SID identifies the three-layer adjacency relationship between two network nodes
  • one End.X SID corresponds to at least two underlying segment identifiers
  • An adjacency relationship is provided through at least two underlying paths.
  • Path transmission which can flexibly schedule various underlying paths and execute different transmission strategies for different flows, thus expanding the data transmission capacity and improving flexibility.
  • one or more underlying segment identifiers in the at least one underlying segment identifier do not have a corresponding endpoint layer three cross-connect segment identifier, and the endpoint layer three cross-connect segment identifier is used to identify the first network node and The three-layer adjacency relationship between the second network nodes.
  • End.X SID identifies the three-layer adjacency relationship between two network nodes, if the underlying segment identifier does not have a corresponding End.X SID, it indicates that the two network nodes have not established an adjacency relationship at the IP layer
  • the data packet can also be transmitted through the underlying path corresponding to the underlying segment identifier. Then, even if the IP layer path of the two network nodes cannot be seen , It is also possible to use the underlying segment identifier to schedule the underlying path, thereby expanding the data transmission capability and improving flexibility.
  • the publishing of at least one underlying segment identifier includes: publishing the at least one underlying segment identifier through an interior gateway protocol (interior gateway routing protocol, IGP); or, through a border gateway protocol link status (border gateway protocol). -link state, BGP-LS) to publish the at least one underlying segment identifier; or, to publish the at least one underlying segment identifier through a path calculation element communication protocol (PCEP).
  • IGP interior gateway routing protocol
  • border gateway protocol link status border gateway protocol
  • PCEP path calculation element communication protocol
  • the method further includes: publishing path parameters of one or more underlying paths in the at least one underlying path.
  • the head node or controller can select the bottom path for transmitting data packets according to the path parameters.
  • the method further includes: publishing the identity of the second network node.
  • the head node or the controller can determine the opposite node of the bottom path according to the identifier of the second network node, thereby perceiving which network node the first network node is connected to through the bottom path.
  • the method further includes: publishing the path type of one or more underlying paths in the at least one underlying path.
  • the head node or controller can perceive which type of underlying path is specifically released, so that it can schedule a specific type of underlying path for data transmission according to business needs, thus improving flexibility .
  • the at least one underlying segment identifier is carried in a message, the message includes at least one first (type length value, TLV), and each first TLV includes one underlying segment identifier.
  • TLV type length value
  • the first TLV is a sub-TLV of the second TLV
  • the second TLV includes an endpoint layer three cross-connect segment identifier (End.X SID, End stands for endpoint, meaning endpoint; X stands for crossing, meaning Three-layer cross-connection, SID means segment identifier); or, the first TLV is a TLV parallel to the second TLV; or, the first TLV is a sub-TLV of the location information TLV; or, the first TLV A TLV is a sub-TLV of a new top-level TLV, and the top-level TLV refers to a TLV that is not nested inside other TLVs.
  • the new top-level TLV or the location information TLV includes the endpoint layer three cross-connect segment identifier of the first network node.
  • the endpoint layer three cross-connect segment identifier of the first network node is usually issued through 22TLV or 222TLV, and through the above optional method, the endpoint layer three cross-connect segment identifier of the first network node also passes the new top-level TLV or location The information TLV is released, so 22TLV or 222TLV may not need to carry segment identifiers related to neighboring nodes, thereby reducing the complexity of 22TLV or 222TLV.
  • the method further includes: allocating the at least one underlying segment identifier to the at least one underlying path; or, receiving a configuration instruction, and obtaining the configuration instruction from the configuration instruction.
  • allocating the at least one underlying segment identifier to the at least one underlying path or, receiving a configuration instruction, and obtaining the configuration instruction from the configuration instruction.
  • the method further includes: saving the binding relationship between the bottom layer segment identifier and the bottom layer outbound interface; and the sending the data packet through the bottom layer path corresponding to the target bottom layer segment identifier in the at least one bottom layer path , Including: determining the bottom layer outgoing interface bound by the target bottom layer segment identifier according to the target bottom layer segment identifier and the binding relationship, and sending the data packet through the bottom layer outgoing interface.
  • a data transmission method is provided, which is applied to a head node, where the head node refers to a node at the entrance of a segment routing network, and the method includes: receiving at least one underlying segment identifier from a first network node, and The first network node and the second network node are connected by at least one underlying path.
  • the underlying path refers to a path at the data link layer, a path at the physical layer, or a path constructed through tunneling technology, and each underlying segment identifier corresponds to One or more underlying paths in the at least one underlying path; receiving a data packet; adding a target underlying segment identifier to the data packet, where the target underlying segment identifier is any one of the at least one underlying segment identifier Segment identifier; sending the data packet carrying the target underlying segment identifier to the first network node.
  • the target bottom-level segment identifier is added to the data packet when transmitting the data packet, so that the first network node can identify the corresponding bottom-level path through the bottom-level segment identifier carried in the data packet.
  • Sending data packets so you can specify the underlying path through which the data packets are transmitted according to business needs, so that different data packets can be transmitted through different underlying paths, which improves the flexibility of transmitting data packets and facilitates traffic planning.
  • one or more bottom layer segment identifiers in the at least one bottom layer segment identifier are bottom layer link segment identifiers.
  • one or more of the at least one underlying path is an optical path, ATM path, FR path, back-to-back Ethernet path, GRE tunnel, FlexE path, MPLS RSVP-TE tunnel, IP tunnel, or UDP tunnel .
  • the method before adding a target bottom layer segment identifier to the data packet, the method further includes: selecting the bottom layer path corresponding to the service from the at least one bottom layer path according to the service carried by the data packet , Use the bottom layer segment identifier corresponding to the selected bottom layer path as the target bottom layer segment identifier; or, receive the target bottom layer segment identifier from the controller of the segment routing network, and send it to the data packet Add the target bottom layer segment identifier.
  • the underlying path to transmit the data packet according to the service carried by the data packet for any service, you can specify which underlying path the data packet carrying the service takes, so that different services can be transmitted through different underlying paths , Which is helpful for traffic planning, can make better use of different underlying paths, and improve service quality (Quality of Service, QoS).
  • QoS Quality of Service
  • the selecting the underlying path corresponding to the service from the at least one underlying path includes: according to the path parameter of each underlying path, from the at least one underlying path, selecting a path parameter that satisfies the The underlying path of the transmission requirements of the business.
  • the method further includes: The network node receives path parameters of one or more underlying paths in the at least one underlying path.
  • the method further includes: receiving an identifier of the second network node from the first network node.
  • the method further includes: receiving, from the first network node, path types of one or more underlying paths in the at least one underlying path.
  • a first network node is provided, and the first network node has a function of realizing data transmission in the first aspect or any one of the optional methods of the first aspect.
  • the device includes at least one module, and the at least one module is configured to implement the data transmission method provided in the first aspect or any one of the optional modes of the first aspect.
  • a head node in a fourth aspect, is provided, and the head node has a function of realizing data transmission in any of the foregoing second aspect or any of the second aspects.
  • the device includes at least one module, and the at least one module is configured to implement the data transmission method provided in the foregoing second aspect or any one of the optional manners of the second aspect.
  • a first network node in a fifth aspect, includes a processor, a memory, and a transceiver, and at least one instruction is stored in the memory;
  • the processor is configured to load the instruction and control the transceiver to issue at least one underlying segment identifier, each of the underlying segment identifiers corresponding to one or more underlying paths of the at least one underlying path; the processor It is also used to control the transceiver to receive a data packet carrying a target bottom layer segment identifier through the instruction; the processor is also used to control the transceiver to pass the at least one bottom layer path through the instruction through the The underlying path corresponding to the target underlying segment identifier sends the data packet, and the target underlying segment identifier is any underlying segment identifier of the at least one underlying segment identifier.
  • one or more bottom layer segment identifiers in the at least one bottom layer segment identifier are bottom layer link segment identifiers.
  • one or more of the at least one underlying path is an optical path, ATM path, FR path, back-to-back Ethernet path, GRE tunnel, FlexE path, MPLS RSVP-TE tunnel, IP tunnel, or UDP tunnel .
  • the processor is further configured to control the transceiver to issue path parameters of one or more underlying paths in the at least one underlying path through the instructions.
  • the processor is further configured to control the transceiver to issue the identity of the second network node through the instruction.
  • the processor is further configured to control the transceiver to issue the path type of one or more underlying paths in the at least one underlying path through the instruction.
  • the at least one underlying segment identifier is carried in a message, the message includes at least one first type length value TLV, and each first TLV includes an underlying segment identifier.
  • the first TLV is a sub-TLV of a second TLV, and the second TLV includes an endpoint Layer-3 cross-connect segment identifier; or, the first TLV is a TLV parallel to the second TLV; or The first TLV is a sub-TLV of the location information TLV; or, the first TLV is a sub-TLV of a new top-level TLV, and the top-level TLV refers to a TLV that is not nested inside other TLVs.
  • the processor is configured to allocate the at least one bottom layer segment identifier to the at least one bottom layer path through the instruction; or,
  • the processor is further configured to control the transceiver to receive a configuration instruction through the instruction, and obtain the at least one underlying segment identifier and the status of one or more underlying paths from the configuration instruction. Correspondence.
  • the processor is further configured to control the memory to save the binding relationship between the bottom-level segment identifier and the bottom-level outbound interface through the instruction; the processor is also configured to through the instruction, according to the The target bottom-level segment identifier and the binding relationship determine the bottom-level outgoing interface bound by the target bottom-level segment identifier; the processor is configured to control the transceiver to send the data through the bottom-level outgoing interface through the instruction package.
  • a head node in a sixth aspect, includes a processor, a memory, and a transceiver, and at least one instruction is stored in the memory;
  • the processor is configured to load the instruction to control the transceiver to receive at least one bottom layer segment identifier from a first network node, and the first network node and the second network node are connected by at least one bottom layer path, and the bottom layer A path refers to a path at the data link layer, a path at the physical layer, or a path constructed by tunnel technology, and each bottom layer segment identifier corresponds to one or more bottom layer paths in the at least one bottom layer path;
  • the processor is further configured to control the transceiver to receive data packets through the instruction;
  • the processor is further configured to add a target bottom-level segment identifier to the data packet through the instruction, where the target bottom-level segment identifier is any bottom-level segment identifier among the at least one bottom-level segment identifier;
  • the processor is further configured to control the transceiver to send the data packet carrying the target bottom layer segment identifier to the first network node through the instruction.
  • one or more bottom layer segment identifiers in the at least one bottom layer segment identifier are bottom layer link segment identifiers.
  • one or more of the at least one underlying path is an optical path, ATM path, FR path, back-to-back Ethernet path, GRE tunnel, FlexE path, MPLS RSVP-TE tunnel, IP tunnel, or UDP tunnel .
  • the processor is further configured to select, from the at least one underlying path, the underlying path corresponding to the service according to the service carried by the data packet through the instruction, and set the selected underlying path to The underlying segment identifier corresponding to the path serves as the target underlying segment identifier; or, the processor is further configured to control the transceiver to receive the target underlying segment from the controller of the segment routing network through the instruction Logo.
  • the processor is specifically configured to use the instruction to select, from the at least one underlying path, the underlying path whose path parameters meet the transmission requirements of the service according to the path parameters of each underlying path.
  • the processor is further configured to control the transceiver to receive path parameters of one or more underlying paths in the at least one underlying path from the first network node through the instruction.
  • the processor is further configured to control the transceiver to receive the identifier of the second network node from the first network node through the instruction.
  • the processor is further configured to control the transceiver to receive the path type of one or more underlying paths in the at least one underlying path through the instruction.
  • a computer-readable storage medium is provided, and at least one instruction is stored in the storage medium;
  • the instruction is used for loading by the processor to control the transceiver to issue at least one underlying segment identifier, each of the underlying segment identifiers corresponding to one or more underlying paths in the at least one underlying path; the instruction is also used for For the processor to control the transceiver to receive a data packet carrying a target underlying segment identifier; the instruction is also used for the processor to control the transceiver to pass the target underlying segment identifier in the at least one underlying path
  • the corresponding bottom layer path sends the data packet, and the target bottom layer segment identifier is any one of the at least one bottom layer segment identifiers.
  • one or more bottom layer segment identifiers in the at least one bottom layer segment identifier are bottom layer link segment identifiers.
  • one or more of the at least one underlying path is an optical path, ATM path, FR path, back-to-back Ethernet path, GRE tunnel, FlexE path, MPLS RSVP-TE tunnel, IP tunnel, or UDP tunnel .
  • the instruction is further used for the processor to control the transceiver to issue path parameters of one or more underlying paths in the at least one underlying path.
  • the instruction is also used for the processor to control the transceiver to issue the identity of the second network node.
  • the instruction is further used for the processor to control the transceiver to issue the path type of one or more of the at least one underlying path.
  • the at least one underlying segment identifier is carried in a message, the message includes at least one first type length value TLV, and each first TLV includes an underlying segment identifier.
  • the first TLV is a sub-TLV of a second TLV, and the second TLV includes an endpoint Layer-3 cross-connect segment identifier; or, the first TLV is a TLV parallel to the second TLV; or The first TLV is a sub-TLV of the location information TLV; or, the first TLV is a sub-TLV of a new top-level TLV, and the top-level TLV refers to a TLV that is not nested inside other TLVs.
  • the instruction is further used for the processor to allocate the at least one underlying segment identifier to the at least one underlying path; or,
  • the instruction is also used for the processor to control the transceiver to receive a configuration instruction, and obtain the correspondence between the at least one underlying segment identifier and one or more underlying paths in the at least one underlying path from the configuration instruction relationship.
  • the instruction is further used for the processor to control the memory to save the binding relationship between the bottom layer segment identifier and the bottom layer outbound interface;
  • the segment identifier and the binding relationship determine the underlying outbound interface bound by the target underlying segment identifier;
  • the instruction is also used for the processor to control the transceiver to send the data packet through the underlying outbound interface .
  • a computer-readable storage medium is provided, and at least one instruction is stored in the storage medium;
  • the instruction is used for loading by the processor to control the transceiver to receive at least one underlying segment identifier from the first network node, and the first network node and the second network node are connected by at least one underlying path, and the underlying path is Refers to a path at the data link layer, a path at the physical layer, or a path constructed by tunnel technology, and each bottom layer segment identifier corresponds to one or more bottom layer paths in the at least one bottom layer path;
  • the instructions are also used for the processor to control the transceiver to receive data packets
  • the instruction is also used for the processor to add a target bottom-level segment identifier to the data packet, where the target bottom-level segment identifier is any bottom-level segment identifier of the at least one bottom-level segment identifier;
  • the instruction is also used for the processor to control the transceiver to send the data packet carrying the target bottom layer segment identifier to the first network node.
  • one or more bottom layer segment identifiers in the at least one bottom layer segment identifier are bottom layer link segment identifiers.
  • one or more of the at least one underlying path is an optical path, ATM path, FR path, back-to-back Ethernet path, GRE tunnel, FlexE path, MPLS RSVP-TE tunnel, IP tunnel, or UDP tunnel .
  • the instruction is further used for the processor to select the underlying path corresponding to the service from the at least one underlying path according to the service carried by the data packet, and to set the selected underlying path
  • the corresponding bottom layer segment identifier is used as the target bottom layer segment identifier; or, the instruction is also used for the processor to control the transceiver to receive the target bottom layer from the segment path for the network controller Segment ID.
  • the instruction is used for the processor to select, from the at least one underlying path, the underlying path whose path parameters meet the transmission requirements of the service according to the path parameters of each underlying path.
  • the instruction is further used for the processor to control the transceiver to receive path parameters of one or more underlying paths in the at least one underlying path from the first network node.
  • the instruction is further used for the processor to control the transceiver to receive the identifier of the second network node from the first network node.
  • the instruction is further used for the processor to control the transceiver to receive the path type of one or more underlying paths in the at least one underlying path.
  • a computer program is provided, and the computer program is configured to execute the method described in the first aspect or any one of the optional manners in the first aspect.
  • a computer program is provided, and the computer program is used to execute the method described in the second aspect or any one of the optional manners of the second aspect.
  • a data transmission system in an eleventh aspect, includes a first network node and a head node.
  • the first network node is configured to perform the first aspect or any one of the optional methods of the first aspect.
  • the head node is used to execute the method described in the second aspect or any one of the optional manners of the second aspect.
  • FIG. 1 is an architecture diagram of a data transmission system provided by an embodiment of the present application
  • FIG. 2 is an architecture diagram of a data transmission system provided by an embodiment of the present application.
  • FIG. 3 is an architecture diagram of a data transmission system provided by an embodiment of the present application.
  • FIG. 4 is a flowchart of a data transmission method provided by an embodiment of the present application.
  • FIG. 5 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 7 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 8 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 9 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 10 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 11 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 12 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 13 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 14 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 15 is a schematic diagram of the format of a TLV provided by an embodiment of the present application.
  • FIG. 16 is a schematic structural diagram of a first network node provided by an embodiment of the present application.
  • FIG. 17 is a schematic structural diagram of a head node provided by an embodiment of the present application.
  • FIG. 18 is a schematic structural diagram of a first network node provided by an embodiment of the present application.
  • FIG. 19 is a schematic structural diagram of a head node provided by an embodiment of the present application.
  • multiple in this application means two or more than two.
  • multiple bottom-level segment identifiers refer to two or more bottom-level segment identifiers.
  • Multiple bottom paths refer to two or more bottom paths.
  • Segment Routing It is a protocol designed to forward data packets in the network based on the concept of source routing. SR divides the network path into segments, and assigns segment IDs (Segment IDs, SIDs) to these segments and network nodes. By arranging the SIDs in an orderly manner, you can get the SID List (SID List, also in SR-MPLS). Called label stack), SID List can indicate a forwarding path.
  • SID List also in SR-MPLS.
  • SID List can indicate a forwarding path.
  • the nodes and paths through which the data packets carrying the SID List pass can be specified to meet the requirements of traffic tuning.
  • a data packet can be compared to luggage, and SR can be compared to a label affixed to the luggage.
  • Segment routing (SR v6) based on Internet Protocol Version 6 (IPv6): refers to the application of SR technology in IPv6 networks. Use IPv6 address (128bits) as the manifestation of SID.
  • network devices supporting SRv6 will query the local segment identification table (local SID table) according to the destination address (DA) in the data packet.
  • DA destination address
  • the operation corresponding to the strategy is executed according to the SID-related strategy in the local segment identification table.
  • the data packet can be forwarded from the outgoing interface corresponding to the SID; if the destination address of the data packet matches If each SID in the local segment identification table does not have the longest match, then the IPv6 forwarding table is queried, and the longest match forwarding is performed according to the IPv6 forwarding table.
  • Segment Routing Header (Segment Routing Header, SRH): IPv6 message is composed of IPv6 standard header + extended header (0...n) + payload (Payload).
  • SRv6 extension header a new IPv6 extension header is added, called the SRH extension header.
  • This extension header specifies an explicit path for IPv6 and stores IPv6 Segment List information. Its function is the same as the Segment List in SR MPLS. Same as List.
  • the head node adds an SRH extension header to the IPv6 message, and the intermediate node can forward it according to the path information contained in the SRH extension header
  • Bound SID (Binding SID, BSID): The BSID will be bound to a SID list. When a node receives a legal BSID, it will perform BSID-related operations. In SR-MPLS, the BSID-related operations can be: pop the BSID and press it into the corresponding SID List. In SRv6, BSID-related operations can be: according to the different BSID function, insert a new SRH header (End.B6.Insert), or insert a new outer IPv6 header containing SRH (End.B6.Encaps) ).
  • BGP-LS It is a new way to collect network topology.
  • the BGP protocol summarizes the topology information collected by the IGP protocol and sends it to the upper controller.
  • FIG. 1 is an architectural diagram of a data transmission system provided by an embodiment of the present application.
  • the network formed by the system may be provided as a segmented routing network, for example, an SRv6 network.
  • the system includes multiple network nodes, which can be P1, P2, P3, P4, or P5.
  • the dashed dividing line in FIG. 1 above represents the topology of the packet switching network, and the packet switching network may also be called an IP-layer network or a 3-layer network. Below the dashed dividing line in Figure 1 shows the topology of the underlying network.
  • P1, P2, P3, P4, and P5 represent Internet Protocol (IP) layer nodes, and the IP layer nodes may be routers, layer three switches, etc.
  • IP Internet Protocol
  • the connection between P1, P2, P3, P4, and P5 represents the IP layer path.
  • the connection between P1 and P2 represents the IP layer path between P1 and P2, and the IP layer between any two IP layer nodes
  • the path can be established based on the IP addresses of two IP layer nodes.
  • P1 is the head node, which refers to the node at the entrance of the segment routing network, and the head node is used to add the SID to the data packet.
  • O1, O2, O3, O4, and O5 represent the bottom layer nodes.
  • the bottom layer nodes can be data link layer nodes or physical layer nodes, such as optical layer nodes, which can be optical transport network (OTN) equipment , Optical cross-connect (OXC) equipment, etc.
  • OTN optical transport network
  • OXC Optical cross-connect
  • the bottom layer path refers to the path of the data link layer, the path of the physical layer, or the path constructed by tunnel technology.
  • Tunneling technology refers to a way to establish an end-to-end virtual link between networks to transmit data by using the infrastructure of the Internet.
  • the path constructed through the tunnel technology can be an IP tunnel, a UDP tunnel, and so on.
  • the underlying path can be a path for transmitting optical signals, or a path for transmitting electrical signals.
  • the underlying path can be a physical path or a virtual path.
  • the underlying path can be an optical path, an ATM path, an FR path, or a back-to-back Ethernet path, a GRE tunnel, a FlexE path, an MPLS RSVP-TE tunnel, an IP tunnel, or a UDP tunnel.
  • the optical path can be a DWDM path or an OTN path.
  • Back-to-back refers to the direct connection between two nodes.
  • a bottom-level path can pass through one or more bottom-level nodes.
  • the bottom-level path can be (O1, O2, O3, O4), (O1, O2, O3, O4) can pass through the bottom-level node O1, and the bottom-level node O2 , The bottom node O3 and the bottom node O4.
  • the underlying path may be (O1, O6, O5, O4), and (O1, O6, O5, O4) may pass through the underlying node O1, the underlying node O6, the underlying node O5, and the underlying node O4.
  • P2 and P3 are at the edge of the packet switching network and the underlying network, and can be regarded as the gateway between the packet switching network and the underlying network.
  • P2 and P3 can be called packet and optical gateways (packet optical gateway, POG).
  • POG is used to generate transport segments, generate the mapping relationship between transmission segments and optical paths, and publish the generated transmission segments on the network; if the POG receives a data packet, the data packet carries the previously published transmission For segmentation, POG will find the optical path for transmitting the segmented mapping according to the mapping relationship, and send data packets through the optical path.
  • the POG can be combined or separated.
  • the combined scenario means that P2 or P3 can independently perform the above steps of determining the mapped optical path according to the transmission segment and transmitting data packets through the optical path; separate configuration means that P2 needs to follow O1
  • P3 In order to perform the above steps of determining the mapped optical path based on the transmission segment and transmitting data packets through the optical path, P3 needs to be combined with O4 to perform the above steps of determining the mapped optical path based on the transmission segment and transmitting data packets through the optical path.
  • one IP layer path between P2 and P3 may correspond to multiple bottom layer paths.
  • P2 has two outgoing interfaces, which are respectively marked as intf1 and intf2.
  • P2 establishes IP layer path 1 through intf1 and P3, and P2 establishes IP layer path 2 through intf2 and P3.
  • IP layer path 1 corresponds to two bottom-level paths, namely (O1, O2, O3, O4) and (O1, O6, O5, O4).
  • IP layer path 2 corresponds to a bottom layer path, which is (O2, O3).
  • IP layer path 1 corresponds to the two underlying paths
  • the default configuration can only be used The underlying path to transmit data packets. For example, if (O1, O2, O3, O4) is pre-configured, (O1, O2, O3, O4) will be used by default to transmit data packets, and (O1, O6, O5, O4) To transmit the data packet, it is not possible to select the bottom layer path suitable for transmitting the data packet from the two bottom layer paths according to the service carried by the data packet.
  • the embodiment of the present application proposes the concept of bottom-level segment identification, which can correspond to one or more bottom-level paths.
  • the bottom layer segment identifier is published in the segmented routing network, allowing the IP network to perceive the bottom layer path through the bottom layer segment identifier.
  • the traffic starting from P1 can carry the bottom-level segment identifier to specify the bottom-level path that the traffic will pass through. For example, you can specify whether the data packet is transmitted through (O1, O2, O3, O4) or through (O1, O6, O5, O4).
  • P1 will add the underlying segment identifier corresponding to the specified underlying path to the data packet, and When the data packet is sent to P2, P2 will transmit the data packet through the specified underlying path according to the bottom layer segment identifier in the data packet.
  • the underlying path can be an optical path.
  • the optical path is also used as the transmission segment of the segmented routing network. This provides a packet suitable for IP and optical integration. -optical integration (POI) control plane solution, so that the head node can select the optical path according to the business.
  • POI optical integration
  • the bottom-layer path can be considered as a subordinate of the three-layer adjacent SID, on the other hand, the bottom-layer path can be considered as the three-layer adjacent SID parallel
  • Another connection providing capability of, its calling method needs to use the segment identifier specially designed for the underlying network by the segment routing network, that is, the underlying segment identifier proposed in this embodiment.
  • P2 and P3 may not establish an IP layer path, but establish one or more underlying paths.
  • P2 and P3 can be interconnected via 100G Ethernet.
  • P2 is a node at the IP layer and also a node at the optical layer.
  • P2 and O1 can be interconnected by OTN or DWDM.
  • P2 can establish the underlying path (O2, O3) through intf2 and P3.
  • the current IP network cannot perceive the underlying path (O2, O3), let alone pass through it.
  • a low-level path transmits data packets.
  • P2 can publish the bottom-level segment identifier corresponding to (O2, O3), and P1 can perceive the bottom-level path (O2, O3) through the bottom-level segment identifier, and then in the process of transmitting data packets, P1 can add the bottom-level segment identifier corresponding to (O2, O3) to the data packet, and P2 will send the data packet through (O2, O3) according to the bottom-level segment identifier in the data packet, so as to get out of the bottom layer of (O2, O3) The path comes.
  • the establishment of an IP layer path between P2 and P3 means that P2 and P3 are IGP neighbors at the IP layer, that is, P2 is the IGP neighbor of P3, and P3 is also the IGP neighbor of P2 equipment.
  • the system may also include a controller.
  • the controller is connected to each IP layer node through a wireless network or a wired network.
  • the controller can be used to select data to be transmitted from multiple underlying paths.
  • the controller may be at least one of a server, multiple servers, a cloud computing platform, and a virtualization center.
  • the implementation of the present invention The example does not limit this.
  • the number of network nodes in the data transmission system may be more or less.
  • the number of the above-mentioned network nodes may be dozens or hundreds, or more.
  • the embodiments of this application do not limit the number of network nodes and device types.
  • FIG. 4 is a flowchart of a data transmission method provided by an embodiment of the present application.
  • the interaction body of the method includes a first network node, a second network node, and a head node.
  • the first network node and the second network node The network nodes are connected by at least one underlying path.
  • the first network node can be P2 in the system architecture shown in Figure 1, Figure 2 or Figure 3
  • the second network node can be P3 in the system architecture shown in Figure 1, Figure 2 or Figure 3
  • the head node can be For P1 in the system architecture shown in Figure 1, Figure 2 or Figure 3, the method may include the following steps:
  • Step 401 The first network node issues at least one bottom layer segment identifier.
  • Each bottom-level segment identifier corresponds to one or more bottom-level paths in at least one bottom-level path between the first network node and the second network node.
  • the bottom layer segment identifier can be called End.XU SID, End means endpoint, which means endpoint; X means crossing, which means three-layer cross connection; U means underlay, which means bottom layer; SID means segment identifier.
  • the bottom-level segment identifier can be represented in the form of numbers. For example, the bottom-level segment identifier can meet the format of an IPv6 address.
  • the underlying segment identifier and the underlying path may have a one-to-one correspondence, that is, one underlying segment identifier uniquely corresponds to one underlying path; in other possible embodiments, the underlying segment identifier and the underlying path are also It can be a one-to-many relationship, that is, one bottom-level segment identifier can correspond to multiple bottom-level paths, and different bottom-level paths corresponding to the same bottom-level segment identifier can share the load.
  • bottom-level path 1 there are 4 bottom-level paths connected between the first network node and the second network node, denoted as bottom-level path 1, bottom-level path 2, bottom-level path 3, and bottom-level path 4
  • the first network node can publish 2
  • the bottom-level segment identifiers are marked as bottom-level segment identifier 1 and bottom-level segment identifier 2
  • bottom-level segment identifier 1 corresponds to bottom-level path 1
  • bottom-level path 2 bottom-level path 3
  • bottom-level segment identifier 4 corresponds to bottom-level path 4.
  • the bottom-level segment identifier 1 corresponds to three bottom-level paths at the same time, so that the three bottom-level paths can share the load.
  • the first network node may have one or more outgoing interfaces, and each bottom layer path may correspond to one outgoing interface of the first network node, and the outgoing interface may be a physical outgoing interface or a logical outgoing interface.
  • the bottom layer path i corresponds to the outgoing interface j, after the data packet is sent from the outgoing interface i, it will enter the bottom layer path j, and the data packet can reach the second network node along the bottom layer path j.
  • i represents the identifier of the outgoing interface
  • j represents the identifier of the underlying path.
  • the operations performed according to the bottom-level segment identifier may be as follows:
  • N When N receives a packet destined to S and S is a local End. XU SID, N does:
  • N When N receives a data packet whose destination address is S, and S is the bottom layer segment identifier issued by N, N performs the following steps/
  • next header is a segment routing header (segment routing header, SRH) and the number of remaining segments (segment left, SL) is greater than 0/
  • one or more underlying segment identifiers in the at least one underlying segment identifier may be an underlying link segment identifier.
  • the bottom layer link segment identifier is used to identify a bottom layer path, for example, it can identify an end-to-end complete path, where the end-to-end means from one POG to another POG.
  • the underlying link segment identifier is similar to the End.X SID in the SRv6 network and the Adjacency SID (Adjacency SID) in SR-MPLS.
  • End.X SID is used to identify the IP layer path
  • adjacent SID is used to To identify the adjacency relationship
  • End.X SID and adjacent SID are three-layer concepts, which do not involve the underlying network and cannot identify the underlying path.
  • the three-layer adjacency relationship between the first network node and the second network node may be identified by End.X SID.
  • the relationship between the underlying segment ID and End.X SID includes but is not limited to the following two cases:
  • At least two bottom layer segment IDs correspond to the same End.X SID. That is, the End.X SID and the underlying segment identifier can have a one-to-many relationship.
  • the first network node and the second network node establish an adjacency relationship at the IP layer, and are connected through multiple underlying paths.
  • P2 has two outgoing interfaces, which are marked as intf1 and intf2, respectively.
  • P2 and P3 establish two IGP-based adjacency relationships, one of which is established through intf1, and the other The adjacency is established through intf2.
  • the adjacency of intf1 corresponds to two underlying paths, namely (O1, O2, O3, O4) and (O1, O6, O5, O4).
  • the adjacency of intf2 corresponds to a bottom path, which is (O2, O3).
  • P2 has 5 adjacent SIDs.
  • the 5 adjacent SIDs include 2 END.X SIDs and 3 underlying segment IDs.
  • one END.X SID of P2 corresponds to intf1.
  • END.X SID corresponds to two bottom-level segment identifiers, one bottom-level segment identifier corresponds to the bottom-level path (O1, O2, O3, O4), and the other bottom-level segment identifier corresponds to the bottom-level path (O1, O6, O5, O4) ;
  • the other END.X SID of P2 corresponds to intf2, this END.X SID corresponds to a bottom-level segment identifier, and this bottom-level segment identifier corresponds to the bottom path (O2, O3).
  • One or more underlying segment identifiers in at least one underlying segment identifier do not have a corresponding End.X SID. That is, the End.X SID and the bottom layer segment identifier may have a zero-to-one relationship, that is, the first network node and the second network node have no adjacency relationship at the IP layer, and are connected through a bottom layer path. Alternatively, the End.X SID and the bottom layer segment identifier may have a zero-to-many relationship, that is, the first network node and the second network node have no adjacency relationship at the IP layer, and are connected at the bottom layer through multiple bottom layer paths. It should be noted that the adjacency relationship is not established here.
  • it can mean that part of the outgoing interface of the first network node does not establish an adjacency with the second network node, and another part of the outgoing interface of the first network node is The second network node has established an adjacency relationship; in another case, it may mean that all outgoing interfaces of the first network node have not established an adjacency relationship with the second network node.
  • P2 establishes an IGP-based adjacency relationship through intf1 and P3.
  • the adjacency relationship corresponds to two underlying paths.
  • the two underlying paths are (O1, O2, O3, O4) and (O1). , O6, O5, O4).
  • P2 establishes an underlying path through intf2 and P3, and the underlying path is (O2, O3).
  • P2 has 4 adjacent SIDs.
  • the 4 adjacent SIDs include 1 END.X SID and 3 underlying segment IDs.
  • END.X SID corresponds to intf1, this END.X SID Corresponding to two bottom-level segment identifiers, one bottom-level segment identifier corresponds to the bottom-level path (O1, O2, O3, O4), and the other bottom-level segment identifier corresponds to the bottom-level path (O1, O6, O5, O4); P2 except this In addition to the three adjacent SIDs, there is also a bottom-level segment identifier. This bottom-level segment identifier corresponds to the bottom-level path (O2, O3) without a corresponding End.X SID.
  • the first network node may automatically assign at least one underlying segment identifier, or manually configure at least one underlying segment identifier.
  • the manner of obtaining the bottom layer segment identifier may include any one or more of the following manner 1 to manner 2.
  • Manner 1 The first network node allocates at least one bottom layer segment identifier to at least one bottom layer path.
  • the first network node may assign a bottom-level segment identifier to each bottom-level path, and different bottom-level segment identifiers are assigned to different bottom-level paths, so that each bottom-level segment identifier assigned corresponds to a bottom-level path;
  • the first network node may also assign the same underlying segment identifier to multiple underlying paths, so that one assigned underlying segment identifier corresponds to multiple underlying paths.
  • the first network node may store a segment identification space, and can select an unoccupied underlying segment identifier from the segment identification space, and assign the underlying segment identifier to the underlying path.
  • the first network node receives the configuration instruction, and the first network node obtains the correspondence between at least one underlying segment identifier and one or more underlying paths in the at least one underlying path from the configuration instruction.
  • the configuration instruction may be triggered by a configuration operation of the user on the first network node, and the configuration instruction may include the correspondence between at least one underlying segment identifier and one or more underlying paths in the at least one underlying path.
  • the configuration command may also be triggered by the network management or controller.
  • End.XU SID1 corresponds to (O1, O2, O3, O4)
  • End.XU SID2 corresponds to (O1, O6, O5, O4)
  • End.XU SID3 corresponds to (O2, O3)
  • End.XU SID4 corresponds to (O1, O2, O3, O4) and (O2, O3).
  • the first network node may save the binding relationship between the underlying segment identifier and the underlying outbound interface.
  • the bottom-level segment identifier corresponds to a bottom-level path
  • the bottom-level segment identifier and the bottom-level outgoing interface can have a one-to-one relationship, that is, each bottom-level segment identifier is bound to a bottom-level outgoing interface, and the data packet passes through After the bottom-level outbound interface bound to the bottom-level segment ID is sent, it will enter the bottom-level path corresponding to the bottom-level segment ID.
  • the bottom-level segment ID and the bottom-level outgoing interface can be in a one-to-many relationship, that is, each bottom-level segment ID is bound to multiple bottom-level outgoing interfaces.
  • the load sharing algorithm can be used. Obtain the transmission ratio between different bottom-layer paths in the multiple bottom-layer paths corresponding to the bottom-layer segment identifier, and transmit a corresponding proportion of data packets on each bottom-layer path according to the transmission ratio.
  • the transmission ratio refers to the ratio between the number of data packets transmitted on different underlying paths.
  • the first network node when the first network node receives multiple data packets carrying the bottom-level segment identifier, it can use a load sharing algorithm to obtain the distance between bottom-level path 1 and bottom-level path 2. If the transmission ratio is 3:7, the first network node can transmit 30% of the multiple data packets on the bottom path 1 and 70% of the multiple data packets on the bottom path 2.
  • the data packet will be sent out from one bottom layer of the multiple bottom layer outgoing interfaces.
  • the interface is sent out, and the bottom-layer outgoing interface of the multiple bottom-layer outgoing interfaces the data packet is sent out can be determined according to the load sharing algorithm, which is not limited in this embodiment.
  • the load sharing algorithm adopted by the first network node can be selected according to actual needs, and this embodiment does not limit the type of the load sharing algorithm.
  • multiple data packets carrying the same underlying segment identifier received by the first network node may belong to the same data flow or different data flows.
  • the data flow may refer to multiple data packets with the same quintuple. Whether multiple data packets carrying the same underlying segment identifier belong to the same data flow is not limited.
  • the bottom-level outgoing interface in this embodiment may be a physical interface or a virtual interface.
  • the physical interface can be intf1 or intf2 in Figure 1; the virtual interface can be obtained by virtual division of the physical interface, and one physical interface can correspond to one or more virtual interfaces.
  • a physical interface can be divided into one or more VLAN interfaces through virtual local area network (Virtual Local Area Network, VLAN) technology.
  • VLAN Virtual Local Area Network
  • Each VLAN interface can be used as a low-level outgoing interface, and each VLAN interface and each low-level path is one One correspondence; for another example, a physical interface can be divided into one or more time slots through OTN technology, each time slot can be used as a bottom-level outgoing interface, and each time slot corresponds to each bottom-level path one-to-one; another example, The physical interface can be an optical fiber, and an optical fiber can correspond to one or more wavelengths, and each wavelength can be used as a bottom-layer outgoing interface, and each wavelength corresponds to each bottom-layer path.
  • the underlying segment identifier will be bound to multiple underlying outbound interfaces corresponding to the multiple underlying paths, and the binding relationship between the underlying segment identifier and multiple underlying outbound interfaces may not be Limited to the following two situations:
  • Case 1 The underlying segment identifier is bound to multiple virtual interfaces corresponding to the same physical interface.
  • the correspondence between the underlying segment identifier, the underlying outbound interface, and the underlying path saved by P2 can be shown in Table 2 below.
  • End.XU SID1 is bound
  • the two bottom-level outgoing interfaces are virtual interface 1 and virtual interface 2. These two bottom-level outgoing interfaces correspond to physical interface Intf1, virtual interface 1 corresponds to (O1, O2, O3, O4), and virtual interface 2 corresponds to (O1 , O6, O5, O4) correspond.
  • P2 can query End.XU SID3 according to End.XU SID3 to find out that the underlying outgoing interface is virtual interface 1 corresponding to Intf1, and P2 will pass through the virtual interface corresponding to Intf1 1 Send the multiple data packets, and the multiple data packets will pass through a low-level path: (O1, O2, O3, O4) corresponding to virtual interface 1 and transmitted from P2 to P3.
  • P2 receives multiple data packets carrying End.XU SID1, P2 can query End.XU SID1 based on the virtual interface 1 and virtual interface 2 corresponding to Intf1, and P2 will pass Virtual interface 1 and virtual interface 2 corresponding to Intf1 send the multiple data packets, then the multiple data packets will pass through two underlying paths: virtual interface 1 (O1, O2, O3, O4) and virtual interface 2 (O1, O6, O5, O4), transmitted from P2 to P3, among which some of the multiple data packets will be transmitted from virtual interface 1 from P2 to P3 through (O1, O2, O3, O4), Another part of the multiple data packets will be transmitted from the virtual interface 2 from P2 to P3 through (O1, O6, O5, O4).
  • virtual interface 1 O1, O2, O3, O4
  • virtual interface 2 O1, O6, O5, O4
  • P1 uses a load sharing algorithm to obtain a transmission ratio between (O1, O2, O3, O4) and (O1, O6, O5, O4) of 3:7, then P1 can send 30 from virtual interface 1. % Data packets, 30% of the data packets will be transmitted from P2 to P3 through (O1, O2, O3, O4); and, P1 can send the remaining 70% of the data packets from the virtual interface 2, then 70% of the data The packet will be transmitted from P2 to P3 via (O1, O6, O5, O4).
  • End.XU SID1 corresponds to a bottom layer outgoing interface
  • End.XU SID3 corresponds to a bottom layer path
  • End.XU SID1 is tied to two The bottom layer outbound interface is bound
  • End.XU SID1 corresponds to two bottom layer paths, which can produce load sharing effects.
  • Case 2 The underlying segment identifier is bound to multiple virtual interfaces corresponding to different physical interfaces.
  • P2 Based on Table 3, if P2 receives multiple data packets carrying End.XU SID4, P2 can find out that the underlying outbound interface is virtual interface 1 and virtual interface 3 according to End.XU SID4, then P2 will pass the virtual interface corresponding to Intf1.
  • Interface 1 and virtual interface 3 corresponding to Intf2 send the multiple data packets, and the multiple data packets will pass through two underlying paths: virtual interface 1 (O1, O2, O3, O4) and virtual interface 3 ( O2, O3), transmitted from P2 to P3, where a part of the multiple data packets will be transmitted from virtual interface 1 from P2 to P3 through (O1, O2, O3, O4), the multiple data packets Another part of the data packets in will be transmitted from virtual interface 3 from P2 to P3 via (O2, O3).
  • virtual interface 1 O1, O2, O3, O4
  • O2, O3 virtual interface 3
  • the first network node may write the at least one underlying segment identifier into the local segment identification table (local SID table) so that it can be subsequently queried by local SID
  • the table forwards data packets.
  • the local segment identifier table is used to record each segment identifier of the first network node.
  • the way of issuing the bottom-level segment ID can be but not limited to any of the following ways 1 to 3:
  • the first network node can issue at least one underlying segment identifier through the IGP.
  • the first network node can flood the packet switching network with at least one underlying segment identifier through the IGP.
  • flooding means that after a node announces certain information to the neighboring node, the neighboring node then transmits the same information to other neighboring nodes other than the node that sent the information, and this information is level by level.
  • each IP layer node in the packet switching network can receive the bottom layer segment identifier.
  • P1, P3, P4, and P5 can all receive the bottom layer segment identifier.
  • the first network node can issue at least one bottom layer segment identifier through BGP-LS.
  • the first network node may send at least one underlying segment identifier to the controller through BGP-LS, and the controller may receive at least one underlying segment identifier sent by the first network node through BGP-LS, and assign at least one underlying segment identifier to The identification is sent to the head node.
  • P2 can send the bottom layer segment identifier to the controller through BGP-LS, and the controller can send the bottom layer segment identifier to P1 through BGP-LS.
  • the first network node can issue at least one bottom layer segment identifier through PCEP.
  • the first network node may send at least one underlying segment identifier to the controller through PCEP, and the controller may receive at least one underlying segment identifier sent by the first network node through PCEP, and send at least one underlying segment identifier to the header. node.
  • P2 may send the bottom-level segment identifier to the controller through PCEP, and the controller may send the bottom-level segment identifier to P1 through PCEP.
  • the first network node may also publish path parameters of one or more underlying paths in at least one underlying path, so that the head node or the controller selects the underlying path for transmitting the data packet according to the path parameters.
  • the path parameter may be any one or more of the latency, bandwidth, quality, direction, and protection of the underlying path.
  • the first network node may publish the path parameters of the underlying path and the underlying segment identifier corresponding to the underlying path together.
  • the path parameters of the underlying path and the underlying path corresponding to the underlying path may be carried in the same message. Segment identifier, publish the message.
  • the first network node may also issue the identifier of the second network node, so that the head node or the controller can determine which network node the opposite node of the underlying path is according to the identifier of the second network node.
  • P2 can not only publish the underlying segment identifier End.XU SID1 corresponding to the underlying path (O1, O2, O3, O4), but also publish the ID of P3 so that P1 can perceive the underlying path (O1, O2, O3, The opposite node of O4) is P2.
  • the first network node may publish the identifier of the second network node and the underlying segment identifier corresponding to the underlying path together.
  • the identifier of the second network node and the underlying path correspondence may be carried in the same message.
  • the first network node may also publish the identifier of the second network node and the underlying segment identifier corresponding to the underlying path separately.
  • the underlying segment identifier corresponding to the underlying path may be issued first, and then the second network For the identification of the node, this embodiment does not limit the time sequence for publishing the identification of the second network node and the identification of the underlying segment corresponding to the underlying path.
  • the first network node may also publish the path type of one or more underlying paths in the at least one underlying path.
  • the path type is used to indicate the type of the underlying path.
  • the path type can be DWDM path, OTN path, ATM path, FR path, back-to-back Ethernet path, GRE tunnel, FlexE path, MPLS RSVP-TE tunnel, IP tunnel or UDP tunnel.
  • the head node or controller can determine the specific type of the underlying path to be released, so that different types of underlying paths can be distinguished, and it is convenient to schedule a specific type according to business requirements.
  • the underlying path performs data transmission.
  • At least one underlying segment identifier may be carried in a message, and the first network node may issue at least one underlying segment identifier by publishing a message, and the message includes at least A first type length value (type length value, TLV), and each first TLV includes a bottom layer segment identifier.
  • the first network node can flood the message to the packet switching network, for example, by flooding the message through the IGP, each IP layer node in the packet switching network can A flooded message is received.
  • the first network node can send a message to the controller, and the controller can receive the message.
  • the first TLV refers to the TLV carrying the bottom layer segment identifier.
  • the first TLV may be a TLV nested inside other TLVs, that is, sub-TLV (sub-TLV) or sub-sub-TLV (sub-sub-TLV) of other TLVs.
  • the first TLV may also be a sub-TLV of a new top TLV (top TLV), and the top TLV refers to a TLV that is not nested inside other TLVs.
  • the type of the first TLV may be the type of the new application for issuing the bottom-level segment identifier, for example, it may be 90.
  • the value of the first TLV may include the bottom-level segment identifier.
  • the first TLV may include the SID field, which may occupy 128 bits. You can write the underlying segment ID to this field.
  • the first TLV may also include a flag, an algorithm, a weight, etc. The flag may be empty, and the weight may default to 0.
  • the first TLV may also include an SRv6 Endpoint Function (SRv6 Endpoint Function) field. The value of this field is a 32-bit number. This field is used to indicate the function of the SID.
  • SRv6 Endpoint Function SRv6 Endpoint Function
  • the corresponding End.XU Function can be registered for the underlying segment identifier in advance. Get the value of End.XU Function, write the value to the SRv6 Endpoint Function field, and use the value of the SRv6 Endpoint Function field to indicate that the SID carried in the SID field is the underlying segment identifier, not End.X SID or node SID Or other types of SID.
  • the first TLV may include path parameters of the underlying path.
  • the first TLV may include sub-TLVs, and the sub-TLVs of the first TLV may include path parameters of the underlying path.
  • the sub-TLV of the first TLV may include a type, length, and value
  • the type of the sub-TLV of the first TLV may be a new type that is not used
  • the value of the sub-TLV of the first TLV may be a path parameter of the underlying path.
  • the type of the sub-TLV of the first TLV can be 1, and 1 represents an unused new type
  • the value of the sub-TLV of the first TLV can be a 32-bit value representing bandwidth; another example is the sub-TLV of the first TLV.
  • the type of TLV can be 2, and 2 represents an unused new type, and the value of the sub-TLV of the first TLV can be a 32-bit value, which represents the delay.
  • the two path parameters of bandwidth and delay are only examples, and the path parameters may also be parameters other than bandwidth or delay, which are not limited in this embodiment.
  • the first TLV may also include each segment identifier of the first network node related to the neighbor node.
  • the first network node may have one or more segment identifiers, some of the segment identifiers are related to neighbor nodes of the first network node, for example, used to identify the adjacency relationship between the first network node and the neighbor nodes , The other part of the segment identifier has nothing to do with the neighbor nodes of the first network node.
  • segment identifiers related to neighboring nodes will be published in 22TLV or 222TLV, and in this embodiment, segment identifiers related to neighboring nodes may also be carried in the first TLV.
  • 22TLV or 222TLV is a TLV used to publish adjacency information.
  • 22TLV is used to carry ISIS adjacency information
  • 222TLV is used to carry ISIS adjacency information in a multi-topology scenario.
  • the first TLV may also include the path type of the underlying path.
  • the first TLV may include a path type field, the path type field may be recorded as an underlay type (underlay type) field, and the value of the path type field is used to indicate the path type of the underlying path.
  • the value of the path type field is 1, it means that the path type of the underlying path is an OTN path; if the value of the path type field is 2, it means that the path type of the underlying path is a DWDM path; if the path type field is A value of 3 indicates that the path type of the underlying path is a back-to-back Ethernet path; if the value of the path type field is 4, it indicates that the path type of the underlying path is a GRE tunnel; if the value of the path type field is 5, it indicates the underlying path The path type is MPLS RSVP-TE tunnel; if the value of the path type field is 6, it means that the path type of the underlying path is IP tunnel; if the value of the path type field is 7, it indicates that the path type of the underlying path is IP tunnel or UDP tunnel; if the value of the path type field is 8, it indicates that the path type of the underlying path is an ATM path; if the value of the path type field is 9, it indicates that the path type of the path type of the underlying path
  • the release format of the bottom-level segment identifier may specifically include the following methods (1) to (4):
  • the first TLV is a sub-TLV of the second TLV.
  • the second TLV refers to the TLV including End.X SID.
  • the first TLV and the second TLV may be in a subordinate (or referred to as master) relationship, and a second TLV may also include one or more first TLVs.
  • the second TLV may be a 22 TLV sub-TLV of an intermediate system to intermediate system (Intermediate system to intermediate system, IS-IS), and the first TLV is a sub-sub TLV of the second TLV.
  • the second TLV may be a sub-TLV of IS-IS 222 TLV, and the first TLV is a sub-sub TLV of the second TLV.
  • FIG. 5 and 6 are schematic diagrams of the format of the second TLV.
  • the type field in FIG. 5 or FIG. 6 indicates the type of the second TLV, and the value of the type field may indicate that the second TLV is a TLV for issuing End.X SID.
  • the value of the length field in FIG. 5 or FIG. 6 is the length of the second TLV.
  • the SRv6 Endpoint Function (SRv6 Endpoint Function) field in FIG. 5 or FIG. 6 is used to indicate the function of the SID, and specifically may indicate End.X Function.
  • the SID field in Figures 5 and 6 is used to carry End.X SID.
  • the SID field in Figures 5 and 6 occupies a total of 128 bits (bit).
  • the SID field is divided into 4 sections, and each section of the SID field occupies 32 bits. Among them, the SID field in the first section carries the first bit to the 32nd bit of End.X SID, the SID field in the second section, the SID field in the third section, and the SID field in the fourth section are the continuation of the SID field in the first section.
  • the second SID field carries the 33rd to 64th bits of End.X SID, the third SID field carries the 65th to 96th bits of End.X SID, and the fourth SID field carries End.X From the 97th bit to the 128th bit of the SID.
  • FIG. 5 or FIG. 6 also includes a flag field, an algorithm field, a weight field, etc.
  • the flag field can be empty, and the value of the weight field can be 0 by default.
  • the difference between Figure 5 and Figure 6 is that the second TLV shown in Figure 5 can be used for point-to-point (P2P) links, and the second TLV shown in Figure 6 can be used for local area networks ( local area network, LAN) link.
  • P2P point-to-point
  • LAN local area network
  • the "sub-sub-TLV (variable length)" field shown in Figures 5 and 6 occupies 8 bytes.
  • the sub-sub-TLV (variable length) field can indicate that one or more sub-sub-TLVs exist after this field.
  • the value of the long) field is the length of one or more sub-sub-TLVs. Specifically, the value of the sub-sub-TLV (variable length) field is determined according to the number of one or more sub-sub-TLVs and the length of each sub-sub-TLV.
  • the "one or more sub-sub-TLVs (variables)" shown in FIGS. 5 and 6 represent one or more sub-sub-TLVs, and the format of the sub-sub-TLVs may be as shown in FIG. 7.
  • Figure 7 is a schematic diagram of the format of the first TLV based on the method (1).
  • One or more sub-sub-TLVs (variables) in Figure 5 or Figure 6 are one or more Figures 7, and each Figure 7 is a sub-TLV. Child TLV.
  • the first TLV shown in Figure 5 or Figure 6 is End.X TLV
  • End.X itself is a sub-TLV of 22TLV with Type 22 or 222TLV with Type 222, so the nesting in Figure 5 or Figure 6
  • the TLV will be called a child TLV.
  • the SID field in Figure 7 is used to carry the identification of the underlying segment.
  • the SID field in Figure 7 occupies a total of 128 bits.
  • each section SID field occupies 32 bits.
  • the first segment SID field carries the first to the 32nd bit of the bottom layer identifier
  • the second segment SID field, the third segment SID field, and the fourth segment SID field are the continuation of the first segment SID field
  • the second segment SID field carries the 33rd to 64th bits of the bottom layer segment identifier
  • the third segment SID field carries the 65th to 96th bits of the bottom layer identifier
  • the fourth segment SID field carries the 97th bit of the bottom layer identifier. Bits to 128th bit.
  • the value of the type field in FIG. 7 may be the newly applied sub-sub-TLV type, for example, 90.
  • the value of the Flags field in FIG. 7 may be empty, and the value of the weight field may be the weight, which is 0 by default.
  • the value of the SRv6 Endpoint Function field indicates the function of the underlying segment identification, and the value of the SID field is a SID of the node, and the format is the same as the IPv6 address.
  • the value of the sub-sub-sub-TLV field can include path parameters such as bandwidth and delay.
  • the type field of sub-sub-sub-TLV can take 1, which is an unused new type.
  • the length field of sub-sub-sub-TLV can take the length of the sub-sub-sub-TLV field, sub-sub-sub -
  • the value field of TLV occupies 32 bits, representing the bandwidth of the underlying path; the type field of sub-sub-sub-TLV can also be 2, which is an unused new type, and the value field of sub-sub-sub-TLV can also be It occupies the other 32 bits and represents the delay of the underlying path.
  • the underlay type field in Figure 7 describes the type of the underlying path.
  • the method (1) can be used to describe the bottom-level optical path in the IP and optical convergence scene through the publishing method of End.X SID or adjacent SID extension. Since the bottom-level segment identifier is issued through the sub-TLV of the TLV carrying the End.X SID, the correspondence between the bottom-level segment identifier and the End.X SID can be visually indicated through the master-sub relationship of the two TLVs.
  • the first TLV is a TLV parallel to the second TLV.
  • the first TLV and the second TLV may also be in a parallel relationship, that is, the two TLVs are at the same level.
  • the first TLV may also be a sub-TLV of 22 TLV.
  • the second TLV is a sub TLV of IS-IS 222 TLV
  • the first TLV may also be a sub TLV of 222 TLV.
  • Fig. 8 and Fig. 9 are schematic diagrams of the format of the first TLV based on the method (2).
  • the difference between FIG. 8 and FIG. 9 is that the first TLV shown in FIG. 8 can be used for a point-to-point link, and the first TLV shown in FIG. 9 can be used for a local area network link.
  • the System ID (System ID) field is the identification of the second network node.
  • the sub-sub-TLVs in FIGS. 8 and 9 may include path parameters of the underlying path.
  • the bottom layer segment identifier can be issued in a scenario where the first network node does not have a corresponding End.X SID.
  • the first TLV is a sub-TLV of the location information TLV.
  • SRv6SID is in the form of an IPv6 address.
  • SRv6SID can be composed of two parts: Locator and Function.
  • the format is Locator: Function. Among them, Locator occupies the high bits of the IPv6 address, and Function occupies the low bits of the IPv6 address. Among them, the Locator can have a positioning function and can be unique in the SR domain.
  • Function represents the instructions of the device. These instructions are preset by the device.
  • the Function part is used to instruct the generating node of the SRv6SID to perform corresponding functional operations.
  • the Locator needs to be published through IGP, and the node that receives the Locator needs to generate forwarding entries on demand. Generally speaking, in SRv6, every SID except the SID related to neighbor nodes should be published in Locator.
  • the SRv6 location information TLV (SRv6 Locator TLV) is used to publish the SRv6 Locator and End SID related to the Locator.
  • the location information TLV is a top TLV with a type of 27.
  • the format of the SRv6 Locator TLV may be as shown in FIG. 10.
  • the location information TLV may include a first part and one or more second parts.
  • the first part is the header of the location information TLV, and the second part may appear once in the location information TLV or in the location information TLV. Repeatedly.
  • FIG. 10 is only drawn with the location information TLV containing two second parts as an example. It should be understood that the number of the second parts in the location information TLV may be more or less. The number of second parts included is not limited.
  • the bottom layer segment identifier can be published in the sub-TLV of the SRv6 Locator TLV.
  • the SRv6 Locator TLV may include the sub-TLV shown in FIG. 11, and the bottom layer segment identifier may be carried in the SID field of FIG. 11.
  • the sub-TLV of the Locator may also carry a system ID (system ID) to indicate the neighbor, and the SRV6Endpoint Function should point to the assigned value of END.XU.
  • the sub-sub-TLVs in FIG. 11 and FIG. 12 may include path parameters of the underlying path, such as bandwidth.
  • the bottom layer segment identifier can be published in 27TLV (SRv6 Locator TLV), which is a newer TLV dedicated to SRv6 networks.
  • the location information TLV may include the end-point layer three cross-connect segment identifier of the first network node.
  • the endpoint layer three cross-connect segment identifier of the first network node is usually issued through 22TLV or 222TLV, and through the above optional method, the endpoint layer three cross-connect segment identifier is also issued through location information TLV, so 22TLV or The 222TLV may not need to carry the endpoint layer three cross-connect segment identifier of the first network node, thereby reducing the complexity of the 22TLV or 222TLV.
  • the first TLV is a sub-TLV of the new top TLV.
  • the bottom-level segment identifier can be published in a sub-TLV of a new top TLV, and the type of the top TLV is an unused new type.
  • the top TLV may be 28 TLV, that is, a TLV of type 28.
  • Figure 13 shows the format diagram of this new top TLV.
  • the SIDs of the first network node that are not related to neighboring nodes can be published in 27TLV, and the SIDs of the first network node related to neighboring nodes are published in 28TLV. .
  • the new top TLV may include a first part and one or more second parts. The first part is the header of the new top TLV, the second part is the SID group, and the second part starts with the system ID.
  • Each second part contains some 28TLV sub-TLVs. It is understandable that the sub-TLV, that is, the first TLV, starts from the type after the system ID; or, the first TLV can also start from the system ID. Through the method (4), it can be applied to the scenario where there are many low-level segment IDs issued. It should be noted that Figure 13 is only drawn with the top TLV containing two second parts as an example. It should be understood that the number of the second parts in the top TLV can be more or less. The number of two parts is not limited.
  • the new top-level TLV may include the endpoint layer three cross-connect segment identifier of the first network node.
  • the endpoint L3 cross-connect segment identifier of the first network node is usually issued through 22TLV or 222TLV, and through the above optional method, the endpoint L3 cross-connect segment identifier is also issued through the new top-level TLV, so 22TLV Or 222TLV may not need to carry the end-point layer three cross-connect segment identifier of the first network node, thereby reducing the complexity of 22TLV or 222TLV.
  • Figure 14 shows a schematic diagram of the format of SRV6End.X TLV
  • Figure 15 shows a schematic diagram of the format of SRV6LAN End.X TLV, which can be compared to Figure 14 or Figure 15 15 is expanded to define a new sub-TLV, for example, the type is set to 100 to define 100 sub-TLVs, which is the first TLV exemplary, and the format of the first sub-TLV may be as shown in FIG. 8.
  • the underlying path can also be treated as a separate function similar to END.X in BGP-LS.
  • the format of the first TLV can be as shown in Figure 8 or Figure 9.
  • Figure 5 and Figure 6 to Figure 15 are only schematic drawing of the message.
  • the position and length of each field shown in Figure 5 and Figure 6 to Figure 15 are only examples. It should be understood that The position and length of each field in the message can be adaptively changed according to actual needs. This embodiment does not limit the position of each field in the message, nor does it limit the length of each field.
  • each line of each message involved in Figure 5, Figure 6 to Figure 15 can be 32 bytes.
  • each line of the message drawn in Figure 5, Figure 6 to Figure 15 One or more reserved fields can be set in the vacancy of, of course, other fields can also be set. This embodiment does not limit whether the message includes the reserved field, the position of the reserved field, and the length of the reserved field.
  • Step 402 The head node receives at least one bottom layer segment identifier from the first network node.
  • the way of receiving the bottom layer segment identifier can be but not limited to any one of the following ways 1 to 3:
  • the head node can receive at least one bottom-level segment identifier through IGP.
  • the head node can receive at least one bottom-level segment identifier through IGP. .
  • the distributed control scenario refers to a scenario without a controller.
  • the POG needs to report the BSID to the controller, and the controller sends the BSID to the head node, which leads to the inability to apply this solution to support POI in a distributed control scenario.
  • the controller forwards the bottom-level segment ID.
  • the POG can directly send the bottom-level segment ID to the head node through IGP, so it can be applied to distributed control.
  • the scope of application is expanded and flexibility is improved.
  • Manner 2 The head node receives at least one bottom layer segment identifier through BGP-LS.
  • the controller may send at least one underlying segment identifier to the head node through BGP-LS, and the head node may receive at least one underlying segment identifier sent by the controller through BGP-LS.
  • the head node can receive at least one bottom layer segment identifier through PCEP.
  • the controller may send a PCEP to the head node through BGP-LS, and the head node may receive at least one underlying segment identifier sent by the controller through the PCEP.
  • the head node may receive a message from the first network node, and obtain at least one underlying segment identifier from at least one first TLV in the message. Wherein, if the message includes multiple first TLVs, a bottom layer segment identifier can be obtained from each first TLV.
  • the head node can read the End.XU Function field of the first TLV, and according to the value of the End.XU Function field, determine that the value of the SID field is the bottom-level segment identifier, then the head node reads the value of the SID field , And use the value of the SID field as the bottom-level segment identifier.
  • the head node can obtain the bottom-level segment identifier from the sub-TLV of the second TLV; corresponding to the release mode (2) of the above-mentioned bottom-level segment identifier, the head node can obtain the bottom-level segment identifier from In the TLV parallel to the second TLV, the bottom-level segment identifier is obtained; corresponding to the release method (3) of the above-mentioned bottom-level segment identifier, the head node can obtain the bottom-level segment identifier from the sub-TLV of the location information TLV; Corresponding to the publishing method (4), the head node can obtain the bottom layer segment identifier from the top TLV.
  • the head node After the head node receives the at least one bottom-level segment identifier, it can save the at least one bottom-level segment identifier so as to subsequently add the bottom-level segment identifier to the data packet.
  • the head node may also receive path parameters of one or more bottom-level paths in at least one bottom-level path from the first network node, and save the path parameters of one or more bottom-level paths.
  • the head node may also receive the identifier of the second network node from the first network node, and save the identifier of the second network node.
  • Step 403 The head node receives the data packet.
  • Step 404 The head node adds the target bottom layer segment identifier to the data packet.
  • the bottom-level segment identifier added to the data packet is referred to as the target bottom-level segment identifier, and the target bottom-level segment identifier can be any bottom-level segment identifier in at least one bottom-level segment identifier.
  • step 404 may be but not limited to any one of the following manners 1 to 2.
  • the head node can determine the service carried by the data packet. According to the service carried by the data packet, select the bottom path corresponding to the service from at least one bottom path, and the head node can identify the bottom layer segment corresponding to the selected bottom path As the target bottom layer segment identifier, add the target bottom layer segment identifier to the data packet.
  • the head node may select one bottom-level path or multiple bottom-level paths, so that the multiple bottom-level paths share the load, and this embodiment does not limit the number of selected bottom-level paths.
  • the head node may select the bottom layer path whose path parameters meet the transmission requirements of the service from at least one bottom layer path according to the path parameters of each bottom layer path.
  • the transmission requirements of the service can be delay requirements, bandwidth requirements, and so on.
  • the head node can select the one with the delay less than n milliseconds from at least one of the underlying paths according to the delay of each underlying path.
  • Bottom path If the bandwidth requirement of the service carried by the data packet is that the bandwidth is greater than m megabytes, the head node can select a bottom path with a bandwidth greater than m megabytes from at least one bottom path according to the bandwidth of each bottom path.
  • n and m are positive integers.
  • the head node receives the target bottom layer segment identifier from the controller of the segment routing network, and adds the target bottom layer segment identifier to the data packet.
  • the target bottom-level segment identifier may not be selected by the head node, but by the controller.
  • the controller can determine the service carried by the data packet, and according to the service carried by the data packet, select the underlying path corresponding to the service from at least one underlying path, and the controller can send to the head node the underlying path corresponding to the selected underlying path.
  • the head node can receive the target bottom-level segment identifier.
  • the specific way that the controller selects the bottom-level path may be the same as the specific way that the head node selects the bottom-level path, and will not be repeated here.
  • Step 405 The head node sends a data packet carrying the target bottom layer segment identifier to the first network node.
  • Step 406 The first network node receives the data packet carrying the target bottom layer segment identifier.
  • Step 407 The first network node sends the data packet through the underlying path corresponding to the target underlying segment identifier in at least one underlying path.
  • the first network node can obtain the target bottom-level segment identifier from the data packet, and determine one or more bottom-level paths corresponding to the target bottom-level segment identifier according to the target bottom-level segment identifier and the corresponding relationship between the bottom-level segment identifier and the bottom-level path. Multiple underlying paths send data packets. Among them, if the target bottom layer segment identifier corresponds to multiple bottom layer paths, the first network node can send different data packets through different bottom layer paths among the multiple bottom layer paths, thereby sharing the load.
  • the bottom layer segment identifier carried in the data packet is End.XU SID1, P2 can determine the bottom layer path (O1, O2, O3, O4) according to the correspondence shown in Table 1, and pass (O1, O2, O3, O4) send data packets.
  • the underlying segment identifier carried in the data packet is End.XU SID4, P2 can determine the underlying path (O1, O2, O3, O4) and the underlying path (O2, O3) according to the corresponding relationship shown in Table 1, and pass the underlying path ( O1, O2, O3, O4) and the underlying path (O2, O3) send data packets.
  • the first network node may obtain the target bottom-level segment identifier from the data packet, and the first network node may determine the bottom-level outgoing interface bound to the target bottom-level segment identifier according to the target bottom-level segment identifier and the binding relationship.
  • the outbound interface of the bottom layer sends data packets.
  • the bottom-level segment identifier carried in the data packet is End.XU SID2
  • P2 can determine that the bottom-level outgoing interface is virtual interface 3 according to the binding relationship shown in Table 2, and send the data packet through virtual interface 3 so that the data The packet is transmitted through an underlying path.
  • the underlying segment identifier carried in the data packet is End.XU SID1, P2 can determine the underlying outgoing interface as virtual interface 1 and virtual interface 2 according to the binding relationship shown in Table 2, and send the data packet through virtual interface 1 or virtual interface 2. , So that the data packet is transmitted through one of the two underlying paths.
  • the first network node can perform the longest match between the bottom-level segment identifier and the segment identifier in the local segment identifier table; when the bottom-level segment identifier matches any segment identifier in the local segment identifier table for the longest time, bind through the bottom-level segment identifier
  • the bottom layer of the outbound interface sends data packets.
  • Step 408 The second network node receives the data packet.
  • the second network node may continue to send the data packet to other network nodes of the segment routing network according to the segment identifier in the data packet until the data packet reaches the destination node. For example, referring to Figure 1, after P3 receives a data packet from P2, it can send a data packet to P4.
  • the nodes in the SRv6 network can perceive the underlying path through the underlying segment identifier. Then, when transmitting data packets, it can be based on the data
  • the underlying segment identifier carried by the packet sends data packets through the underlying path corresponding to the underlying segment identifier. Therefore, according to business needs, you can specify which underlying path the data packet uses to transmit the data packet, so that different data packets can be transmitted through different underlying paths, improving Increased flexibility and facilitates traffic planning.
  • the nodes in the SRv6 network can perceive each optical path through the underlying segment identifier, thus supporting the POI scenario, and can flexibly select the transmission traffic according to the needs.
  • Light path when the underlying path is an optical path, by issuing the underlying segment identifier, the nodes in the SRv6 network can perceive each optical path through the underlying segment identifier, thus supporting the POI scenario, and can flexibly select the transmission traffic according to the needs.
  • Light path when the underlying path is an optical path, by issuing the underlying segment identifier, the nodes in the SRv6 network can perceive each optical path through the underlying segment identifier, thus supporting the POI scenario, and can flexibly select the transmission traffic according to the needs. Light path.
  • the data transmission method of the embodiment of the present application is described above, and the first network node and the head node provided by the embodiment of the present application are described below.
  • FIG. 16 is a schematic structural diagram of a first network node provided by an embodiment of the present application.
  • the first network node includes: a publishing module 1601 for performing step 401; and a receiving module 1602 for performing step 406; sending module 1603, used to perform step 407.
  • one or more underlying segment identifiers in the at least one underlying segment identifier are underlying link segment identifiers.
  • one or more of the at least one underlying path is an optical path, an ATM path, an FR path, a back-to-back Ethernet path, a GRE tunnel, a FlexE path, an MPLS RSVP-TE tunnel, an IP tunnel, or a UDP tunnel.
  • the publishing module 1601 is configured to publish at least two low-level segment identifiers, the at least two low-level segment identifiers correspond to the same endpoint three-level cross-connect segment identifier, and the endpoint three-level cross-connect segment identifier is used to identify the first network node A three-layer adjacency relationship with the first network node of the second network.
  • one or more underlying segment identifiers in the at least one underlying segment identifier do not have a corresponding endpoint layer three cross-connect segment identifier, and the endpoint layer three cross-connect segment identifier is used to identify the first network node and the second network first network The three-level adjacency relationship between nodes.
  • the publishing module 1601 is specifically configured to publish at least one low-level segment identifier through IGP; or publish at least one low-level segment identifier through BGP-LS; or publish at least one low-level segment identifier through PCEP.
  • the publishing module 1601 is also used to publish path parameters of one or more underlying paths in at least one underlying path.
  • the publishing module 1601 is also used to publish the identity of the second network node.
  • At least one underlying segment identifier is carried in a message, the message includes at least one first type length value TLV, and each first TLV includes an underlying segment identifier.
  • the sending module 1603 is further configured to publish the path type of one or more underlying paths in the at least one underlying path.
  • the first TLV is a sub-TLV of the second TLV, and the second TLV includes an endpoint three-level cross-connect segment identifier; or, the first TLV is a TLV parallel to the second TLV; or, the first TLV is a location information TLV Or, the first TLV is a child TLV of a new top-level TLV, and the top-level TLV refers to a TLV that is not nested within other TLVs.
  • the first TLV further includes each segment identifier of the first network node related to the neighbor node.
  • the first network node further includes an allocation module, configured to allocate at least one underlying segment identifier to at least one underlying path; or, the receiving module 1602 is also configured to receive configuration instructions, and obtain at least one underlying segment identifier and Correspondence of one or more underlying paths in at least one underlying path.
  • an allocation module configured to allocate at least one underlying segment identifier to at least one underlying path
  • the receiving module 1602 is also configured to receive configuration instructions, and obtain at least one underlying segment identifier and Correspondence of one or more underlying paths in at least one underlying path.
  • the first network node further includes: a saving module, configured to save the binding relationship between the bottom layer segment identifier and the bottom layer outbound interface; and the sending module 1603, specifically configured to determine the target according to the target bottom layer segment identifier and the binding relationship The bottom layer segment identifies the bound bottom layer outgoing interface, and the data packet is sent through the bottom layer outgoing interface.
  • a saving module configured to save the binding relationship between the bottom layer segment identifier and the bottom layer outbound interface
  • the sending module 1603 specifically configured to determine the target according to the target bottom layer segment identifier and the binding relationship The bottom layer segment identifies the bound bottom layer outgoing interface, and the data packet is sent through the bottom layer outgoing interface.
  • the first network node provided in the embodiment of FIG. 16 transmits data
  • only the division of the above-mentioned functional modules is used as an example for illustration.
  • the above-mentioned functions can be allocated to different functional modules as needed.
  • Complete that is, divide the internal structure of the first network node into different functional modules to complete all or part of the functions described above.
  • the first network node provided in the foregoing embodiment belongs to the same concept as the foregoing data transmission method embodiment, and its specific implementation process is detailed in the method embodiment, which will not be repeated here.
  • FIG. 17 is a schematic structural diagram of a head node provided by an embodiment of the present application. As shown in FIG. 17, the head node includes: a receiving module 1701 for performing step 402 and step 403; and an adding module 1702 for performing step 404 ; Sending module 1703, used to perform step 405.
  • one or more underlying segment identifiers in the at least one underlying segment identifier are underlying link segment identifiers.
  • one or more of the at least one underlying path is an optical path, an ATM path, an FR path, a back-to-back Ethernet path, a GRE tunnel, a FlexE path, an MPLS RSVP-TE tunnel, an IP tunnel, or a UDP tunnel.
  • the device further includes: a selection module, which is used to perform the first method in step 404; or, the receiving module is also used to perform the second method in step 404.
  • a selection module which is used to perform the first method in step 404; or, the receiving module is also used to perform the second method in step 404.
  • the selection module is further configured to select a bottom layer path whose path parameters meet the transmission requirements of the service from at least one bottom layer path according to the path parameters of each bottom layer path.
  • the receiving module 1701 is further configured to receive path parameters of one or more underlying paths in the at least one underlying path from the first network node.
  • the receiving module 1701 is further configured to receive the identifier of the second network node from the first network node.
  • the receiving module 1701 is further configured to receive the path type of one or more underlying paths in the at least one underlying path from the first network node.
  • the head node provided in the embodiment of FIG. 17 transmits data
  • only the division of the above-mentioned functional modules is used as an example for illustration.
  • the above-mentioned functions can be allocated by different functional modules as needed. That is, the internal structure of the head node is divided into different functional modules to complete all or part of the functions described above.
  • the head node provided in the foregoing embodiment and the foregoing data transmission method embodiment belong to the same concept, and the specific implementation process is detailed in the method embodiment, and will not be repeated here.
  • the first network node and the head node of the embodiments of the present application are described above, and the possible product forms of the first network node and the head node are described below. It should be understood that all products in any form that have the characteristics of the first network node in FIG. 16 and products in any form that have the characteristics of the head node in FIG. 17 fall within the scope of protection of this application. It should also be understood that the following introduction is only an example, and does not limit the product form of the first network node and the head node in the embodiments of the present application.
  • the first network node or head node provided in the embodiment of the present application may be implemented by a general bus architecture.
  • the first network node 1800 includes a processor 1801, a memory 1802, and a transceiver 1803.
  • the memory 1802 stores at least one instruction. 1801, memory 1802, and transceiver 1803 may be connected by a bus.
  • the processor 1801 is configured to control the transceiver 1803 to execute step 401, step 406, and step 407 through the instruction;
  • one or more underlying segment identifiers in the at least one underlying segment identifier are underlying link segment identifiers.
  • one or more of the at least one underlying path is an optical path, an ATM path, an FR path, a back-to-back Ethernet path, a GRE tunnel, a FlexE path, an MPLS RSVP-TE tunnel, an IP tunnel, or a UDP tunnel.
  • the processor 1801 is further configured to control the transceiver 1803 to issue path parameters of one or more underlying paths in the at least one underlying path through the instruction.
  • the processor 1801 is further configured to control the transceiver 1803 to issue the identification of the second network node through the instruction.
  • the processor 1801 is further configured to control the transceiver 1803 to issue the path type of one or more underlying paths in the at least one underlying path through the instruction.
  • the processor 1801 is specifically configured to control the transceiver 1803 to send a message through the instruction.
  • the message includes at least one first type length value TLV, and each first TLV includes a bottom layer segment identifier.
  • the first TLV is a sub-TLV of a second TLV
  • the second TLV includes an endpoint three-level cross-connect segment identifier; or, the first TLV is a TLV parallel to the second TLV; or, the first TLV
  • the TLV is a sub-TLV of the location information TLV; or, the first TLV is a sub-TLV of the new top-level TLV.
  • the processor 1801 is configured to use the instruction to assign the at least one low-level segment identifier to the at least one low-level path; or, the processor 1801 is also configured to use the instruction to control the transceiver 1803 to receive the configuration instruction, The corresponding relationship between the at least one bottom-level segment identifier and one or more bottom-level paths in the at least one bottom-level path is obtained from the configuration instruction.
  • the processor 1801 is further configured to control the memory 1802 to save the binding relationship between the bottom-level segment identifier and the bottom-level outbound interface through the instruction; the processor 1801 is also configured to through the instruction, according to the target bottom-level segment The identifier and the binding relationship determine the underlying outbound interface bound to the target underlying segment identifier; the processor 1801 is used to control the transceiver 1803 to send the data packet through the underlying outbound interface through the instruction.
  • the processor 1801 may be a general-purpose central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling program execution of the solution of the present application.
  • CPU central processing unit
  • ASIC application-specific integrated circuit
  • the memory 1802 may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (RAM), or other types that can store information and instructions
  • the dynamic storage device can also be electrically erasable programmable read-only memory (EEPROM), compact disc read-only Memory (CD-ROM) or other optical disc storage, optical disc storage (Including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store desired program codes in the form of instructions or data structures and can be used by a computer Any other media accessed, but not limited to this.
  • EEPROM electrically erasable programmable read-only memory
  • CD-ROM compact disc read-only Memory
  • optical disc storage including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.
  • magnetic disk storage media or other magnetic storage devices or can be used to carry or store desired program codes in the form of
  • an embodiment of the present application provides a head node.
  • the head node 1900 includes a processor 1901, a memory 1902, and a transceiver 1903.
  • the memory 1902 stores at least one instruction, the processor 1901, the memory 1902, and
  • the transceiver 1903 may be connected via a bus.
  • the product form of the processor 1901 is the same as that of the processor 1801, and the product form of the memory 1902 is the same as that of the memory 1802, and will not be repeated here.
  • the processor 1901 is configured to load the instruction, and control the transceiver 1903 to execute step 402, step 403, and step 405; the processor 1901 is also configured to execute step 404 through the instruction;
  • one or more underlying segment identifiers in the at least one underlying segment identifier are underlying link segment identifiers.
  • one or more of the at least one underlying path is an optical path, an ATM path, an FR path, a back-to-back Ethernet path, a GRE tunnel, a FlexE path, an MPLS RSVP-TE tunnel, an IP tunnel, or a UDP tunnel.
  • the processor 1901 is further configured to use the instruction to execute mode one in step 404; or, the processor 1901 is also configured to use the instruction to control the transceiver 1903 to execute mode two in step 404.
  • the processor 1901 is specifically configured to use the instruction to select an underlying path whose path parameters meet the transmission requirements of the service from the at least one underlying path according to the path parameters of each underlying path.
  • the processor 1901 is further configured to control the transceiver 1903 to receive path parameters of one or more underlying paths in the at least one underlying path from the first network node through the instruction.
  • the processor 1901 is further configured to control the transceiver 1903 to receive the identifier of the second network node from the first network node through the instruction.
  • the processor 1901 is further configured to control the transceiver 1903 to receive the path type of one or more underlying paths in the at least one underlying path through the instruction.
  • the first network node or head node provided in the embodiment of the present application may be implemented by a general-purpose processor.
  • the general-purpose processor implementing the first network node includes a processing circuit, an output interface and an input interface that communicate with the processing circuit internally; the processing circuit is used to control the output interface to perform step 401; the processing circuit is used to control the input interface Step 406 is executed; the processing circuit is also used to control the output interface to execute step 407.
  • the general-purpose processor may further include a storage medium for storing instructions executed by the processing circuit.
  • one or more underlying segment identifiers in the at least one underlying segment identifier are underlying link segment identifiers.
  • one or more of the at least one underlying path is an optical path, an ATM path, an FR path, a back-to-back Ethernet path, a GRE tunnel, a FlexE path, an MPLS RSVP-TE tunnel, an IP tunnel, or a UDP tunnel.
  • the processing circuit is further configured to control the output interface to issue path parameters of one or more underlying paths in the at least one underlying path through the instruction.
  • processing circuit is further configured to control the output interface to issue the identification of the second network node through the instruction.
  • processing circuit is further configured to control the output interface to issue the path type of one or more of the at least one bottom path through the instruction.
  • the processing circuit is specifically configured to control the output interface to send a message through the instruction.
  • the message includes at least one first type length value TLV, and each first TLV includes a bottom layer segment identifier.
  • the first TLV is a sub-TLV of a second TLV
  • the second TLV includes an endpoint three-level cross-connect segment identifier; or, the first TLV is a TLV parallel to the second TLV; or, the first TLV
  • the TLV is a sub-TLV of the location information TLV; or, the first TLV is a sub-TLV of the new top-level TLV.
  • the processing circuit is configured to assign the at least one bottom-level segment identifier to the at least one bottom-level path through the instruction; or, the processing circuit is also configured to control the input interface to receive a configuration instruction through the instruction, and then configure The instruction obtains the correspondence between at least one bottom-level segment identifier and one or more bottom-level paths in the at least one bottom-level path.
  • the processing circuit is also used to control the storage medium to save the binding relationship between the bottom-level segment identifier and the bottom-level outgoing interface through the instruction; the processing circuit is also used to use the instruction to control the storage medium according to the target bottom-level segment identifier and The binding relationship determines the bottom layer outgoing interface bound to the target bottom layer segment identifier; the processing circuit is used to control the output interface to send the data packet through the bottom layer outgoing interface through the instruction.
  • the general-purpose processor that realizes the head node includes a processing circuit and an input interface and an output interface for internal communication with the processing circuit.
  • the processing circuit is used to control the input interface to perform steps 402 and 403; the processing circuit performs step 404;
  • the circuit is used to control the output interface to execute step 405; optionally, the general-purpose processor may also include a storage medium, and the storage medium is used to store instructions executed by the processing circuit.
  • one or more underlying segment identifiers in the at least one underlying segment identifier are underlying link segment identifiers.
  • one or more of the at least one underlying path is an optical path, an ATM path, an FR path, a back-to-back Ethernet path, a GRE tunnel, a FlexE path, an MPLS RSVP-TE tunnel, an IP tunnel, or a UDP tunnel.
  • the processing circuit is also used to execute mode one in step 404 through the instruction; or, the processing circuit is also used to control the input interface to execute mode two in step 404 through the instruction.
  • the processing circuit is specifically configured to pass the instruction to select an underlying path whose path parameters meet the transmission requirements of the service from the at least one underlying path according to the path parameters of each underlying path.
  • the processing circuit is further configured to control the input interface to receive path parameters of one or more underlying paths in the at least one underlying path from the first network node through the instruction.
  • the processing circuit is further configured to control the input interface to receive the identifier of the second network node from the first network node through the instruction.
  • the processing circuit is further configured to control the input interface to receive the path type of one or more underlying paths in the at least one underlying path through the instruction.
  • the first network node or head node in the embodiment of this application can also be implemented as follows: one or more field-programmable gate arrays (full English name: field-programmable gate array, English Abbreviation: FPGA), programmable logic device (English full name: programmable logic device, English abbreviation: PLD), controller, state machine, gate logic, discrete hardware components, any other suitable circuit, or capable of executing all of this application Any combination of circuits with various functions described.
  • field-programmable gate arrays full English name: field-programmable gate array, English Abbreviation: FPGA
  • programmable logic device English full name: programmable logic device, English abbreviation: PLD
  • controller state machine
  • gate logic discrete hardware components
  • first network node or the head node of the above-mentioned various product forms respectively have any function of the first network node or the head node in the above method embodiment, and will not be repeated here.
  • the disclosed system, device, and method may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the unit is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components may be combined or may be Integrate into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.
  • the unit described as a separate component may or may not be physically separated, and the component displayed as a unit may or may not be a physical unit, that is, it may be located in one place, or may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments of the present application.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this application is essentially or the part that contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium It includes several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disk or optical disk and other media that can store program code .
  • the computer program product includes one or more computer program instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer program instructions may be transmitted from a website, computer, server, or data.
  • the center transmits to another website site, computer, server or data center through wired or wireless means.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a digital video disc (DVD), or a semiconductor medium (for example, a solid state hard disk).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种数据传输方法、网络节点及存储介质,属于通信技术领域。本申请通过设计了与底层路径对应的底层段标识,发布底层段标识,可以让分段路由网络中的节点通过底层段标识感知到底层路径,那么在传输数据包时,能够根据数据包携带的底层段标识,通过底层段标识对应的底层路径发送数据包,因此可以根据业务需求,指定数据包通过哪条底层路径传输数据包,让不同数据包能够通过不同的底层路径传输,提高了灵活性,有助于进行流量规划。

Description

数据传输方法、网络节点及存储介质
本申请要求于2019年7月12日提交中国专利局、申请号为201910631947.5、发明名称为“数据传输方法、网络节点及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别涉及一种数据传输方法、网络节点及存储介质。
背景技术
分段路由(Segment Routing,SR)是基于源路由的理念而设计的在网络中转发数据包的一种协议。SR将网络路径划分为一个个段,为这些段或节点分配段标识(英文全称:segment ID,英文简称:SID),通过在数据包中携带依次排列的段标识,能够让数据包通过段标识指示的转发路径传输。基于互联网协议第6版(internet protocol version 6,IPv6)的分段路由(SRv6)是指将SR技术与IPv6协议结合起来,按照IPv6地址的格式定义为实例化的SID,基于IPv6的转发面来实现SR的功能。
相关技术中,SRv6网络中的不同节点之间可以通过互联网协议地址(英文全称:internet protocol address,简称:IP)层链路相连。对于任一节点来说,该节点可以发布至少一个端点三层交叉连接段标识(End.X SID,End表示endpoint,意为端点;X表示crossing,意为三层交叉连接,SID意为段标识),每个End.X SID用于标识该节点直连的一条IP层链路,网络中的其他节点通过收发彼此发布的End.X SID,可以确定网络中每条IP层的链路对应的SID。当数据包进入SRv6网络时,头节点会接收到数据包,确定数据包的转发路径,之后,在一种可能的实现中,头节点可以根据转发路径需要经过的每条IP层链路,获取每条IP层的链路对应的End.X SID,将得到的End.X SID写入到数据包,再将携带了End.X SID的数据包发送至下一节点。当任一节点接收到数据包时,节点会解析该数据包,得到数据包携带的End.X SID,将数据包从End.X SID绑定的IP层出接口发送出去,则数据包会通过该IP层出接口对应的IP层链路,到达下一节点,下一节点会通过执行类似的步骤,继续转发数据包,直至数据包到达目的节点。在另一种可能的实现中,头节点可以根据转发路径需要经过的每个节点,获取每个节点对应的端点段标识(End SID,End表示endpoint,意为端点,SID意为段标识),将得到的End SID写入到数据包,再将携带了End SID的数据包发送至下一节点。当任一节点接收到数据包时,该节点会解析该数据包,得到数据包携带的End SID,向End SID对应的节点发送数据包,则数据包会到达该End SID对应的节点,以此类推,每个节点通过执行类似的步骤,继续转发数据包,直至数据包到达目的节点。需要说明的是,上述的END.X或END构成的SID list可以仅指明路径上的部分节点,而不是全部的节点。另外,也可以混合使用END.X和END,以及其他的SRv6Functions。
目前,SRv6网络中的节点只能感知到IP层的链路,而无法感知底层路径,因此,即使不同节点之间通过多条底层路径相连,节点也只能固定地通过预先配置的底层路径 来传输数据包,导致传输数据包的底层路径无法根据业务需求控制,灵活性差。
发明内容
本申请提供了一种数据传输方法、网络节点及存储介质,可以让分段路由网络中的节点感知底层路径,从而提高传输数据包的灵活性。所述技术方案如下:
第一方面,提供了一种数据传输方法,应用于第一网络节点,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,所述方法包括:发布至少一个底层段标识,每个所述底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;接收携带目标底层段标识的数据包;通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识。
通过设计了与底层路径对应的底层段标识,发布底层段标识,可以让分段路由网络中的节点通过底层段标识感知到底层路径,那么在传输数据包时,能够根据数据包携带的底层段标识,通过底层段标识对应的底层路径发送数据包,因此可以根据业务需求,指定数据包通过哪条底层路径传输数据包,让不同数据包能够通过不同的底层路径传输,提高了传输数据包的灵活性,有助于进行流量规划。尤其是,在底层路径为光路的情况下,通过发布底层段标识,SRv6网络中的节点能够通过底层段标识感知到每条光路,从而支持了POI的场景,可以根据需求灵活的选择传输流量的光路。
可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,所述至少一条底层路径中的一条或多条底层路径为光路、异步传输模式(asynchronous transfer mode,ATM)路径、帧中继(frame relay,FR)路径、背靠背的以太网(ethernet)路径、通用路由封装(generic routing encapsulation,GRE)隧道(tunnel)、灵活以太网(Flex Ethernet,FlexE)路径、多协议标签交换资源预留协议流量工程(multi-protocol label switching resource reservation protocol traffic engineering,MPLS RSVP-TE)隧道(tunnel)、IP隧道或者用户数据报协议(user datagram protoco,UDP)隧道。
可选地,所述光路为密集型波分复用(dense wavelength division multiplexing,DWDM)路径或光传送网(optical transport network,OTN)路径。
可选地,所述发布至少一个底层段标识,包括:发布至少两个底层段标识,所述至少两个底层段标识对应于同一个端点三层交叉连接段标识(End.X SID),所述端点三层交叉连接段标识用于标识所述第一网络节点和所述第二网络节点之间的三层邻接关系。
通过这种可选方式,由于End.X SID标识了两个网络节点之间的三层邻接关系,那么如果一个End.X SID对应于至少两个底层段标识,表明两个网络节点之间的一个邻接关系通过至少两条底层路径提供,在这种场景下,通过发布至少两个底层段标识,在数据包中携带底层段标识,可以指定数据包从至少两条底层路径中的哪条底层路径传输,从而可以灵活地调度各条底层路径,为不同流量执行不同的传输策略,因此扩展了数据传输的能力,提高了灵活性。
可选地,所述至少一个底层段标识中的一个或多个底层段标识没有对应的端点三层交叉连接段标识,所述端点三层交叉连接段标识用于标识所述第一网络节点和所述第二网络节点之间的三层邻接关系。
通过这种可选方式,由于End.X SID标识了两个网络节点之间的三层邻接关系,如果底层段标识没有对应的End.X SID,表明两个网络节点在IP层没有建立邻接关系,在这种场景下,通过发布底层段标识,在数据包中携带底层段标识,也能够通过底层段标识对应的底层路径传输数据包,那么,即使看不到两个网络节点的IP层路径,也能够使用底层段标识调度底层路径,因此扩展了数据传输的能力,提高了灵活性。
可选地,所述发布至少一个底层段标识,包括:通过内部网关协议(interior gateway routing protocol,IGP),发布所述至少一个底层段标识;或者,通过边界网关协议链路状态(border gateway protocol-link state,BGP-LS),发布所述至少一个底层段标识;或者,通过路径计算单元通信协议(path computation element communication protocol,PCEP),发布所述至少一个底层段标识。
可选地,所述方法还包括:发布所述至少一条底层路径中一条或多条底层路径的路径参数。
通过发布底层路径的路径参数,头节点或控制器能够根据路径参数,选择传输数据包的底层路径。
可选地,所述方法还包括:发布所述第二网络节点的标识。
通过发布第二网络节点的标识,头节点或控制器能够根据第二网络节点的标识,确定底层路径的对端节点,从而感知第一网络节点通过底层路径与哪个网络节点相连。
可选地,所述方法还包括:发布所述至少一条底层路径中一条或多条底层路径的路径类型。
通过发布每条底层路径的路径类型,头节点或控制器可以感知到具体发布了哪一种类型的底层路径,从而能够根据业务需求,调度特定类型的底层路径进行数据传输,因此提高了灵活性。
可选地,所述至少一个底层段标识携带在报文中,所述报文包括至少一个第一(type length value,TLV),每个第一TLV包括一个底层段标识。
可选地,所述第一TLV为第二TLV的子TLV,所述第二TLV包括端点三层交叉连接段标识(End.X SID,End表示endpoint,意为端点;X表示crossing,意为三层交叉连接,SID意为段标识);或者,所述第一TLV为与所述第二TLV并列的TLV;或者,所述第一TLV为位置信息TLV的子TLV;或者,所述第一TLV是一个新的顶级TLV的子TLV,所述顶级TLV是指未嵌套在其他TLV内部的TLV。
通过上述可选方式,为发布底层段标识提供了多种报文的格式,提高了灵活性。
可选地,所述新的顶级TLV或位置信息TLV包括所述第一网络节点的端点三层交叉连接段标识。
所述第一网络节点的端点三层交叉连接段标识通常会通过22TLV或者222TLV发布,而通过上述可选方式,将第一网络节点的端点三层交叉连接段标识也通过新的顶级TLV或位置信息TLV发布,因此22TLV或者222TLV可以无需携带邻居节点相关的段标识,从而降低了22TLV或者222TLV的复杂度。
可选地,所述发布至少一个底层段标识之前,所述方法还包括:为所述至少一条底层路径分配所述至少一个底层段标识;或者,接收配置指令,从所述配置指令获取所述至少一个底层段标识和所述至少一条底层路径中的一条或多条底层路径的对应关系。
可选地,所述方法还包括:保存底层段标识与底层出接口之间的绑定关系;所述通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,包括:根据所述目标底层段标识以及所述绑定关系,确定所述目标底层段标识绑定的底层出接口,通过所述底层出接口发送所述数据包。
第二方面,提供了一种数据传输方法,应用于头节点,所述头节点是指分段路由网络入口处的节点,所述方法包括:从第一网络节点接收至少一个底层段标识,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,每个底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;接收数据包;向所述数据包添加目标底层段标识,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识;向所述第一网络节点发送携带所述目标底层段标识的所述数据包。
通过设计了与底层路径对应的底层段标识,在传输数据包时,向数据包添加目标底层段标识,使得第一网络节点能够根据数据包携带的底层段标识,通过底层段标识对应的底层路径发送数据包,因此可以根据业务需求,指定数据包通过哪条底层路径传输数据包,让不同数据包能够通过不同的底层路径传输,提高了传输数据包的灵活性,有助于进行流量规划。
可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,所述至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,所述向所述数据包添加目标底层段标识之前,所述方法还包括:根据所述数据包承载的业务,从所述至少一条底层路径中,选择所述业务对应的底层路径,将所述选择出的底层路径所对应的底层段标识作为所述所述目标底层段标识;或者,从所述分段路由网络的控制器接收所述目标底层段标识,向所述数据包添加所述目标底层段标识。
通过根据数据包承载的业务,来选择传输数据包的底层路径,对于任一业务来说,可以指定承载该业务的数据包走哪一条底层路径,从而让不同的业务可以通过不同的底层路径传输,有助于进行流量规划,能够更好地利用不同的底层路径,提升业务的服务质量(Quality of Service,QoS)。
可选地,所述从所述至少一条底层路径中,选择所述业务对应的底层路径,包括:根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径。
可选地,所述根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径之前,所述方法还包括:从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径参数。
可选地,所述方法还包括:从所述第一网络节点接收所述第二网络节点的标识。
可选地,所述方法还包括:从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径类型。
第三方面,提供了一种第一网络节点,所述第一网络节点具有实现上述第一方面或第一方面任一种可选方式中数据传输的功能。该装置包括至少一个模块,所述至少一个模块用于实现上述第一方面或第一方面任一种可选方式所提供的数据传输方法。
第四方面,提供了一种头节点,所述头节点具有实现上述第二方面或第二方面任一种可选方式数据传输的功能。该装置包括至少一个模块,所述至少一个模块用于实现上述第二方面或第二方面任一种可选方式所提供的数据传输方法。
第五方面,提供了一种第一网络节点,所述第一网络节点包括处理器、存储器以及收发器,所述存储器中存储有至少一条指令;
所述处理器用于加载所述指令,控制所述收发器发布至少一个底层段标识,每个所述底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;所述处理器还用于通过所述指令,控制所述收发器接收携带目标底层段标识的数据包;所述处理器还用于通过所述指令,控制所述收发器通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识。
可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,所述至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,所述处理器还用于通过所述指令,控制所述收发器发布所述至少一条底层路径中一条或多条底层路径的路径参数。
可选地,所述处理器还用于通过所述指令,控制所述收发器发布所述第二网络节点的标识。
可选地,所述处理器还用于通过所述指令,控制所述收发器发布所述至少一条底层路径中一条或多条底层路径的路径类型。
可选地,所述至少一个底层段标识携带在报文中,所述报文包括至少一个第一类型长度值TLV,每个第一TLV包括一个底层段标识。
可选地,所述第一TLV为第二TLV的子TLV,所述第二TLV包括端点三层交叉连接段标识;或者,所述第一TLV为与所述第二TLV并列的TLV;或者,所述第一TLV为位置信息TLV的子TLV;或者,所述第一TLV为新的顶级TLV的子TLV,所述顶级TLV是指未嵌套在其他TLV内部的TLV。
可选地,所述处理器用于通过所述指令,为所述至少一条底层路径分配所述至少一个底层段标识;或者,
所述处理器还用于通过所述指令,控制所述收发器接收配置指令,从所述配置指令获取所述至少一个底层段标识和所述至少一条底层路径中的一条或多条底层路径的对应关系。
可选地,所述处理器还用于通过所述指令,控制所述存储器保存底层段标识与底层出接口之间的绑定关系;所述处理器还用于通过所述指令,根据所述目标底层段标识以及所述绑定关系,确定所述目标底层段标识绑定的底层出接口;所述处理器用于通过所述指令,控制所述收发器通过所述底层出接口发送所述数据包。
第六方面,提供了一种头节点,所述头节点包括处理器、存储器以及收发器,所述存储器中存储有至少一条指令;
所述处理器用于加载所述指令,控制所述收发器从第一网络节点接收至少一个底层段标识,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,每个底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;
所述处理器还用于通过所述指令,控制所述收发器接收数据包;
所述处理器还用于通过所述指令,向所述数据包添加目标底层段标识,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识;
所述处理器还用于通过所述指令,控制所述收发器向所述第一网络节点发送携带所述目标底层段标识的所述数据包。
可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,所述至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,所述处理器还用于通过所述指令,根据所述数据包承载的业务,从所述至少一条底层路径中,选择所述业务对应的底层路径,将所述选择出的底层路径所对应的底层段标识作为所述目标底层段标识;或者,所述处理器还用于通过所述指令,控制所述收发器从所述分段路由网络的控制器接收所述目标底层段标识。
可选地,所述处理器具体用于通过所述指令,以根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径。
可选地,所述处理器还用于通过所述指令,控制所述收发器从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径参数。
可选地,所述处理器还用于通过所述指令,控制所述收发器从所述第一网络节点接收所述第二网络节点的标识。
可选地,所述处理器还用于通过所述指令,控制所述收发器接收所述至少一条底层路径中一条或多条底层路径的路径类型。
第七方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令;
所述指令用于供处理器加载以控制收发器发布至少一个底层段标识,每个所述底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;所述指令还用于供所述 处理器控制所述收发器接收携带目标底层段标识的数据包;所述指令还用于供所述处理器控制所述收发器通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识。
可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,所述至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,所述指令还用于供所述处理器控制所述收发器发布所述至少一条底层路径中一条或多条底层路径的路径参数。
可选地,所述指令还用于供所述处理器控制所述收发器发布所述第二网络节点的标识。
可选地,所述指令还用于供所述处理器控制所述收发器发布所述至少一条底层路径中一条或多条底层路径的路径类型。
可选地,所述至少一个底层段标识携带在报文中,所述报文包括至少一个第一类型长度值TLV,每个第一TLV包括一个底层段标识。
可选地,所述第一TLV为第二TLV的子TLV,所述第二TLV包括端点三层交叉连接段标识;或者,所述第一TLV为与所述第二TLV并列的TLV;或者,所述第一TLV为位置信息TLV的子TLV;或者,所述第一TLV为新的顶级TLV的子TLV,所述顶级TLV是指未嵌套在其他TLV内部的TLV。
可选地,所述指令还用于供所述处理器为所述至少一条底层路径分配所述至少一个底层段标识;或者,
所述指令还用于供所述处理器控制所述收发器接收配置指令,从所述配置指令获取所述至少一个底层段标识和所述至少一条底层路径中的一条或多条底层路径的对应关系。
可选地,所述指令还用于供所述处理器控制所述存储器保存底层段标识与底层出接口之间的绑定关系;所述指令还用于供所述处理器根据所述目标底层段标识以及所述绑定关系,确定所述目标底层段标识绑定的底层出接口;所述指令还用于供所述处理器控制所述收发器通过所述底层出接口发送所述数据包。
第八方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令;
所述指令用于供处理器加载以控制收发器从第一网络节点接收至少一个底层段标识,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,每个底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;
所述指令还用于供所述处理器控制所述收发器接收数据包;
所述指令还用于供所述处理器向所述数据包添加目标底层段标识,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识;
所述指令还用于供所述处理器控制所述收发器向所述第一网络节点发送携带所述目标底层段标识的所述数据包。
可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,所述至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,所述指令还用于供所述处理器根据所述数据包承载的业务,从所述至少一条底层路径中,选择所述业务对应的底层路径,将所述选择出的底层路径所对应的底层段标识作为所述目标底层段标识;或者,所述指令还用于供所述处理器控制所述收发器从所述分段路用于供网络的控制器接收所述目标底层段标识。
可选地,所述指令用于供处理器根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径。
可选地,所述指令还用于供所述处理器控制所述收发器从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径参数。
可选地,所述指令还用于供所述处理器控制所述收发器从所述第一网络节点接收所述第二网络节点的标识。
可选地,所述指令还用于供所述处理器控制所述收发器接收所述至少一条底层路径中一条或多条底层路径的路径类型。
第九方面,提供了一种计算机程序,所述计算机程序用于执行上述第一方面或第一方面任一种可选方式所述的方法。
第十方面,提供了一种计算机程序,所述计算机程序用于执行上述第二方面或第二方面任一种可选方式所述的方法。
第十一方面,提供了一种数据传输***,所述数据传输***包括第一网络节点以及头节点,所述第一网络节点用于执行上述第一方面或第一方面任一种可选方式所述的方法,所述头节点用于执行上述第二方面或第二方面任一种可选方式所述的方法。
附图说明
图1是本申请实施例提供的一种数据传输***的架构图;
图2是本申请实施例提供的一种数据传输***的架构图;
图3是本申请实施例提供的一种数据传输***的架构图;
图4是本申请实施例提供的一种数据传输方法的流程图;
图5是本申请实施例提供的一种TLV的格式示意图;
图6是本申请实施例提供的一种TLV的格式示意图;
图7是本申请实施例提供的一种TLV的格式示意图;
图8是本申请实施例提供的一种TLV的格式示意图;
图9是本申请实施例提供的一种TLV的格式示意图;
图10是本申请实施例提供的一种TLV的格式示意图;
图11是本申请实施例提供的一种TLV的格式示意图;
图12是本申请实施例提供的一种TLV的格式示意图;
图13是本申请实施例提供的一种TLV的格式示意图;
图14是本申请实施例提供的一种TLV的格式示意图;
图15是本申请实施例提供的一种TLV的格式示意图;
图16是本申请实施例提供的一种第一网络节点的结构示意图;
图17是本申请实施例提供的一种头节点的结构示意图;
图18是本申请实施例提供的一种第一网络节点的结构示意图;
图19是本申请实施例提供的一种头节点的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“多个”的含义是指两个或两个以上,例如,多个底层段标识是指两个或两个以上的底层段标识。多条底层路径是指两条或两条以上的底层路径。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
以下对本申请涉及的术语进行解释:
分段路由(Segment Routing,SR):是基于源路由的理念而设计的在网络中转发数据包的一种协议。SR将网络路径划分为一个个段,并且为这些段和网络节点分配分段标识(Segment ID,SID),通过对SID进行有序排列,可以得到SID列表(SID List,在SR-MPLS中也称标签栈),SID List可以指示一条转发路径。通过SR技术,可以指定携带了SID List的数据包经过的节点以及路径,从而满足流量调优的要求。做一个类比,数据包可以比作行李,SR可以比作行李上贴的标签,如果要将行李从A地区发送到D地区,途径B地区和C地区,则可以在始发地A地区给行李贴上一个标签“先到B地区,再到C地区,最后到D地区”,这样一来,各个地区只需识别行李上的标签,依据行李的标签将行李从一个地区转发至另一个地区即可。在SR技术中,源节点会向数据包添加标签,中间节点可以根据标签转发至下一个节点,直至数据包到达目的节点。例如在数据包的包头中,***<SID1,SID2,SID3>,则数据包(packet)会首先转发给SID1对应的节点,之后转发给SID2对应的节点,之后转发给SID3对应的节点。其中,SR-MPLS的中英文全称为分段路由多协议标签交换(Segment Routing Multi-Protocol Label Switching)
基于互联网协议第6版(Internet Protocol Version 6,IPv6)的分段路由(SR v6):是指将SR技术应用在IPv6网络中。使用IPv6地址(128bits)作为SID的表现形式。在转 发数据包时,支持SRv6的网络设备会按照数据包中的目的地址(Destination Address,DA),查询本地段标识表(local SID table),当数据包的目的地址与本地段标识表中的任一SID最长匹配时,则按照本地段标识表中的SID相关的策略,执行该策略对应的操作,例如,可以将数据包从SID对应的出接口转发出去;如果数据包的目的地址与本地段标识表中的每个SID均不最长匹配,则再查询IPv6的转发表,按照IPv6的转发表进行最长匹配转发。
分段路由头(Segment Routing Header,SRH):IPv6报文是由IPv6标准头+扩展头(0...n)+负载(Payload)组成。为了基于IPv6转发平面实现SRv6,新增加一种IPv6扩展头,称作SRH扩展头,该扩展头指定一个IPv6的显式路径,存储的是IPv6的Segment List信息,其作用与SR MPLS里的Segment List一样。头节点在IPv6报文增加一个SRH扩展头,中间节点就可以按照SRH扩展头里包含的路径信息转发
绑定的SID(Binding SID,BSID):BSID会绑定到一个SID list上。当节点收到一个合法的BSID时,会执行BSID相关的操作。在SR-MPLS中,BSID相关的操作可以为:将BSID弹出,压入相应的SID List。在SRv6中,BSID相关的操作可以为:根据BSID函数的不同,***一个新的SRH头(End.B6.Insert),或者是***一个新的包含SRH的外层IPv6头(End.B6.Encaps)。
BGP-LS:是收集网络拓扑的一种新的方式,由BGP协议汇总IGP协议收集的拓扑信息上送给上层控制器。
以下,示例性介绍本申请的***架构。
图1是本申请实施例提供的一种数据传输***的架构图,该***构成的网络可以提供为分段路由网络,例如为SRv6网络。该***包括多个网络节点,网络节点可以是P1、P2、P3、P4或者P5。
图1的虚线分割线以上表示分组交换网络的拓扑,该分组交换网络也可以称为IP层的网络或者3层网络。图1的虚线分割线以下表示底层网络的拓扑。
P1、P2、P3、P4以及P5表示互联网协议(Internet Protocol,IP)层节点,IP层节点可以是路由器、三层交换机等。P1、P2、P3、P4以及P5之间的连线表示IP层路径,例如P1和P2之间的连线表示P1和P2之间的IP层路径,任两个IP层节点之间的IP层路径可以基于两个IP层节点的IP地址建立。其中,P1为头节点,头节点是指分段路由网络入口处的节点,头节点用于将SID添加至数据包。
O1、O2、O3、O4以及O5表示底层节点,底层节点可以是数据链路层节点或物理层节点,例如可以是光层节点,光层节点可以是光传送网(optical transport network,OTN)设备、光交叉连接(optical cross-connect,OXC)设备等。O1、O2、O3、O4以及O5之间的连线表示底层路径。
底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径。隧道技术是指通过使用互联网络的基础设施在网络之间建立一条端到端的虚拟链路以传 输数据的方式。例如,通过隧道技术构建的路径可以是IP隧道、UDP隧道等。具体来讲,底层路径可以是传输光信号的路径,也可以是传输电信号的路径。底层路径可以是物理路径,也可以是虚拟路径。例如,底层路径可以为光路、ATM路径、FR路径或者背靠背的以太网(Ethernet)路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。其中,光路可以为DWDM路径或OTN路径。背靠背是指两个节点之间直连。一条底层路径可以经过一个或多个底层节点,例如,参见图1,底层路径可以是(O1,O2,O3,O4),(O1,O2,O3,O4)可以经过底层节点O1、底层节点O2、底层节点O3以及底层节点O4。或者,底层路径可以是(O1,O6,O5,O4),(O1,O6,O5,O4)可以经过底层节点O1、底层节点O6、底层节点O5以及底层节点O4。
其中,P2和P3处于分组交换网络和底层网络的边缘,可以视为分组交换网络与底层网络之间的网关。例如,如果底层路径为光路,则P2和P3可以称为分组和光的网关(packet optical gateway,POG)。POG用于产生传输分段(transport segment),生成传输分段与光路之间的映射关系,将产生的传输分段在网络中发布;如果POG接收到数据包,而数据包携带之前发布的传输分段,POG会根据映射关系,找到传输分段映射的光路,通过该光路发送数据包。POG可以是合设,也可以是分设,合设的场景指的是P2或者P3能够独立地执行上述根据传输分段确定映射的光路、通过光路传输数据包等步骤;分设是指P2需要跟O1联合,才能执行上述根据传输分段确定映射的光路、通过光路传输数据包等步骤,P3需要跟O4联合,才能执行上述根据传输分段确定映射的光路、通过光路传输数据包等步骤。
在一种可能的场景中,P2和P3之间的1条IP层路径可以对应于多条底层路径。如图1所示,P2有两个出接口,这两个出接口分别记为intf1和intf2,P2通过intf1与P3建立了IP层路径1,P2通过intf2与P3建立了IP层路径2。IP层路径1对应了两条底层路径,分别是(O1,O2,O3,O4)和(O1,O6,O5,O4)。IP层路径2对应了一条底层路径,是(O2,O3)。
在图1中,IP层路径1虽然对应于2条底层路径,但由于目前的IP网络并不能感知这2条底层路径,因此在通过IP层路径1传输数据包时,只能默认使用预先配置的底层路径来传输数据包,例如如果预先配置了(O1,O2,O3,O4),就会默认使用(O1,O2,O3,O4)传输数据包,而无法使用(O1,O6,O5,O4)传输数据包,更无法根据数据包承载的业务,从2条底层路径中选择适合传输该数据包的底层路径。
而本申请实施例提出了底层段标识的概念,底层段标识可以对应一条或多条底层路径,在图1所示的分段路由网络中,通过应用下述图4实施例提供的方法,将底层段标识在分段路由网络中发布,可以让IP网络通过底层段标识感知到底层路径。引入底层段标识后,P1开始的流量可以通过携带底层段标识,来指定流量待经过的底层路径。比如说,可以指定数据包通过(O1,O2,O3,O4)传输,还是通过(O1,O6,O5,O4)传输,由P1将指定的底层路径对应的底层段标识添加到数据包,将数据包发送至P2,则P2会根据数据包中的底层段标识,通过指定的底层路径传输数据包。如此,可以让不同的业务在不同的底层路径上传输,从而实现流量调优的效果。例如,底层路径可以是光路,通过在分段路由网络中发布对应于光路的底层段标识,从而将光路也作为分段路由网络的传 输分段,这样就提供了适用于IP和光的融合(packet-optical integration,POI)的控制面的方案,使得头节点可以根据业务选择光路。
在这种IP层路径与底层路径是一对多的关系的场景下,一方面,可以认为底层路径是三层的邻接SID的从属,另一方面,可以认为底层路径为三层的邻接SID并列的另外一种连接提供能力,其调用方式需要使用分段路由网络为底层网络专门设计的段标识,即本实施例提出的底层段标识。
在另一种可能的场景中,P2和P3可以没有建立IP层路径,而建立了一条或多条底层路径。例如,P2和P3可以通过100G的以太网互联。如果是合设场景,即P2即是IP层的节点,也是光层的节点,P2和O1可以采用OTN或者DWDM互联。示意性地,如图2所示,P2可以通过intf2和P3建立底层路径(O2,O3),在这种场景中,目前的IP网络并不能感知底层路径(O2,O3),更无法通过这条底层路径传输数据包。
而通过本实施例,P2可以将对应于(O2,O3)的底层段标识发布出去,则P1可以通过底层段标识,感知到底层路径(O2,O3),那么在传输数据包的过程中,P1可以向数据包中添加对应于(O2,O3)的底层段标识,P2会根据数据包中的底层段标识,通过(O2,O3)发送数据包,从而走出(O2,O3)这条底层路径来。
需要说明的一点是,图1中P2和P3之间在3层有一条横线,这条横线表示P2和P3之间建立了一条IP层路径,而图2中P2和P3之间在3层没有连线,表示P2和P3之间没有建立IP层路径。
其中,以P2和P3为例,P2和P3之间建立了IP层路径是指,P2和P3在IP层是IGP邻居关系,即,P2是P3的IGP邻居设备,并且P3也是P2的IGP邻居设备。
可选地,如图3所示,该***中还可以包括控制器,控制器通过无线网络或有线网络与每个IP层节点相连,控制器可以用于从多条底层路径中,选择传输数据包的底层路径。控制器可以是一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。当控制器是多台时,可以存在至少两台控制器用于提供不同的服务,和/或,存在至少两台控制器用于提供相同的服务,比如以负载均衡方式提供同一种服务,本发明实施例对此不加以限定。
本领域技术人员可以知晓,该数据传输***中的网络节点的数量可以更多或更少。比如上述网络节点可以为几十个或几百个,或者更多数量。本申请实施例对网络节点的数量和设备类型不加以限定。
以下,示例性介绍本申请的方法流程。
图4是本申请实施例提供的一种数据传输方法的流程图,如图4所示,该方法的交互主体包括第一网络节点、第二网络节点以及头节点,第一网络节点与第二网络节点之间通过至少一条底层路径相连。第一网络节点可以为图1、图2或者图3所示的***架构中的P2,第二网络节点可以是图1、图2或者图3所示的***架构中的P3,头节点可以是图1、图2或者图3所示的***架构中的P1,该方法可以包括以下步骤:
步骤401、第一网络节点发布至少一个底层段标识。
每个底层段标识对应于第一网络节点与第二网络节点之间的至少一条底层路径中的一条或多条底层路径。底层段标识可以称为End.XU SID,End表示endpoint,意为端点;X表示crossing,意为三层交叉连接;U表示underlay,意为底层;SID意为段标识。底层段标识可以通过数字的形式表示,例如,底层段标识可以满足IPv6地址的格式。
在一些可能的实施例中,底层段标识和底层路径可以是一一对应的关系,即,一个底层段标识唯一对应一条底层路径;在另一些可能的实施例中,底层段标识和底层路径也可以是一对多的关系,即,一个底层段标识可以对应多条底层路径,同一底层段标识对应的不同底层路径可以分担负载。示例性地,如果第一网络节点和第二网络节点之间连接了4条底层路径,记为底层路径1、底层路径2、底层路径3以及底层路径4,则第一网络节点可以发布2个底层段标识,记为底层段标识1和底层段标识2,底层段标识1对应于底层路径1、底层路径2以及底层路径3,底层段标识4对应于底层路径4。在此例中,底层段标识1通过同时对应3条底层路径,可以让3条底层路径分担负载。
第一网络节点可以具有一个或多个出接口,每条底层路径可以对应于第一网络节点的一个出接口,该出接口可以是物理出接口,也可以是逻辑出接口。此处的对应的意思是,如果底层路径i与出接口j对应,数据包从出接口i发送出去后,会进入底层路径j,数据包沿着底层路径j可以到达第二网络节点。其中,i表示出接口的标识,j表示底层路径的标识。
在一些可能的实施例中,以底层段标识记为S,网络节点记为N为例,根据底层段标识执行的操作可以如下:
When N receives a packet destined to S and S is a local End.XU SID,N does:
/注释:当N接收到目的地址为S的数据包,且S为N发布的底层段标识时,N执行以下步骤/
IF NH=SRH and SL>0/注释:如果下一个头部(next header,NH)为分段路由头(segment routing header,SRH)且剩余段的数量(segment left,SL)大于0/
decrement SL/注释:将SL减一/
update the IPv6DA with SRH[SL]/注释:使用SRH[SL]更新IPv6的目的地址/
forward to underlay interface bound to the SID S/注释:从SID绑定的底层出接口转发数据包/
ELSE/注释:否则/
drop the packet/注释:丢弃数据包/
可选地,至少一个底层段标识中的一个或多个底层段标识可以为底层链路段标识。底层链路段标识用于标识一条底层路径,例如可以标识一条端到端的完整路径,此处的端到端是指从一个POG到另一个POG。其中,底层链路段标识与SRv6网络中的End.X SID以及SR-MPLS中的邻接SID(Adjacency SID)类似,相区别的是,End.X SID用于标识IP 层路径,邻接SID用于标识邻接关系,End.X SID以及邻接SID是三层的概念,均不涉及底层网络,也不能标识底层路径。
在一些可能的实施例中,第一网络节点和第二网络节点之间的三层邻接关系可以通过End.X SID标识。底层段标识和End.X SID之间的关系包括而不限于下述两种情况:
情况(1)至少两个底层段标识对应于同一个End.X SID。也即是,End.X SID和底层段标识可以是一对多的关系。在情况(1)下,第一网络节点和第二网络节点在IP层建立了邻接关系,且通过多条底层路径连接。
如图1所示,P2有两个出接口,这两个出接口分别记为intf1和intf2,P2和P3建立有两个基于IGP的邻接关系,其中一个邻接关系是通过intf1建立的,另一个邻接关系通过intf2建立的。intf1的邻接关系对应了两条底层路径,分别是(O1,O2,O3,O4)和(O1,O6,O5,O4)。intf2的邻接关系对应了一条底层路径,是(O2,O3)。在此例中,P2存在5个邻接类型的SID,这5个邻接类型的SID包括2个END.X SID以及3个底层段标识,其中,P2的1个END.X SID对应于intf1,这个END.X SID对应于2个底层段标识,1个底层段标识对应于底层路径(O1,O2,O3,O4),另1个底层段标识对应于底层路径(O1,O6,O5,O4);P2的另1个END.X SID对应于intf2,这个END.X SID对应于1个底层段标识,这个底层段标识对应于底层路径(O2,O3)。
情况(2)至少一个底层段标识中的一个或多个底层段标识没有对应的End.X SID。也即是,End.X SID和底层段标识可以是零对一的关系,即,第一网络节点和第二网络节点在IP层没有建立邻接关系,且通过一条底层路径连接。或者,End.X SID和底层段标识可以是零对多的关系,即,第一网络节点和第二网络节点在IP层没有建立邻接关系,且在底层通过多条底层路径连接。需要说明的是,此处的没有建立邻接关系,在一种情况下,可以指第一网络节点的部分出接口没有和第二网络节点建立邻接关系,而第一网络节点的另一部分出接口和第二网络节点建立了邻接关系;在另一种情况下,可以指第一网络节点的所有出接口均没有和第二网络节点建立邻接关系。
如图1所示,P2通过intf1和P3建立了1个基于IGP的邻接关系,该邻接关系对应了两条底层路径,这两条底层路径分别是(O1,O2,O3,O4)和(O1,O6,O5,O4)。另外,P2通过intf2和P3建立了1条底层路径,该底层路径是(O2,O3)。在此例中,P2存在4个邻接类型的SID,这4个邻接类型的SID包括1个END.X SID以及3个底层段标识,其中,END.X SID对应于intf1,这个END.X SID对应于2个底层段标识,1个底层段标识对应于底层路径(O1,O2,O3,O4),另1个底层段标识对应于底层路径(O1,O6,O5,O4);P2除了这3个邻接类型的SID之外,还具有1个底层段标识,这个底层段标识对应于底层路径(O2,O3),而没有对应的End.X SID。
关于第一网络节点如何得到底层段标识,在一些可能的实施例中,可以由第一网络节点自动分配至少一个底层段标识,也可以人工配置至少一个底层段标识。具体地,得到底层段标识的方式可以包括下述方式一至方式二中的任一项或多项。
方式一、第一网络节点为至少一条底层路径分配至少一个底层段标识。
在一种可能的实现中,第一网络节点可以为每条底层路径分配一个底层段标识,为不同的底层路径分配的底层段标识不同,使得分配的每一个底层段标识对应一条底层路径;在另一种可能的实现中,第一网络节点也可以为多条底层路径分配同一底层段标识,使得分配的一个底层段标识对应于多条底层路径。其中,第一网络节点可以存储有段标识空间,可以从段标识空间中选择未被占用的底层段标识,将底层段标识分配给底层路径。
方式二、第一网络节点接收配置指令,第一网络节点从配置指令获取至少一个底层段标识和至少一条底层路径中的一条或多条底层路径的对应关系。其中,配置指令可以由用户在第一网络节点上的配置操作触发,配置指令可以包括至少一个底层段标识和至少一条底层路径中的一条或多条底层路径的对应关系。配置指令也可能由网管或者控制器(controller)触发。
示例性地,在图1所示的网络中,P2得到的底层段标识和底层路径之间的对应关系可以如下表1所示,End.XU SID1与(O1,O2,O3,O4)对应,End.XU SID2与(O1,O6,O5,O4)对应,End.XU SID3与(O2,O3)对应,End.XU SID4与(O1,O2,O3,O4)以及(O2,O3)对应。
表1
Figure PCTCN2020101672-appb-000001
在一些可能的实施例中,第一网络节点得到至少一个底层段标识之后,第一网络节点可以保存底层段标识与底层出接口之间的绑定关系。在一种可能的实现中,如果底层段标识对应于一条底层路径,底层段标识和底层出接口可以是一对一的关系,即,每个底层段标识绑定一个底层出接口,数据包通过底层段标识绑定的底层出接口发出后,会进入该底层段标识对应的底层路径。在另一种可能的实现中,如果底层段标识对应于多条底层路径,底层段标识和底层出接口可以是一对多的关系,即,每个底层段标识绑定多个底层出接口,数据包通过底层段标识绑定的多个底层出接口中的任一出接口发出后,会进入该底层段标识对应的多条底层路径中的一条底层路径,从而让多条底层路径可以分担负载。
关于分担负载的实现方式,在一种可能的实现中,如果底层段标识对应于多条底层路径,第一网络节点接收到携带该底层段标识的多个数据包时,可以采用负载分担算法, 获取该底层段标识对应的多条底层路径中不同底层路径之间的传输比例,按照该传输比例,在每条底层路径上传输对应占比的数据包。其中,传输比例是指不同底层路径上传输的数据包的数量之间的比例。
例如,如果底层段标识对应于底层路径1以及底层路径2,第一网络节点接收到携带该底层段标识的多个数据包时,可以采用负载分担算法,获取底层路径1与底层路径2之间的传输比例为3:7,则第一网络节点可以在底层路径1上传输多个数据包中30%的数据包,在底层路径2上传输多个数据包中70%的数据包。
需要说明的一点是,对于任一个数据包来说,在该数据包携带的底层段标识对应于多个底层出接口的情况下,该数据包会从该多个底层出接口中的一个底层出接口发送出去,而该数据包具体从多个底层出接口中的哪一个底层出接口发送出去,可以根据负载分担算法确定,本实施例对此不做限定。此外,第一网络节点采用的负载分担算法可以根据实际需要选择,本实施例对负载分担算法的类型也不做限定。此外,第一网络节点接收到的携带同一底层段标识的多个数据包可以属于同一数据流或不同数据流,数据流可以是指五元组相同的多个数据包,本实施例对接收到的携带同一底层段标识的多个数据包是否属于相同数据流不做限定。
需要说明的另一点是,本实施例中的底层出接口可以是物理接口,也可以是虚拟接口。其中,物理接口可以是图1中的intf1或intf2;虚拟接口可以通过对物理接口虚拟划分得到,一个物理接口可以对应于一个或多个虚拟接口。比如说,一个物理接口可以通过虚拟局域网(Virtual Local Area Network,VLAN)技术,划分为一个或多个VLAN接口,每个VLAN接口可以作为一个底层出接口,每个VLAN接口和每条底层路径一一对应;又比如,一个物理接口可以通过OTN技术,划分为一个或多个时隙,每个时隙可以作为一个底层出接口,每个时隙和每条底层路径一一对应;又比如,物理接口可以是光纤,一根光纤可以对应一个或多个波长,每个波长可以作为一个底层出接口,每个波长和每条底层路径一一对应。
如果同一底层段标识对应于多条底层路径,则底层段标识会与多条底层路径对应的多个底层出接口绑定,底层段标识与多个底层出接口之间的绑定关系可以而不限于下述两种情况:
情况一、底层段标识绑定了同一物理接口对应的多个虚拟接口。
示例性地,在图1所示的网络中,P2保存的底层段标识、底层出接口以及底层路径之间的对应关系可以如下表2所示,从表2可见,End.XU SID1绑定了两个底层出接口,分别为虚拟接口1以及虚拟接口2,这两个底层出接口均与物理接口Intf1对应,虚拟接口1与(O1,O2,O3,O4)对应,虚拟接口2与(O1,O6,O5,O4)对应。
基于表2,如果P2接收到了多个携带End.XU SID3的数据包,则P2根据End.XU SID3,可以查询到底层出接口为Intf1对应的虚拟接口1,则P2会通过Intf1对应的虚拟接口1发送该多个数据包,则多个数据包会通过一条底层路径:虚拟接口1对应的(O1,O2,O3,O4),从P2传输至P3。
表2
Figure PCTCN2020101672-appb-000002
而基于表2,如果P2接收到了携带End.XU SID1的多个数据包,则P2根据End.XU SID1,可以查询到底层出接口为Intf1对应的虚拟接口1以及虚拟接口2,则P2会通过Intf1对应的虚拟接口1以及虚拟接口2发送该多个数据包,则该多个数据包会通过两条底层路径:虚拟接口1对应的(O1,O2,O3,O4)以及虚拟接口2对应的(O1,O6,O5,O4),从P2传输至P3,其中,该多个数据包中的一部分数据包会从虚拟接口1,通过(O1,O2,O3,O4)从P2传输至P3,该多个数据包中的另一部分数据包会从虚拟接口2,通过(O1,O6,O5,O4)从P2传输至P3。示例性地,如果P1采用负载分担算法,获取(O1,O2,O3,O4)与(O1,O6,O5,O4)之间的传输比例为3:7,则P1可以从虚拟接口1发送30%的数据包,则30%的数据包会通过(O1,O2,O3,O4)从P2传输至P3;并且,P1可以从虚拟接口2发送剩余的70%的数据包,则70%的数据包会通过(O1,O6,O5,O4)从P2传输至P3。
结合上述举例可见,End.XU SID1和End.XU SID3的区别之处在于,End.XU SID3与一个底层出接口绑定,End.XU SID3对应于一条底层路径;而End.XU SID1与两个底层出接口绑定,End.XU SID1对应于两条底层路径,能够产生负载分担的效果。
情况二、底层段标识绑定了不同物理接口对应的多个虚拟接口。
示例性地,在图1所示的网络中,P2保存的底层段标识、底层出接口以及底层路径之间的对应关系也可以如下表3所示,从表3可见,End.XU SID4绑定了两个底层出接口,分别为虚拟接口1以及虚拟接口3,其中虚拟接口1与物理接口Intf1对应,且虚拟接口1与(O1,O2,O3,O4)对应,虚拟接口3与物理接口Intf2对应,并且虚拟接口3与(O2,O3)对应。
表3
底层段标识 物理接口 底层出接口 底层路径
End.XU SID1 Intf1 虚拟接口1 (O1,O2,O3,O4)
End.XU SID2 Intf1 虚拟接口2 (O1,O6,O5,O4)
End.XU SID3 Intf2 虚拟接口3 (O2,O3)
End.XU SID4 Intf1 虚拟接口1 (O1,O2,O3,O4)
  Intf2 虚拟接口3 (O2,O3)
基于表3,如果P2接收到了携带End.XU SID4的多个数据包,则P2根据End.XU SID4,可以查询到底层出接口为虚拟接口1以及虚拟接口3,则P2会通过Intf1对应的虚拟接口1以及Intf2对应的虚拟接口3发送该多个数据包,则该多个数据包会通过两条底层路径:虚拟接口1对应的(O1,O2,O3,O4)以及虚拟接口3对应的(O2,O3),从P2传输至P3,其中,该多个数据包中的一部分数据包会从虚拟接口1,通过(O1,O2,O3,O4)从P2传输至P3,该多个数据包中的另外一部分数据包会从虚拟接口3,通过(O2,O3)从P2传输至P3。
在一些可能的实施例中,第一网络节点得到至少一个底层段标识之后,第一网络节点可以将至少一个底层段标识写入本地段标识表(local SID table),以便后续可以通过查询local SID table转发数据包。其中,本地段标识表用于记录第一网络节点的每个段标识。
发布底层段标识的方式可以而不限于下述方式一至方式三中的任意一项:
方式一、第一网络节点可以通过IGP,发布至少一个底层段标识。
具体来讲,第一网络节点可以通过IGP,向分组交换网络泛洪至少一个底层段标识。其中,泛洪(flooding)是指一个节点向相邻节点通告某种信息后,相邻节点再将同样的信息传送给发送该信息的节点之外的其它邻居节点,并这样逐级将该信息传送到整个网络内所有节点的一种方式。通过泛洪,整个网络内的每一个节点可以共享信息。在方式一中,通过泛洪至少一个底层段标识,分组交换网络中每个IP层的节点均可以接收到底层段标识。示例性地,参见图1,P2泛洪底层段标识后,P1、P3、P4以及P5均可以接收到底层段标识。
方式二、第一网络节点可以通过BGP-LS,发布至少一个底层段标识。
具体来讲,第一网络节点可以通过BGP-LS,向控制器发送至少一个底层段标识,控制器可以通过BGP-LS,接收第一网络节点发送的至少一个底层段标识,将至少一个底层段标识发送至头节点。示例性地,参见图3,P2可以通过BGP-LS向控制器发送底层段标识,控制器可以通过BGP-LS将底层段标识发送至P1。
方式三、第一网络节点可以通过PCEP,发布至少一个底层段标识。
具体来讲,第一网络节点可以通过PCEP,向控制器发送至少一个底层段标识,控制器可以通过PCEP,接收第一网络节点发送的至少一个底层段标识,将至少一个底层段标识发送至头节点。示例性地,参见图3,P2可以通过PCEP向控制器发送底层段标识,控制器可以通过PCEP将底层段标识发送至P1。
可选地,第一网络节点还可以发布至少一条底层路径中一条或多条底层路径的路径参数,以便头节点或控制器根据路径参数,选择传输数据包的底层路径。其中,路径参数可以是底层路径的时延(latency)、带宽(bandwidth)、质量、方向、保护中的任一项或多项。在一种可能的实现中,第一网络节点可以将底层路径的路径参数以及底层 路径对应的底层段标识一起发布,例如,可以在同一报文中携带底层路径的路径参数以及底层路径对应的底层段标识,发布该报文。
可选地,第一网络节点还可以发布第二网络节点的标识,以便头节点或控制器根据第二网络节点的标识,确定底层路径的对端节点是哪一个网络节点。例如,参见图1,P2可以不仅发布底层路径(O1,O2,O3,O4)对应的底层段标识End.XU SID1,还发布P3的ID,以便P1感知到底层路径(O1,O2,O3,O4)的对端节点是P2。在一种可能的实现中,第一网络节点可以将第二网络节点的标识以及底层路径对应的底层段标识一起发布,例如,可以在同一报文中携带第二网络节点的标识以及底层路径对应的底层段标识,发布该报文。在另一种可能的实现中,第一网络节点也可以将第二网络节点的标识以及底层路径对应的底层段标识分别发布,例如可以先发布底层路径对应的底层段标识,再发布第二网络节点的标识,本实施例对发布第二网络节点的标识以及发布底层路径对应的底层段标识的时序不做限定。
可选地,第一网络节点还可以发布至少一条底层路径中一条或多条底层路径的路径类型。路径类型用于指示底层路径的类型,例如,路径类型可以是DWDM路径、OTN路径、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。通过在发布底层路径的基础上,还发布路径类型,头节点或者控制器能够确定发布的底层路径具体是哪一种类型,从而可以区分不同类型的底层路径,便于根据业务需求,调度特定类型的底层路径进行数据传输。
关于发布底层段标识的方式,在一些可能的实施例中,至少一个底层段标识可以携带在报文中,第一网络节点可以通过发布报文,来发布至少一个底层段标识,报文包括至少一个第一类型长度值(type length value,TLV),每个第一TLV包括一个底层段标识。关于报文的发送对象,在一种可能的实现中,第一网络节点可以向分组交换网络泛洪报文,例如通过IGP泛洪报文,则分组交换网络中的每个IP层的节点可以接收到泛洪的报文。在另一种可能的实现中,第一网络节点可以向控制器发送报文,则控制器可以接收到报文。
TLV:是一种编码格式,主要通过类型(type)、长度(length)和值(value)这三种信息定义。第一TLV是指携带底层段标识的TLV。在一种可能的实现中,第一TLV可以是嵌套在其他TLV内部的TLV,即其他TLV的子TLV(sub-TLV)或者子子TLV(sub-sub-TLV)。在另一种可能的实现中,第一TLV也可以是新的顶级TLV(top TLV)的子TLV,顶级TLV是指未嵌套在其他TLV内部的TLV。第一TLV的类型可以是为发布底层段标识新申请的类型,例如可以是90,第一TLV的值可以包括底层段标识,例如,第一TLV可以包括SID字段,该字段可以占128比特,可以向该字段写入底层段标识。另外,第一TLV还可以包括标志(flag)、算法(algorithm)、权重(weight)等,标志可以为空,权重可以默认为0。第一TLV还可以包括SRv6端点功能(SRv6 Endpoint Function)字段,该字段的取值为32比特的数字,该字段用于指示SID的功能,可以预先为底层段标识注册对应的End.XU Function,得到End.XU Function的取值,向SRv6 Endpoint Function字段写入该取值,从而通过SRv6 Endpoint Function字段的取值,指明SID字段承载的SID是底层段标识,而不是End.X SID、节点SID或者其他类型的SID。
第一TLV中可以包括底层路径的路径参数,例如,第一TLV中可以包括子TLV,第一TLV的子TLV中包括底层路径的路径参数。具体地,第一TLV的子TLV可以包括类型、长度和值,第一TLV的子TLV的类型可以是未被使用的新类型,第一TLV的子TLV的值可以是底层路径的路径参数。例如,第一TLV的子TLV的type可以是1,1表示1个未使用的新类型,第一TLV的子TLV的value可以是32比特的数值,代表带宽;又如,第一TLV的子TLV的type可以是2,2表示1个未使用的新类型,第一TLV的子TLV的value可以是32比特的数值,代表时延。当然,带宽和时延这两种路径参数仅是举例,路径参数也可以是带宽或时延之外的参数,本实施例对此不做限定。
可选地,第一TLV还可以包括第一网络节点的每个与邻居节点相关的段标识。具体地,第一网络节点可以具有一个或多个段标识,这些段标识中部分段标识与第一网络节点的邻居节点相关,例如是用于标识第一网络节点与邻居节点之间的邻接关系,另外一部分段标识与第一网络节点的邻居节点无关。相关技术中,例如常用的IGP协议ISIS中,会在22TLV或者222TLV中发布与邻居节点相关的段标识,而本实施例中,可以将与邻居节点相关的段标识也携带在第一TLV中,从而通过第一TLV发布与邻居节点相关的段标识,从而降低22TLV或者222TLV的复杂度。其中,22TLV或222TLV是用来发布邻接信息的TLV,具体地,22TLV用来携带ISIS的邻接信息,222TLV用来携带ISIS的多拓扑场景的邻接信息。
可选地,第一TLV还可以包括底层路径的路径类型。具体地,第一TLV可以包括路径类型字段,该路径类型字段可以记为underlay type(底层类型)字段,该路径类型字段的取值用于指示底层路径的路径类型。示意性地,如果路径类型字段的取值为1,表示底层路径的路径类型是OTN路径;如果路径类型字段的取值为2,表示底层路径的路径类型是DWDM路径;如果路径类型字段的取值为3,表示底层路径的路径类型是背靠背的以太网路径;如果路径类型字段的取值为4,表示底层路径的路径类型是GRE隧道;如果路径类型字段的取值为5,表示底层路径的路径类型是MPLS RSVP-TE隧道;如果路径类型字段的取值为6,表示底层路径的路径类型是IP隧道;如果路径类型字段的取值为7,表示底层路径的路径类型是IP隧道或者UDP隧道;如果路径类型字段的取值为8,表示底层路径的路径类型是ATM路径;如果路径类型字段的取值为9,表示底层路径的路径类型是FR路径;如果路径类型字段的取值为10,表示底层路径的路径类型是FlexE路径。
在一些可能的实施例中,底层段标识的发布格式具体可以包括下述方式(1)至方式(4):
方式(1)第一TLV为第二TLV的子TLV。
第二TLV是指包括End.X SID的TLV。第一TLV和第二TLV可以是从属(或称主子)的关系,一个第二TLV也可以包括一个或多个第一TLV。示例性地,第二TLV可以是中间***到中间***(Intermediate system to intermediate system,IS-IS)的22TLV的子TLV,第一TLV为第二TLV的子子TLV。或者,第二TLV可以是IS-IS的222TLV的子TLV,第一TLV为第二TLV的子子TLV。
参见图5和图6,图5和图6均为第二TLV的格式示意图。图5或图6中类型字段表示第二TLV的类型,类型字段的取值可以表示第二TLV是用于发布End.X SID的TLV。图5或图6中长度字段的取值为第二TLV的长度。图5或图6中SRv6端点功能(SRv6 Endpoint Function)字段用于指示SID的功能,具体可以指示End.X Function。图5和图6中的SID字段用于承载End.X SID,图5和图6中的SID字段共占128比特(bit),该SID字段分为4段,每段SID字段占32比特。其中,第1段SID字段承载End.X SID的第1个比特至第32个比特,第2段SID字段、第3段SID字段以及第4段SID字段是第1段SID字段的持续,第2段SID字段承载End.X SID的第33个比特至第64个比特,第3段SID字段承载End.X SID的第65个比特至第96个比特,第4段SID字段承载End.X SID的第97个比特至第128个比特。另外,图5或图6中还包括标志(flag)字段、算法(algorithm)字段、权重(weight)字段等,标志字段可以为空,权重字段的取值可以默认为0。图5和图6相区别的是,图5所示的第二TLV可以用于点到点(point-to-point,P2P)的链路,图6所示的第二TLV可以用于局域网(local area network,LAN)的链路。
图5和图6所示的“子子TLV(变长)”字段占8个字节,子子TLV(变长)字段能够指明该字段之后存在一个或多个子子TLV,子子TLV(变长)字段的取值为一个或多个子子TLV的长度。具体地,子子TLV(变长)字段的取值根据一个或多个子子TLV的数量以及每个子子TLV的长度确定。图5和图6所示的“一个或多个子子TLV(变量)”表示一个或多个子子TLV,子子TLV的格式可以如图7所示。
参见图7,图7为基于方式(1)的第一TLV的格式示意图,图5或图6中一个或多个子子TLV(变量)就是一个或多个图7,每一个图7是一个子子TLV。其中,由于图5或图6所示的第一TLV是End.X TLV,End.X本身是Type是22的22TLV或Type是222的222TLV的一种子TLV,所以图5或图6中嵌套的TLV会称为子子TLV。图7中的SID字段用于承载底层段标识,图7中的SID字段共占128比特(bit),该SID字段
分为4段,每段SID字段占32比特。其中,第1段SID字段承载底层段标识的第1个比特至第32个比特,第2段SID字段、第3段SID字段以及第4段SID字段是第1段SID字段的持续,第2段SID字段承载底层段标识的第33个比特至第64个比特,第3段SID字段承载底层段标识的第65个比特至第96个比特,第4段SID字段承载底层段标识的第97个比特至第128个比特。
图7中的类型字段的值可以为新申请的sub-sub-TLV类型,例如90,图7中的Flags字段的值可以为空,weight字段的值为权重,默认为0。SRv6 Endpoint Function字段的值表示底层段标识的功能,SID字段的取值为节点的一个SID,格式上与IPv6地址相同。sub-sub-sub-TLV字段的取值可以包含带宽,延时等路径参数。sub-sub-sub-TLV的type字段可以取1,为一个未使用的新类型,sub-sub-sub-TLV的length字段可以取sub-sub-sub-TLV字段的长度,sub-sub-sub-TLV的value字段占32比特,代表底层路径的带宽;sub-sub-sub-TLV的type字段也可以取2,为一个未使用的新类型,sub-sub-sub-TLV的value字段也可以占另1个32比特,代表底层路径的时延。图7中的underlay type字段描述底层路径的类型。
以底层路径为光路为例,方式(1)可以通过End.X SID或邻接SID扩展的发布方式,来描述IP和光的融合场景中底层的光路。由于底层段标识通过携带End.X SID的TLV的子TLV发布,可以通过两种TLV的主子关系,直观地指明底层段标识和End.X SID之间的对应关系。
方式(2)第一TLV为与第二TLV并列的TLV。
第一TLV和第二TLV也可以是并列的关系,即,这两种TLV是同级的。示例性地,如果第二TLV是IS-IS的22TLV的子TLV,那么,第一TLV可以也是22TLV的子TLV。或者,如果第二TLV是IS-IS的222TLV的子TLV,那么,第一TLV可以也是222TLV的子TLV。
需要说明的是,在不同类型的网络中第一TLV的格式可以不同。参见图8和图9,图8和图9为基于方式(2)的第一TLV的格式示意图。图8和图9相区别的是,图8所示的第一TLV可以用于点到点的链路,图9所示的第一TLV可以用于局域网的链路。图9中,***标识(System ID)字段为第二网络节点的标识。图8和图9中子子TLV可以包括底层路径的路径参数。
通过方式(2),可以在第一网络节点没有对应的End.X SID的场景下发布底层段标识。
方式(3)第一TLV为位置信息TLV的子TLV。
位置信息(Locator)以及功能(Function):SRv6SID是IPv6地址的形式,SRv6SID可以由Locator和Function两部分组成,格式是Locator:Function。其中,Locator占据IPv6地址的高比特位,Function占据IPv6地址的低比特位。其中,Locator可以具有定位功能,可以在SR域唯一,Function代表设备的指令,这些指令由设备预先设定,Function部分用于指示SRv6SID的生成节点执行相应的功能操作。Locator需要通过IGP发布出去,接收到Locator的节点需要按需生成转发表项。通常来讲,SRv6中,除了与邻居节点相关的SID之外的每个SID都应该在Locator中发布。
SRv6位置信息TLV(SRv6 Locator TLV)用于发布SRv6 Locator以及Locator相关的End SID,位置信息TLV是一个top TLV,类型(type)为27,SRv6 Locator TLV的格式可以如图10所示。其中,如图10所示,位置信息TLV可以包括第一部分以及一个或多个第二部分,第一部分为位置信息TLV的头部,第二部分可以在位置信息TLV出现一次,或者在位置信息TLV重复出现。需要说明的是,图10仅是以位置信息TLV包含两个第二部分为例绘制,应理解,位置信息TLV中的第二部分的数量可以更多或更少,本实施例对位置信息TLV包含的第二部分的数量并不做限定。
在方式(3)中,底层段标识可以在SRv6 Locator TLV的子TLV中发布。例如,参见图11,SRv6 Locator TLV可以包括图11所示的子TLV,底层段标识可以承载于图11的SID字段中。在一种可能的实现中,参见图12,Locator的子TLV中还可以携带***标识(system ID)来指示邻居,则SRV6Endpoint Function应该指向END.XU的分配值。另外,图11和图12中的子子TLV可以包括底层路径的路径参数,例如带宽等。通过方式(3),由于目前的22TLV已经比较复杂,通过将底层段标识在除22TLV之外的TLV发布,可以 避免干扰目前的22TLV。其中,底层段标识可以在27TLV(即SRv6 Locator TLV)中发布,27TLV是一个较新的TLV,专用于SRv6网络。
在方式(3)中,位置信息TLV可以包括第一网络节点的端点三层交叉连接段标识。现有技术中,第一网络节点的端点三层交叉连接段标识通常会通过22TLV或者222TLV发布,而通过上述可选方式,将端点三层交叉连接段标识也通过位置信息TLV发布,因此22TLV或者222TLV可以无需携带第一网络节点的端点三层交叉连接段标识,从而降低了22TLV或者222TLV的复杂度。
方式(4)第一TLV为新的顶级top TLV的子TLV。
底层段标识可以在一个新的top TLV的子TLV中发布,该top TLV的类型(type)是未使用的新类型。示意性地,该top TLV可以是28TLV,即类型为28的TLV。图13示出了这种新的top TLV的格式示意图,可以将第一网络节点的与邻居节点无关的SID都在27TLV中发布,第一网络节点的与邻居节点相关的SID都在28TLV中发布。其中,如图13所示,新的top TLV可以包括第一部分以及一个或多个第二部分,第一部分为新的top TLV的头部,第二部分为SID组,第二部分以system ID打头,每个第二部分中包含一些28TLV的子TLV。可以理解,该子TLV,即第一TLV,从system ID后的类型开始;或者,第一TLV也可以从system ID开始。通过方式(4),可以适用于发布的底层段标识较多的场景。需要说明的是,图13仅是以top TLV包含两个第二部分为例绘制,应理解,top TLV中的第二部分的数量可以更多或更少,本实施例对top TLV包含的第二部分的数量并不做限定。
在方式(4)中,新的顶级TLV可以包括第一网络节点的端点三层交叉连接段标识。现有技术中,第一网络节点的端点三层交叉连接段标识通常会通过22TLV或者222TLV发布,而通过上述可选方式,将端点三层交叉连接段标识也通过新的顶级TLV发布,因此22TLV或者222TLV可以无需携带第一网络节点的端点三层交叉连接段标识,从而降低了22TLV或者222TLV的复杂度。
示例性地,在BGP-LS中,参见图14和图15,图14示出了SRV6End.X TLV的格式示意图,图15示出了SRV6LAN End.X TLV的格式示意图,可以对图14或图15进行扩充,定义一个新的子TLV,比如说将类型置为100,从而定义100子TLV,该100TLV即为第一TLV示例性地,第一子TLV的格式可以如图8所示。当然,也可以在BGP-LS中,将底层路径作为一个单独的类似于END.X的函数对待,例如,第一TLV的格式可以如图8或图9所示。
另外,在PCEP中,也可以做类似的扩展来携带底层段标识或者其他底层路径的信息,本实施例在此不做赘述。
需要说明的一点是,图5、图6至图15均仅是对报文进行示意性绘制,图5、图6至图15所示的每个字段的位置以及长度仅是示例,应理解,报文中每个字段的位置以及长度可以根据实际需要进行适应性的改变,本实施例不对报文中每个字段的位置进行限定,也不对每个字段的长度进行限定。
需要说明的另外一点是,图5、图6至图15涉及的每个报文的每一行可以为32个字节,在实施中,图5、图6至图15绘制的报文中每一行的空缺之处可以设置一个或多个保留字 段,当然也可以设置其他字段,本实施例对报文是否包括保留字段、保留字段的位置以及保留字段的长度不做限定。
步骤402、头节点从第一网络节点接收至少一个底层段标识。
接收底层段标识的方式可以而不限于下述方式一至方式三中的任意一项:
方式一、头节点可以通过IGP,接收至少一个底层段标识。
具体来讲,第一网络节点通过IGP,向分组交换网络泛洪至少一个底层段标识后,由于头节点处于分组交换网络中,且支持IGP,因此头节点可以通过IGP,接收至少一个底层段标识。
通过IGP的发布方式,可支持分布式控制的场景,该分布式控制的场景是指没有控制器的场景。对于将光路抽象为BSID、发布BSID来支持POI的方案来说,由于按照SRv6网络目前的设计,BSID只能通过BGP-LS或PCEP发布,而BGP-LS和PCEP又要求网络中存在控制器,POG需要将BSID上报至控制器,由控制器将BSID下发给头节点,这就导致分布式控制的场景中无法应用这种方案支持POI。而本实施例中,可以无需要求网络中必须存在控制器,并由控制器转发底层段标识,而是可以由POG通过IGP,直接将底层段标识发送给头节点,因此能够适用于分布式控制的场景中,扩展了应用范围,提高了灵活性。
方式二、头节点通过BGP-LS,接收至少一个底层段标识。
具体来讲,控制器可以通过BGP-LS向头节点发送至少一个底层段标识,头节点可以通过BGP-LS,接收控制器发送的至少一个底层段标识。
方式三、头节点可以通过PCEP,接收至少一个底层段标识。
具体来讲,控制器可以通过BGP-LS向头节点发送PCEP,头节点可以通过PCEP,接收控制器发送的至少一个底层段标识。
关于接收底层段标识的具体过程,在一些可能的实施例中,头节点可以从第一网络节点接收报文,从报文中的至少一个第一TLV中,获取至少一个底层段标识。其中,如果报文中包括多个第一TLV,可以从每一个第一TLV中获取一个底层段标识。示意性地,头节点可以读取第一TLV的End.XU Function字段,根据End.XU Function字段的取值,确定SID字段的取值为底层段标识,则头节点读取SID字段的取值,将SID字段的取值作为底层段标识。
具体地,与上述底层段标识的发布方式(1)对应,头节点可以从第二TLV的子TLV中,获取底层段标识;与上述底层段标识的发布方式(2)对应,头节点可以从与第二TLV并列的TLV中,获取底层段标识;与上述底层段标识的发布方式(3)对应,头节点可以从位置信息TLV的子TLV中,获取底层段标识;与上述底层段标识的发布方式(4)对应,头节点可以从top TLV中,获取底层段标识。
头节点接收到至少一个底层段标识后,可以保存至少一个底层段标识,以便后续向数据包中添加底层段标识。可选地,头节点还可以从第一网络节点接收至少一条底层路 径中一条或多条底层路径的路径参数,保存一条或多条底层路径的路径参数。头节点还可以从第一网络节点接收第二网络节点的标识,保存第二网络节点的标识。
步骤403、头节点接收数据包。
步骤404、头节点向数据包添加目标底层段标识。
为了区分描述,在此将向数据包中添加的底层段标识称为目标底层段标识,目标底层段标识可以为至少一个底层段标识中的任一底层段标识。
具体来讲,步骤404可以而不限于下述方式一至方式二中的任一项。
方式一、头节点可以确定数据包所承载的业务,根据数据包承载的业务,从至少一条底层路径中,选择业务对应的底层路径,头节点可以将选择出的底层路径所对应的底层段标识作为目标底层段标识,向数据包添加目标底层段标识。
通过根据数据包承载的业务,来选择传输数据包的底层路径,对于任一业务来说,可以指定承载该业务的数据包走哪一条底层路径,从而让不同的业务可以通过不同的底层路径传输,有助于进行流量规划,能够更好地利用不同的底层路径,提升业务的服务质量(Quality of Service,QoS)。其中,头节点可以选择一条底层路径,也可以选择多条底层路径,以使多条底层路径分担负载,本实施例对选择的底层路径的数量不做限定。
关于选择底层路径的具体方式,在一些可能的实施例中,头节点可以根据每条底层路径的路径参数,从至少一条底层路径中,选择路径参数满足业务的传输需求的底层路径。其中,业务的传输需求可以是时延需求、带宽需求等。示例性地,如果数据包所承载的业务的时延需求是时延低于n毫秒,头节点可以根据每条底层路径的时延,从至少一条底层路径中,选择时延低于n毫秒的底层路径;如果数据包所承载的业务的带宽需求是带宽大于m兆,头节点可以根据每条底层路径的带宽,从至少一条底层路径中,选择带宽大于m兆的底层路径。其中,n和m为正整数。
方式二、头节点从分段路由网络的控制器接收目标底层段标识,向数据包添加目标底层段标识。
与方式一相区别的是,目标底层段标识可以不是由头节点选择,而是由控制器选择。具体地,控制器可以确定数据包所承载的业务,根据数据包承载的业务,从至少一条底层路径中,选择业务对应的底层路径,控制器可以向头节点发送与选择出的底层路径所对应的目标底层段标识,头节点可以接收目标底层段标识。其中,控制器选择底层路径的具体方式可以和头节点选择底层路径的具体方式同理,在此不做赘述。
步骤405、头节点向第一网络节点发送携带目标底层段标识的数据包。
步骤406、第一网络节点接收携带目标底层段标识的数据包。
步骤407、第一网络节点通过至少一条底层路径中目标底层段标识对应的底层路径发送数据包。
第一网络节点可以从数据包获取目标底层段标识,根据目标底层段标识以及底层段标识与底层路径之间的对应关系,确定目标底层段标识对应的一条或多条底层路径,通过该一条或多条底层路径发送数据包。其中,如果目标底层段标识对应多条底层路径,第一网络节点可以通过多条底层路径中的不同底层路径发送不同数据包,从而分担负载。
示例性地,参见图1和表1,如果数据包携带的底层段标识为End.XU SID1,P2可以根据表1所示的对应关系,确定底层路径(O1,O2,O3,O4),通过(O1,O2,O3,O4)发送数据包。如果数据包携带的底层段标识为End.XU SID4,P2可以根据表1所示的对应关系,确定底层路径(O1,O2,O3,O4)以及底层路径(O2,O3),通过底层路径(O1,O2,O3,O4)以及底层路径(O2,O3)发送数据包。
在一些可能的实施例中,第一网络节点可以从数据包获取目标底层段标识,第一网络节点可以根据目标底层段标识以及绑定关系,确定目标底层段标识绑定的底层出接口,通过底层出接口发送数据包。
示例性地,如果数据包携带的底层段标识为End.XU SID2,P2可以根据表2所示的绑定关系,确定底层出接口为虚拟接口3,通过虚拟接口3发送数据包,以使数据包通过一条底层路径传输。如果数据包携带的底层段标识为End.XU SID1,P2可以根据表2所示的绑定关系,确定底层出接口为虚拟接口1以及虚拟接口2,通过虚拟接口1或者虚拟接口2发送数据包,以使数据包通过两条底层路径中的一条底层路径传输。
其中,第一网络节点可以对底层段标识与本地段标识表中的段标识进行最长匹配;当底层段标识与本地段标识表中的任一段标识最长匹配时,通过底层段标识绑定的底层出接口发送数据包。
步骤408、第二网络节点接收数据包。
第二网络节点接收到数据包后,可以根据数据包中的段标识,继续向分段路由网络的其他网络节点发送数据包,直至数据包到达目的节点。例如参见图1,P3从P2接收到数据包后,可以向P4发送数据包。
本实施例提供的方法,通过设计了与底层路径对应的底层段标识,发布底层段标识,可以让SRv6网络中的节点通过底层段标识感知到底层路径,那么在传输数据包时,能够根据数据包携带的底层段标识,通过底层段标识对应的底层路径发送数据包,因此可以根据业务需求,指定数据包通过哪条底层路径传输数据包,让不同数据包能够通过不同的底层路径传输,提高了灵活性,有助于进行流量规划。尤其是,在底层路径为光路的情况下,通过发布底层段标识,SRv6网络中的节点能够通过底层段标识感知到每条光路,从而支持了POI的场景,可以根据需求灵活的选择传输流量的光路。
以上介绍了本申请实施例的数据传输方法,以下介绍本申请实施例提供的第一网络节点和头节点。
图16是本申请实施例提供的一种第一网络节点的结构示意图,如图16所示,该第一网络节点包括:发布模块1601,用于执行步骤401;接收模块1602,用于执行步骤406;发送模块1603,用于执行步骤407。
可选地,至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,发布模块1601,用于发布至少两个底层段标识,至少两个底层段标识对应于同一个端点三层交叉连接段标识,端点三层交叉连接段标识用于标识第一网络节点和第二网络第一网络节点之间的三层邻接关系。
可选地,至少一个底层段标识中的一个或多个底层段标识没有对应的端点三层交叉连接段标识,端点三层交叉连接段标识用于标识第一网络节点和第二网络第一网络节点之间的三层邻接关系。
可选地,发布模块1601,具体用于:通过IGP,发布至少一个底层段标识;或者,通过BGP-LS,发布至少一个底层段标识;或者,通过PCEP,发布至少一个底层段标识。
可选地,发布模块1601,还用于发布至少一条底层路径中一条或多条底层路径的路径参数。
可选地,发布模块1601,还用于发布第二网络节点的标识。
可选地,至少一个底层段标识携带在报文中,报文包括至少一个第一类型长度值TLV,每个第一TLV包括一个底层段标识。
可选地,发送模块1603还用于:发布至少一条底层路径中一条或多条底层路径的路径类型。
可选地,第一TLV为第二TLV的子TLV,第二TLV包括端点三层交叉连接段标识;或者,第一TLV为与第二TLV并列的TLV;或者,第一TLV为位置信息TLV的子TLV;或者,第一TLV为新的顶级TLV的子TLV,顶级TLV是指未嵌套在其他TLV内部的TLV。
可选地,第一TLV还包括第一网络节点的每个与邻居节点相关的段标识。
可选地,第一网络节点还包括分配模块,用于为至少一条底层路径分配至少一个底层段标识;或者,接收模块1602,还用于接收配置指令,从配置指令获取至少一个底层段标识和至少一条底层路径中的一条或多条底层路径的对应关系。
可选地,第一网络节点还包括:保存模块,用于保存底层段标识与底层出接口之间的绑定关系;发送模块1603,具体用于根据目标底层段标识以及绑定关系,确定目标底层段标识绑定的底层出接口,通过底层出接口发送数据包。
需要说明的一点是,图16实施例提供的第一网络节点在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将第一网络节点的内部结构划分成不同的功能模块,以完成以上描述的 全部或者部分功能。另外,上述实施例提供的第一网络节点与上述数据传输的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图17是本申请实施例提供的一种头节点的结构示意图,如图17所示,该头节点包括:接收模块1701,用于执行步骤402以及步骤403;添加模块1702,用于执行步骤404;发送模块1703,用于执行步骤405。
可选地,至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,该装置还包括:选择模块,用于执行步骤404中方式一;或者,该接收模块,还用于执行步骤404中方式二。
可选地,该选择模块,还用于根据每条底层路径的路径参数,从至少一条底层路径中,选择路径参数满足业务的传输需求的底层路径。
可选地,接收模块1701,还用于从第一网络节点接收至少一条底层路径中一条或多条底层路径的路径参数。
可选地,接收模块1701,还用于从第一网络节点接收第二网络节点的标识。
可选地,接收模块1701,还用于从第一网络节点接收至少一条底层路径中一条或多条底层路径的路径类型。
需要说明的一点是,图17实施例提供的头节点在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将头节点的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的头节点与上述数据传输的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
以上介绍了本申请实施例的第一网络节点和头节点,以下介绍该第一网络节点和头节点可能的产品形态。应理解,但凡具备上述图16中的第一网络节点的特征的任何形态的产品,和但凡具备上述图17中的头节点的特征的任何形态的产品,都落入本申请的保护范围。还应理解,以下介绍仅为举例,不限制本申请实施例的第一网络节点和头节点的产品形态仅限于此。
作为一种可能的产品形态,本申请实施例提供的第一网络节点或者头节点,可以由一般性的总线体系结构来实现。
如图18所示,本申请实施例提供了一种第一网络节点,该第一网络节点1800包括处理器1801、存储器1802以及收发器1803,该存储器1802中存储有至少一条指令,该处理器1801、存储器1802以及收发器1803可以通过总线连接。
该处理器1801用于通过该指令,控制该收发器1803执行步骤401、步骤406以及步骤407;
可选地,该至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,该至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,该处理器1801还用于通过该指令,控制该收发器1803发布该至少一条底层路径中一条或多条底层路径的路径参数。
可选地,该处理器1801还用于通过该指令,控制该收发器1803发布该第二网络节点的标识。
可选地,该处理器1801还用于通过该指令,控制该收发器1803发布该至少一条底层路径中一条或多条底层路径的路径类型。
可选地,该处理器1801具体用于通过该指令,控制该收发器1803发送报文,该报文包括至少一个第一类型长度值TLV,每个第一TLV包括一个底层段标识。
可选地,该第一TLV为第二TLV的子TLV,该第二TLV包括端点三层交叉连接段标识;或者,该第一TLV为与该第二TLV并列的TLV;或者,该第一TLV为位置信息TLV的子TLV;或者,该第一TLV为新的顶级TLV的子TLV。
可选地,该处理器1801用于通过该指令,为该至少一条底层路径分配该至少一个底层段标识;或者,该处理器1801还用于通过该指令,控制该收发器1803接收配置指令,从该配置指令获取至少一个底层段标识和该至少一条底层路径中的一条或多条底层路径的对应关系。
可选地,该处理器1801还用于通过该指令,控制该存储器1802保存底层段标识与底层出接口之间的绑定关系;该处理器1801还用于通过该指令,根据该目标底层段标识以及该绑定关系,确定该目标底层段标识绑定的底层出接口;该处理器1801用于通过该指令,控制该收发器1803通过该底层出接口发送该数据包。
处理器1801可以是一个通用中央处理器(central processing unit,CPU)、特定应用集成电路(application-specific integrated circuit,ASIC)或一个或多个用于控制本申请方案程序执行的集成电路。
存储器1802可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩 光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。
如图19所示,本申请实施例提供了一种头节点,头节点1900包括处理器1901、存储器1902以及收发器1903,该存储器1902中存储有至少一条指令,该处理器1901、存储器1902以及收发器1903可以通过总线连接。处理器1901的产品形态与处理器1801同理,存储器1902的产品形态与存储器1802同理,在此不做赘述。
该处理器1901用于加载该指令,控制该收发器1903执行步骤402、步骤403以及步骤405;该处理器1901还用于通过该指令,执行步骤404;
可选地,该至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,该至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,该处理器1901还用于通过该指令,执行步骤404中方式一;或者,该处理器1901还用于通过该指令,控制该收发器1903执行步骤404中方式二。
可选地,该处理器1901具体用于通过该指令,以根据每条底层路径的路径参数,从该至少一条底层路径中,选择路径参数满足该业务的传输需求的底层路径。
可选地,该处理器1901还用于通过该指令,控制该收发器1903从该第一网络节点接收该至少一条底层路径中一条或多条底层路径的路径参数。
可选地,该处理器1901还用于通过该指令,控制该收发器1903从该第一网络节点接收该第二网络节点的标识。
可选地,该处理器1901还用于通过该指令,控制该收发器1903接收该至少一条底层路径中一条或多条底层路径的路径类型。
作为一种可能的产品形态,本申请实施例提供的第一网络节点或者头节点,可以由通用处理器来实现。
实现该第一网络节点的通用处理器包括处理电路和与该处理电路内部连接通信的输出接口以及输入接口;该处理电路用于控制该输出接口执行步骤401;该处理电路用于控制该输入接口执行步骤406;该处理电路还用于控制该输出接口执行步骤407。可选地,该通用处理器还可以包括存储介质,该存储介质用于存储处理电路执行的指令。
可选地,该至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,该至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,该处理电路还用于通过该指令,控制该输出接口发布该至少一条底层路径中一条或多条底层路径的路径参数。
可选地,该处理电路还用于通过该指令,控制该输出接口发布该第二网络节点的标识。
可选地,该处理电路还用于通过该指令,控制该输出接口发布该至少一条底层路径中一条或多条底层路径的路径类型。
可选地,该处理电路具体用于通过该指令,控制该输出接口发送报文,该报文包括至少一个第一类型长度值TLV,每个第一TLV包括一个底层段标识。
可选地,该第一TLV为第二TLV的子TLV,该第二TLV包括端点三层交叉连接段标识;或者,该第一TLV为与该第二TLV并列的TLV;或者,该第一TLV为位置信息TLV的子TLV;或者,该第一TLV为新的顶级TLV的子TLV。
可选地,该处理电路用于通过该指令,为该至少一条底层路径分配该至少一个底层段标识;或者,该处理电路还用于通过该指令,控制该输入接口接收配置指令,从该配置指令获取至少一个底层段标识和该至少一条底层路径中的一条或多条底层路径的对应关系。
可选地,该处理电路还用于通过该指令,控制该存储介质保存底层段标识与底层出接口之间的绑定关系;该处理电路还用于通过该指令,根据该目标底层段标识以及该绑定关系,确定该目标底层段标识绑定的底层出接口;该处理电路用于通过该指令,控制该输出接口通过该底层出接口发送该数据包。
实现头节点的通用处理器包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口,该处理电路用于控制该输入接口执行步骤402以及步骤403;该处理电路执行步骤404;该处理电路用于控制该输出接口执行步骤405;可选地,该通用处理器还可以包括存储介质,该存储介质用于存储处理电路执行的指令。
可选地,该至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
可选地,该至少一条底层路径中的一条或多条底层路径为光路、ATM路径、FR路径、背靠背的以太网路径、GRE隧道、FlexE路径、MPLS RSVP-TE隧道、IP隧道或者UDP隧道。
可选地,该处理电路还用于通过该指令,执行步骤404中方式一;或者,该处理电路还用于通过该指令,控制该输入接口执行步骤404中方式二。
可选地,该处理电路具体用于通过该指令,以根据每条底层路径的路径参数,从该至少一条底层路径中,选择路径参数满足该业务的传输需求的底层路径。
可选地,该处理电路还用于通过该指令,控制该输入接口从该第一网络节点接收该至少一条底层路径中一条或多条底层路径的路径参数。
可选地,该处理电路还用于通过该指令,控制该输入接口从该第一网络节点接收该第二网络节点的标识。
可选地,该处理电路还用于通过该指令,控制该输入接口接收该至少一条底层路径中一条或多条底层路径的路径类型。
作为一种可能的产品形态,本申请实施例中的第一网络节点或者头节点,还可以使用下述来实现:一个或多个现场可编程门阵列(英文全称:field-programmable gate array,英文简称:FPGA)、可编程逻辑器件(英文全称:programmable logic device,英文简称:PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
应理解,上述各种产品形态的第一网络节点或者头节点,分别具有上述方法实施例中第一网络节点或者头节点的任意功能,此处不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only  memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (47)

  1. 一种数据传输方法,其特征在于,应用于第一网络节点,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,所述方法包括:
    发布至少一个底层段标识,每个所述底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;
    接收携带目标底层段标识的数据包;
    通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识。
  2. 根据权利要求1所述的方法,其特征在于,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
  3. 根据权利要求1或2所述的方法,其特征在于,所述至少一条底层路径中的一条或多条底层路径为光路、异步传输模式ATM路径、帧中继FR路径、背靠背的以太网路径、通用路由封装GRE隧道、灵活以太网路径、多协议标签交换资源预留协议流量工程MPLS RSVP-TE隧道、IP隧道或者用户数据报协议UDP隧道。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述发布至少一个底层段标识,包括:
    发布至少两个底层段标识,所述至少两个底层段标识对应于同一个端点三层交叉连接段标识,所述端点三层交叉连接段标识用于标识所述第一网络节点和所述第二网络节点之间的三层邻接关系。
  5. 根据权利要求1至3中任一项所述的方法,其特征在于,所述至少一个底层段标识中的一个或多个底层段标识没有对应的端点三层交叉连接段标识,所述端点三层交叉连接段标识用于标识所述第一网络节点和所述第二网络节点之间的三层邻接关系。
  6. 根据权利要求1至5中任一项所述的方法,其特征在于,所述发布至少一个底层段标识,包括:
    通过内部网关协议IGP,发布所述至少一个底层段标识;或者,
    通过边界网关协议链路状态BGP-LS,发布所述至少一个底层段标识;或者,
    通过路径计算单元通信协议PCEP,发布所述至少一个底层段标识。
  7. 根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
    发布所述至少一条底层路径中一条或多条底层路径的路径参数。
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
    发布所述第二网络节点的标识。
  9. 根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:
    发布所述至少一条底层路径中一条或多条底层路径的路径类型。
  10. 根据权利要求1至9中任一项所述的方法,其特征在于,所述至少一个底层段标识携带在报文中,所述报文包括至少一个第一类型长度值TLV,每个第一TLV包括一个底层段标识。
  11. 根据权利要求10所述的方法,其特征在于,
    所述第一TLV为第二TLV的子TLV,所述第二TLV包括端点三层交叉连接段标识; 或者,
    所述第一TLV为与所述第二TLV并列的TLV;或者,
    所述第一TLV为位置信息TLV的子TLV;或者,
    所述第一TLV为新的顶级TLV的子TLV,所述顶级TLV是指未嵌套在其他TLV内部的TLV。
  12. 根据权利要求10所述的方法,其特征在于,所述第一TLV还包括所述第一网络节点的每个与邻居节点相关的段标识。
  13. 根据权利要求1至12中任一项所述的方法,其特征在于,所述发布至少一个底层段标识之前,所述方法还包括:
    为所述至少一条底层路径分配所述至少一个底层段标识;或者,
    接收配置指令,从所述配置指令获取所述至少一个底层段标识和所述至少一条底层路径中的一条或多条底层路径的对应关系。
  14. 根据权利要求1至13中任一项所述的方法,其特征在于,所述方法还包括:
    保存底层段标识与底层出接口之间的绑定关系;
    所述通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,包括:
    根据所述目标底层段标识以及所述绑定关系,确定所述目标底层段标识绑定的底层出接口,通过所述底层出接口发送所述数据包。
  15. 一种数据传输方法,其特征在于,应用于头节点,所述头节点是指分段路由网络入口处的节点,所述方法包括:
    从第一网络节点接收至少一个底层段标识,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,每个底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;
    接收数据包;
    向所述数据包添加目标底层段标识,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识;
    向所述第一网络节点发送携带所述目标底层段标识的所述数据包。
  16. 根据权利要求15所述的方法,其特征在于,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
  17. 根据权利要求15或16所述的方法,其特征在于,所述至少一条底层路径中的一条或多条底层路径为光路、异步传输模式ATM路径、帧中继FR路径、背靠背的以太网路径、通用路由封装GRE隧道、灵活以太网路径、多协议标签交换资源预留协议流量工程MPLS RSVP-TE隧道、IP隧道或者用户数据报协议UDP隧道。
  18. 根据权利要求15至17中任一项所述的方法,其特征在于,所述向所述数据包添加目标底层段标识之前,所述方法还包括:
    根据所述数据包承载的业务,从所述至少一条底层路径中,选择所述业务对应的底层路径,将所述选择出的底层路径所对应的底层段标识作为所述目标底层段标识;或者,
    从所述分段路由网络的控制器接收所述目标底层段标识。
  19. 根据权利要求18所述的方法,其特征在于,所述从所述至少一条底层路径中,选择所述业务对应的底层路径,包括
    根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径。
  20. 根据权利要求19所述的方法,其特征在于,所述根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径之前,所述方法还包括:
    从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径参数。
  21. 根据权利要求15至20中任一项所述的方法,其特征在于,所述方法还包括:
    从所述第一网络节点接收所述第二网络节点的标识。
  22. 根据权利要求15至21中任一项所述的方法,其特征在于,所述方法还包括:
    从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径类型。
  23. 一种第一网络节点,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,所述第一网络节点包括:
    发布模块,用于发布至少一个底层段标识,每个所述底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;
    接收模块,用于接收携带目标底层段标识的数据包;
    发送模块,用于通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识。
  24. 根据权利要求23所述的第一网络节点,其特征在于,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
  25. 根据权利要求23或24所述的第一网络节点,其特征在于,所述至少一条底层路径中的一条或多条底层路径为光路、异步传输模式ATM路径、帧中继FR路径、背靠背的以太网路径、通用路由封装GRE隧道、灵活以太网路径、多协议标签交换资源预留协议流量工程MPLS RSVP-TE隧道、IP隧道或者用户数据报协议UDP隧道。
  26. 根据权利要求23至25中任一项所述的第一网络节点,其特征在于,所述发布模块,用于发布至少两个底层段标识,所述至少两个底层段标识对应于同一个端点三层交叉连接段标识,所述端点三层交叉连接段标识用于标识所述第一网络节点和所述第二网络第一网络节点之间的三层邻接关系。
  27. 根据权利要求23至25中任一项所述的第一网络节点,其特征在于,所述至少一个底层段标识中的一个或多个底层段标识没有对应的端点三层交叉连接段标识,所述端点三层交叉连接段标识用于标识所述第一网络节点和所述第二网络第一网络节点之间的三层邻接关系。
  28. 根据权利要求23至27中任一项所述的第一网络节点,其特征在于,所述发布模块,具体用于:
    通过内部网关协议IGP,发布所述至少一个底层段标识;或者,
    通过边界网关协议链路状态BGP-LS,发布所述至少一个底层段标识;或者,
    通过路径计算单元通信协议PCEP,发布所述至少一个底层段标识。
  29. 根据权利要求23至28中任一项所述的第一网络节点,其特征在于,所述发布模块,还用于发布所述至少一条底层路径中一条或多条底层路径的路径参数。
  30. 根据权利要求23至29中任一项所述的第一网络节点,其特征在于,所述发布模块,还用于发布所述第二网络节点的标识。
  31. 根据权利要求23至30中任一项所述的第一网络节点,其特征在于,所述发布模块,还用于发布所述至少一条底层路径中一条或多条底层路径的路径类型。
  32. 根据权利要求23至31中任一项所述的第一网络节点,其特征在于,所述至少一个底层段标识携带在报文中,所述报文包括至少一个第一类型长度值TLV,每个第一TLV包括一个底层段标识。
  33. 根据权利要求32所述的第一网络节点,其特征在于,
    所述第一TLV为第二TLV的子TLV,所述第二TLV包括端点三层交叉连接段标识;或者,
    所述第一TLV为与所述第二TLV并列的TLV;或者,
    所述第一TLV为位置信息TLV的子TLV;或者,
    所述第一TLV为新的顶级TLV的子TLV,所述顶级TLV是指未嵌套在其他TLV内部的TLV。
  34. 根据权利要求32所述的第一网络节点,其特征在于,所述第一TLV还包括所述第一网络节点的每个与邻居节点相关的段标识。
  35. 根据权利要求23至34中任一项所述的第一网络节点,其特征在于,所述第一网络节点还包括分配模块,用于为所述至少一条底层路径分配所述至少一个底层段标识;
    或者,所述接收模块,还用于接收配置指令,从所述配置指令获取所述至少一个底层段标识和所述至少一条底层路径中的一条或多条底层路径的对应关系。
  36. 根据权利要求23至35中任一项所述的第一网络节点,其特征在于,所述第一网络节点还包括:保存模块,用于保存底层段标识与底层出接口之间的绑定关系;
    所述发送模块,具体用于根据所述目标底层段标识以及所述绑定关系,确定所述目标底层段标识绑定的底层出接口,通过所述底层出接口发送所述数据包。
  37. 一种头节点,所述头节点是指分段路由网络入口处的节点,所述头节点包括:
    接收模块,用于从第一网络节点接收至少一个底层段标识,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,每个底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;
    所述接收模块,还用于接收数据包;
    添加模块,用于向所述数据包添加目标底层段标识,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识;
    发送模块,用于向所述第一网络节点发送携带所述目标底层段标识的所述数据包。
  38. 根据权利要求37所述的头节点,其特征在于,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。
  39. 根据权利要求37或38所述的头节点,其特征在于,所述至少一条底层路径中的一条或多条底层路径为光路、异步传输模式ATM路径、帧中继FR路径、背靠背的以太网路径、通用路由封装GRE隧道、灵活以太网路径、多协议标签交换资源预留协议流量工程MPLS RSVP-TE隧道、IP隧道或者用户数据报协议UDP隧道。
  40. 根据权利要求37至39中任一项所述的头节点,其特征在于,所述装置还包括:选择模块,用于根据所述数据包承载的业务,从所述至少一条底层路径中,选择所述业务对应的底层路径,将所述选择出的底层路径所对应的底层段标识作为所述目标底层段标识;或者,
    所述接收模块,还用于从所述分段路由网络的控制器接收所述目标底层段标识。
  41. 根据权利要求40所述的头节点,其特征在于,所述选择模块,具体用于根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径。
  42. 根据权利要求41所述的头节点,其特征在于,所述接收模块,还用于从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径参数。
  43. 根据权利要求37至42中任一项所述的头节点,其特征在于,所述接收模块,还用于从所述第一网络节点接收所述第二网络节点的标识。
  44. 根据权利要求37至43中任一项所述的方法,其特征在于,所述接收模块,还用于从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径类型。
  45. 一种第一网络节点,其特征在于,所述第一网络节点包括处理器、存储器以及收发器,所述存储器中存储有至少一条指令;
    所述处理器用于加载所述指令,控制所述收发器执行如权利要求1至权利要求12任一项所述的数据传输方法中的发布步骤、接收步骤以及发送步骤;或者,
    所述处理器用于加载所述指令,执行如权利要求13所述的数据传输方法中的分配步骤,且所述处理器用于通过所述指令,控制所述收发器执行如权利要求13所述的数据传输方法中的发布步骤、接收步骤以及发送步骤;或者,
    所述处理器用于加载所述指令,控制所述收发器执行如权利要求13所述的数据传输方法中的接收步骤,且所述处理器用于通过所述指令,执行如权利要求13所述的数据传输方法中的获取步骤,且所述处理器用于通过所述指令,控制所述收发器执行如权利要求13所述的数据传输方法中的发布步骤以及发送步骤;或者,
    所述处理器用于加载所述指令,控制所述存储器执行如权利要求14所述的数据传输方法中的保存步骤,且所述处理器用于通过所述指令,控制所述收发器执行如权利要求14所述的数据传输方法中的发布步骤以及接收步骤,且所述处理器用于通过所述指令,执行如权利要求14所述的数据传输方法中的确定步骤,且所述处理器用于通过所述指令,控制所述收发器执行如权利要求14所述的数据传输方法中的发送步骤。
  46. 一种头节点,其特征在于,所述头节点包括处理器、存储器以及收发器,所述存储器中存储有至少一条指令;
    所述处理器用于加载所述指令,控制所述收发器执行如权利要求15、16、17、20、21或22所述的数据传输方法中的接收步骤,且所述处理器还用于通过所述指令,执行如权利要求15、16、17、20、21或22所述的数据传输方法中的添加步骤,且所述处理器用于通过所述指令,控制所述收发器执行如权利要求15、16、17、20、21或22所述的数据传输方法中的发送步骤;或者,
    所述处理器用于加载所述指令,控制所述收发器执行如权利要求18或19所述的数据传输方法中的接收步骤,且所述处理器还用于通过所述指令,执行如权利要求或19所述的数据传输方法中的选择步骤以及添加步骤,且所述处理器还用于通过所述指令,控制所述收发器执行如权利要求18或19所述的数据传输方法中的发送步骤。
  47. 一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,
    所述指令用于供处理器加载以控制收发器执行如权利要求1至权利要求12任一项所述的数据传输方法中的发布步骤、接收步骤以及发送步骤;或者,
    所述指令用于供处理器加载以执行如权利要求13所述的数据传输方法中的分配步骤,且所述指令用于供所述处理器控制收发器执行如权利要求13所述的数据传输方法中的发布步骤、接收步骤以及发送步骤;或者,
    所述指令用于供处理器加载以控制收发器执行如权利要求13所述的数据传输方法中的接收步骤,且所述指令用于供所述处理器执行如权利要求13所述的数据传输方法中的获取步骤,且所述指令用于供处理器加载以控制所述收发器执行如权利要求13所述的数据传输方法中发布步骤以及发送步骤;或者,
    所述指令用于供处理器加载以控制存储器执行如权利要求14所述的数据传输方法中的保存步骤,且所述指令用于供所述处理器控制收发器执行如权利要求14所述的数据传输方法中的发布步骤以及接收步骤,且所述指令用于供所述处理器执行如权利要求14所述的数据传输方法中的确定步骤,且所述指令用于供所述处理器控制所述收发器执行如权利要求14所述的数据传输方法中的发送步骤;或者,
    所述指令由处理器加载以控制收发器执行如权利要求15、16、17、20、21或22所述的数据传输方法中的接收步骤以及发送步骤,且所述指令还用于供所述处理器执行如权利要求15、16、17、20、21或22所述的数据传输方法中的添加步骤;或者,
    所述指令由处理器加载以控制收发器执行如权利要求18或19所述的数据传输方法中的接收步骤,且所述指令还用于供所述处理器执行如权利要求18或19所述的数据传输方法中的选择步骤以及添加步骤,且所述指令用于供所述处理器控制所述收发器执行如权利要求18或19所述的数据传输方法中的发送步骤。
PCT/CN2020/101672 2019-07-12 2020-07-13 数据传输方法、网络节点及存储介质 WO2021008497A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20839903.0A EP3985930A4 (en) 2019-07-12 2020-07-13 DATA TRANSMISSION METHOD, NETWORK NODE AND STORAGE MEDIA
US17/573,094 US20220131791A1 (en) 2019-07-12 2022-01-11 Data transmission method, network node, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910631947.5A CN112217719B (zh) 2019-07-12 2019-07-12 数据传输方法、网络节点及存储介质
CN201910631947.5 2019-07-12

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/573,094 Continuation US20220131791A1 (en) 2019-07-12 2022-01-11 Data transmission method, network node, and storage medium

Publications (1)

Publication Number Publication Date
WO2021008497A1 true WO2021008497A1 (zh) 2021-01-21

Family

ID=74048649

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/101672 WO2021008497A1 (zh) 2019-07-12 2020-07-13 数据传输方法、网络节点及存储介质

Country Status (4)

Country Link
US (1) US20220131791A1 (zh)
EP (1) EP3985930A4 (zh)
CN (2) CN115442295A (zh)
WO (1) WO2021008497A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11582145B1 (en) 2021-09-07 2023-02-14 Cisco Technology, Inc. On-demand optical next-hop with optical provisioning segment routing (SR) label
WO2023221989A1 (zh) * 2022-05-16 2023-11-23 ***通信有限公司研究院 SRv6报文处理方法、装置、节点及控制设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726655B (zh) * 2021-08-30 2022-09-20 新华三信息安全技术有限公司 一种报文引流方法、装置、头端设备及存储介质
CN114221891B (zh) * 2021-12-13 2023-08-29 中国电信股份有限公司 绑定段标识拼接方法、路由反射器、自治域和跨域网络
CN114900756B (zh) * 2022-05-10 2024-04-09 中国联合网络通信集团有限公司 数据传输方法及装置、计算机可读存储介质
CN115348203B (zh) * 2022-10-12 2023-03-24 北京合众方达科技有限公司 一种基于TSN的IPv6网络方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101588296A (zh) * 2009-06-16 2009-11-25 杭州华三通信技术有限公司 一种转发组播报文的方法、头节点和尾节点
CN101610214A (zh) * 2009-07-17 2009-12-23 杭州华三通信技术有限公司 在多协议标签交换网络中实现可靠传输的方法及路由器
CN101656666A (zh) * 2009-09-24 2010-02-24 福建星网锐捷网络有限公司 标签分发协议会话处理方法与装置、标签交换路由器
EP2341668A1 (en) * 2010-01-05 2011-07-06 Alcatel Lucent Transport of a traffic flow in a mobile communication system
CN105591893A (zh) * 2014-10-22 2016-05-18 中兴通讯股份有限公司 一种路径备份方法及***、头节点设备和中间节点设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160006614A1 (en) * 2014-07-03 2016-01-07 Futurewei Technologies, Inc. Source Routing Using Path Computation Elements
US9807001B2 (en) * 2014-07-17 2017-10-31 Cisco Technology, Inc. Segment routing using a remote forwarding adjacency identifier
US20200153733A1 (en) * 2016-02-15 2020-05-14 Telefonaktiebolaget Lm Ericsson (Publ) Is-is extensions for flexible path stitching and selection for traffic transiting segment routing and mpls networks
CN108023815B (zh) * 2016-11-03 2020-10-30 中兴通讯股份有限公司 信息传输方法、装置及***
CN108512702B (zh) * 2018-03-27 2019-06-11 中国联合网络通信有限公司广东省分公司 一种基于sr和esi实现dc间端到端质量保障的***及方法
US10841172B2 (en) * 2018-05-30 2020-11-17 Cisco Technology, Inc. Network fabric visualization and management
US10601724B1 (en) * 2018-11-01 2020-03-24 Cisco Technology, Inc. Scalable network slice based queuing using segment routing flexible algorithm
US10833975B2 (en) * 2018-11-02 2020-11-10 Cisco Technology, Inc. Operations processing of multiple-protocol packets by packet switching devices in a network
CN109873767B (zh) * 2019-03-29 2021-02-09 中山大学 基于协议无感知转发的天地一体化网络虚拟化方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101588296A (zh) * 2009-06-16 2009-11-25 杭州华三通信技术有限公司 一种转发组播报文的方法、头节点和尾节点
CN101610214A (zh) * 2009-07-17 2009-12-23 杭州华三通信技术有限公司 在多协议标签交换网络中实现可靠传输的方法及路由器
CN101656666A (zh) * 2009-09-24 2010-02-24 福建星网锐捷网络有限公司 标签分发协议会话处理方法与装置、标签交换路由器
EP2341668A1 (en) * 2010-01-05 2011-07-06 Alcatel Lucent Transport of a traffic flow in a mobile communication system
CN105591893A (zh) * 2014-10-22 2016-05-18 中兴通讯股份有限公司 一种路径备份方法及***、头节点设备和中间节点设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3985930A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11582145B1 (en) 2021-09-07 2023-02-14 Cisco Technology, Inc. On-demand optical next-hop with optical provisioning segment routing (SR) label
WO2023221989A1 (zh) * 2022-05-16 2023-11-23 ***通信有限公司研究院 SRv6报文处理方法、装置、节点及控制设备

Also Published As

Publication number Publication date
EP3985930A4 (en) 2022-08-03
US20220131791A1 (en) 2022-04-28
CN112217719A (zh) 2021-01-12
CN112217719B (zh) 2022-08-09
CN115442295A (zh) 2022-12-06
EP3985930A1 (en) 2022-04-20

Similar Documents

Publication Publication Date Title
WO2021008497A1 (zh) 数据传输方法、网络节点及存储介质
CN111541613B (zh) 一种基于SRv6的数据处理方法及相关设备
EP3249865B1 (en) Method and devices for constructing label and forwarding label packet
US9912577B2 (en) Segment routing—egress peer engineering (SP-EPE)
CN106656781B (zh) 一种报文传输的方法、装置和***
WO2020156105A1 (zh) 数据转发方法及相关装置
WO2020052230A1 (zh) 一种传输控制方法、节点、网络***及存储介质
US9998368B2 (en) Zone routing system
EP3002913B1 (en) Tunnel establishment method, label allocation method, device, and network system
CN111385207B (zh) 一种业务数据的转发方法、网络设备及网络***
WO2016066072A1 (zh) 实现nvo3网络与mpls网络之间通信的方法和装置
WO2021148021A1 (zh) 一种报文处理方法、装置及***
WO2018072728A1 (zh) 段标识sid获取
EP3054634B1 (en) Scheme for performing one-pass tunnel forwarding function on two-layer network structure
US11271864B2 (en) Tunnel establishment method, apparatus, and system
WO2015192501A1 (zh) 地址信息的发布方法及装置
JP2023521951A (ja) SRv6サービス機能チェーンでパケットを転送する方法、SFF、およびSFデバイス
US20220255862A1 (en) Packet forwarding method, device, storage medium, and system
US11240063B2 (en) Methods, nodes and computer readable media for tunnel establishment per slice
WO2022110535A1 (zh) 一种报文发送方法、设备及***
CN113037527B (zh) 网络切片创建方法、报文转发方法及其装置
CN113285876A (zh) 路由方法、路由装置及计算机可读存储介质
CN113497754A (zh) 转发路径建立方法、装置以及计算机可读存储介质
WO2023045871A1 (zh) 报文处理方法、网络设备及***
CN104247346A (zh) 分组交换网络中的伪线路扩展的群组消息传送

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20839903

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020839903

Country of ref document: EP

Effective date: 20220111