Abstract
Software defined networking (SDN) controller requires crucial statistics like flow-wise statistics from the switches to make decisions related to routing, load balancing, and QoS provisioning. These statistics, when viewed across the switches are likely to be inconsistent if a specific order is not enforced while collecting statistics. Collecting consistent statistics requires coordination among all the participating switches. A few approaches in the literature collect globally consistent statistics of a network in the SDN domain. However, these approaches are not time-efficient, robust, and synchronous for OpenFlow based networks. We propose, GlobeSnap, a time-efficient, robust, and synchronous method to collect globally consistent statistics for OpenFlow networks. GlobeSnap collects consistent statistics for all flows in a single round and is therefore, time-efficient. Moreover, GlobeSnap is robust since it resumes the statistics collection process from where it left in case of interruption. GlobeSnap also provides a near-synchronous snapshot of statistics of the switches traversed by a given flow. We also propose a mechanism to persistently store states in OpenFlow based networks using registers, multiple flow tables, and multiple pipelines. We find that GlobeSnap outperforms the state-of-the-art approaches in consistency evaluation. Further we present two use-cases which are sensitive to inconsistent flow statistics, that is, computing packet loss and identifying bottleneck links, to show the time-efficiency, robustness, and synchronicity of GlobeSnap. GlobeSnap provides 100% consistency in OpenFlow based SDN networks. Whereas the existing methods achieve a maximum of 59.89% consistency.
Similar content being viewed by others
Notes
When a packet matches with a flow entry in OpenFlow switch, it increments the packet counter of the matched flow entry.
In OpenFlow networks with FIFO channels, the outgoing packets for transmission are scheduled based on order of their arrival at the switch.
In OpenFlow networks with Non-FIFO channels, the outgoing packets for transmission could be scheduled irrespective of the order of their arrival.
We use channel and link interchangeably in this paper.
To color a packet, ECN field of IP header is used. ECN field has 2 bits, therefore there can be 4 ways of using it.
\(\Delta _{\text {i}}\), where i=1,2,3,\(\ldots\), is the number of packets sent from source switch to destination after time \(t_1\)
\(\lambda _{\text {i}}\), where i=1,2,3,\(\ldots\), is the number of packets received at the destination switch after time \(t_1\)
References
Zhang, Y., Cui, L., Wang, W., Zhang, Y.: A survey on software defined networking with multiple controllers. J. Netw. Comput. Appl. 103, 101–118 (2018)
Megyesi, P., Botta, A., Aceto, G., Pescapé, A., Molnár, S.: Challenges and solution for measuring available bandwidth in software defined networks. Comput. Commun. 99, 48–61 (2017)
Yaseen, N., Sonchack, J., Liu, V.: Synchronized network snapshots. In: Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication, pp. 402–416. ACM (2018)
Su, Z., Wang, T., Xia, Y., Hamdi, M.: CeMon: a cost-effective flow monitoring system in software defined networks. Comput. Netw. 92, 101–115 (2015)
Van Adrichem, N.L., Doerr, C., Kuipers, F.A.: OpenNetMon: network monitoring in OpenFlow software-defined networks. In: Network Operations and Management Symposium (NOMS), pp. 1–8. IEEE (2014)
Rathee, S., Sharma, R., Jain, P.K., Haribabu, K., Bhatia, A., Balasubramaniam, S.: OpenSnap: collection of globally consistent statistics in software defined networks. In: 11th International Conference on Communication Systems & Networks (COMSNETS), pp. 149–156. IEEE (2019)
Wundsam, A., Levin, D., Seetharaman, S., Feldmann, A.: Ofrewind: Enabling record and replay troubleshooting for networks. In: USENIX Annual Technical Conference, pp. 327–340. USENIX Association (2011)
Foerster, K.T., Schmid, S., Vissicchio, S.: Survey of consistent software-defined network updates. IEEE Commun. Surveys Tutor. 21(2), 1435–1461 (2018)
Yaseen, N., Sonchack, J., Liu, V.: tpprof: a network traffic pattern profiler. In: 17th \(\{\)USENIX\(\}\) Symposium on Networked Systems Design and Implementation (\(\{\)NSDI\(\}\) 20), pp. 1015–1030 (2020)
Chowdhury, S.R., Bari, M.F., Ahmed, R., Boutaba, R.: PayLess: A Low Cost Network Monitoring Framework for Software Defined Networks. Network Operations and Management Symposium (NOMS), pp. 1–9. IEEE (2014)
Kim, C., Sivaraman, A., Katta, N., Bas, A., Dixit, A., Wobker, L.J.: In-band network telemetry via programmable dataplanes. In: ACM SIGCOMM, Vol. 15 (2015)
Yu, C., Lumezanu, C., Zhang, Y., Singh, V., Jiang, G., Madhyastha, H.V.: FlowSense: monitoring network utilization with zero measurement cost. In: International Conference on Passive and Active Network Measurement, pp. 31–41. Springer (2013)
Chandy, K.M., Lamport, L.: distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst. (TOCS) 3(1), 63–75 (1985)
Kshemkalyani, A.D., Raynal, M., Singhal, M.: An introduction to snapshot algorithms in distributed computing. Distrib. Syst. Eng. 2(4), 224 (1995)
Awan, I.I., Shah, N., Imran, M., Shoaib, M., Saeed, N.: An improved mechanism for flow rule installation in In-band SDN. J. Syst. Archit. 96, 32–51 (2019)
Lantz, B., Heller, B., McKeown, N.: A network in a laptop: rapid prototyping for software-defined networks. In: Proceedings of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks, p. 19. ACM (2010)
Tootoonchian, A., Ghobadi, M., Ganjali, Y.: OpenTM: traffic matrix estimator for OpenFlow networks. International Conference on Passive and Active Network Measurement, pp. 201–210. Springer (2010)
Li, Y., Miao, R., Kim, C., Yu, M.: Flowradar: a better netflow for data centers. In: 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI), pp. 311–324 (2016)
Claise, B.: Cisco Systems NetFlow Services Export Version, Vol. 9 (2004)
Li, Y., Miao, R., Kim, C., Yu, M.: LossRadar: fast detection of lost packets in data center networks. In: Proceedings of the 12th International on Conference on emerging Networking EXperiments and Technologies, pp. 481–495. ACM (2016)
Suh, J., Kwon, T.T., Dixon, C., Felter, W., Carter, J.: OpenSample: a low-latency, sampling-based measurement platform for commodity SDN. In: 34th International Conference on Distributed Computing Systems (ICDCS), pp. 228–237. IEEE (2014)
Sherwin, J., Sreenan, C.J.: LogSnap: creating snapshots of OpenFlow data centre networks for offline querying. In: 2019 10th International Conference on Networks of the Future (NoF), pp. 66–73. IEEE (2019)
Configuring QoS. https://www.cisco.com/en/US/docs/switches/lan/catalyst3850/software/release/3.2_0_se/multibook/configuration_guide/b_consolidated_config_guide_3850_chapter_010000.html. Accessed 21 Feb 2020
OpenFlow Switch Specification. https://www.opennetworking.org/wp-content/uploads/2014/10/openflow-spec-v1.3.0.pdf. Accessed 17 Oct 2020
McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L., Rexford, J., Shenker, S., Turner, J.: OpenFlow: enabling innovation in campus networks. ACM SIGCOMM Comput. Commun. Rev. 38(2), 69–74 (2008)
Lai, T.H., Yang, T.H.: On distributed snapshots. Inf. Process. Lett. 25(3), 153–158 (1987)
Pfaff, B., Pettit, J., Koponen, T., Jackson, E., Zhou, A., Rajahalme, J., Gross, J., Wang, A., Stringer, J., Shelar, P., et al.: The design and implementation of open vswitch. In: 12th USENIX Symposium on Networked Systems Design and Implementation, pp. 117–130. NSDI (2015)
Awduche, D., Chiu, A., Elwalid, A., Widjaja, I., Xiao, X.: Overview and Principles of Internet Traffic Engineering. Tech. Rep., RFC 3272, May (2002)
ryu Documentation. https://buildmedia.readthedocs.org/media/pdf/ryu/latest/ryu.pdf. Accessed 17 Oct 2020
Open vSwitch Manual. http://www.openvswitch.org/support/dist-docs/ovs-vswitchd.conf.db.5.html. Accessed 17 Oct 2020
Botta, A., Dainotti, A., Pescapè, A.: A tool for the generation of realistic network workload for emerging networking scenarios. Comput. Netw. 56(15), 3531–3547 (2012)
Hemminger, S., et al.: Network Emulation with NetEm, pp. 18–23. Linux conf au (2005)
Acknowledgements
This research was supported in part by NSF under grants CNS-1618339, CNS-1617729, CNS-1814322, CNS-1831140, CNS-1836772, and CNS-1901103.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendices
A Appendix for Correctness
In this section, we show the correctness of the proposed solution to collect consistent statistics in OpenFlow networks with Non-FIFO channels.
Consider the network segment given in Fig. 16. There are two flows \(f_{1}\) and \(f_{2}\), both are going from switch \(S_{1}\) to switch \(S_{2}\). The controller is connected to switch \(S_1\). Both switches have two queues, \(q_1\) and \(q_{2}\), configured on each port. For simplicity, let’s assume flow \(f_{1}\) is forwarded through queue \(q_{1}\) and flow \(f_{2}\) is forwarded through queue \(q_{2}\). As shown in Fig. 16, at time \(t_1\) the packet count corresponding to the flows \(f_{1}\) and \(f_{2}\) is \(X_1\) and \(X_2\) respectively at switch \(S_1\). The count for the flows \(f_{1}\) and \(f_{2}\) is \(Y_1\), \(Y_2\) respectively at switch \(S_2\) and the whole network is in WHITE state. Considering \(X_1\) to be equal to \(Y_1\) and \(X_2\) to be equal to \(Y_2\). Now at time \(t_2\), the controller initiates the statistics collection process by sending a red packet to switch \(S_1\). On receipt of a red packet, switch \(S_1\) sends the statistics to the controller as \(X_1\)+\(\Delta _{{1}}\)Footnote 6 and \(X_2\)+\(\Delta _{{2}}\) for flows \(f_1\) and \(f_2\) respectively. Which are recorded as sent statistics for both the flows w.r.t to switch \(S_{1}\), that is,
After sending the statistics to the controller the switch \(S_1\) changes its state from WHITE to RED. Any further transmission of packets from switch \(S_1\) are colored red. At time \(t_3\), when the first red packet from switch \(S_1\) hits the switch \(S_2\), it triggers the statistics collection at switch \(S_2\). This ensures that any packet which is transmitted after the statistics collection from switch \(S_1\) will not be recorded in the received statistics at switch \(S_2\). At time \(t_3\), there are two possibilities,
Case1: First red packet scheduled on data channel is from the queue \(q_1\) of switch \(S_1\). At time \(t_3\), let queue \(q_1\) be scheduled first for packet transmission on the data channel as shown in Fig. 16a. The packets from queue \(q_1\) are transmitted in FIFO order. When the first red packet which is transmitted from switch \(S_1\) through queue \(q_1\) hits the switch \(S_2\), switch \(S_2\) sends the statistics to controller as \(Y_1\)+\(\lambda _{\text {3}}\)Footnote 7 and \(Y_2\)+\(\lambda _{\text {4}}\) for flows \(f_1\) and \(f_2\) respectively. Which are recorded as received statistics for flows \(f_1\) and \(f_2\) at switch \(S_2\), that is,
Since the first red packet which triggers the statistics collection at switch \(S_2\) was sent through queue \(q_1\) of switch \(S_1\). Thus it belongs to flow \(f_1\). Any packet which is received at switch \(S_2\) before the red packet was a white packet. If there is no packet loss on the link which connects switch \(S_1\) and switch \(S_2\) then,
If there is a packet loss for flow \(f_1\) on the link which connects switch \(S_1\) and switch \(S_2\) then,
Thus, it satisfies the consistency condition given in Eq. 2.
For flow \(f_2\), the sent statistics can be greater than or equal to the received statistics. The sent statistics will be equal to received statistics, if there is no white packet in queue \(q_2\) at switch \(S_1\) when the first red packet from queue \(q_1\) at switch \(S_1\) is scheduled on data channel and there is no packet loss on the link which connects switch \(S_1\) and switch \(S_2\). That is,
The sent statistics will be greater than received statistics for flow \(f_2\), if there is at least one white packet in queue \(q_2\) at switch \(S_1\) when the first red packet from queue \(q_1\) of switch \(S_1\) is scheduled on data channel or there is a packet loss on the link which connects switch \(S_1\) and switch \(S_2\). This gives,
Thus, satisfies the consistency conditions given in Eq. 2.
Case2: First red packet scheduled on data channel is from the queue \(q_2\) of switch \(S_1\). At time \(t_3\), let queue \(q_2\) be scheduled first for the packet transmission on the data channel as shown in Fig. 16b. The packets from queue \(q_2\) are transmitted in FIFO order. When the first red packet which is transmitted from switch \(S_1\) through queue \(q_2\) hits the switch \(S_2\), it triggers the statistics collection process. Switch \(S_2\) sends the statistics to the controller as \(Y_1\) + \(\lambda _{{3}}\) and \(Y_2\) + \(\lambda _{{4}}\) for flows \(f_1\) and \(f_2\) respectively. Which are recorded as received statistics for the flows w.r.t to switch \(S_2\) as given in Eqs. 6 and 7. The first red packet which hits the switch \(S_2\) is sent through queue \(q_2\) from switch \(S_1\). Any packet received by switch \(S_2\) before the reception of the red packet is counted in the sent statistics at switch \(S_1\). If there is no packet loss on the link which connects switch \(S_1\) and switch \(S_2\), then it results in Eqs. 13 and 14. That is, sent and received statistics will be equal for flow \(f_2\). If there is a packet loss on the link which connects switch \(S_1\) and switch \(S_2\) then it results in Eqs. 15 and 16. That is, the sent statistics will be greater than received statistics for flow \(f_2\). Using Eqs. 13, 14, 15 and 16,
Thus, it satisfies the consistency condition given in Eq. 2. For flow \(f_1\), the sent statistics can be greater than or equal to the received statistics. If there is no white packet in queue \(q_1\) at switch \(S_1\), when the first red packet from queue \(q_2\) at switch \(S_1\) is scheduled on data channel and there is no packet loss on the link which connects switch \(S_1\) and switch \(S_2\) then it results in Eqs. 8 and 9. That is, the sent statistics and received statistics for flow \(f_1\) are equal. The sent statistics will be greater than received statistics if there is at least one white packet in queue \(q_1\) at switch \(S_1\) when the first red packet from queue \(q_2\) at switch \(S_1\) is scheduled on data channel or there is a packet loss on the link which connects switch \(S_1\) and switch \(S_2\). This results in Eqs. 10 and 11. Using Eqs. 8, 9, 10 and 11,
Thus, it satisfies the consistency condition given in Eq. 2.
1.1 Correctness of Consistent Statistics for End-to-End Path
We proved that GlobeSnap provides consistent statistics on a given link. It can be easily seen that GlobeSnap would also provide end-to-end consistent statistics using transitive relation between the switches for the flow. It can also be observed that even if switches are connected in a mesh topology then also GlobeSnap would provide consistent statistics. This is because every switch has a unique link from which it receives the packets to be forwarded towards the destination for a particular flow. In GlobeSnap, it is important to note that explicit marker packets are not required to collect the statistics. Colored packets themselves act as markers and triggers the statistics collection process. GlobeSnap always provides consistent statistics for all flows because, on a given link all the packets that arrived at source switch after it has sent the statistics to the controller will be colored red before transmission on the data channel. The destination switch of a link sends statistics to the controller only when the first red packet arrives at it. All the packets received at the destination switch before the arrival of the first red packet are white and were recorded in the sent statistics at source switch. Thus, the sent statistics will always be greater than or equal to the received statistics for a given flow on a given link.
B Experiment with Large Number of Packets and Over a Longer Time Window
Table 7 below shows the experimental results with large number of packets for the network topology given in Fig. 1. The controller polls both the switches (\(S_1\) and \(S_2\)) by sending flow statistics requests. The results show even with longer time duration the inconsistencies in the collected statistics does not smooth out.
Rights and permissions
About this article
Cite this article
Rathee, S., Varyani, N., Haribabu, K. et al. GlobeSnap: An Efficient Globally Consistent Statistics Collection for Software-Defined Networks. J Netw Syst Manage 29, 35 (2021). https://doi.org/10.1007/s10922-021-09601-z
Received:
Revised:
Accepted:
Published:
DOI: https://doi.org/10.1007/s10922-021-09601-z