US9270605B2 - Method and system of setting network traffic flow quality of service by modifying port numbers - Google Patents

Method and system of setting network traffic flow quality of service by modifying port numbers Download PDF

Info

Publication number
US9270605B2
US9270605B2 US14/288,648 US201414288648A US9270605B2 US 9270605 B2 US9270605 B2 US 9270605B2 US 201414288648 A US201414288648 A US 201414288648A US 9270605 B2 US9270605 B2 US 9270605B2
Authority
US
United States
Prior art keywords
data packet
port number
service
quality
classification
Prior art date
Legal status (The legal status 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 status listed.)
Active - Reinstated, expires
Application number
US14/288,648
Other versions
US20150350094A1 (en
Inventor
Rafit Izhak-Ratzin
Krishna Satyasai Yeddanapudi
Shravan Kumar Vallala
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robin Systems Inc
Original Assignee
Robin Systems Inc
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 Robin Systems Inc filed Critical Robin Systems Inc
Priority to US14/288,648 priority Critical patent/US9270605B2/en
Assigned to Robin Systems, Inc. reassignment Robin Systems, Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: IZHAK-RATZIN, RAFIT, VALLALA, SHRAVAN KUMAR, YEDDANAPUDI, KRISHNA SATYASAI
Publication of US20150350094A1 publication Critical patent/US20150350094A1/en
Application granted granted Critical
Publication of US9270605B2 publication Critical patent/US9270605B2/en
Active - Reinstated legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • 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/22Parsing or analysis of headers

Definitions

  • This application relates generally to computer networking, and more specifically to a system, article of manufacture and method for setting network traffic flow quality of service (QoS) by modifying port numbers.
  • QoS quality of service
  • QoS Quality of Service
  • COS layer 2 header
  • TOS layer 3 header
  • Intermediate switches and routers can be configured to change these fields based on various parameters, a non-limiting example can be looking at the 5-tuple of the packet, 5-tuple consists of source IP, source port, destination IP, destination port, and protocol.
  • Various network attributes such variable bit rate and delivery time may depend on various current states of the network such as the current traffic load.
  • Deep packet inspection is another non-limiting option to classify the flow and provide QoS.
  • Intermediate devices e.g. routers and/or switches
  • in-line deep packet inspection can increase networking latency, decrease throughput and reduce QoS.
  • intermediate devices e.g. routers and/or switches
  • customized classifying logic might not be present on these devices. Hence, this may require a customized software loaded on these intermediate devices, which is not very common.
  • Data packets are segmented when an application utilizes large packet sizes greater than the path MTU (Maximum Transmission Unit). Data packet segmentation can cause the header to be separated from the other segments of the data packet.
  • MTU Maximum Transmission Unit
  • a method of managing computer network traffic flow quality of service includes the step of configuring a configurable network device to provide a specified quality of service to a data packet with a specified quality of service configuration based on a quality of service classification port number in a data packet header of the data packet.
  • a data packet is generated with a destination port number in the data packet header.
  • the destination port number in the data packet header is replaced with a quality of service classification port number associated with the specified quality of service.
  • the destination port number is included in an options field of the data packet's header.
  • the data packet is communicated to the configurable network device.
  • the data packet can be received.
  • the quality of service classification port number can be replaced with the destination port number in the options field of the data packet header.
  • the data packet can be forwarded to a destination process with the destination port number.
  • FIG. 1 depicts, in block diagram format, a distributed database system with classified traffic flows based on information in the data packet networking headers, according to some embodiments.
  • information in the data packet networking headers can be the 5-tuple of the packet.
  • FIG. 2 illustrates an example process of enabling traffic flow classification in a database cluster, according to some embodiments.
  • FIGS. 3 A-B illustrate an example of implementing virtual paths between two nodes in a database cluster, according to some embodiments.
  • FIG. 4 depicts a process of implementing one or more embodiments provided herein, according to some embodiments.
  • FIG. 5 depicts a computing system with a number of components that can be used to perform any of the processes described herein.
  • FIG. 6 shows the TCP header and an expanded view of various sub-fields in the TCP options field of the TCP header, according to some embodiments.
  • the schematic flow chart diagrams included herein are generally set forth as logical flow chart diagrams. As such, the depicted order and labeled steps are indicative of one embodiment of the presented method. Other steps and methods may be conceived that are equivalent in function, logic, or effect to one or more steps, or portions thereof, of the illustrated method. Additionally, the format and symbols employed are provided to explain the logical steps of the method and are understood not to limit the scope of the method. Although various arrow types and line types may be employed in the flow chart diagrams, and they are understood not to limit the scope of the corresponding method. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the method. For instance, an arrow may indicate a waiting or monitoring period of unspecified duration between enumerated steps of the depicted method. Additionally, the order in which a particular method occurs may or may not strictly adhere to the order of the corresponding steps shown.
  • FIG. 1 depicts, in block diagram format, a distributed database system (DDBS) 100 with classified traffic flows based on information in the data packet networking headers, according to some embodiments.
  • DDBS 100 can include one or more database clusters and their constituent nodes.
  • DDBS 100 by way of example but not limitation, can implement multiple types of traffic flows (refer as classified traffic flows 108 and 110 ) between nodes 102 A-C.
  • a classified traffic flow can indicate a QoS level to be provided by network 104 to data packets classified accordingly.
  • Traffic flows 108 and 110 can manage the transmission of a data packets between nodes of DDBS 100 based on a pre-determined QoS classification.
  • nodes 102 A-C of DDBS 100 can provide information in the data packet's various networking layer headers (e.g. a first segment of a data packet and/or supplemental data at the beginning of a data block).
  • nodes 102 A-C can include an operating system that modifies destination information in the networking layer headers to signify both original source and/or destination ports but also the classification of the traffic flow (e.g. with respect to QoS) of the particular data packet and/or data packet segment.
  • the application information layers five to seven may not be visible to the networking devices in network 104 (e.g. not practical to inspect by intermediate configurable switches/routers 106 ).
  • the networking devices can access the 5-tuple information in the networking headers of the data packet.
  • source and/or destination port numbers in the TCP/IP transmission layer header of a data packet can be read by intermediate configurable switches/routers 106 .
  • information applicable to classifying traffic flows can be provided to intermediate configurable switches/routers 106 as QoS codes in place of the original destination port numbers provided by the source application(s) in nodes 102 A-C. These QoS classification port numbers can then be used by intermediate device to prioritize various data packets in network 104 .
  • the classification of traffic flows 108 and 110 can be based on information originally located deeper in the data packet (e.g. in layer-5 (L5) to layer-7 (L7) networking headers) without inspection of these layers.
  • Non-limiting examples of these traffic flows can include Hadoop Distributed File System (HDFS) data traffic, iSCSI control traffic, iSCSI data traffic, Thrift protocol message traffic, Cassandra® traffic, Hadoop job tracker traffic, and the like.
  • HDFS Hadoop Distributed File System
  • Data packets may also be segmented into smaller units (e.g. ‘fragments’) and communicated across network 104 .
  • data packet segmentation can include the process of dividing a data packet into smaller units for transmission over the network. Since classification of traffic flows 108 and 110 are performed at the source node where the segmentation is also performed, these fragments can also be marked with the same QoS classification port numbers, and can have the same QoS applied as the first segment in the respective traffic flow.
  • DDBS 100 can be any distributed data storage system.
  • DDBS 100 can include a distributed file system (e.g. a clustered filed system such a Hadoop Distributed File System (HDFS), and/or any other distributed file system provided herein).
  • nodes 102 A-C can be implemented as a Hadoop cluster.
  • DDBS 100 can include an open source distributed database management system such as Cassandra®.
  • nodes 102 A-C can be implemented as virtual nodes.
  • DDBS 100 can be implemented as a virtual system in all and/or in part.
  • nodes 102 A-C before sending a data packet, can classify the application payload at the source node TCP/IP layer (e.g. of the TCP/IP model). This classified traffic can be mapped to a different destination port using various techniques.
  • FIG. 6 shows the format of TCP options field.
  • TCP Options have up to three fields: Option-Kind (1 byte), Option-Length (1 byte), Option-Data (variable).
  • a new TCP Option-Kind can be defined to indicate that the replacement of the original destination port number.
  • the receiving node can include a functionality that identifies the Option-Kind as an indication for a destination port replacement in the TCP/IP header and replaces the destination port in the header used to classify the traffic flow with the original destination port found in the TCP/IP options field.
  • packet inspection by the intermediate network devices 106 can be reduced to a five 5-tuple classification once the packet leaves the source node (e.g. a host).
  • intermediate network devices 106 can be configured to provide various QoS modes to data packets based on a 5-tuple classification system.
  • TCP/IP packet classification can be done based on 5-tuple (source IP, destination IP, Protocol, source Port, destination port). This information can be available by inspecting up to the layer-4 headers of the packets.
  • Intermediate router(s) and/or switch(es) 106 can inspect these fields and support classification of the data packet in terms of a network QoS mode based on its respective 5 -tuples value.
  • the intermediate router(s) and/or switch(es) 106 can be configurable (e.g. from a management module 112 ). In this way, different virtual paths (e.g. control paths, data paths, messaging paths, etc.) can be created across the cluster(s) of DDBS 100 .
  • Management module 112 can be used to configure intermediate router(s) and/or switch(es) 106 .
  • One non-limiting example may be, a console and/or dashboard can be provided that enables an administrative entity to create various virtual paths in the clusters of DDBS 100 . In which certain QoS modes can be matched to a specified the destination port portion of the TCP layer header.
  • FIG. 2 illustrates an example process 200 of enabling traffic flow classification (e.g. set a network QoS mode) in a database cluster, according to some embodiments.
  • the switch(es) and/or router(s) can be configured to provide priority to data packets and/or segments of data packets with a specified traffic flow configuration.
  • a non-limiting example may be an iSCSI control traffic data packet can be prioritized to be communicated over another type of data packet.
  • the destination port number of the data packet can be replaced with a classification port number associated with the specified traffic flow classification.
  • the classification port number can determine a priority level of the data packet.
  • the destination port number can be included in the TCP/IP options field.
  • FIG. 6 shows the TCP options field in the TCP header and also format of the options field.
  • the data packet can be communicated across a network of configurable switch(es) and/or router(s).
  • the configurable network devices can prioritize the data packet (and/or segments of the data packet) based on the classification port number provided in step 204 .
  • the classification port number is replaced with the destination port number. For example, a software module or subsystem in the destination host can inspect the TCP options field in the incoming data packets and replace the original destination port number into the data packet header and forward the packet to the correct application in step 212 .
  • FIGS. 3 A-B illustrate a non-limiting example of a virtual paths implementation between two nodes in a database cluster, according to some embodiments.
  • Node X 302 and/or node Y 309 can be nodes of a database cluster.
  • Node X 302 and/or node Y 309 can be physical nodes and/or virtual nodes.
  • a layer of software can be implemented inside the operating system of node X 302 and/or node Y 309 .
  • This software can include traffic flow classifier 306 and/or destination port correction module 308 in node X 302 and/or traffic flow classifier 314 and/or destination port correction module 312 in node Y 309 .
  • Node X 302 and/or node Y 309 can also include various applications represented by applications 304 and 310 respectively.
  • Source application 304 can communicate with destination application 310 via a computer networking protocol such as a TCP/IP protocol model.
  • Node X 302 can open a TCP/IP connection with node Y 309 .
  • a TCP/IP connection provides a port number(s) and/or IP addresses of node X 302 and/or node Y 309 .
  • the IP address of node X 302 can be ‘10.1.3.5’ and the IP address of node Y 309 can be ‘11.2.5.16’.
  • the port number for node X can be ‘4444’ and the port number for node Y 309 can be a number should be from the a non-reserved port (e.g. 50075).
  • the source application 304 can bind to these port number(s) and/or IP addresses and communicate data packets to destination application 310 (and vice versa for return data packets from 310 to 304 ). Accordingly, this information can be included in the data packet 320 A (e.g. in the TCP/IP layer header as discussed supra).
  • Data packet 320 A shows the original source IP address in a top box with source port number at the end.
  • Data packet 320 A shows the original destination IP address in a top box with original destination port number at the end.
  • Traffic flow classifier 306 (and traffic flow classifier 314 ) can modify the port number information in the outgoing data packet 320 B.
  • Data packet 320 B shows the original source IP address in a top box with source port number at the end.
  • Data packet 320 B shows the original destination IP address in a top box with QoS classification port number at the end.
  • Traffic flow classifier 306 can provide a new destination port number of ‘5000’.
  • the new destination port number can be used to create a virtual path between node X 302 and node Y 309 in network 316 .
  • the intermediate devices 318 can be configured to provide QoS to data packet 320 B based on QoS control codes 322 (e.g. C 1 , C 2 , C 3 , etc. each representing a predetermined QoS mode).
  • QoS control codes 322 can be defined using a management console.
  • Traffic flow classifier 306 can place the original destination port provided by source application 304 in a TCP/IP options section of the TCP/IP header portion of the data packet 320 B.
  • the TCP/IP protocol can enable a selection of up to four thousand port numbers. Certain number of the ports can be set aside for QoS classification purposes.
  • destination port correction module 308 can modify data packet 320 B back to its original state as data packet 320 A by replacing the QoS control codes (e.g. ‘5555’) with the original destination port number (e.g. ‘4444’) by consulting the TCP/IP options section.
  • Data packet 320 A can then be provided to destination application 310 which is listening at port 20 .
  • the networking layer of system 300 e.g. network 316 and configurable intermediate device 318
  • source application 304 and destination application 310 do not need to be modified to perform the operations provided in FIGS. 3 A-B.
  • system 300 can be adapted to provide different QoS modes for the various Hadoop flows. For example, a C 1 QoS classification can be provided to data packets associated with the Hadoop ‘job tracker’ flow. A C 2 QoS classification can be provided to data packets associated with the Hadoop ‘task tracker’ flow. A C 3 QoS classification can be provided to data packets associated with the Hadoop ‘namenode’ flow. Additional QoS classification can be provided for Hadoop data traffic and the like.
  • non-classified and/or external traffic can be accommodated with minimal effect when flowing through an intermediate gateway and/or routers that are configured to act on the classification scheme as provided herein.
  • the examples provided in FIGS. 3 A-B can be modified in various ways.
  • the source port number can be modified in lieu of the destination port number.
  • the headers of other layers of the data packet can be modified. These additional examples are provided by way of explanation and not of limitation.
  • FIG. 4 depicts a process 400 of implementing one or more embodiments provided herein, according to some embodiments.
  • an application implemented in the source node creates a data packet.
  • application layer information is be obtained.
  • the application layer information is matched with a network traffic flow classification.
  • a network traffic flow classification For example, an administrator can create a set of network traffic flow classifications. Each network traffic flow classification can correspond to various network traffic flow options (e.g. a QoS value, a prioritization state, etc.) for the data packet.
  • the network traffic flow classification can cause a configurable computer network to implement a classified traffic flow for the data packet based on the network traffic flow classification.
  • a traffic classification port number is selected based on the network traffic flow classification.
  • an administrator can create a set of traffic classification port numbers that correspond to the various available network traffic flow classifications.
  • traffic classification port numbers have been provided herein under various identifiers such as the classification port number, quality of service classification port number and the like.
  • the destination port number is replaced with the traffic classification port number.
  • the destination port number is then written in an options field of a header of the data packet. It is noted, that some steps of process 400 can be repeated for each data packet in a particular network traffic flow in a computer network.
  • Process 400 can be performed by another destination node computer in the configurable network to send data packets back to the source node computer.
  • the destination node computer can replace the traffic classification port number with the original destination port number and forward the data packet to the destination port.
  • the traffic classification port number may not be a true ‘port’ number but rather a traffic classification signifier located destination port location of the data packet header.
  • Process 400 can be implemented with the system and modules of FIGS. 3 and 5 . It is noted that process 400 can be modified such that different types of applications/jobs can map to the same network traffic flow classification and different network traffic flow classifications can map to the same port.
  • FIG. 5 depicts an exemplary computing system 500 that can be configured to perform several of the processes provided herein.
  • computing system 500 can include, for example, a processor, memory, storage, and I/O devices (e.g., monitor, keyboard, disk drive, Internet connection, etc.).
  • computing system 500 can include circuitry or other specialized hardware for carrying out some or all aspects of the processes.
  • computing system 500 can be configured as a system that includes one or more units, each of which is configured to carry out some aspects of the processes either in software, hardware, or some combination thereof.
  • FIG. 5 depicts a computing system 500 with a number of components that can be used to perform any of the processes described herein.
  • the main system 502 includes a motherboard 504 having an I/O section 506 , one or more central processing units (CPU) 505 , and a memory section 510 , which can have a flash memory card 512 related to it.
  • the I/O section 506 can be connected to a display 514 , a keyboard and/or other attendee input (not shown), a disk storage unit 516 , and a media drive unit 518 .
  • the media drive unit 518 can read/write a computer-readable medium 520 , which can include programs 522 and/or data.
  • Computing system 500 can include a web browser.
  • computing system 500 can be configured to include additional systems in order to fulfill various functionalities.
  • Display 514 can include a touch-screen system.
  • system 500 can be included in and/or be utilized by the various systems and/or methods described herein.
  • a value judgment can refer to a judgment based upon a particular set of values or on a particular value system.
  • the methods and systems provided supra can be implanted in a data-center environment (e.g. with a host-to-host ‘east-west’ traffic pattern).
  • the data-center environment can span multiple datacenters with wide area network (WAN) links implemented between said datacenters.
  • the data-center environment can be implemented in a cloud-computing environment and include various available scalable architectures.
  • a front-end server can ‘consult’ several other worker servers within the data-center environment before it returns an aggregated response back to a client.
  • the ‘east-west’ traffic can also be virtualization driven (e.g. with virtual servers syncing up with one another).
  • FIG. 6 shows the TCP header 600 and an expanded view of various sub-fields (e.g. options field 602 ) in the TCP options field of the TCP header, according to some embodiments.
  • the TCP header 600 can describe such information as a data packet's source, destination, control information, etc.
  • Options field 602 can be added to TCP header 600 .
  • Options field 602 consists of following sub-fields, an option-kind subfield 604 , an option-length subfield 606 , and/or an option data/padding subfield 608 .
  • Option-kind subfield 604 defines the type of option.
  • Option-length subfield 606 defines the length of the option field.
  • Option data/padding subfield 608 can be of variable length.
  • Option data/padding subfield 608 can include the relevant data.
  • the length of the options field 602 should be divisible by thirty-two (32). Accordingly, the option data/padding subfield 608 can include padding such that the length of the options field 602 is divisible by thirty-two (32).
  • the option-kind subfield 604 can be a specified length (e.g. one byte in length).
  • the option-length subfield 606 can be two bytes.
  • the option data/padding subfield 608 can be used to include the original destination port number. This may be included without the need for additional padding.
  • the various operations, processes, and methods disclosed herein can be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., a computer system), and can be performed in any order (e.g., including using means for achieving the various operations). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
  • the machine-readable medium can be a non-transitory form of machine-readable medium.

Abstract

In one exemplary aspect, a method of managing computer network traffic flow quality of service includes the step of configuring a configurable network device to provide a specified quality of service to a data packet with a specified quality of service configuration based on a quality of service classification port number in a data packet header of the data packet. At the source node, a data packet is generated. At the source node, replacing the destination port number in the data packet header with a quality of service classification port number. At the source node, the destination port number is included in an options field of the data packet's header. The data packet is communicated to the configurable network device. At the destination node, receiving the data packet, replacing the quality of service classification port number with the original destination port number, and forwarding the packet to a destination process.

Description

BACKGROUND
1. Field
This application relates generally to computer networking, and more specifically to a system, article of manufacture and method for setting network traffic flow quality of service (QoS) by modifying port numbers.
2. Related Art
Conventional methods of network services provide Quality of Service (QoS). Few non-limiting examples are based on COS values (layer 2 header) or TOS values (layer 3 header). Intermediate switches and routers can be configured to change these fields based on various parameters, a non-limiting example can be looking at the 5-tuple of the packet, 5-tuple consists of source IP, source port, destination IP, destination port, and protocol. Various network attributes such variable bit rate and delivery time may depend on various current states of the network such as the current traffic load.
Deep packet inspection is another non-limiting option to classify the flow and provide QoS. Intermediate devices (e.g. routers and/or switches) in the network may not be configurable to efficiently inspect the deeper layers of the data packets and provide QoS or priority according to their contents. Moreover, in-line deep packet inspection can increase networking latency, decrease throughput and reduce QoS.
Even if intermediate devices (e.g. routers and/or switches) can support deep packet inspection, customized classifying logic might not be present on these devices. Hence, this may require a customized software loaded on these intermediate devices, which is not very common.
Data packets are segmented when an application utilizes large packet sizes greater than the path MTU (Maximum Transmission Unit). Data packet segmentation can cause the header to be separated from the other segments of the data packet. Thus, conventional attempts to provide a QoS level based on current methods of inspecting data packet headers can be problematic. Accordingly, improvements can be made over conventional methods of setting network traffic flow QoS.
BRIEF SUMMARY OF THE INVENTION
In one aspect, a method of managing computer network traffic flow quality of service includes the step of configuring a configurable network device to provide a specified quality of service to a data packet with a specified quality of service configuration based on a quality of service classification port number in a data packet header of the data packet. At the source node, a data packet is generated with a destination port number in the data packet header. At the source node, the destination port number in the data packet header is replaced with a quality of service classification port number associated with the specified quality of service. At the source node, the destination port number is included in an options field of the data packet's header. The data packet is communicated to the configurable network device. At a destination node, the data packet can be received. The quality of service classification port number can be replaced with the destination port number in the options field of the data packet header. The data packet can be forwarded to a destination process with the destination port number.
BRIEF DESCRIPTION OF THE DRAWINGS
The present application can be best understood by reference to the following description taken in conjunction with the accompanying figures, in which like parts may be referred to by like numerals.
FIG. 1 depicts, in block diagram format, a distributed database system with classified traffic flows based on information in the data packet networking headers, according to some embodiments. A non-limiting example for such information can be the 5-tuple of the packet.
FIG. 2 illustrates an example process of enabling traffic flow classification in a database cluster, according to some embodiments.
FIGS. 3 A-B illustrate an example of implementing virtual paths between two nodes in a database cluster, according to some embodiments.
FIG. 4 depicts a process of implementing one or more embodiments provided herein, according to some embodiments.
FIG. 5 depicts a computing system with a number of components that can be used to perform any of the processes described herein.
FIG. 6 shows the TCP header and an expanded view of various sub-fields in the TCP options field of the TCP header, according to some embodiments.
The Figures described above are a representative set, and are not an exhaustive with respect to embodying the invention.
DETAILED DESCRIPTION
Disclosed are a system, method, and article of setting network traffic flow quality of service (QoS) by modifying port numbers. The following description is presented to enable a person of ordinary skill in the art to make and use the various embodiments. Descriptions of specific devices, techniques, and applications are provided only as non-limiting examples. Various modifications to the examples described herein may be readily apparent to those of ordinary skill in the art, and the general principles defined herein may be applied to other examples and applications without departing from the spirit and scope of the various embodiments.
Reference throughout this specification to “one embodiment,” “an embodiment,” “one example,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
Furthermore, the described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art can recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
The schematic flow chart diagrams included herein are generally set forth as logical flow chart diagrams. As such, the depicted order and labeled steps are indicative of one embodiment of the presented method. Other steps and methods may be conceived that are equivalent in function, logic, or effect to one or more steps, or portions thereof, of the illustrated method. Additionally, the format and symbols employed are provided to explain the logical steps of the method and are understood not to limit the scope of the method. Although various arrow types and line types may be employed in the flow chart diagrams, and they are understood not to limit the scope of the corresponding method. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the method. For instance, an arrow may indicate a waiting or monitoring period of unspecified duration between enumerated steps of the depicted method. Additionally, the order in which a particular method occurs may or may not strictly adhere to the order of the corresponding steps shown.
FIG. 1 depicts, in block diagram format, a distributed database system (DDBS) 100 with classified traffic flows based on information in the data packet networking headers, according to some embodiments. DDBS 100 by way of example but not limitation, can include one or more database clusters and their constituent nodes. DDBS 100 by way of example but not limitation, can implement multiple types of traffic flows (refer as classified traffic flows 108 and 110) between nodes 102 A-C. A classified traffic flow can indicate a QoS level to be provided by network 104 to data packets classified accordingly.
Traffic flows 108 and 110 can manage the transmission of a data packets between nodes of DDBS 100 based on a pre-determined QoS classification. By way of example and not limitation, nodes 102 A-C of DDBS 100 can provide information in the data packet's various networking layer headers (e.g. a first segment of a data packet and/or supplemental data at the beginning of a data block). For example, nodes 102 A-C can include an operating system that modifies destination information in the networking layer headers to signify both original source and/or destination ports but also the classification of the traffic flow (e.g. with respect to QoS) of the particular data packet and/or data packet segment.
In some embodiments, the application information layers five to seven may not be visible to the networking devices in network 104 (e.g. not practical to inspect by intermediate configurable switches/routers 106). However, the networking devices can access the 5-tuple information in the networking headers of the data packet. For example, source and/or destination port numbers in the TCP/IP transmission layer header of a data packet can be read by intermediate configurable switches/routers 106. Accordingly, information applicable to classifying traffic flows can be provided to intermediate configurable switches/routers 106 as QoS codes in place of the original destination port numbers provided by the source application(s) in nodes 102 A-C. These QoS classification port numbers can then be used by intermediate device to prioritize various data packets in network 104. In this way, the classification of traffic flows 108 and 110 can be based on information originally located deeper in the data packet (e.g. in layer-5 (L5) to layer-7 (L7) networking headers) without inspection of these layers. Non-limiting examples of these traffic flows can include Hadoop Distributed File System (HDFS) data traffic, iSCSI control traffic, iSCSI data traffic, Thrift protocol message traffic, Cassandra® traffic, Hadoop job tracker traffic, and the like.
Data packets may also be segmented into smaller units (e.g. ‘fragments’) and communicated across network 104. As used herein, data packet segmentation can include the process of dividing a data packet into smaller units for transmission over the network. Since classification of traffic flows 108 and 110 are performed at the source node where the segmentation is also performed, these fragments can also be marked with the same QoS classification port numbers, and can have the same QoS applied as the first segment in the respective traffic flow.
In some embodiments, DDBS 100 can be any distributed data storage system. In some non-limiting examples, DDBS 100 can include a distributed file system (e.g. a clustered filed system such a Hadoop Distributed File System (HDFS), and/or any other distributed file system provided herein). Accordingly, nodes 102 A-C can be implemented as a Hadoop cluster. In still other non-limiting example embodiments, DDBS 100 can include an open source distributed database management system such as Cassandra®. Moreover, in some embodiments, nodes 102 A-C can be implemented as virtual nodes. Indeed, in some example embodiments, DDBS 100 can be implemented as a virtual system in all and/or in part. These examples are provided by way of example and not of limitation.
In some embodiments, before sending a data packet, nodes 102 A-C can classify the application payload at the source node TCP/IP layer (e.g. of the TCP/IP model). This classified traffic can be mapped to a different destination port using various techniques. FIG. 6 shows the format of TCP options field. TCP Options have up to three fields: Option-Kind (1 byte), Option-Length (1 byte), Option-Data (variable). A new TCP Option-Kind can be defined to indicate that the replacement of the original destination port number. At the receiving end of the traffic flow, even before the packet is delivered to the TCP/IP layer, the receiving node can include a functionality that identifies the Option-Kind as an indication for a destination port replacement in the TCP/IP header and replaces the destination port in the header used to classify the traffic flow with the original destination port found in the TCP/IP options field. In this way, due to the packet classification at the source node and the mapping to different destination ports, packet inspection by the intermediate network devices 106 can be reduced to a five 5-tuple classification once the packet leaves the source node (e.g. a host).
Accordingly, intermediate network devices 106 can be configured to provide various QoS modes to data packets based on a 5-tuple classification system. TCP/IP packet classification can be done based on 5-tuple (source IP, destination IP, Protocol, source Port, destination port). This information can be available by inspecting up to the layer-4 headers of the packets. Intermediate router(s) and/or switch(es) 106 can inspect these fields and support classification of the data packet in terms of a network QoS mode based on its respective 5-tuples value. The intermediate router(s) and/or switch(es) 106, in turn, can be configurable (e.g. from a management module 112). In this way, different virtual paths (e.g. control paths, data paths, messaging paths, etc.) can be created across the cluster(s) of DDBS 100.
Management module 112 can be used to configure intermediate router(s) and/or switch(es) 106. One non-limiting example may be, a console and/or dashboard can be provided that enables an administrative entity to create various virtual paths in the clusters of DDBS 100. In which certain QoS modes can be matched to a specified the destination port portion of the TCP layer header.
FIG. 2 illustrates an example process 200 of enabling traffic flow classification (e.g. set a network QoS mode) in a database cluster, according to some embodiments. In step 202, the switch(es) and/or router(s) (and/or other network devices) can be configured to provide priority to data packets and/or segments of data packets with a specified traffic flow configuration. A non-limiting example may be an iSCSI control traffic data packet can be prioritized to be communicated over another type of data packet. In step 204, at the source node, the destination port number of the data packet can be replaced with a classification port number associated with the specified traffic flow classification. The classification port number can determine a priority level of the data packet. In step 206, at the source node, the destination port number can be included in the TCP/IP options field. FIG. 6 shows the TCP options field in the TCP header and also format of the options field. In step 208, the data packet can be communicated across a network of configurable switch(es) and/or router(s). The configurable network devices can prioritize the data packet (and/or segments of the data packet) based on the classification port number provided in step 204. In step 210, at the destination node, the classification port number is replaced with the destination port number. For example, a software module or subsystem in the destination host can inspect the TCP options field in the incoming data packets and replace the original destination port number into the data packet header and forward the packet to the correct application in step 212.
FIGS. 3 A-B illustrate a non-limiting example of a virtual paths implementation between two nodes in a database cluster, according to some embodiments. Node X 302 and/or node Y 309 can be nodes of a database cluster. Node X 302 and/or node Y 309 can be physical nodes and/or virtual nodes. A layer of software can be implemented inside the operating system of node X 302 and/or node Y 309. This software can include traffic flow classifier 306 and/or destination port correction module 308 in node X 302 and/or traffic flow classifier 314 and/or destination port correction module 312 in node Y 309. Node X 302 and/or node Y 309 can also include various applications represented by applications 304 and 310 respectively. Source application 304 can communicate with destination application 310 via a computer networking protocol such as a TCP/IP protocol model. For example, Node X 302 can open a TCP/IP connection with node Y 309. A TCP/IP connection provides a port number(s) and/or IP addresses of node X 302 and/or node Y 309. The non-limiting example, in FIG. 3B, the IP address of node X 302 can be ‘10.1.3.5’ and the IP address of node Y 309 can be ‘11.2.5.16’. The port number for node X can be ‘4444’ and the port number for node Y 309 can be a number should be from the a non-reserved port (e.g. 50075). The source application 304 can bind to these port number(s) and/or IP addresses and communicate data packets to destination application 310 (and vice versa for return data packets from 310 to 304). Accordingly, this information can be included in the data packet 320 A (e.g. in the TCP/IP layer header as discussed supra). Data packet 320 A shows the original source IP address in a top box with source port number at the end. Data packet 320 A shows the original destination IP address in a top box with original destination port number at the end.
Traffic flow classifier 306 (and traffic flow classifier 314) can modify the port number information in the outgoing data packet 320 B. Data packet 320 B shows the original source IP address in a top box with source port number at the end. Data packet 320 B shows the original destination IP address in a top box with QoS classification port number at the end. Traffic flow classifier 306 can provide a new destination port number of ‘5000’. The new destination port number can be used to create a virtual path between node X 302 and node Y 309 in network 316. A non-limiting example nay be, the new destination port number can be provided based on a pre-determined set of QoS control codes 322. The intermediate devices 318 can be configured to provide QoS to data packet 320 B based on QoS control codes 322 (e.g. C1, C2, C3, etc. each representing a predetermined QoS mode). QoS control codes 322 can be defined using a management console.
In this way, virtual paths can be created in network 316 such that the classified traffic flows behave in a deterministic manner. Traffic flow classifier 306 can place the original destination port provided by source application 304 in a TCP/IP options section of the TCP/IP header portion of the data packet 320 B. The TCP/IP protocol can enable a selection of up to four thousand port numbers. Certain number of the ports can be set aside for QoS classification purposes. Thus, when node Y 309 receives the data packet 320 B, destination port correction module 308 can modify data packet 320 B back to its original state as data packet 320 A by replacing the QoS control codes (e.g. ‘5555’) with the original destination port number (e.g. ‘4444’) by consulting the TCP/IP options section. Data packet 320 A can then be provided to destination application 310 which is listening at port 20. It is noted that the networking layer of system 300 (e.g. network 316 and configurable intermediate device 318) need not perform deep packet inspection to determine the QoS classification of the various data packets. Furthermore, source application 304 and destination application 310 do not need to be modified to perform the operations provided in FIGS. 3 A-B. Taking the Hadoop distributed file system as a non-limiting example, system 300 can be adapted to provide different QoS modes for the various Hadoop flows. For example, a C1 QoS classification can be provided to data packets associated with the Hadoop ‘job tracker’ flow. A C2 QoS classification can be provided to data packets associated with the Hadoop ‘task tracker’ flow. A C3 QoS classification can be provided to data packets associated with the Hadoop ‘namenode’ flow. Additional QoS classification can be provided for Hadoop data traffic and the like.
It is noted, that in some embodiments, non-classified and/or external traffic can be accommodated with minimal effect when flowing through an intermediate gateway and/or routers that are configured to act on the classification scheme as provided herein. Additionally, it is noted that the examples provided in FIGS. 3 A-B can be modified in various ways. For example, in some embodiments, the source port number can be modified in lieu of the destination port number. In some embodiments, the headers of other layers of the data packet can be modified. These additional examples are provided by way of explanation and not of limitation.
FIG. 4 depicts a process 400 of implementing one or more embodiments provided herein, according to some embodiments. In step 402, an application implemented in the source node creates a data packet. In step 404, application layer information is be obtained. In step 406, the application layer information is matched with a network traffic flow classification. For example, an administrator can create a set of network traffic flow classifications. Each network traffic flow classification can correspond to various network traffic flow options (e.g. a QoS value, a prioritization state, etc.) for the data packet. The network traffic flow classification can cause a configurable computer network to implement a classified traffic flow for the data packet based on the network traffic flow classification. In step 408, a traffic classification port number is selected based on the network traffic flow classification. Again, in some embodiments, an administrator can create a set of traffic classification port numbers that correspond to the various available network traffic flow classifications. Various examples of traffic classification port numbers have been provided herein under various identifiers such as the classification port number, quality of service classification port number and the like. In step 410, the destination port number is replaced with the traffic classification port number. In step 412, the destination port number is then written in an options field of a header of the data packet. It is noted, that some steps of process 400 can be repeated for each data packet in a particular network traffic flow in a computer network. Process 400 can be performed by another destination node computer in the configurable network to send data packets back to the source node computer. The destination node computer can replace the traffic classification port number with the original destination port number and forward the data packet to the destination port. It is noted that the traffic classification port number may not be a true ‘port’ number but rather a traffic classification signifier located destination port location of the data packet header. Process 400 can be implemented with the system and modules of FIGS. 3 and 5. It is noted that process 400 can be modified such that different types of applications/jobs can map to the same network traffic flow classification and different network traffic flow classifications can map to the same port.
FIG. 5 depicts an exemplary computing system 500 that can be configured to perform several of the processes provided herein. In this context, computing system 500 can include, for example, a processor, memory, storage, and I/O devices (e.g., monitor, keyboard, disk drive, Internet connection, etc.). However, computing system 500 can include circuitry or other specialized hardware for carrying out some or all aspects of the processes. In some operational settings, computing system 500 can be configured as a system that includes one or more units, each of which is configured to carry out some aspects of the processes either in software, hardware, or some combination thereof.
FIG. 5 depicts a computing system 500 with a number of components that can be used to perform any of the processes described herein. The main system 502 includes a motherboard 504 having an I/O section 506, one or more central processing units (CPU) 505, and a memory section 510, which can have a flash memory card 512 related to it. The I/O section 506 can be connected to a display 514, a keyboard and/or other attendee input (not shown), a disk storage unit 516, and a media drive unit 518. The media drive unit 518 can read/write a computer-readable medium 520, which can include programs 522 and/or data. Computing system 500 can include a web browser. Moreover, it is noted that computing system 500 can be configured to include additional systems in order to fulfill various functionalities. Display 514 can include a touch-screen system. In some embodiments, system 500 can be included in and/or be utilized by the various systems and/or methods described herein. As used herein, a value judgment can refer to a judgment based upon a particular set of values or on a particular value system.
It is noted that the methods and systems provided supra can be implanted in a data-center environment (e.g. with a host-to-host ‘east-west’ traffic pattern). For example, the data-center environment can span multiple datacenters with wide area network (WAN) links implemented between said datacenters. The data-center environment can be implemented in a cloud-computing environment and include various available scalable architectures. For example, a front-end server can ‘consult’ several other worker servers within the data-center environment before it returns an aggregated response back to a client. In some examples, the ‘east-west’ traffic can also be virtualization driven (e.g. with virtual servers syncing up with one another).
FIG. 6 shows the TCP header 600 and an expanded view of various sub-fields (e.g. options field 602) in the TCP options field of the TCP header, according to some embodiments. The TCP header 600 can describe such information as a data packet's source, destination, control information, etc. Options field 602 can be added to TCP header 600. Options field 602 consists of following sub-fields, an option-kind subfield 604, an option-length subfield 606, and/or an option data/padding subfield 608. Option-kind subfield 604 defines the type of option. Option-length subfield 606 defines the length of the option field. Option data/padding subfield 608 can be of variable length. Option data/padding subfield 608 can include the relevant data. The length of the options field 602 should be divisible by thirty-two (32). Accordingly, the option data/padding subfield 608 can include padding such that the length of the options field 602 is divisible by thirty-two (32).
In one example, the option-kind subfield 604 can be a specified length (e.g. one byte in length). The option-length subfield 606 can be two bytes. The option data/padding subfield 608 can be used to include the original destination port number. This may be included without the need for additional padding. These non-limiting examples are provided by way of example of not of limitation.
CONCLUSION
Although the present embodiments have been described with reference to specific example embodiments, various modifications and changes can be made to these embodiments without departing from the broader spirit and scope of the various embodiments. For example, the various devices, modules, etc. described herein can be enabled and operated using hardware circuitry, firmware, software or any combination of hardware, firmware, and software (e.g., embodied in a machine-readable medium).
In addition, it may be appreciated that the various operations, processes, and methods disclosed herein can be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., a computer system), and can be performed in any order (e.g., including using means for achieving the various operations). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. In some embodiments, the machine-readable medium can be a non-transitory form of machine-readable medium.

Claims (20)

What is claimed as new and desired to be protected by Letters Patent of the United States is:
1. A method of managing computer network traffic flow quality of service comprising:
configuring a configurable network device to provide a specified quality of service to a data packet with a specified quality of service configuration based on a quality of service classification port number in a data packet header of the data packet;
at the source node, generating a data packet with a destination port number in the data packet header;
at the source node, replacing with the destination port number in the data packet header with a quality of service classification port number associated with the specified quality of service;
at the source node, including the destination port number in an options field of the data packet's header; and
communicating the data packet to the configurable network device.
2. The method of claim 1 further comprising:
at a destination node, receiving the data packet;
replacing the quality of service classification port number with the destination port number in the options field of the data packet header; and
forwarding the data packet to a destination process with the destination port number.
3. The method of claim 2, further comprising:
at the source node, segmenting the data packet into a set of data packet segments; and
replacing with the destination port number in a beginning section of each data packet segment with the quality of service classification port number associated with the specified quality of service.
4. The method of claim 3, further comprising:
at a destination node, receiving each data packet segment; and
replacing the quality of service classification port number with the destination port number in the options field of the beginning section of each data packet segment.
5. The method of claim 4, wherein the specified quality of service is based on information located in the networking headers of the data packet and the data itself.
6. The method of claim 5, wherein the information in the networking headers of the data packet comprises a Hadoop Distributed File System (HDFS) data, and wherein the HDFS data causes the data packet to assigned a specified quality of service.
7. The method of claim 6, wherein a new option-kind is added to the TCP Options field, This new option-kind will be used to store the true destination port number.
8. The method of claim 5, wherein the information in the networking headers of the data packet comprises application awareness.
9. A computerized system of managing computer network traffic flow quality of service comprising:
a processor configured to execute instructions;
a memory containing instructions when executed on the processor, causes the processor to perform operations that:
configure a configurable network device to provide a specified quality of service to a data packet with a specified quality of service configuration based on a quality of service classification port number in a data packet header of the data packet;
at the source node, generate a data packet with a destination port number in the data packet header;
at the source node, replace with the destination port number in the data packet header with a quality of service classification port number associated with the specified quality of service;
at the source node, include the destination port number in an options field of the data packet header; and
communicate the data packet to the configurable network device.
10. The computerized system of claim 9 wherein the memory containing instructions when executed on the processor, causes the processor to further perform operations that:
at a destination node, receive the data packet;
replace the quality of service classification port number with the destination port number in the options field of the data packet header, and
forward the data packet to a destination port with the destination port number.
11. The computerized system of claim 10 wherein the memory containing instructions when executed on the processor, causes the processor to further perform operations that:
at the source node, segment the data packet into a set of data packet segments; and
replace with the destination port number in a beginning section of each data packet segment with the quality of service classification port number associated with the specified quality of service.
12. The computerized system of claim 11 wherein the memory containing instructions when executed on the processor, causes the processor to further perform operations that:
at a destination node, receiving each data packet segment; and
replacing the quality of service classification port number with the destination port number in the options field of the beginning section of each data packet segment.
13. The method of claim 12, wherein the specified quality of service is based on information located in the networking headers of the data packet and the data itself.
14. The method of claim 13, wherein the information in the networking headers of the data packet comprises a Hadoop Distributed File System (HDFS) data, and wherein the HDFS data causes the data packet to assigned a specified quality of service.
15. The method of claim 14, wherein the information in the networking headers of the data packet comprises application awareness.
16. The method of claim 15, wherein a new option-kind is added to the TCP Options field, This new option-kind will be used to store the true destination port number.
17. A method comprising:
creating, with a source node application implemented in a source node computer, a data packet;
obtaining an application layer information about data in at least one application layer of the data packet;
matching the application layer information with a network traffic flow classification, wherein the network traffic flow classification causes a configurable computer network to implement a classified traffic flow for the data packet based on the network traffic flow classification;
selecting a traffic classification port number based on the network traffic flow classification;
replacing the destination port number with the traffic classification port number; and
writing the destination port number in an options field of a header of the data packet.
18. The method of claim 17 further comprising:
routing the data packet to the configurable computer network; and
providing instructions to a configurable networking device in the configurable computer network to route the data packet based on network traffic flow classifier.
19. The method of claim 18, wherein the application layer information is obtained from the source node application and deep packet inspection of the data packet is not performed by the source node computer.
20. The method of claim 17, wherein the network traffic flow classification comprises a quality of service classification for the data packet in the configurable computer network, and wherein the configurable networking device in the configurable computer network prioritizes the data packet based on the quality of service classification.
US14/288,648 2014-05-28 2014-05-28 Method and system of setting network traffic flow quality of service by modifying port numbers Active - Reinstated 2034-08-20 US9270605B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/288,648 US9270605B2 (en) 2014-05-28 2014-05-28 Method and system of setting network traffic flow quality of service by modifying port numbers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/288,648 US9270605B2 (en) 2014-05-28 2014-05-28 Method and system of setting network traffic flow quality of service by modifying port numbers

Publications (2)

Publication Number Publication Date
US20150350094A1 US20150350094A1 (en) 2015-12-03
US9270605B2 true US9270605B2 (en) 2016-02-23

Family

ID=54703087

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/288,648 Active - Reinstated 2034-08-20 US9270605B2 (en) 2014-05-28 2014-05-28 Method and system of setting network traffic flow quality of service by modifying port numbers

Country Status (1)

Country Link
US (1) US9270605B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259367A (en) * 2018-01-11 2018-07-06 重庆邮电大学 A kind of Flow Policy method for customizing of the service-aware based on software defined network
US11394808B2 (en) 2020-08-03 2022-07-19 Kyndryl, Inc. Passive identification of service ports in containers

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647909B2 (en) * 2014-09-23 2017-05-09 Uila Networks, Inc. Monitor a data center infrastructure
US11324022B1 (en) 2014-10-06 2022-05-03 Sprint Spectrum L.P. Method and system for selecting a carrier on which to schedule communications of a type of bearer traffic
US9807766B1 (en) * 2015-01-30 2017-10-31 Sprint Spectrum L.P. Method and system for component carrier selection based on content type
US9800392B1 (en) * 2015-04-16 2017-10-24 Sprint Spectrum L.P. Selecting between TDD-FDD carrier aggregation approaches based on type of communication

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5941988A (en) * 1997-01-27 1999-08-24 International Business Machines Corporation Session and transport layer proxies via TCP glue
US6449251B1 (en) * 1999-04-02 2002-09-10 Nortel Networks Limited Packet mapper for dynamic data packet prioritization
US6563824B1 (en) * 1999-04-20 2003-05-13 3Com Corporation Apparatus and methods for determining the correct workstation within a LAN for a LAN modem to route a packet
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US20150120897A1 (en) * 2012-05-22 2015-04-30 Sagemcom Broadband Sas Device and method for interconnecting two subnetworks
US20150281060A1 (en) * 2014-03-27 2015-10-01 Nicira, Inc. Procedures for efficient cloud service access in a system with multiple tenant logical networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5941988A (en) * 1997-01-27 1999-08-24 International Business Machines Corporation Session and transport layer proxies via TCP glue
US6449251B1 (en) * 1999-04-02 2002-09-10 Nortel Networks Limited Packet mapper for dynamic data packet prioritization
US6563824B1 (en) * 1999-04-20 2003-05-13 3Com Corporation Apparatus and methods for determining the correct workstation within a LAN for a LAN modem to route a packet
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US20150120897A1 (en) * 2012-05-22 2015-04-30 Sagemcom Broadband Sas Device and method for interconnecting two subnetworks
US20150281060A1 (en) * 2014-03-27 2015-10-01 Nicira, Inc. Procedures for efficient cloud service access in a system with multiple tenant logical networks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259367A (en) * 2018-01-11 2018-07-06 重庆邮电大学 A kind of Flow Policy method for customizing of the service-aware based on software defined network
US11394808B2 (en) 2020-08-03 2022-07-19 Kyndryl, Inc. Passive identification of service ports in containers

Also Published As

Publication number Publication date
US20150350094A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
US9270605B2 (en) Method and system of setting network traffic flow quality of service by modifying port numbers
US10284390B2 (en) Techniques for efficient service chain analytics
US11424985B2 (en) Policy driven network QOS deployment
US10135714B2 (en) Servers, switches, and systems with switching module implementing a distributed network operating system
US20230396563A1 (en) Configuring pnic to perform flow processing offload using virtual port identifiers
US9614739B2 (en) Defining service chains in terms of service functions
US9438512B2 (en) Stacking metadata contexts for service chains
US11178051B2 (en) Packet key parser for flow-based forwarding elements
US9749226B2 (en) Flow-based network switching system
US11838361B2 (en) Reducing distributed storage operation latency using segment routing techniques
US7764678B2 (en) Routing based on dynamic classification rules
US9503365B2 (en) Reputation-based instruction processing over an information centric network
JP6162337B2 (en) Application-aware network management
US20160205044A1 (en) Methods and systems for managing distributed media access control address tables
US9059965B2 (en) Method and system for enforcing security policies on network traffic
US10979339B2 (en) Node representations of packet forwarding path elements
US10027594B1 (en) Congestion control for label switching traffic
US10333853B1 (en) Unified quality of service (QoS) for label switching traffic
US10757028B1 (en) Configurable forwarding element deparser
US10819573B2 (en) Hierarchical coherency for network function virtualization
US10536375B2 (en) Individual network device forwarding plane reset
US11126249B1 (en) Power reduction methods for variable sized tables
US20180287900A1 (en) Method and apparatus for tap aggregation and network data truncation
US10616116B1 (en) Network traffic load balancing using rotating hash
US20200007440A1 (en) Dynamic rule-based flow routing in networks

Legal Events

Date Code Title Description
AS Assignment

Owner name: ROBIN SYSTEMS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VALLALA, SHRAVAN KUMAR;YEDDANAPUDI, KRISHNA SATYASAI;IZHAK-RATZIN, RAFIT;REEL/FRAME:036540/0818

Effective date: 20150904

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20200223

PRDP Patent reinstated due to the acceptance of a late maintenance fee

Effective date: 20210812

FEPP Fee payment procedure

Free format text: SURCHARGE, PETITION TO ACCEPT PYMT AFTER EXP, UNINTENTIONAL. (ORIGINAL EVENT CODE: M2558); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Free format text: PETITION RELATED TO MAINTENANCE FEES GRANTED (ORIGINAL EVENT CODE: PMFG); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Free format text: PETITION RELATED TO MAINTENANCE FEES FILED (ORIGINAL EVENT CODE: PMFP); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 4

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8