Domain Name System-Service Discovery (DNS-SD) is a zero-configuration (Zeroconf) networking protocol that allows client devices (e.g., mobile devices, tablets, smartphones, etc.) to browse a network for available services using standard DNS messages. For instance, DNS-SD allows a client device to use DNS query and query-response messages to discover a named list of services available on hosts (e.g., client devices, servers, etc.) in a network and resolve those services to hostnames.
Moreover, client devices may use the multicast DNS (mDNS) protocol in conjunction with DNS-SD to send DNS query messages to multiple hosts in a network. The mDNS protocol may be used to resolve hostnames to IP addresses in networks that do not include a local name server (e.g., DNS server).
Various examples will be described below with reference to the following figures.
The drawings provide examples and/or implementations consistent with the description; however, the description is not limited to the examples and/or implementations provided in the drawings.
The following detailed description refers to the accompanying drawings. Wherever possible, the similar reference numbers are used in the drawings and the following description to refer to the same or similar parts. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only. While several examples are described in this document, modifications, adaptations, and other implementations are possible. Accordingly, the following detailed description does not limit the disclosed examples. Instead, the proper scope of the disclosed examples may be defined by the appended claims.
The terminology used herein is for the purpose of describing example embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. The term “plurality,” as used herein, is defined as two, or more than two. It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms, as these terms are only used to distinguish one element from another unless stated otherwise or the context indicates otherwise. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on.
As discussed above, client devices may use DNS-SD in conjunction with mDNS to discover available services on a network. For instance, a client device may send an mDNS query message with a specific service name to all hosts in a network. When a host having the service identified by the specific service name receives the mDNS query message, the host responds by sending an mDNS query-response message that resolves its hostname to one or more IP addresses. However, since the mDNS query message is also sent to every other host in the network, each host responds with an mDNS query-response message even if it does not offer the service identified by the specific service name. This results in flooding of mDNS query-response messages across the network and high bandwidth utilization, which in turn, may cause users to fail to discover network services (e.g., services provided by printers, displays, media servers, etc.), network outages, and/or reduced overall user experience when accessing network services. Such flooding is especially problematic for large-scale networks (e.g., campus or enterprise networks) having a large number of client devices. Moreover, with the proliferation of BYOD (Bring Your Own Device) policies for many large-scale networks, each user may add several client devices to the network, leading to an additional load of mDNS query messages and mDNS query-response messages and high bandwidth utilization. The additional load of mDNS query-response messages may reduce the overall user experience. For instance, the user may need to send multiple mDNS query messages to connect to a specific service-providing host, which in turn, increases the time it takes for the user to connect to the desired network service.
In general, embodiments disclosed herein describes a method and system for reconfiguration of a network using network traffic comparisons. Embodiments disclosed herein may comprise determining a client type for each of a plurality of client devices in the first network. Examples disclosed herein may comprise determining a first average packet count for each client type connected to the first network, wherein the first network is configured to respond to a mDNS query with multicast query-response messages, and receiving a second average packet count for each client type of a plurality of client devices connected to a second network, wherein the second network is configured to respond to a mDNS query with unicast query-response messages.
Embodiments disclosed herein may comprise computing, for each client type in the first network, a difference between the first average packet count of the client type with the second average packet count of a corresponding client type in the second network. Embodiments described herein may comprise, based on the difference between the first average packet count and the second average packet count being above a predefined threshold for at least one client type of the first network, reconfiguring the first network to respond to mDNS query with unicast query-response messages.
In this manner, embodiments described herein reconfigure a network using network traffic comparisons. For instance, embodiments disclosed herein determine a first average packet count for each client type in a first network that is configured to respond to a mDNS query with multicast query-response messages, receive a second average packet count for each corresponding client type connected to a second network that is configured to respond to a mDNS query with unicast query-response messages, and compute, for each client type in the first network, a difference between the first average packet count of the client type with the second average packet count of a corresponding client type in the second network, thereby determining that the first network is configured in a manner (i.e., configured to respond to a mDNS query with multicast query-response messages) which may result in flooding of mDNS query messages and mDNS query-response messages. Moreover, embodiments disclosed herein may comprise, based on the difference between the first average packet count and second average packet count for at least one client type of the first network being above a predefined threshold, reconfiguring the first network to respond to mDNS query with unicast query-response messages, thereby reconfiguring the first network to prevent flooding of mDNS query and mDNS query-response messages.
In embodiments disclosed herein, the networks being compared (e.g., the first network and the second network) may have similar number(s) and type(s) of client devices. The networks may be customer broadcast networks deployed by the same cloud service provider. The client devices on each network may include both client devices requesting for services and client devices providing specific services. To compare the networks, a network orchestrator maintains a list of connected client devices and network devices in each network to be compared. The network orchestrator may comprise an external server or any suitable network device. Each client device is categorized as a specific client type. Further, the network orchestrator receives the network traffic in the form of average packet count for each client type from the networks to be compared. The device compares a first average packet count for each client type in a first network that is configured to respond with conventional mDNS query-response messages to a second average packet count of a similar client type in a second network that is configured to respond with unicast query-response messages. The second network implementing unicast query-response messages may have a lower average packet count and overall lower bandwidth utilization in comparison to the first network implementing a standard mDNS query/response mechanism, since mDNS query messages and mDNS query-response messages are not flooded across all network devices. The results of the comparison can be provided by the network orchestrator to a network administrator of the first network. In an embodiment, based on the results of the network traffic comparison, the network orchestrator may provide the network administrator of the first network with a recommendation to reconfigure the first network with a unicast query-response mechanism. In another embodiment, based on the results of the network traffic comparison, the network orchestrator can be configured to reconfigure the first network to respond to mDNS query messages with unicast query-response messages instead of the conventional mDNS query-response messages.
The network orchestrator 101 configures and manages the client devices (105 a-j) and network devices (e.g., access points 107a-d, switch 103, etc.) connected to a network 100. The network orchestrator 101 includes at least one processing resource and at least one machine-readable storage medium comprising (e.g., encoded with) instructions that are executable by the at least one processing resource of the network orchestrator 101 to implement functionalities described herein. In addition, the network orchestrator 101 may engage in any network data transmission operations, including, but not limited to, switching, routing, bridging, or a combination thereof. Moreover, the network orchestrator 101 may gather network operating information from various nodes of one or more networks, including network traffic load information, network topology information, network usage information, etc. Furthermore, the network orchestrator 101 may transmit commands to various nodes of the one or more networks to alter network topology and routing to achieve various network efficiency and efficacy goals. Moreover, the network orchestrator 101 may comprise one or more cloud-based resources (e.g., a cloud server). Moreover, the network orchestrator 101 may include any necessary hardware components to perform the inventions disclosed herein, including, but not limited to: processors, memories, display devices, input devices, communications equipment, etc.
The switch 103 is configured to create Virtual LANs (Local Area Networks), wherein each VLAN defines a broadcast domain for a set of connected client devices 105(a-j). In
In the example of
Table 1 below shows exemplary information gathered by network orchestrator 201 for each client type. Although
The components of
Table 2 below shows exemplary information gathered by network orchestrator 301 for each client type.
First method 400 may start in block 405 and continue to block 410, where the network orchestrator 201 determines a client type for each connected client device 211(a-d) in the first network 200. The mDNS query message received from a client device contains vendor specific attributes based on which the network orchestrator 201 can determine the client type for each connected client device 211(a-d) in the first network 200. The vendor specific attributes may include vendor name, model number, version number, and any other unique vendor attribute. In block 415, the network orchestrator 201 determines a first average packet count for each client type 211 in the first network 200. The network orchestrator 201 monitors each type in the first network 200 along with the packets sent by each client type for a period of time and determines a first average packet for each client type.
In block 420, the network orchestrator 201 receives a second average packet count for each client type connected to a second network 300. The network orchestrator 301 of the second network 300 can be configured to determine the second average packet count of each client type in the second network 300 and send the second average packet count(s) of the client type(s) to the network orchestrator 201 of the first network 200. The network orchestrator 301 maintains a list of client types from the connected client devices 311(a-d) and monitors the packets sent by each client type in the second network 300. Based on this information, the network orchestrator 301 determines the second average packet count of each client type in the second network 300 and sends the second average packet count(s) of the client type(s) to the network orchestrator 201 of the first network 200.
In block 425, the network orchestrator 201 computes a difference between the first average packet count and the second average packet count for at least one client type in the second network 300. This difference is computed for each of first network 200. In some examples, the client types used for computing the difference between first average packet count in the first network 200 and the second average packet count in the second network 300 may be identical client types. For example, a client type in the first network 200 and a corresponding client type in the second network 300 may each be an Apple@ iPhone 11. Alternatively, in some examples, the client types used for computing the difference between first average packet count in the first network 200 and the second average packet count in the second network 300 may be similar client types, but not identical client types. For example, suppose that a client type in the first network 200 is an Amazon® Fire TV Stick 1st generation device, and a client type in the second network 300 is an Amazon® Fire TV Stick 2st generation device. In such example, although the client type in the first network 200 is not identical to the client type of the second network 300, these client types may be considered to be similar client types (and thereby corresponding client types) because both devices are streaming devices. In an embodiment, two client types may be determined to be corresponding client types based on a pre-defined mapping of model numbers, version numbers, functions, etc., of the client devices.
In block 430, the differences are transmitted to a client device 211 associated with the network administrator of the first network 200 and the difference is displayed on a user interface of the client device 211 at block 435. The differences include the difference between the first average packet count of a client type in the first network 200 and second average packet count for each corresponding client type in the second network 300 for each of the client types connected to the first network 200. Thus, the network administrator can see the differences in the first average packet counts and the second average packet counts for different client types. Based on the difference between the first average packet count and second average packet count for each client type in the first network 200, the network administrator can decide if the first network 200 should be reconfigured to respond with unicast query-response messages. In an embodiment, the network orchestrator 201 determines if the difference between the first average packet count and the second average packet count for each client type in the first network 200 is above a first predefined threshold. Based on (e.g., in response to) a determination that the difference between the first average packet count and the second average packet count for at least one client type in the first network 200 is above the first predefined threshold, the network orchestrator 201 may send instructions to indicate to a network administrator (e.g., display on a user interface of client device 211) that the difference between the first and second average packet counts for at least one client type is above the first predefined threshold. Moreover, the network orchestrator 201 may send instructions to indicate to the network administrator (e.g., display on a user interface of client device 211) the difference between the first and second average packet counts for at least one client type of the first network 100 along with the first predefined threshold. In an embodiment, the first predefined threshold may be based on a difference between the first average packet count of a single client type in the first network 200 and the second average packet count for a corresponding client type in the second network 300. In another embodiment, the first predefined threshold may be based on the difference between the first average packet counts of multiple client devices in the first network 200 and second average packet counts of corresponding client types in the second network 300.
At block 440, the network orchestrator 201 receives an instruction (e.g., from the administrator) to reconfigure the first network 200 to respond to mDNS query message with unicast query-response messages. In an embodiment, when the difference in first average packet count and second average packet count for at least one client type in the first network 200 is above the first predefined threshold, the network orchestrator 201 may receive the instruction to reconfigure the first network 200 to respond to mDNS query with unicast query-response messages.
At block 445, based on the received instruction, the network orchestrator 201 reconfigures the first network 200 to respond to mDNS query with unicast query-response messages. In an embodiment, when the difference between the first average packet count of at least one client type in the first network 200 and the second average packet count for each corresponding client type in the second network 300 computed at block 425 is above the first predefined threshold, the network orchestrator 201 reconfigures the first network 200 to respond to mDNS query with unicast query-response messages. Although the execution of the first method 400 above is described below with reference to the network orchestrator 201, other devices such as an external server may perform the functions of the network orchestrator 201. The external server may be managed by service provider of the first network 200 and the second network 300.
Consider an example of client type 1 shown in Table 1 and Table 2. The client type 1 is an Apple® MacBook in both the first network 200 and second network 300. As shown in Table 1 associated with the first network 200, the first average packet count for each Apple® MacBook (client type 1) is 500. As shown in Table 2 associated with the second network 300, the second average packet count for each Apple® MacBook(client type 1) is 50. The difference between the first average count and second average packet count is 450 average packet counts per minute. Thus, network orchestrator 210 determines that there is a 90% difference in the first average packet count and second average packet count for the Apple® MacBook between the first network 200 and the second network 300. In an embodiment, the network orchestrator 201 can be configured to reconfigure the first network 200 to support unicast query-response messages when the difference between the first average packet count and second average packet count for Apple® MacBook (client type 1) is greater than 60%. The network orchestrator 201 may reconfigure to support unicast query-response messages as the difference between the first average packet count and the second average packet count is greater than 60%.
In an embodiment, the first predefined threshold is based on a difference between the first average packet count for a single client type in the first network 200 and the second average packet count for a single corresponding client type in the second network 300, and a percentage difference between the first average packet count and the second average packet count may be used for setting the first predefined threshold. For example, the first threshold percentage of can be set for 50%. In such example, when the difference between the first average packet count and the second average packet count is greater than 50%, the network orchestrator 201 may be configured to reconfigure the first network 200 to support unicast query-messages.
In another embodiment, the first predefined threshold is based on a difference between the first average packet counts of multiple client types in the first network 200 and the second average packet counts for corresponding multiple client types in the second network 200, and a percentage difference between the first average packet counts and the second average packet counts may be used for determining the first predefined threshold. For example, the first threshold percentage of can be set for 50%. In such example, when the difference between the first average packet counts of multiple client types of the first network 200 and the second average packet counts of corresponding client types in the second network 300 is greater than 50%, the network orchestrator 201 may reconfigure the first network 200 to support unicast query-messages.
In block 515, the network orchestrator 201 determines a first average packet count for each client type 211 connected to the first network 200. The network orchestrator 201 monitors each type of client device in the first network 200 along with the packets sent by each client type for a period of time and calculates a first average packet count for each client type in the first network 200.
In block 520, the network orchestrator 201 receives a second average packet count for each client type connected to the second network 300. The network orchestrator 301 of the second network 300 can be configured to send the second average packet count of each client type to the network orchestrator 201. The network orchestrator 301 maintains a list of client type from the connected client devices and monitors the packets sent by each client type. Based on this information, the network orchestrator 301 determines the second average packet count for each client type in the second network 300 and sends it to the network orchestrator 201 of the first network 200.
In block 525, the network orchestrator 201 computes a first bandwidth consumption of the first network 200 based on the first average packet count for each client type connected to the first network 200. To compute the first bandwidth consumption of the first network 200, the network orchestrator 201 determines the first average packet count of each client type, the count of client devices 211 of each client type, and the count of network devices 209 sharing the same VLAN with the client devices 211.
In examples disclosed herein, a bandwidth consumption in the first network 200 may correspond to a bandwidth used by each client type in the first network 200 and may be computed according to Equation 1 below: Equation 1: Bandwidth used by each client type=client type count*client type packet count*packet length of the client type*count of network devices sharing the same VLAN.
In some examples, the bandwidth consumption for each client type is calculated to compute the overall bandwidth consumption of the first network 200. When the first network 200 implements a conventional mDNS query-response messages, the mDNS query-response messages are multicast, which may lead to flooding of mDNS query-response messages over the network devices in the first network 200.
In block 530, based on the received second average packet count for each client type in the second network 300, the network orchestrator 201 computes a second bandwidth consumption of the second network 300. In an embodiment, the network orchestrator 201 receives the second bandwidth consumption for the second network 300 from the network orchestrator 301.
In examples disclosed herein, a second bandwidth consumption of the second network 300 may correspond to a bandwidth used by each client type in the second network 300 and may be computed according to Equation 2 below:
Bandwidth used by each client type=client type count*client type packet count*packet length of the client type. Equation 2:
The bandwidth for each client type is calculated to compute the overall bandwidth consumption of the second network 300. The network devices are not considered while computing the bandwidth for the second network 300 as the mDNS query-response message are not multicast. In an embodiment, the network orchestrator 301 can be configured to compute the overall second bandwidth consumption and transmit it to the network orchestrator 201.
In block 535, the device computes a bandwidth difference between the first network 200 and second network 300 by comparing the first bandwidth consumption and second bandwidth consumption. In an embodiment, the bandwidth difference highlights the extra bandwidth utilized by the first network 200 because of implementing the conventional mDNS query-response messages. Thus, the first network 200 can save this extra bandwidth if it is reconfigured to respond to mDNS query messages with unicast query-response messages. An example of the bandwidth comparison and bandwidth savings is shown below.
The bandwidth comparison and difference determines the total bandwidth saving which can achieved in the first network 200 if it is reconfigured for a unicast query-response messages. In an embodiment the bandwidth difference is computed in the form of a bandwidth saving percentage of the second network 300 over the first network 200, according to Equation 3 below:
Where X=bandwidth used by client type connected in the first network 200;
X1, X2 . . . Xn=bandwidth of different client types connected in the first network 200;
Y=bandwidth used by client type connected in the second network 300;
Y1, Y2 . . . Yn=bandwidth of different client types connected in the second network 300; and
n=number of network devices sharing the same VLAN.
In block 540, the network orchestrator 201 transmits the bandwidth difference to an external server managed by the administrator responsible for management and configuration of the first network 200. In an embodiment, the bandwidth savings which can be achieved if the first network 200 is reconfigured to respond to mDNS query with unicast query-response messages can be provided to the network administrator in the form of a recommendation.
In block 545, the bandwidth difference is displayed on the user interface of the external server managed by the administrator responsible for management and configuration of the first network 200. In another embodiment, the bandwidth difference can be transmitted and displayed on a client device associated the administrator of the first network 200.
In another embodiment, the bandwidth savings as a percentage can be displayed on the user interface. The network administrator can decide if the wants to reconfigure the first network 200 to respond to the mDNS query with unicast query-response messages. In an embodiment, the recommendations can be highlighted based on the percentage savings. For example, if the bandwidth savings is less than 25%, the bandwidth savings is displayed as a recommendation on the user interface with an orange highlight. If the bandwidth savings is 25% to 50% the bandwidth savings is displayed as a recommendation on the user interface with a red highlight. If the bandwidth savings is greater than 50% the bandwidth savings is displayed as a recommendation on the user interface with a thick red highlight. It will be understood by one skilled in the art that recommendations based on bandwidth savings may be displayed on a user interface using any suitable graphical element(s) (e.g., highlights, colors, etc.) and based on any suitable bandwidth savings percentage(s).
In an embodiment, the first network 200 and second network 300 are customer broadcast networks deployed by the same service provider.
The network orchestrator 201 may be a server receiving network traffic information from the first network 200 and the second network 300. The server may compare the network traffic of similarly sized networks. The client devices in the second network 300 are considered to have ideal average packet counts as the second network 300 is configured to response to mDNS query with unicast query-response messages. In an embodiment, the server can be configured to compare the network traffic of the first network 200 with the second network 300 when the count of at least one client type in the first network 200 and the count of each corresponding client type in the second network 300 is identical. Based on a determination that there is a difference in count of at least one client type in the first network 200 and count of each corresponding client type in the second network 300, the server can be configured to increase/decrease the count of each corresponding client type in the second network 300 based on the count of the at least one client type in the first network 200. This may be performed before computing the second average packet count for the at least one corresponding client type. Further, in case there is a client type in the first network 200 which does not have a corresponding client type in the second network 300, the server can be configured to determine a second average packet count for a corresponding client type in another network.
In addition, the server may compute the respective first bandwidth consumption and second bandwidth consumption based on the first average packet count and second average packet count for each client type in the first network 200. Moreover, the network orchestrator 201 may compute the bandwidth difference between the first bandwidth consumption and the second bandwidth consumption. The bandwidth difference reflects the savings in bandwidth which can be achieved by the first network 200 if it is reconfigured to support unicast query-response message. Furthermore, the bandwidth savings may be transmitted to the network administrator of first network 200.
In an embodiment, if the first network 200 is a new network deployed by a service provider, the service provided can compute and transmit bandwidth savings to the network administrator of the first network 200 as a recommendation by comparing the bandwidth consumption of the first network 200 with the bandwidth consumption of the second network 300. The administrator of the first network 200 may be provided with different recommendations based on the range of bandwidth savings. The network administrator may try reconfiguring the first network 200 based on the recommendations received from the service provider and determine if the bandwidth savings is required/beneficial to the first network 200. In an embodiment, based on the bandwidth savings, the administrator can set a predefined threshold for the bandwidth savings above which the network 200 may be reconfigured to support unicast query-response messages.
In block 550, the network orchestrator 201 determines if an instruction to reconfigure the first network 200 is received. If an instruction to reconfigure the first network 200 is received, the network orchestrator 201 reconfigures the first network 200 to respond to mDNS query message with unicast query-response messages in block 555. In an embodiment, the network orchestrator can 201 may transmit an instruction to a network device in the first network 200 to implement the unicast query-response messages. For example, a controller 207a in the first network 200 can be reconfigured to support unicast query-response messages. If no instructions are received, the second method 500 may stop.
Although the execution of the second method 500 above is described above with reference to the network orchestrator 201, other devices such as an external server managed by service provider of the network 200 may be used for execution of second method 500.
In block 645, the first network 200 is reconfigured when the bandwidth difference is above the second predefined threshold. In an embodiment, the second predefined threshold is set by the administrator of the first network 200 based on a percentage of the bandwidth savings required.
In the foregoing description, numerous details are set forth to provide an understanding of the subject matter disclosed herein. However, implementation may be practiced without some or all of these details. Other implementations may include modifications, combinations, and variations from the details discussed above. It is intended that the following claims cover such modifications and variations.
Number | Date | Country | Kind |
---|---|---|---|
202041025539 | Jun 2020 | IN | national |