US9288143B2 - Data flow path determination - Google Patents

Data flow path determination Download PDF

Info

Publication number
US9288143B2
US9288143B2 US14/053,150 US201314053150A US9288143B2 US 9288143 B2 US9288143 B2 US 9288143B2 US 201314053150 A US201314053150 A US 201314053150A US 9288143 B2 US9288143 B2 US 9288143B2
Authority
US
United States
Prior art keywords
data flow
flow path
network
node
user
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, expires
Application number
US14/053,150
Other versions
US20150103672A1 (en
Inventor
Leslie R. Stuart
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Priority to US14/053,150 priority Critical patent/US9288143B2/en
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: STUART, LESLIE R.
Publication of US20150103672A1 publication Critical patent/US20150103672A1/en
Assigned to HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP reassignment HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Application granted granted Critical
Priority to US15/070,246 priority patent/US20160197818A1/en
Publication of US9288143B2 publication Critical patent/US9288143B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • 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/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Definitions

  • a software-defined networking (SDN) manager in a network builds a path through the network to allow a number of devices to connect with other devices within the network. Once the SDN manager builds a path through the network, the SDN manager makes decisions about where network traffic is sent by instructing switches within the network to forward packets of data traveling across the network between the devices. As a result, the devices are connected to the other devices.
  • SDN software-defined networking
  • FIG. 1 is a block diagram of a software-defined network (SDN) manager, according to one example of the principles described herein.
  • SDN software-defined network
  • FIG. 2 is a block diagram of a network managed by the SDN manager of FIG. 1 , according to one example of the principles described herein.
  • FIG. 3 is a block diagram of a service flow graphical user interface (GUI) displayed on a display device of the SDN manager of FIG. 1 , according to one example of the principles described herein.
  • GUI service flow graphical user interface
  • FIG. 4 is a block diagram of a topology GUI displayed on a display device of the SDN manager of FIG. 1 , according to one example of the principles described herein.
  • FIG. 5 is a flow chart showing a method determining a number of data flow paths within a computing network using an SDN manager, according to one example of the principles described herein.
  • FIG. 6 is a flow chart showing a method determining a number of data flow paths within a computing network using an SDN manager, according to another example of the principles described herein.
  • SDN networks utilize applications tied to a controller within a network to program data flows through the network.
  • the applications utilize application program interfaces (APIs) and other interlaces to communicate with the controller.
  • APIs application program interfaces
  • network environments that do not have developers that can utilize the programmatic interface of the controller.
  • the present SDN manager in relation to the above, abstracts the programmatic interface of the controller, and provides a number of graphical user interfaces (GUIs) to program the controller and create network paths within the network.
  • GUIs graphical user interfaces
  • the SDN manager builds a path through a network, and makes decisions about where and how network traffic is sent by instructing switches or other computing devices within the network to forward packets of data traveling across the network between the nodes within the network.
  • a user may desire an optimized data transfer path to be built by the SDN manager in order to provide for a desired or required bandwidth within that data transfer path.
  • a user may desire a shortest data flow path with the least amount of hops between two nodes.
  • the present SDN manager provides for the creation of data flow paths within the network based on a user-desired or user-selected data flow path goal.
  • node is meant to be understood broadly as any interconnection point within a computer network.
  • a node may be a possessing device, a controller, a core, a switch, a router, a server device, client devices, printers, or a computing device, among may other types of hardware devices within the network, and combinations thereof.
  • a number of or similar language is meant to be understood broadly as any positive number comprising 1 to infinity; zero not being a number, but the absence of a number.
  • FIG. 1 is a block diagram of a software-defined network (SDN) manager, according to one example of the principles described herein.
  • the SDN manager ( 100 ) may be implemented in an electronic device. Examples of electronic devices include servers, desktop computers, laptop computers, personal digital assistants (PDAs), mobile devices, smartphones, gaming systems, and tablets, among other electronic devices.
  • PDAs personal digital assistants
  • the SDN manager ( 100 ) enables network architects or other users to design and create end-to-end paths through a SDN domain using a map of the topology of the network.
  • the map of the topology is displayed to the user via a number of graphical user interfaces (GUIs).
  • GUIs graphical user interfaces
  • the paths created using the SDN manager ( 100 ) is achieved through the GUIs provided by the SDN manager ( 100 ).
  • Each path displayed within the GUI of the mapped topology represents a data path in hardware from two or more nodes in the SDN domain.
  • data flow paths may be manually created by selecting, via the GUIs, nodes from the topology map.
  • data flow paths may be automatically created by the SDN manager ( 100 ).
  • the SDN manager ( 100 ) selects two end nodes from the topology map.
  • the SDN manager ( 100 ) selects the two end nodes based on user input.
  • the user selects the end nodes via the GUIs.
  • the GUI displays to the user an option of choosing an “optimized data flow path” or a “shortest data flow path,”
  • An optimized data flow path is defined by a data flow path within the network with the most bandwidth available.
  • a shortest data flow path is defined by a data flow path within the network with the fewest hops between the two selected end nodes.
  • the paths may be automatically and continuously monitored. This monitoring may be performed to audit security within the network and the hardware devices. Monitoring may also be used to ensure isolation of a data flow path through the network. In most cases, a data flow path may not overlap or intersect another data flow path. If data flow paths were permitted to overlap or intersect, data integrity may be compromised and result in a voiding of multi-tenancy requirements where two individual tenants are not allowed to accesses another tenant's data flows through the network. Monitoring may also be performed to ensure that service level agreements (SLAs) are being met, and to ensure that overall infrastructure capacity loading is being accomplished.
  • SLAs service level agreements
  • the SDN manager ( 100 ) may be utilized in any data processing scenario including, stand-alone hardware, mobile applications, through a computing network, or combinations thereof. Further, the SDN manager ( 100 ) may be used in a computing network, a public cloud network, a private cloud network, a hybrid cloud network, other forms of networks, or combinations thereof. In one example, the methods provided by the SDN manager ( 100 ) are provided as a service over a network by, for example, a third party.
  • the service may comprise, for example, the following: a Software as a Service (SaaS) hosting a number of applications; a Platform as a Service (Paas) hosting a computing platform comprising, for example, operating systems, hardware, and storage, among others; an Infrastructure as a Service (IaaS) hosting equipment such as, for example, servers, storage components, network, and components, among others; application program interface (API) as a service (APIaaS), other forms of network services, or combinations thereof.
  • SaaS Software as a Service
  • Paas Platform as a Service
  • IaaS Infrastructure as a Service
  • APIaaS application program interface
  • the present systems and methods may be implemented on a wired network, wireless network, physical network, virtual network, or combinations thereof.
  • the present systems may be implemented on one or multiple hardware platforms, in which the modules in the system can be executed on one or across multiple platforms.
  • Such modules can run on various forms of cloud technologies and hybrid cloud technologies, or offered as a SaaS (Software as a service) that can be implemented on or off the cloud.
  • one of the multiple platforms may be the Intelligent Management Center (IMC) network management platform developed and distributed by Hewlett Packard Company.
  • the methods provided by the SDN manager ( 100 ) are executed by a local administrator.
  • the SDN manager ( 100 ) comprises various hardware components. Among these hardware components may be a number of processors ( 101 ), a number of data storage devices ( 102 ), a number of peripheral device adapters ( 103 ), and a number of network adapters ( 104 ). These hardware components may be interconnected through the use of a number of busses and/or network connections. In one example, the processor ( 101 ), data storage device ( 102 ), peripheral device adapters ( 103 ), and a network adapter ( 104 ) may be communicatively coupled via a bus ( 105 ).
  • the processor ( 101 ) may include the hardware architecture to retrieve executable code from the data storage device ( 102 ) and execute the executable code.
  • the executable code may, when executed by the processor ( 101 ), cause the processor ( 101 ) to implement at least the functionality of determining a number of data flow paths between a first node and a second node within a computing network, displaying the data flow paths to a user via a number of graphical user interfaces (GUIs), and utilizing a selected data flow path as the data flow path through which the first node and a second node communicate, according to the methods of the present specification described herein.
  • GUIs graphical user interfaces
  • the processor ( 101 ) may receive input from and provide output to a number of the remaining hardware units.
  • the data storage device ( 102 ) may store data such as executable program code that is executed by the processor ( 101 ) or other processing device. As will be discussed, the data storage device ( 102 ) may specifically store computer code representing a number of applications that the processor ( 101 ) executes to implement at least the functionality described herein.
  • the data storage device ( 102 ) may include various types of memory modules, including volatile and nonvolatile memory.
  • the data storage device ( 102 ) of the present example includes Random Access Memory (RAM) ( 106 ), Read Only Memory (ROM) ( 107 ), and Hard Disk Drive (HDD) memory ( 108 ).
  • RAM Random Access Memory
  • ROM Read Only Memory
  • HDD Hard Disk Drive
  • Many other types of memory may also be utilized, and the present specification contemplates the use of many varying type(s) of memory in the data storage device ( 102 ) as may suit a particular application of the principles described herein.
  • different types of memory in the data storage device ( 102 ) may be used for different data storage needs.
  • the processor ( 101 ) may boot from Read Only Memory (ROM) ( 107 ), maintain nonvolatile storage in the Hard Disk Drive (HDD) memory ( 108 ), and execute program code stored in Random Access Memory (RAM) ( 106 ).
  • ROM Read Only Memory
  • HDD Hard Disk Drive
  • RAM Random Access Memory
  • the data storage device ( 102 ) may comprise a computer readable medium, a computer readable storage medium, or a non-transitory computer readable medium, among others.
  • the data storage device ( 102 ) may be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer readable storage medium may include, for example, the following: an electrical connection having a number of wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
  • a computer readable storage medium may be any tangible medium that can contain, or store computer usable program code for use by or in connection with an instruction execution system, apparatus, or device.
  • a computer readable storage medium may be any non-transitory medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • the hardware adapters ( 103 , 104 ) in the SDN manager ( 100 ) enable the processor ( 101 ) to interface with various other hardware elements, external and internal to the SDN manager ( 100 ).
  • the peripheral device adapters ( 103 ) may provide an interface to input/output devices, such as, for example, display device ( 109 ), a mouse, or a keyboard.
  • the peripheral device adapters ( 103 ) may also provide access to other external devices such as an external storage device, a number of network devices including, for example, servers, switches, and routers, client devices, other types of computing devices, and combinations thereof that exist within the network.
  • the display device ( 109 ) may be provided to allow a user of the SDN manager ( 100 ) to interact with and implement the functionality of the SDN manager ( 100 ).
  • the peripheral device adapters ( 103 ) may also create an interface between the processor ( 101 ) and the display device ( 109 ), a printer, or other media output devices.
  • the network adapter ( 104 ) may provide an interface to other computing devices within, for example, a network, thereby enabling the transmission of data between the SDN manager ( 100 ) and other devices located within the network.
  • the SDN manager ( 100 ) may display the number of graphical user interfaces (GUIs) on the display device ( 109 ) associated with the executable program code representing the number of applications stored on the data storage device ( 102 ).
  • GUIs may include aspects of the topology of the network including a number of devices within the network, communication links between the devices, and a number of data flow paths between a number of nodes within a the network.
  • the GUIs may further display a selected data flow path as the data flow path through which a first node and a second node communicate, according to the methods of the present specification described herein.
  • a user may select a number of nodes between which a user desires to create a data flow path. Additionally, via making a number of interactive gestures on the GUIs of the display device ( 109 ), a user may select an optimized data flow path between the number of nodes.
  • the optimized data flow path defines a data flow path within the network with the most available bandwidth. The optimized data flow path is determined based on bandwidth requirements of a number of applications executed within said network.
  • the user may also select a shortest data flow path, the shortest data flow path defining a data flow path within the network with the least amount of hops between a first node and a second node.
  • Examples of display devices ( 109 ) include a computer screen, a laptop screen, a mobile device screen, a personal digital assistant (PDA) screen, and a tablet screen, among other display devices ( 106 ). Examples of the GUIs displayed on the display device ( 109 ) will be described in more detail below.
  • the SDN manager ( 100 ) further comprises a number of modules used in the implementation of determining a number of data flow paths between a first node and a second node within a computing network, displaying the data flow paths to a user via a number of graphical user interfaces (GUIs), and utilizing a selected data flow path as the data flow path through which the first node and a second node communicate, according to the methods of the present specification described herein.
  • the various modules within the SDN manager ( 100 ) comprise executable program code that may be executed separately. In this example, the various modules may be stored as separate computer program products. In another example, the various modules within the SDN manager ( 100 ) may be combined within a number of computer program products; each computer program product comprising a number of the modules.
  • the modules may be, instead, embodied as a number of data processing engines, a number of application-specific integrated circuits (ASICs), or other processing devices that perform the functionality described herein with regard to the various modules.
  • the processing devices may be coupled to the various hardware devices within the SDN manager ( 100 ) in order to perform their functionality.
  • the present SDN manager ( 100 ) will be described herein as comprising a number of modules.
  • the SDN manager ( 100 ) may include a topology mapping module ( 110 ) to, when executed by the processor ( 101 ), discover and identify a number of hardware computing devices within a computing network.
  • the hardware computing devices may include, for example, a processing device, a controller, a core, a switch, a router, a server device, or a computing device, among many other types of hardware devices that may exist within a network.
  • the SDN manager ( 100 ) may also include a GUI module ( 111 ) to, when executed by the processor ( 101 ), display the topology as discovered and identified by the topology mapping module ( 110 ) on the display device ( 109 ) to a user.
  • the GUI module ( 111 ) provides a user-intelligible representation of the topology of the network and the communication links between the nodes within the topology.
  • the SDN manager ( 100 ) may further include a data flow path determination module ( 112 ) to, when executed by the processor ( 101 ), determine a number of data flow paths between a number of nodes with the computing network.
  • the data flow path determination module ( 112 ) may determine all possible data flow paths between all nodes with the computing network.
  • the data flow path determination module ( 112 ) may determine an optimized data flow path between a number of nodes within the computing network.
  • the data flow path determination module ( 112 ) may use data related to the execution of a number of applications within the network to determine the optimized data flow path as will be described in more detail below.
  • the data flow path determination module ( 112 ) may determine a shortest data flow path within the network. The shortest data flow path is defined by a data flow path within the network with the least amount of hops between a number of nodes.
  • the GUI module ( 111 ) displays the number of data flow paths determined by the data flow path determination module ( 112 ) in a number of the GUIs generated by the GUI module ( 111 ).
  • the GUI module ( 111 ) may display all of the data flow paths, the optimized data flow path, the shortest data flow path, or combinations thereof. In this manner, the GUI module ( 111 ) provides a user-intelligible representation of the data flow paths determined by the data flow path determination module ( 112 ).
  • the SDN manager ( 100 ) may further include a data flow monitoring module ( 113 ) to, when executed by the processor ( 101 ), monitor the data flow paths within the computing network.
  • the data flow monitoring module ( 113 ) may automatically and continuously monitor the various data flow paths within the computing network including, for example, currently utilized data flow paths, an optimized data flow path, a shortest data flow path, or combinations thereof. As described above, this monitoring may be performed to audit security within the network and the hardware devices. Monitoring may also be used to ensure isolation of a data flow path through the network. In most cases, a data flow path may not overlap or intersect another data flow path.
  • the GUI module ( 111 ) may display a number of data flow paths being monitored and their status.
  • FIG. 2 is a block diagram of a network ( 200 ) managed by the SDN manager ( 100 ) of FIG. 1 , according to one example of the principles described herein.
  • the network ( 200 ) of FIG. 2 is an example of a network in which the SDN manager ( 100 ) operates.
  • the SDN manager ( 100 ) may operate in any network of hardware devices.
  • the SDN manager ( 100 ) manages SDNs and other types of networking environments.
  • the SDN manager ( 100 ) provides the ability to easily create data flow paths. In this manner, the network may be programmed without programming experience or resources. This, in turn, furthers the adoption of SDNs in all types of network environments including, for example, datacenters and campus networking environments.
  • the network ( 200 ) of FIG. 2 may comprise a network layer ( 250 ), a controller layer ( 251 ), and an application layer ( 252 ).
  • the network layer ( 250 ) comprises a number of cores ( 204 , 205 ) a number of switches ( 206 through 222 ), and a number of computing devices ( 223 through 227 ).
  • a number of switches ( 210 through 223 ) representing switches 5 through 17 , respectively, may be identified as being included within a number of zones ( 228 , 229 , 230 , 231 ).
  • the zones ( 228 , 229 , 230 , 231 ) provide for a user-friendly way to understand and represent areas within the network ( 200 ).
  • switches may include, for example, a switch that uses an OPENFLOW communications protocol developed and distributed by the Open Networking Foundation, a virtual switch (vSwitch), a physical switch (pSwitch), or a wireless local area network access point (WLAN AP), among other types of switches and routers.
  • OPENFLOW Open Networking Foundation
  • vSwitch virtual switch
  • pSwitch physical switch
  • WLAN AP wireless local area network access point
  • the zones may be represented within a GUI generated by the GUI module ( 111 ) to assist a user in identifying the various nodes ( 201 through 227 ) within the network ( 200 ).
  • the zones ( 228 , 229 , 230 , 231 ) when represented in a GUI, may be user-selectable and expanded to show those nodes that exists within a selected zone.
  • zone B ( 229 ) and zone C ( 230 ) are depicted in a collapsed manner.
  • zone B ( 229 ) and zone C ( 230 ) also comprise a number of nodes that make up part of the network ( 200 ).
  • any type of hardware device may be included as intermediary hardware elements.
  • the computing devices ( 223 through 227 ) of the network may be any type of hardware device. In one example, the computing devices ( 223 through 227 ) may be located on an edge or terminal of the network ( 200 ).
  • the hardware devices ( 204 through 227 ) of the network layer ( 250 ) of the network ( 200 ) are coupled to a number of controllers ( 201 ) located in the controller layer ( 251 ) of the network ( 200 ).
  • the controllers ( 201 ) instruct the switches ( 206 through 222 ) were to send the data that is to be transmitted through the network.
  • the controllers ( 201 ) are coupled to an application data center ( 202 ) that stores a number of applications ( 203 ) to be executed by the computing devices ( 223 through 227 ).
  • the application data center ( 202 ) is located on the application layer ( 252 ) of the network.
  • the applications ( 203 ) may include any application that is used to transmit data from one computing device ( 223 through 227 ) to another computing device within the network ( 200 ).
  • An example of an application is LYNC messaging application developed and distributed by Microsoft Corporation. LYNC allows for instant messaging, voice over internet protocol (VOIP), and video conferencing.
  • LYNC will be used as an example herein of an application ( 203 ) executed on the network ( 200 ) and computing devices ( 223 through 227 ).
  • the applications ( 203 ) stored on the application data center ( 202 ) utilize the network to transmit data between a number of the computing devices ( 223 through 227 ).
  • the SDN manager uses information associated with the applications ( 203 ) in order to provide data flow paths through the network ( 200 ) that meet a number of requirements of the applications ( 203 ) and ensure a level of quality in the transfer of data between the computing devices ( 223 through 227 ).
  • the SDN manager ( 100 ) communicates with and manages any number of hardware devices in the network level such as, for example, controllers, routers, switches, servers, client devices, printers, and modem racks, among many other forms of hardware devices, and may do so either directly or indirectly through another computing device such as, for example, the controllers ( 201 ).
  • the SDN manager ( 100 ) communicates with the hardware devices in the network layer ( 250 ) of the network ( 200 ) using simple network management protocol (SNMP).
  • SNMP is a protocol for managing devices on networks. In this manner, the SDN manager ( 100 ) communicates with and manages any device that supports SNMP.
  • the SDN manager ( 100 ) communicates with and controls the hardware devices in the network layer using a command-line interface (CU).
  • a CLI provides interaction with a computer program stored an executed by the hardware devices where the user issues commands to the program in the form of successive lines of text called command lines.
  • the SDN manager ( 100 ) communicates with and manages any device that supports CLI.
  • the SDN manager ( 100 ) communicates with and manages the controllers ( 201 ) using a representational state transfer (REST) interface.
  • REST is a programmatic access methodology and software architectural style for distributed hypermedia systems like the World Wide Web.
  • REST may execute any interface that uses extensible markup language (XML) markup language, YAML human-readable data serialization format, JavaScript object notation (JSON) scripting language, or plain text over hypertext transfer protocol (HTTP) without an additional messaging layer such as simple object access protocol (SOAP).
  • XML extensible markup language
  • JSON JavaScript object notation
  • HTTP plain text over hypertext transfer protocol
  • SOAP simple object access protocol
  • the SDN manager ( 100 ) also communicates with, manages, and provides adequate bandwidth within the network ( 200 ) for the applications ( 203 ) within the application data center ( 202 ) using REST.
  • the SDN manager ( 100 ) may obtain information regarding the applications ( 203 ) from the controller ( 201 ), which either has that information, or obtains that information from the applications ( 203 ). This is performed using the REST interface protocol. In another example, the SDN manager ( 100 ) obtains the information regarding the applications ( 203 ) directly from the applications ( 203 ). This may be performed using the REST interface protocol, or, depending on the application ( 203 ), with JAVA computer programming language developed and distributed by Oracle Corporation or PYTHON computer programming language developed and distributed by Python Software Foundation, among other types of programming languages.
  • FIG. 3 is a block diagram of a service flow graphical user interface (GUI) ( 301 ) displayed on a display device ( 109 ) of the SDN manager ( 100 ) of FIG. 1 , according to one example of the principles described herein.
  • the service flow graphical user interface (GUI) ( 301 ) comprises a network topology window ( 302 ) that displays the topology of the network.
  • GUI network topology window
  • the network whose topology is displayed is the topology of the network ( 200 ) of FIG. 2 .
  • the zones ( 228 , 229 , 230 , 231 ) depicted in FIG. 2 and reproduced in the network topology window ( 302 ) of FIG. 3 may be user-selectable.
  • an expanded view is presented to the user.
  • An expanded view may be presented as are Zone A ( 228 ) and Zone D ( 231 ) are depicted in FIG. 2 , and as opposed to Zone B ( 229 ) and Zone C ( 230 ) which are depicted in a collapsed view.
  • the user may be able to identify and view the switches and other computing devices in a particular zone ( 228 , 229 , 230 , 231 ) without making the network topology window ( 302 ) cluttered or otherwise difficult to view.
  • the service flow graphical user interface (GUI) ( 301 ) further comprises a flow list window ( 303 ) that displays a number of data flows within the network ( 200 ) displayed in the network topology window ( 302 ).
  • a number of entries may be depicted in a table format to a user that informs the user of a number of data flows between nodes within the network ( 200 ).
  • the information conveyed within the flow list window ( 303 ) may include, for example, a flow number for a number of data flows, a status of a number of devices, and a number of device names that identify the device that is represented in each of the rows.
  • the table depicted in the flow list window ( 303 ) may also include information regarding an input port of each of the devices, a next node with which the node identified in a row is communicating with, an output port of each of the devices, and a match VLAN field that informs a user as to whether the VLAN fore selected data flow matches a VLAN configured on a physical device.
  • the service flow graphical user interface (GUI) ( 301 ) further comprises a flow parameters window ( 304 ) that provides a user with information regarding a flow selected within the flow list window ( 303 ).
  • Information of the parameters of the selected data flow may include, for example, a flow name, a match VLAN, and an amount of bandwidth available within the data flow path measured in, for example, megabytes, among other parameters of the data flow within the network ( 200 ).
  • a “manual” tab and an “auto” tab may be presented to the user.
  • the tabs when selected by a user via the service flow GUI ( 301 ), display manually created and automatically created data flow paths within the network ( 200 ).
  • the manual tab when selected by a user, the user may select a number of nodes represented in the network topology window ( 302 ) that connect two computing devices ( FIG. 2 , 223 through 227 ). For example, if the network ( 200 ) were displayed to a user in the network topology window ( 302 ), and the user wanted to communicatively connect computing device ( 223 ) to computing device ( 226 ), the user would be allowed to select a number of nodes that bridge computing device ( 223 ) to computing device ( 226 ).
  • the user could, with a item selection device such as a mouse or keyboard, select the following nodes between computing device ( 223 ) and computing device ( 226 ): (1) switch 5 ( 210 ), (2) switch 6 ( 211 ), (3) switch 1 ( 206 ), (4) core 1 ( 204 ), (5) core 2 ( 205 ), (6) switch 4 ( 209 ), (7) switch 12 ( 217 ), and (8) switch 13 ( 218 ).
  • a item selection device such as a mouse or keyboard
  • the flow list window ( 303 ) displays each of the nodes within the series of user-selected nodes that connect the computing device ( 223 ) to computing device ( 226 ). In this manner, the user can identify what nodes within the network ( 200 ) he or she has selected.
  • the flow parameters window ( 304 ) will also display the flow parameters of the data flow path that the user selects via the network topology window ( 302 ). In one example, the flow parameters displayed to the user in the flow parameters window ( 304 ) are adjusted as the user adds nodes to the data flow path as he or she selects the nodes. In this manner, the user may identify how the parameters of the data flow path change as nodes are added or subtracted from the data flow path.
  • the display device allows or prompts the user to select two nodes such as, for example, computing devices ( 223 through 227 ) or any other two devices within the network ( 200 ).
  • two nodes such as, for example, computing devices ( 223 through 227 ) or any other two devices within the network ( 200 ).
  • the user may select computing device ( 223 ) and computing device ( 226 ) as the two devices between which the user wishes to create a data flow path.
  • the topology GUI ( 401 ) of FIG. 4 is selected.
  • FIG. 4 is a block diagram of a topology GUI ( 401 ) displayed on a display device ( 109 ) of the SDN manager ( 100 ) of FIG. 1 , according to one example of the principles described herein.
  • the topology GUI ( 401 ) will display the topology of the network ( 200 ) of FIG. 2 , along with an auto-generated data flow path ( 404 ) between the selected nodes, e.g., computing device ( 223 ) and computing device ( 226 ).
  • An example of an automatically-generated data flow path is depicted in the representation of the topology of the network ( 200 ) in the topology GUI ( 401 ) as a dashed line between computing device ( 223 ) and computing device ( 226 ) and a number of intermediary nodes there between.
  • buttons ( 402 , 403 ) may be presented to the user to allow the user to select a type of automatically-determined data flow path within the network ( 200 ).
  • buttons ( 402 , 403 ) may be presented to the user for user selection. If the user selects the shortest path button ( 403 ), then the SDN manager ( 100 ), executing the data flow path determination module ( 112 ), will generate a data flow path between computing device ( 223 ) and computing device ( 226 ) that includes the fewest amount of hops, or, in other words, the lowest hop count.
  • a hop may be defined as one segment of a transmission path between adjacent nodes in a routed network.
  • a hop count may be defined as a measure of the links between two nodes within a network.
  • a hop count of five means that four nodes separate the source and destination devices.
  • the shortest path between computing device ( 223 ) and computing device ( 226 ) assuming the data flow path ( 404 ) depicted in dashed lines in FIG. 4 is the shortest data flow path, then the hop count between computing device ( 223 ) and computing device ( 226 ) is nine, with eight intermediary nodes.
  • the data flow path determination module ( 112 ) may take a number of parameters into consideration when determining the optimized data flow path through the network ( 200 ).
  • One parameter the flow path determination module ( 112 ) may consider is the data flow requirements of a number of applications being executed between the two user-selected nodes the user desires to communicate between.
  • the controllers ( 201 ) are coupled to an application data center ( 202 ) that stores a number of applications ( 203 ) to be executed by the computing devices ( 223 through 227 ).
  • the applications ( 203 ) may include any application that is used to transmit data from one computing device ( 223 through 227 ) to another computing device within the network ( 200 ).
  • An example of an application is LYNC messaging application described above.
  • the various features of LYNC are bandwidth demanding, and if a data flow path within the network ( 200 ) is not chosen to have an adequate amount of bandwidth with respect to the features of LYNC being utilized by, for example, computing device ( 223 ) and computing device ( 226 ), the user's experience with the application will be diminished.
  • the SDN manager ( 100 ) uses information associated with the applications ( 203 ) in order to provide an optimized data flow path ( 404 ) through the network ( 200 ) that meets a number of requirements of the applications ( 203 ) and ensure a level of quality in the transfer of data between the computing devices ( 223 through 227 ).
  • the SDN manager ( 100 ) executing the data flow path determination module ( 112 ), receives a number of bandwidth requirements defined by the LYNC application.
  • the data flow path determination module ( 112 ) will consider the data transfer capabilities of a number of the nodes within the network ( 200 ), calculations of the available bandwidth between the nodes ( 201 through 227 ) within the network ( 200 ), and the bandwidth requirements defined by the application being used to transfer data. Using this information, the data flow path determination module ( 112 ) generates an optimized data flow path ( 404 ). In one example, the data flow path determination module ( 112 ) determines an optimized data flow path with the most bandwidth or the greatest data transfer speed. The generated optimized data flow path ( 404 ) may be presented to the user in the topology GUI ( 401 ) of FIG. 4 .
  • the status of the selected shortest data flow path or optimized data flow path may be monitored by the SDN manager ( 100 ) executing the data flow monitoring module ( 113 ).
  • the flow parameters window ( 304 ) of FIG. 3 and its information may be displayed to the user in either the service flow GUI ( 302 ) of FIG. 3 or the topology GUI ( 401 ) of FIG. 4 .
  • Information regarding the status of the data flow path ( 404 ) such as, for example, the bandwidth through the data flow path ( 404 ), and the status of a number of nodes ( 201 through 227 ) within the network ( 200 ).
  • FIG. 5 is a flow chart showing a method determining a number of data flow paths ( 404 ) within a computing network using an SDN manager ( 100 ), according to one example of the principles described herein.
  • the method of FIG. 5 may begin by, with the processor ( 101 ) of the SDN manager ( 100 ) executing the data flow path determination module ( 112 ), determine (block 501 ) a number of data flow paths between a first node and a second node within the computing network.
  • the processor ( 101 ) SDN manager ( 100 ) displays (block 502 ) the data flow paths to a user via the display device ( 109 ) by the processor ( 101 ) executing the graphical user interface (GUI) module ( 111 ). In this manner, a number of data flow paths may be generated and displayed to a user.
  • GUI graphical user interface
  • FIG. 6 is a flow chart showing a method determining a number of data flow paths ( 404 ) within a computing network using an SDN manager ( 100 ), according to another example of the principles described herein.
  • the method of FIG. 6 may begin by obtaining (block 601 ) information about the network ( 200 ) analyzed by the SDN manager ( 100 ).
  • Block 601 may be performed by the processor ( 101 ) of the SDN manager ( 100 ) executing the topology mapping module ( 110 ).
  • the information obtained by the topology mapping module ( 110 ) may include, for example, the number and type of nodes ( 201 through 227 ) within the network ( 200 ), the relationships between nodes ( 201 through 227 ), a number of potential data flow paths within the network ( 200 ), the existence of a number of controllers ( 201 ), and the existence of a number of applications ( 203 ) that may be executed to transfer data between a number of the nodes ( 201 through 227 ), among other types of information.
  • the representation of the network as defined by the topology will identify the nodes ( 201 through 227 ) within the network ( 200 ) and their relationship using, for example, graphical elements with links between them representing how the nodes ( 201 through 227 ) are connected or otherwise related.
  • the information conveyed within the flow list window ( 303 ) may include, for example, a flow number for a number of data flows, a status of a number of devices device, and a number of device names that identify the device that is represented in each of the rows.
  • the table depicted in the flow list window ( 303 ) may also include information regarding an input port of each of the devices, a next node with which the node identified in a row is communicating with, an output port of each of the devices, and a match VLAN field that informs a user as to whether the VLAN for a selected data flow matches a VLAN configured on a physical device.
  • the method of FIG. 6 may proceed with displaying (block 406 ) information regarding a user-selected data flow within the flow list window ( 303 ).
  • information of the parameters of the selected data flow may include, for example, a flow name, a match VLAN, and an amount of bandwidth available within the data flow path measured in, for example, megabytes, among other parameters of the data flow within the network ( 200 ).
  • the user may select the manual tab of the flow list window ( 303 ) and select a number of nodes ( 201 through 227 ) between a first and a second node through which the user wants data to transfer through.
  • the user may select the “auto” tab of the flow list window ( 303 ).
  • the SDN manager ( 101 ) receives a user-selected indication, and determines (block 606 ), with the data flow path determination module ( 112 ), whether the user selected a shortest data flow path or an optimized data flow path. If the SDN manager ( 100 ) determines (block 606 , determination Shortest) that the user wishes to use the shortest data flow path, then the SDN manager ( 100 ) uses (block 607 ) the data flow path between the two selected computing devices ( 223 through 227 ) that includes the fewest amount of hops, or, in other words, the lowest hop count.
  • the SDN manager ( 100 ) determines (block 606 , determination Optimized) that the user wishes to use the shortest data flow path, then the SDN manager ( 100 ) uses (block 608 ) the data flow path with the most bandwidth or the greatest data transfer speed. Executing the GUI module ( 111 ), the SDN manager ( 100 ) displays (block 609 ) the data flow path to the user. Further, the status of the selected shortest data flow path or optimized data flow path may be monitored by the SDN manager ( 100 ) executing the data flow monitoring module ( 113 ) as described above.
  • the computer usable program code may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the computer usable program code, when executed via, for example, the processor ( 101 ) of the SDN manager ( 100 ) or other programmable data processing apparatus, implement the functions or acts specified in the flowchart and/or block diagram block or blocks.
  • the computer usable program code may be embodied within a computer readable storage medium; the computer readable storage medium being part of the computer program product.
  • the computer readable storage medium is a non-transitory computer readable medium.
  • the specification and figures describe an SDN manager and a method of determining a data flow path within a computing network.
  • the specification and figures provide for determining a number of data flow paths between a first node and a second node within the computing network, and displaying the data flow paths to a user.
  • This (title) may have a number of advantages, including: (1) providing an SDN manager that manages both a software-defined network (SDN) and traditional networking environments; (2) providing the ability to easily create paths and, in this manner, program the network without programming experience or resources; and (3) furthering of the adoption of SDNs in various different networking environments including, for example, datacenters and campuses.
  • SDN software-defined network

Abstract

A method of determining a data flow path within a computing network includes, with the processor executing a data flow path determination module, determining a number of data flow paths between a first node and a second node within the computing network, and with a with the processor executing a graphical user interface (GUI) module, displaying the data flow paths to a user.

Description

BACKGROUND
A software-defined networking (SDN) manager in a network builds a path through the network to allow a number of devices to connect with other devices within the network. Once the SDN manager builds a path through the network, the SDN manager makes decisions about where network traffic is sent by instructing switches within the network to forward packets of data traveling across the network between the devices. As a result, the devices are connected to the other devices.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings illustrate various examples of the principles described herein and are a part of the specification. The illustrated examples are given merely for illustration, and do not limit the scope of the claims.
FIG. 1 is a block diagram of a software-defined network (SDN) manager, according to one example of the principles described herein.
FIG. 2 is a block diagram of a network managed by the SDN manager of FIG. 1, according to one example of the principles described herein.
FIG. 3 is a block diagram of a service flow graphical user interface (GUI) displayed on a display device of the SDN manager of FIG. 1, according to one example of the principles described herein.
FIG. 4 is a block diagram of a topology GUI displayed on a display device of the SDN manager of FIG. 1, according to one example of the principles described herein.
FIG. 5 is a flow chart showing a method determining a number of data flow paths within a computing network using an SDN manager, according to one example of the principles described herein.
FIG. 6 is a flow chart showing a method determining a number of data flow paths within a computing network using an SDN manager, according to another example of the principles described herein.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
DETAILED DESCRIPTION
SDN networks utilize applications tied to a controller within a network to program data flows through the network. The applications utilize application program interfaces (APIs) and other interlaces to communicate with the controller. Although there may exist instances were an SDN network is utilized where no applications are present, a desire to benefit from an SDN network may still exist. Further, there are network environments that do not have developers that can utilize the programmatic interface of the controller. The present SDN manager, in relation to the above, abstracts the programmatic interface of the controller, and provides a number of graphical user interfaces (GUIs) to program the controller and create network paths within the network.
The SDN manager builds a path through a network, and makes decisions about where and how network traffic is sent by instructing switches or other computing devices within the network to forward packets of data traveling across the network between the nodes within the network. In some circumstances, a user may desire an optimized data transfer path to be built by the SDN manager in order to provide for a desired or required bandwidth within that data transfer path. In another circumstance, a user may desire a shortest data flow path with the least amount of hops between two nodes. Thus, the present SDN manager provides for the creation of data flow paths within the network based on a user-desired or user-selected data flow path goal.
As used in the present specification and in the appended claims, the term “node” is meant to be understood broadly as any interconnection point within a computer network. For example, a node may be a possessing device, a controller, a core, a switch, a router, a server device, client devices, printers, or a computing device, among may other types of hardware devices within the network, and combinations thereof.
Further, as used in the present specification and in the appended claims, the term “a number of” or similar language is meant to be understood broadly as any positive number comprising 1 to infinity; zero not being a number, but the absence of a number.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present systems and methods. It will be apparent, however, to one skilled in the art that the present apparatus, systems, and methods may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described in connection with that example is included as described, but may not be included in other examples.
Turning now to the figures, FIG. 1 is a block diagram of a software-defined network (SDN) manager, according to one example of the principles described herein. The SDN manager (100) may be implemented in an electronic device. Examples of electronic devices include servers, desktop computers, laptop computers, personal digital assistants (PDAs), mobile devices, smartphones, gaming systems, and tablets, among other electronic devices.
The SDN manager (100) enables network architects or other users to design and create end-to-end paths through a SDN domain using a map of the topology of the network. The map of the topology is displayed to the user via a number of graphical user interfaces (GUIs). The paths created using the SDN manager (100) is achieved through the GUIs provided by the SDN manager (100). Each path displayed within the GUI of the mapped topology represents a data path in hardware from two or more nodes in the SDN domain.
In one example, data flow paths may be manually created by selecting, via the GUIs, nodes from the topology map. In another example, data flow paths may be automatically created by the SDN manager (100). In this example, the SDN manager (100) selects two end nodes from the topology map. In one example, the SDN manager (100) selects the two end nodes based on user input. In another example, the user selects the end nodes via the GUIs. In this example of automatic data flow path creation, the GUI displays to the user an option of choosing an “optimized data flow path” or a “shortest data flow path,” An optimized data flow path is defined by a data flow path within the network with the most bandwidth available. A shortest data flow path is defined by a data flow path within the network with the fewest hops between the two selected end nodes.
In one example, the paths may be automatically and continuously monitored. This monitoring may be performed to audit security within the network and the hardware devices. Monitoring may also be used to ensure isolation of a data flow path through the network. In most cases, a data flow path may not overlap or intersect another data flow path. If data flow paths were permitted to overlap or intersect, data integrity may be compromised and result in a voiding of multi-tenancy requirements where two individual tenants are not allowed to accesses another tenant's data flows through the network. Monitoring may also be performed to ensure that service level agreements (SLAs) are being met, and to ensure that overall infrastructure capacity loading is being accomplished.
The SDN manager (100) may be utilized in any data processing scenario including, stand-alone hardware, mobile applications, through a computing network, or combinations thereof. Further, the SDN manager (100) may be used in a computing network, a public cloud network, a private cloud network, a hybrid cloud network, other forms of networks, or combinations thereof. In one example, the methods provided by the SDN manager (100) are provided as a service over a network by, for example, a third party. In this example, the service may comprise, for example, the following: a Software as a Service (SaaS) hosting a number of applications; a Platform as a Service (Paas) hosting a computing platform comprising, for example, operating systems, hardware, and storage, among others; an Infrastructure as a Service (IaaS) hosting equipment such as, for example, servers, storage components, network, and components, among others; application program interface (API) as a service (APIaaS), other forms of network services, or combinations thereof. Further, the present systems and methods may be implemented on a wired network, wireless network, physical network, virtual network, or combinations thereof.
The present systems may be implemented on one or multiple hardware platforms, in which the modules in the system can be executed on one or across multiple platforms. Such modules can run on various forms of cloud technologies and hybrid cloud technologies, or offered as a SaaS (Software as a service) that can be implemented on or off the cloud. In one example, one of the multiple platforms may be the Intelligent Management Center (IMC) network management platform developed and distributed by Hewlett Packard Company. In another example, the methods provided by the SDN manager (100) are executed by a local administrator.
To achieve its desired functionality, the SDN manager (100) comprises various hardware components. Among these hardware components may be a number of processors (101), a number of data storage devices (102), a number of peripheral device adapters (103), and a number of network adapters (104). These hardware components may be interconnected through the use of a number of busses and/or network connections. In one example, the processor (101), data storage device (102), peripheral device adapters (103), and a network adapter (104) may be communicatively coupled via a bus (105).
The processor (101) may include the hardware architecture to retrieve executable code from the data storage device (102) and execute the executable code. The executable code may, when executed by the processor (101), cause the processor (101) to implement at least the functionality of determining a number of data flow paths between a first node and a second node within a computing network, displaying the data flow paths to a user via a number of graphical user interfaces (GUIs), and utilizing a selected data flow path as the data flow path through which the first node and a second node communicate, according to the methods of the present specification described herein. In the course of executing code, the processor (101) may receive input from and provide output to a number of the remaining hardware units.
The data storage device (102) may store data such as executable program code that is executed by the processor (101) or other processing device. As will be discussed, the data storage device (102) may specifically store computer code representing a number of applications that the processor (101) executes to implement at least the functionality described herein.
The data storage device (102) may include various types of memory modules, including volatile and nonvolatile memory. For example, the data storage device (102) of the present example includes Random Access Memory (RAM) (106), Read Only Memory (ROM) (107), and Hard Disk Drive (HDD) memory (108). Many other types of memory may also be utilized, and the present specification contemplates the use of many varying type(s) of memory in the data storage device (102) as may suit a particular application of the principles described herein. In certain examples, different types of memory in the data storage device (102) may be used for different data storage needs. For example, in certain examples the processor (101) may boot from Read Only Memory (ROM) (107), maintain nonvolatile storage in the Hard Disk Drive (HDD) memory (108), and execute program code stored in Random Access Memory (RAM) (106).
Generally, the data storage device (102) may comprise a computer readable medium, a computer readable storage medium, or a non-transitory computer readable medium, among others. For example, the data storage device (102) may be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the computer readable storage medium may include, for example, the following: an electrical connection having a number of wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store computer usable program code for use by or in connection with an instruction execution system, apparatus, or device. In another example, a computer readable storage medium may be any non-transitory medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
The hardware adapters (103, 104) in the SDN manager (100) enable the processor (101) to interface with various other hardware elements, external and internal to the SDN manager (100). For example, the peripheral device adapters (103) may provide an interface to input/output devices, such as, for example, display device (109), a mouse, or a keyboard. The peripheral device adapters (103) may also provide access to other external devices such as an external storage device, a number of network devices including, for example, servers, switches, and routers, client devices, other types of computing devices, and combinations thereof that exist within the network.
The display device (109) may be provided to allow a user of the SDN manager (100) to interact with and implement the functionality of the SDN manager (100). The peripheral device adapters (103) may also create an interface between the processor (101) and the display device (109), a printer, or other media output devices. The network adapter (104) may provide an interface to other computing devices within, for example, a network, thereby enabling the transmission of data between the SDN manager (100) and other devices located within the network.
The SDN manager (100) may display the number of graphical user interfaces (GUIs) on the display device (109) associated with the executable program code representing the number of applications stored on the data storage device (102). The GUIs may include aspects of the topology of the network including a number of devices within the network, communication links between the devices, and a number of data flow paths between a number of nodes within a the network. The GUIs may further display a selected data flow path as the data flow path through which a first node and a second node communicate, according to the methods of the present specification described herein.
By making a number of interactive gestures on the GUIs of the display device (109), a user may select a number of nodes between which a user desires to create a data flow path. Additionally, via making a number of interactive gestures on the GUIs of the display device (109), a user may select an optimized data flow path between the number of nodes. The optimized data flow path defines a data flow path within the network with the most available bandwidth. The optimized data flow path is determined based on bandwidth requirements of a number of applications executed within said network. The user may also select a shortest data flow path, the shortest data flow path defining a data flow path within the network with the least amount of hops between a first node and a second node.
Examples of display devices (109) include a computer screen, a laptop screen, a mobile device screen, a personal digital assistant (PDA) screen, and a tablet screen, among other display devices (106). Examples of the GUIs displayed on the display device (109) will be described in more detail below.
The SDN manager (100) further comprises a number of modules used in the implementation of determining a number of data flow paths between a first node and a second node within a computing network, displaying the data flow paths to a user via a number of graphical user interfaces (GUIs), and utilizing a selected data flow path as the data flow path through which the first node and a second node communicate, according to the methods of the present specification described herein. The various modules within the SDN manager (100) comprise executable program code that may be executed separately. In this example, the various modules may be stored as separate computer program products. In another example, the various modules within the SDN manager (100) may be combined within a number of computer program products; each computer program product comprising a number of the modules.
In still another example, the modules may be, instead, embodied as a number of data processing engines, a number of application-specific integrated circuits (ASICs), or other processing devices that perform the functionality described herein with regard to the various modules. In this example, the processing devices may be coupled to the various hardware devices within the SDN manager (100) in order to perform their functionality. However, the present SDN manager (100) will be described herein as comprising a number of modules.
The SDN manager (100) may include a topology mapping module (110) to, when executed by the processor (101), discover and identify a number of hardware computing devices within a computing network. As described herein, the hardware computing devices may include, for example, a processing device, a controller, a core, a switch, a router, a server device, or a computing device, among many other types of hardware devices that may exist within a network.
The SDN manager (100) may also include a GUI module (111) to, when executed by the processor (101), display the topology as discovered and identified by the topology mapping module (110) on the display device (109) to a user. In this manner, the GUI module (111) provides a user-intelligible representation of the topology of the network and the communication links between the nodes within the topology.
The SDN manager (100) may further include a data flow path determination module (112) to, when executed by the processor (101), determine a number of data flow paths between a number of nodes with the computing network. In one example, the data flow path determination module (112) may determine all possible data flow paths between all nodes with the computing network. In another example, the data flow path determination module (112) may determine an optimized data flow path between a number of nodes within the computing network. In this example, the data flow path determination module (112) may use data related to the execution of a number of applications within the network to determine the optimized data flow path as will be described in more detail below. In another example, the data flow path determination module (112) may determine a shortest data flow path within the network. The shortest data flow path is defined by a data flow path within the network with the least amount of hops between a number of nodes.
The GUI module (111) displays the number of data flow paths determined by the data flow path determination module (112) in a number of the GUIs generated by the GUI module (111). The GUI module (111) may display all of the data flow paths, the optimized data flow path, the shortest data flow path, or combinations thereof. In this manner, the GUI module (111) provides a user-intelligible representation of the data flow paths determined by the data flow path determination module (112).
The SDN manager (100) may further include a data flow monitoring module (113) to, when executed by the processor (101), monitor the data flow paths within the computing network. The data flow monitoring module (113) may automatically and continuously monitor the various data flow paths within the computing network including, for example, currently utilized data flow paths, an optimized data flow path, a shortest data flow path, or combinations thereof. As described above, this monitoring may be performed to audit security within the network and the hardware devices. Monitoring may also be used to ensure isolation of a data flow path through the network. In most cases, a data flow path may not overlap or intersect another data flow path. If data flow paths were permitted to overlap or intersect, data integrity may be compromised and result in a voiding of multi-tenancy requirements where two individual tenants are not allowed to accesses another tenant's data flows through the network. Monitoring may also be performed to ensure that service level agreements (SLAs) are being met, and to ensure that overall infrastructure capacity loading is being accomplished. The GUI module (111) may display a number of data flow paths being monitored and their status.
FIG. 2 is a block diagram of a network (200) managed by the SDN manager (100) of FIG. 1, according to one example of the principles described herein. The network (200) of FIG. 2 is an example of a network in which the SDN manager (100) operates. The SDN manager (100) may operate in any network of hardware devices. The SDN manager (100) manages SDNs and other types of networking environments. The SDN manager (100) provides the ability to easily create data flow paths. In this manner, the network may be programmed without programming experience or resources. This, in turn, furthers the adoption of SDNs in all types of network environments including, for example, datacenters and campus networking environments.
The network (200) of FIG. 2 may comprise a network layer (250), a controller layer (251), and an application layer (252). In the example of FIG. 2, the network layer (250) comprises a number of cores (204, 205) a number of switches (206 through 222), and a number of computing devices (223 through 227). A number of switches (210 through 223) representing switches 5 through 17, respectively, may be identified as being included within a number of zones (228, 229, 230, 231). The zones (228, 229, 230, 231) provide for a user-friendly way to understand and represent areas within the network (200). Examples of switches may include, for example, a switch that uses an OPENFLOW communications protocol developed and distributed by the Open Networking Foundation, a virtual switch (vSwitch), a physical switch (pSwitch), or a wireless local area network access point (WLAN AP), among other types of switches and routers.
As will be discussed in more detail below, the zones may be represented within a GUI generated by the GUI module (111) to assist a user in identifying the various nodes (201 through 227) within the network (200). Further, as will described in more detail below, the zones (228, 229, 230, 231), when represented in a GUI, may be user-selectable and expanded to show those nodes that exists within a selected zone. As depicted in FIG. 2, zone B (229) and zone C (230) are depicted in a collapsed manner. However, although not depicted, zone B (229) and zone C (230) also comprise a number of nodes that make up part of the network (200).
Further, although a number of switches (206 through 222) are depicted in the network (200) of FIG. 2, any type of hardware device may be included as intermediary hardware elements. The computing devices (223 through 227) of the network may be any type of hardware device. In one example, the computing devices (223 through 227) may be located on an edge or terminal of the network (200).
The hardware devices (204 through 227) of the network layer (250) of the network (200) are coupled to a number of controllers (201) located in the controller layer (251) of the network (200). The controllers (201) instruct the switches (206 through 222) were to send the data that is to be transmitted through the network.
The controllers (201) are coupled to an application data center (202) that stores a number of applications (203) to be executed by the computing devices (223 through 227). The application data center (202) is located on the application layer (252) of the network. The applications (203) may include any application that is used to transmit data from one computing device (223 through 227) to another computing device within the network (200). An example of an application is LYNC messaging application developed and distributed by Microsoft Corporation. LYNC allows for instant messaging, voice over internet protocol (VOIP), and video conferencing. These features of LYNC are bandwidth demanding, and if a data flow path within the network (200) is not chosen to have an adequate amount of bandwidth with respect to the features of LYNC being utilized by the computing devices (223 through 227), the user's experience with the application will be diminished. LYNC will be used as an example herein of an application (203) executed on the network (200) and computing devices (223 through 227).
The applications (203) stored on the application data center (202) utilize the network to transmit data between a number of the computing devices (223 through 227). As will be described in more detail below, the SDN manager uses information associated with the applications (203) in order to provide data flow paths through the network (200) that meet a number of requirements of the applications (203) and ensure a level of quality in the transfer of data between the computing devices (223 through 227).
In one example, the SDN manager (100), although being coupled to all layers (250, 251, 252) of the network (200), is not considered part of any of the layers (250, 251, 252). The SDN manager (100) communicates with and manages any number of hardware devices in the network level such as, for example, controllers, routers, switches, servers, client devices, printers, and modem racks, among many other forms of hardware devices, and may do so either directly or indirectly through another computing device such as, for example, the controllers (201). In one example, the SDN manager (100) communicates with the hardware devices in the network layer (250) of the network (200) using simple network management protocol (SNMP). SNMP is a protocol for managing devices on networks. In this manner, the SDN manager (100) communicates with and manages any device that supports SNMP.
In another example, the SDN manager (100) communicates with and controls the hardware devices in the network layer using a command-line interface (CU). A CLI provides interaction with a computer program stored an executed by the hardware devices where the user issues commands to the program in the form of successive lines of text called command lines. Thus, the SDN manager (100) communicates with and manages any device that supports CLI.
The SDN manager (100) communicates with and manages the controllers (201) using a representational state transfer (REST) interface. REST is a programmatic access methodology and software architectural style for distributed hypermedia systems like the World Wide Web. REST may execute any interface that uses extensible markup language (XML) markup language, YAML human-readable data serialization format, JavaScript object notation (JSON) scripting language, or plain text over hypertext transfer protocol (HTTP) without an additional messaging layer such as simple object access protocol (SOAP). In this manner, the SDN manager (100) communicates with and manages any device that supports REST including, for example, the controllers (201).
The SDN manager (100) also communicates with, manages, and provides adequate bandwidth within the network (200) for the applications (203) within the application data center (202) using REST.
In one example, the SDN manager (100) may obtain information regarding the applications (203) from the controller (201), which either has that information, or obtains that information from the applications (203). This is performed using the REST interface protocol. In another example, the SDN manager (100) obtains the information regarding the applications (203) directly from the applications (203). This may be performed using the REST interface protocol, or, depending on the application (203), with JAVA computer programming language developed and distributed by Oracle Corporation or PYTHON computer programming language developed and distributed by Python Software Foundation, among other types of programming languages.
As described above, the SDN manager (100), by executing the GUI module (111), displays a number of GUIs on the display device (109) of the SDN manager (100) by executing, for example, the topology mapping module (110) and the GUI module (111). FIG. 3 is a block diagram of a service flow graphical user interface (GUI) (301) displayed on a display device (109) of the SDN manager (100) of FIG. 1, according to one example of the principles described herein. The service flow graphical user interface (GUI) (301) comprises a network topology window (302) that displays the topology of the network. In the example of FIG. 3, the network whose topology is displayed is the topology of the network (200) of FIG. 2. In one example, the zones (228, 229, 230, 231) depicted in FIG. 2 and reproduced in the network topology window (302) of FIG. 3, may be user-selectable. In this example, when a zone (228, 229, 230, 231) is selected, an expanded view is presented to the user. An expanded view may be presented as are Zone A (228) and Zone D (231) are depicted in FIG. 2, and as opposed to Zone B (229) and Zone C (230) which are depicted in a collapsed view. In this manner, the user may be able to identify and view the switches and other computing devices in a particular zone (228, 229, 230, 231) without making the network topology window (302) cluttered or otherwise difficult to view.
The service flow graphical user interface (GUI) (301) further comprises a flow list window (303) that displays a number of data flows within the network (200) displayed in the network topology window (302). As depicted in FIG. 3, a number of entries may be depicted in a table format to a user that informs the user of a number of data flows between nodes within the network (200). In each row of the table, the information conveyed within the flow list window (303) may include, for example, a flow number for a number of data flows, a status of a number of devices, and a number of device names that identify the device that is represented in each of the rows. The table depicted in the flow list window (303) may also include information regarding an input port of each of the devices, a next node with which the node identified in a row is communicating with, an output port of each of the devices, and a match VLAN field that informs a user as to whether the VLAN fore selected data flow matches a VLAN configured on a physical device.
The service flow graphical user interface (GUI) (301) further comprises a flow parameters window (304) that provides a user with information regarding a flow selected within the flow list window (303). Information of the parameters of the selected data flow may include, for example, a flow name, a match VLAN, and an amount of bandwidth available within the data flow path measured in, for example, megabytes, among other parameters of the data flow within the network (200).
A “manual” tab and an “auto” tab may be presented to the user. The tabs, when selected by a user via the service flow GUI (301), display manually created and automatically created data flow paths within the network (200). When the manual tab is selected by a user, the user may select a number of nodes represented in the network topology window (302) that connect two computing devices (FIG. 2, 223 through 227). For example, if the network (200) were displayed to a user in the network topology window (302), and the user wanted to communicatively connect computing device (223) to computing device (226), the user would be allowed to select a number of nodes that bridge computing device (223) to computing device (226). For example, the user could, with a item selection device such as a mouse or keyboard, select the following nodes between computing device (223) and computing device (226): (1) switch 5 (210), (2) switch 6 (211), (3) switch 1 (206), (4) core 1 (204), (5) core 2 (205), (6) switch 4 (209), (7) switch 12 (217), and (8) switch 13 (218). In this manner, the user may dictate which path through the network (200) the data is to flow.
The flow list window (303) displays each of the nodes within the series of user-selected nodes that connect the computing device (223) to computing device (226). In this manner, the user can identify what nodes within the network (200) he or she has selected. The flow parameters window (304) will also display the flow parameters of the data flow path that the user selects via the network topology window (302). In one example, the flow parameters displayed to the user in the flow parameters window (304) are adjusted as the user adds nodes to the data flow path as he or she selects the nodes. In this manner, the user may identify how the parameters of the data flow path change as nodes are added or subtracted from the data flow path.
If a user selects the “auto” tab of the flow list window (303), the display device allows or prompts the user to select two nodes such as, for example, computing devices (223 through 227) or any other two devices within the network (200). For example, in continuation of the above example regarding manual selection of nodes, the user may select computing device (223) and computing device (226) as the two devices between which the user wishes to create a data flow path. Once the two nodes are selected, the topology GUI (401) of FIG. 4. FIG. 4 is a block diagram of a topology GUI (401) displayed on a display device (109) of the SDN manager (100) of FIG. 1, according to one example of the principles described herein.
The topology GUI (401) will display the topology of the network (200) of FIG. 2, along with an auto-generated data flow path (404) between the selected nodes, e.g., computing device (223) and computing device (226). An example of an automatically-generated data flow path is depicted in the representation of the topology of the network (200) in the topology GUI (401) as a dashed line between computing device (223) and computing device (226) and a number of intermediary nodes there between.
A number of buttons (402, 403) may be presented to the user to allow the user to select a type of automatically-determined data flow path within the network (200). For example, an “optimized path” button (402) and a “shortest path” button (403) may be presented to the user for user selection. If the user selects the shortest path button (403), then the SDN manager (100), executing the data flow path determination module (112), will generate a data flow path between computing device (223) and computing device (226) that includes the fewest amount of hops, or, in other words, the lowest hop count. A hop may be defined as one segment of a transmission path between adjacent nodes in a routed network. Thus, a hop count may be defined as a measure of the links between two nodes within a network. A hop count of five means that four nodes separate the source and destination devices. Thus, the shortest path between computing device (223) and computing device (226), assuming the data flow path (404) depicted in dashed lines in FIG. 4 is the shortest data flow path, then the hop count between computing device (223) and computing device (226) is nine, with eight intermediary nodes.
If the user selects the optimized path button (402), then the SDN manager (100), executing the data flow path determination module (112), determines an optimized data flow path is represented as the data flow path (404) in the topology GUI (401). The data flow path determination module (112) may take a number of parameters into consideration when determining the optimized data flow path through the network (200). One parameter the flow path determination module (112) may consider is the data flow requirements of a number of applications being executed between the two user-selected nodes the user desires to communicate between. As described above, the controllers (201) are coupled to an application data center (202) that stores a number of applications (203) to be executed by the computing devices (223 through 227). The applications (203) may include any application that is used to transmit data from one computing device (223 through 227) to another computing device within the network (200). An example of an application is LYNC messaging application described above. The various features of LYNC are bandwidth demanding, and if a data flow path within the network (200) is not chosen to have an adequate amount of bandwidth with respect to the features of LYNC being utilized by, for example, computing device (223) and computing device (226), the user's experience with the application will be diminished.
The SDN manager (100) uses information associated with the applications (203) in order to provide an optimized data flow path (404) through the network (200) that meets a number of requirements of the applications (203) and ensure a level of quality in the transfer of data between the computing devices (223 through 227). In the example of LYNC, the SDN manager (100), executing the data flow path determination module (112), receives a number of bandwidth requirements defined by the LYNC application. Based on these bandwidth requirements, the data flow path determination module (112) will consider the data transfer capabilities of a number of the nodes within the network (200), calculations of the available bandwidth between the nodes (201 through 227) within the network (200), and the bandwidth requirements defined by the application being used to transfer data. Using this information, the data flow path determination module (112) generates an optimized data flow path (404). In one example, the data flow path determination module (112) determines an optimized data flow path with the most bandwidth or the greatest data transfer speed. The generated optimized data flow path (404) may be presented to the user in the topology GUI (401) of FIG. 4.
Further, the status of the selected shortest data flow path or optimized data flow path may be monitored by the SDN manager (100) executing the data flow monitoring module (113). In one example, the flow parameters window (304) of FIG. 3 and its information may be displayed to the user in either the service flow GUI (302) of FIG. 3 or the topology GUI (401) of FIG. 4. Information regarding the status of the data flow path (404) such as, for example, the bandwidth through the data flow path (404), and the status of a number of nodes (201 through 227) within the network (200).
FIG. 5 is a flow chart showing a method determining a number of data flow paths (404) within a computing network using an SDN manager (100), according to one example of the principles described herein. The method of FIG. 5 may begin by, with the processor (101) of the SDN manager (100) executing the data flow path determination module (112), determine (block 501) a number of data flow paths between a first node and a second node within the computing network. The processor (101) SDN manager (100) displays (block 502) the data flow paths to a user via the display device (109) by the processor (101) executing the graphical user interface (GUI) module (111). In this manner, a number of data flow paths may be generated and displayed to a user. The method of FIG. 5 will now be described in more detail in connection with FIG. 6.
FIG. 6 is a flow chart showing a method determining a number of data flow paths (404) within a computing network using an SDN manager (100), according to another example of the principles described herein. The method of FIG. 6 may begin by obtaining (block 601) information about the network (200) analyzed by the SDN manager (100). Block 601 may be performed by the processor (101) of the SDN manager (100) executing the topology mapping module (110). The information obtained by the topology mapping module (110) may include, for example, the number and type of nodes (201 through 227) within the network (200), the relationships between nodes (201 through 227), a number of potential data flow paths within the network (200), the existence of a number of controllers (201), and the existence of a number of applications (203) that may be executed to transfer data between a number of the nodes (201 through 227), among other types of information.
The SDN manager (100), executing the topology mapping module (110) and the GUI module (111), displays (block 602) the topology of the network (200) in the service flow GUI (301). The representation of the network as defined by the topology will identify the nodes (201 through 227) within the network (200) and their relationship using, for example, graphical elements with links between them representing how the nodes (201 through 227) are connected or otherwise related.
The SDN manager (100), executing the data flow monitoring module (113) and the GUI module (111), displays (block 603) information associated with a number of data flows via a flow list window (303). As described above, the displays a number of data flows within the network (200) displayed in the network topology window (302). As depicted in FIG. 3, a number of entries may be depicted in a table format to a user that informs the user of a number of data flows between nodes within the network (200). In each row of the table, the information conveyed within the flow list window (303) may include, for example, a flow number for a number of data flows, a status of a number of devices device, and a number of device names that identify the device that is represented in each of the rows. The table depicted in the flow list window (303) may also include information regarding an input port of each of the devices, a next node with which the node identified in a row is communicating with, an output port of each of the devices, and a match VLAN field that informs a user as to whether the VLAN for a selected data flow matches a VLAN configured on a physical device.
The method of FIG. 6 may proceed with displaying (block 406) information regarding a user-selected data flow within the flow list window (303). As described above, information of the parameters of the selected data flow may include, for example, a flow name, a match VLAN, and an amount of bandwidth available within the data flow path measured in, for example, megabytes, among other parameters of the data flow within the network (200).
The SDN manager (100), executing the data flow path determination module (112) and other modules (110, 111, 113), receives (block 605) a number of inputs from a user via the service flow GUI (301), and determines (block 606) a number of data flow paths from a first node to a second node within the network (200). As described above, the user may select the manual tab of the flow list window (303) and select a number of nodes (201 through 227) between a first and a second node through which the user wants data to transfer through.
In another example and as described above, the user may select the “auto” tab of the flow list window (303). Thus, the SDN manager (101) receives a user-selected indication, and determines (block 606), with the data flow path determination module (112), whether the user selected a shortest data flow path or an optimized data flow path. If the SDN manager (100) determines (block 606, determination Shortest) that the user wishes to use the shortest data flow path, then the SDN manager (100) uses (block 607) the data flow path between the two selected computing devices (223 through 227) that includes the fewest amount of hops, or, in other words, the lowest hop count. If, however, the SDN manager (100) determines (block 606, determination Optimized) that the user wishes to use the shortest data flow path, then the SDN manager (100) uses (block 608) the data flow path with the most bandwidth or the greatest data transfer speed. Executing the GUI module (111), the SDN manager (100) displays (block 609) the data flow path to the user. Further, the status of the selected shortest data flow path or optimized data flow path may be monitored by the SDN manager (100) executing the data flow monitoring module (113) as described above.
Aspects of the present system and method are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to examples of the principles described herein. Each block of the flowchart illustrations and block diagrams, and combinations of blocks in the flowchart illustrations and block diagrams, may be implemented by computer usable program code. The computer usable program code may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the computer usable program code, when executed via, for example, the processor (101) of the SDN manager (100) or other programmable data processing apparatus, implement the functions or acts specified in the flowchart and/or block diagram block or blocks. In one example, the computer usable program code may be embodied within a computer readable storage medium; the computer readable storage medium being part of the computer program product. In one example, the computer readable storage medium is a non-transitory computer readable medium.
The specification and figures describe an SDN manager and a method of determining a data flow path within a computing network. The specification and figures provide for determining a number of data flow paths between a first node and a second node within the computing network, and displaying the data flow paths to a user. This (title) may have a number of advantages, including: (1) providing an SDN manager that manages both a software-defined network (SDN) and traditional networking environments; (2) providing the ability to easily create paths and, in this manner, program the network without programming experience or resources; and (3) furthering of the adoption of SDNs in various different networking environments including, for example, datacenters and campuses.
The preceding description has been presented to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching.

Claims (19)

What is claimed is:
1. A software-defined networking (SDN) manager, comprising:
a processor; and
a memory coupled to the processor, in which the memory comprises:
a topology mapping module to map a topology of a computing network; and
a data flow monitoring module to, when executed by the processor, determine a number of data flow paths through the topology based on a number of user-selected parameters;
wherein the user-selected parameters comprise a selection of a first node, a second node, and an intermediate node intermediate to the first and second node and wherein the data flow monitoring module determines the number of data flow paths as the number of data flow paths pass through the intermediate node.
2. The SDN manager of claim 1, further comprising a graphical user interface (GUI) module to display a number of GUIs to a user; in which the GUI module displays a number of representations of the data flow paths in the GUIs.
3. The SDN manager of claim 2, in which the representations of the data flow paths comprise:
a number of nodes; and
a number of paths between the nodes,
in which the first and second nodes represent a number of devices within the network and the paths represent communication paths between the devices.
4. The SDN manager of claim 2, in which the data flow paths represent an optimized data flow path, the optimized data flow path defining a data flow path within the network with the most available bandwidth.
5. The SDN manager of claim 4, in which the optimized data flow path is determined based on a number of bandwidth requirements of a number of applications executed within the network.
6. The SDN manager of claim 2, in which the data flow paths represent a shortest data flow path, the shortest data flow path defining a data flow path within the network with the least amount of hops between the first node and the second node.
7. The SDN manager of claim 2, in which the GUIs are displayed to a user on a display device coupled to the SDN manager.
8. The software-defined networking (SDN) manager of claim 1, wherein the data flow monitoring module further monitors a number of data flow paths and maintains isolation of any data flow paths such that data flow paths operating through the network do not overlap.
9. A computer program product for determining a number of data flow paths within a computing network, the computer program product comprising:
a non-transitory computer readable storage medium comprising computer usable program code embodied therewith, the computer usable program code comprising:
computer usable program code to, when executed by a processor, determine a number of data flow paths between a first node and a second node with the computing network;
computer usable program code to, when executed by a processor, determine which of the number of data flow paths flow through a user selected intermediate node intermediate between the first node and second node; and
computer usable program code to, when executed by a processor, determine an optimized data flow path, the optimized data flow path defining a data flow path within the network with the most available bandwidth, in which the optimized data flow path is determined based on bandwidth requirements of a number of applications executed within said network;
computer usable program code to, when executed by a processor, determine a shortest data flow path, the shortest data flow path defining a data flow path within the network with the least amount of hops between the first node and the second node; and
computer usable program code to, when executed by a processor, monitor the number of data flow paths and maintain isolation of any data flow paths such that data flow paths operating through the network do not overlap.
10. The computer program product of claim 9, further comprising computer usable program code to, when executed by a processor, display to a user the data flow paths.
11. The computer program product of claim 9, further comprising computer usable program code to, when executed by a processor, receive a user selection of the optimized data flow path or the shortest data flow path as a selected data flow path for communication between the first and second node.
12. The computer program product of claim 11, further comprising computer usable program code to, when executed by a processor, utilize the selected data flow path as the data flow path through which the first node and the second node communicate.
13. The computer program product of claim 9, further comprising computer usable program code to, when executed by a processor, communicate with and manage a number of devices in the computing network using a representational state transfer (REST) interface, the number of devices in the computing network communicating using OPENFLOW communication protocol.
14. A method of determining a data flow path within a computing network comprising:
with a processor executing a data flow path determination module, determining a number of data flow paths between a first node and a second node within the computing network; and
with the processor executing a graphical user interface (GUI) module, displaying the data flow paths to a user;
with the processor, determining an optimized data flow path;
with the processor, determining a shortest data flow path;
receiving a user selection of the optimized data flow path or the shortest data flow path as a selected data flow path for communication between the first and second node;
wherein, when the selection of the optimized data flow path is received, receiving a selection of a node intermediate to the first and second node through which the data flow determination module calculates the optimized data flow path.
15. The method of claim 14, in which the optimized data flow path defines one of the number of data flow paths within the network with the most available bandwidth, in which the optimized data flow path is determined based on bandwidth requirements of a number of applications executed within said network; and
the shortest data flow path defines a data flow path within the network with the least amount of hops between the first node and the second node.
16. The method claim 15, further comprising computer usable program code to, when executed by a processor, utilize the selected data flow path as the data flow path through which the first node and the second node communicate.
17. The method of claim 14, further comprising displaying a graphical user interface (GUI) indicating the number of selections of a number of nodes selected by the user and data flow parameters of the data flow path that the user selects.
18. The method of claim 14, further comprising communicating and managing a number of devices in the computing network using a representational state transfer (REST) interface, the number of devices in the computing network communicating using OPENFLOW communication protocol.
19. The method of claim 14, further comprising monitoring a number of data flow paths and maintaining isolation of any data flow paths such that data flow paths operating through the network do not overlap.
US14/053,150 2013-10-14 2013-10-14 Data flow path determination Active 2034-03-13 US9288143B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/053,150 US9288143B2 (en) 2013-10-14 2013-10-14 Data flow path determination
US15/070,246 US20160197818A1 (en) 2013-10-14 2016-03-15 Data flow path determination

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/053,150 US9288143B2 (en) 2013-10-14 2013-10-14 Data flow path determination

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/070,246 Continuation US20160197818A1 (en) 2013-10-14 2016-03-15 Data flow path determination

Publications (2)

Publication Number Publication Date
US20150103672A1 US20150103672A1 (en) 2015-04-16
US9288143B2 true US9288143B2 (en) 2016-03-15

Family

ID=52809558

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/053,150 Active 2034-03-13 US9288143B2 (en) 2013-10-14 2013-10-14 Data flow path determination
US15/070,246 Abandoned US20160197818A1 (en) 2013-10-14 2016-03-15 Data flow path determination

Family Applications After (1)

Application Number Title Priority Date Filing Date
US15/070,246 Abandoned US20160197818A1 (en) 2013-10-14 2016-03-15 Data flow path determination

Country Status (1)

Country Link
US (2) US9288143B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11716278B1 (en) 2022-01-25 2023-08-01 Bank Of America Corporation System and method for determining the shortest data transfer path in data communication
US11924087B2 (en) * 2020-12-18 2024-03-05 Ciena Corporation Adjustable multi-criteria network path computation and visualizations thereof

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9924242B2 (en) 2012-04-20 2018-03-20 Itron Global Sarl Automatic network topology detection and fraud detection
US10230603B2 (en) 2012-05-21 2019-03-12 Thousandeyes, Inc. Cross-layer troubleshooting of application delivery
US9338097B2 (en) * 2013-10-31 2016-05-10 Telefonaktiebolaget L M Ericsson (Publ) Method and system for load balancing at a data network
US10571493B2 (en) 2014-02-25 2020-02-25 Itron, Inc. Smart grid topology estimator
US11079417B2 (en) 2014-02-25 2021-08-03 Itron, Inc. Detection of electric power diversion
US10877955B2 (en) * 2014-04-29 2020-12-29 Microsoft Technology Licensing, Llc Using lineage to infer data quality issues
US10089409B2 (en) 2014-04-29 2018-10-02 Microsoft Technology Licensing, Llc Event-triggered data quality verification
US20170006082A1 (en) * 2014-06-03 2017-01-05 Nimit Shishodia Software Defined Networking (SDN) Orchestration by Abstraction
US9692689B2 (en) * 2014-08-27 2017-06-27 International Business Machines Corporation Reporting static flows to a switch controller in a software-defined network (SDN)
US9871691B2 (en) 2014-09-16 2018-01-16 CloudGenix, Inc. Methods and systems for hub high availability and network load and scaling
US9843685B1 (en) * 2014-09-26 2017-12-12 8X8, Inc. User configurable routing of VoIP calls
US9568522B2 (en) 2014-10-20 2017-02-14 Itron, Inc. Electrical phase identification
US9781231B2 (en) * 2014-11-19 2017-10-03 Itron, Inc. Application platform operable on network node
US9835662B2 (en) 2014-12-02 2017-12-05 Itron, Inc. Electrical network topology determination
AU2016209319B2 (en) 2015-01-20 2019-01-17 Huawei Technologies Co., Ltd. Method and apparatus for NFV management and orchestration
WO2016118646A1 (en) * 2015-01-20 2016-07-28 Huawei Technologies Co., Ltd Systems and methods for sdt to interwork with nfv and sdn
US11556542B2 (en) * 2015-02-07 2023-01-17 International Business Machines Corporation Optionally compressed output from command-line interface
US10312681B2 (en) 2015-05-28 2019-06-04 Itron, Inc. Automatic network device electrical phase identification
WO2016209426A1 (en) * 2015-06-26 2016-12-29 Mcafee, Inc. Systems and methods for routing data using software-defined networks
US9852309B2 (en) * 2016-01-05 2017-12-26 Prifender Ltd. System and method for securing personal data elements
US10671520B1 (en) 2016-06-15 2020-06-02 Thousandeyes, Inc. Scheduled tests for endpoint agents
US10659325B2 (en) 2016-06-15 2020-05-19 Thousandeyes, Inc. Monitoring enterprise networks with endpoint agents
US10659476B2 (en) 2016-09-12 2020-05-19 Architecture Technology Corporation Transparent bridge for monitoring crypto-partitioned wide-area network
WO2019000340A1 (en) * 2017-06-29 2019-01-03 华为技术有限公司 Network topology structure mapping method and device, terminal and storage medium
US11082338B1 (en) * 2018-04-17 2021-08-03 Amazon Technologies, Inc. Distributed connection state tracking for large-volume network flows
CN108696453B (en) * 2018-07-25 2022-03-04 北京智芯微电子科技有限公司 Lightweight SDN service flow notification method and system
US11032124B1 (en) 2018-10-24 2021-06-08 Thousandeyes Llc Application aware device monitoring
US10848402B1 (en) 2018-10-24 2020-11-24 Thousandeyes, Inc. Application aware device monitoring correlation and visualization
US11336509B2 (en) * 2018-10-31 2022-05-17 EMC IP Holding Company LLC Detecting single points of failure on a storage system
US11032154B2 (en) * 2018-12-21 2021-06-08 Cisco Technology, Inc. Graphical user interface for displaying a hierarchical network topology in a single site view
US10931539B2 (en) * 2018-12-21 2021-02-23 Cisco Technology, Inc. Graphical user interface for displaying a network traffic route in a single-view display
US10567249B1 (en) * 2019-03-18 2020-02-18 Thousandeyes, Inc. Network path visualization using node grouping and pagination
US20210021492A1 (en) * 2019-07-19 2021-01-21 NetBrain Technologies, Inc. Network management with topology dependency and path generation
CN111917645A (en) * 2020-08-20 2020-11-10 深圳多拉多通信技术有限公司 SDN-based path optimization method and system for mobile network
US11463366B1 (en) * 2020-09-22 2022-10-04 Architecture Technology Corporation Autonomous network optimization using network templates
CN112583715B (en) * 2020-12-08 2022-05-27 广州技象科技有限公司 Equipment node connection adjustment method and device
CN114157718B (en) * 2021-11-12 2023-07-25 国网冀北电力有限公司信息通信分公司 SDN network system and control method thereof
US20230393863A1 (en) * 2022-06-03 2023-12-07 Chevron U.S.A. Inc. System and method for integrating new arrangements into one or more systems of applications
CN117339199B (en) * 2023-10-27 2024-04-12 常州贝壳网络科技有限公司 Multi-path game acceleration system and method

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477572B1 (en) * 1998-12-17 2002-11-05 International Business Machines Corporation Method for displaying a network topology for a task deployment service
US20030046390A1 (en) * 2000-05-05 2003-03-06 Scott Ball Systems and methods for construction multi-layer topological models of computer networks
US6564258B1 (en) * 1998-09-30 2003-05-13 Nortel Networks Limited Detection of network topology changes affecting trail routing consistency
US20030115319A1 (en) * 2001-12-17 2003-06-19 Dawson Jeffrey L. Network paths
US20030128231A1 (en) * 2002-01-09 2003-07-10 Stephane Kasriel Dynamic path analysis
US20030137532A1 (en) * 2001-12-19 2003-07-24 Alcatel Canada Inc. Method and system for IP link management
US20040061701A1 (en) * 2002-09-30 2004-04-01 Arquie Louis M. Method and system for generating a network monitoring display with animated utilization information
US6956821B2 (en) 2001-01-30 2005-10-18 Telefonaktiebolaget L M Ericsson (Publ) Path determination in a data network
US20060182034A1 (en) * 2002-12-13 2006-08-17 Eric Klinker Topology aware route control
US7168044B1 (en) * 2000-12-22 2007-01-23 Turin Networks Apparatus and method for automatic network connection provisioning
US20070258368A1 (en) 2006-05-05 2007-11-08 Agilemesh, Inc. Network device user control interface
US20090077478A1 (en) * 2007-09-18 2009-03-19 International Business Machines Corporation Arrangements for managing processing components using a graphical user interface
US20100040366A1 (en) 2008-08-15 2010-02-18 Tellabs Operations, Inc. Method and apparatus for displaying and identifying available wavelength paths across a network
US7681130B1 (en) * 2006-03-31 2010-03-16 Emc Corporation Methods and apparatus for displaying network data
US8064358B2 (en) * 2007-02-28 2011-11-22 Red Hat, Inc. Network and systems management monitoring tool
US20130028091A1 (en) * 2011-07-27 2013-01-31 Nec Corporation System for controlling switch devices, and device and method for controlling system configuration
US8392608B1 (en) 2009-12-07 2013-03-05 Amazon Technologies, Inc. Using virtual networking devices to manage network configuration
US20130064079A1 (en) * 2011-09-14 2013-03-14 Telefonaktiebolaget L M Ericsson (Publ) Network-Wide Flow Monitoring in Split Architecture Networks
US20140086065A1 (en) * 2012-09-24 2014-03-27 International Business Machines Corporation Disjoint multi-paths with service guarantee extension
US20150012621A1 (en) * 2013-07-08 2015-01-08 Cisco Technology, Inc. Network-assisted configuration and programming of gateways in a network environment

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564258B1 (en) * 1998-09-30 2003-05-13 Nortel Networks Limited Detection of network topology changes affecting trail routing consistency
US6477572B1 (en) * 1998-12-17 2002-11-05 International Business Machines Corporation Method for displaying a network topology for a task deployment service
US20030046390A1 (en) * 2000-05-05 2003-03-06 Scott Ball Systems and methods for construction multi-layer topological models of computer networks
US7168044B1 (en) * 2000-12-22 2007-01-23 Turin Networks Apparatus and method for automatic network connection provisioning
US6956821B2 (en) 2001-01-30 2005-10-18 Telefonaktiebolaget L M Ericsson (Publ) Path determination in a data network
US20030115319A1 (en) * 2001-12-17 2003-06-19 Dawson Jeffrey L. Network paths
US20030137532A1 (en) * 2001-12-19 2003-07-24 Alcatel Canada Inc. Method and system for IP link management
US20030128231A1 (en) * 2002-01-09 2003-07-10 Stephane Kasriel Dynamic path analysis
US20040061701A1 (en) * 2002-09-30 2004-04-01 Arquie Louis M. Method and system for generating a network monitoring display with animated utilization information
US20060182034A1 (en) * 2002-12-13 2006-08-17 Eric Klinker Topology aware route control
US7681130B1 (en) * 2006-03-31 2010-03-16 Emc Corporation Methods and apparatus for displaying network data
US20070258368A1 (en) 2006-05-05 2007-11-08 Agilemesh, Inc. Network device user control interface
US8064358B2 (en) * 2007-02-28 2011-11-22 Red Hat, Inc. Network and systems management monitoring tool
US20090077478A1 (en) * 2007-09-18 2009-03-19 International Business Machines Corporation Arrangements for managing processing components using a graphical user interface
US20100040366A1 (en) 2008-08-15 2010-02-18 Tellabs Operations, Inc. Method and apparatus for displaying and identifying available wavelength paths across a network
US8392608B1 (en) 2009-12-07 2013-03-05 Amazon Technologies, Inc. Using virtual networking devices to manage network configuration
US20130028091A1 (en) * 2011-07-27 2013-01-31 Nec Corporation System for controlling switch devices, and device and method for controlling system configuration
US20130064079A1 (en) * 2011-09-14 2013-03-14 Telefonaktiebolaget L M Ericsson (Publ) Network-Wide Flow Monitoring in Split Architecture Networks
US20140086065A1 (en) * 2012-09-24 2014-03-27 International Business Machines Corporation Disjoint multi-paths with service guarantee extension
US20150012621A1 (en) * 2013-07-08 2015-01-08 Cisco Technology, Inc. Network-assisted configuration and programming of gateways in a network environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VNEXT, Graphical Interface Usage, 2011, http://www.gta.ufrj.br/vnext/index.php/manual/use-gui?start=3.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11924087B2 (en) * 2020-12-18 2024-03-05 Ciena Corporation Adjustable multi-criteria network path computation and visualizations thereof
US11716278B1 (en) 2022-01-25 2023-08-01 Bank Of America Corporation System and method for determining the shortest data transfer path in data communication

Also Published As

Publication number Publication date
US20150103672A1 (en) 2015-04-16
US20160197818A1 (en) 2016-07-07

Similar Documents

Publication Publication Date Title
US9288143B2 (en) Data flow path determination
US10825212B2 (en) Enhanced user interface systems including dynamic context selection for cloud-based networks
US10567519B1 (en) Service overlay model for a co-location facility
US10290129B2 (en) Method and system for visualizing networks
EP2992444B1 (en) Automated creation of private virtual networks in a service provider network
EP2984795B1 (en) End-to-end (e2e) application packet flow visibility
US9667495B2 (en) Programmable data network management and operation
EP2989749B1 (en) Network resource monitoring
US9246765B2 (en) Apparatus and methods for auto-discovery and migration of virtual cloud infrastructure
US10749780B2 (en) Systems and methods for management of cloud exchanges
US9584369B2 (en) Methods of representing software defined networking-based multiple layer network topology views
US9674045B2 (en) Methods, systems, and computer readable media for modeling packet technology services using a packet virtual network (PVN)
US10171345B2 (en) Routing communication sessions
WO2018153221A1 (en) Method, device and system for controlling quality-of-service of business in transmission network
US9641390B2 (en) Automatic configuration of switch port settings based on the device attached to the switch port
JP2018515978A (en) Methods and entities for service availability management
JP2013510459A (en) Separate path computation algorithm
JP2017528961A (en) Routing awareness transmission for autonomous networks
CN109672621B (en) Method and equipment for selecting transmission path for VPN service
Huang et al. Automatical end to end topology discovery and flow viewer on SDN
JP5256406B2 (en) Network visualization method and network visualization device
CN108512811A (en) A kind of virtual network partition method and SDN controllers based on SDN
EP3269089A1 (en) Subscription for communication attributes
CN108768861B (en) Method and device for sending service message
Chen et al. A dynamic security traversal mechanism for providing deterministic delay guarantee in SDN

Legal Events

Date Code Title Description
AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:STUART, LESLIE R.;REEL/FRAME:031400/0948

Effective date: 20131010

AS Assignment

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001

Effective date: 20151027

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

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

Year of fee payment: 4

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