Skip to main content
Log in

GlobeSnap: An Efficient Globally Consistent Statistics Collection for Software-Defined Networks

  • Published:
Journal of Network and Systems Management Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15

Similar content being viewed by others

Notes

  1. When a packet matches with a flow entry in OpenFlow switch, it increments the packet counter of the matched flow entry.

  2. In OpenFlow networks with FIFO channels, the outgoing packets for transmission are scheduled based on order of their arrival at the switch.

  3. In OpenFlow networks with Non-FIFO channels, the outgoing packets for transmission could be scheduled irrespective of the order of their arrival.

  4. We use channel and link interchangeably in this paper.

  5. 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.

  6. \(\Delta _{\text {i}}\), where i=1,2,3,\(\ldots\), is the number of packets sent from source switch to destination after time \(t_1\)

  7. \(\lambda _{\text {i}}\), where i=1,2,3,\(\ldots\), is the number of packets received at the destination switch after time \(t_1\)

References

  1. 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)

    Article  Google Scholar 

  2. 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)

    Article  Google Scholar 

  3. 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)

  4. 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)

    Article  Google Scholar 

  5. 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)

  6. 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)

  7. 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)

  8. Foerster, K.T., Schmid, S., Vissicchio, S.: Survey of consistent software-defined network updates. IEEE Commun. Surveys Tutor. 21(2), 1435–1461 (2018)

    Article  Google Scholar 

  9. 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)

  10. 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)

  11. 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)

  12. 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)

  13. Chandy, K.M., Lamport, L.: distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst. (TOCS) 3(1), 63–75 (1985)

    Article  Google Scholar 

  14. Kshemkalyani, A.D., Raynal, M., Singhal, M.: An introduction to snapshot algorithms in distributed computing. Distrib. Syst. Eng. 2(4), 224 (1995)

    Article  Google Scholar 

  15. 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)

    Article  Google Scholar 

  16. 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)

  17. 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)

  18. 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)

  19. Claise, B.: Cisco Systems NetFlow Services Export Version, Vol. 9 (2004)

  20. 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)

  21. 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)

  22. 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)

  23. 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

  24. OpenFlow Switch Specification. https://www.opennetworking.org/wp-content/uploads/2014/10/openflow-spec-v1.3.0.pdf. Accessed 17 Oct 2020

  25. 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)

    Article  Google Scholar 

  26. Lai, T.H., Yang, T.H.: On distributed snapshots. Inf. Process. Lett. 25(3), 153–158 (1987)

    Article  MathSciNet  Google Scholar 

  27. 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)

  28. Awduche, D., Chiu, A., Elwalid, A., Widjaja, I., Xiao, X.: Overview and Principles of Internet Traffic Engineering. Tech. Rep., RFC 3272, May (2002)

  29. ryu Documentation. https://buildmedia.readthedocs.org/media/pdf/ryu/latest/ryu.pdf. Accessed 17 Oct 2020

  30. Open vSwitch Manual. http://www.openvswitch.org/support/dist-docs/ovs-vswitchd.conf.db.5.html. Accessed 17 Oct 2020

  31. 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)

    Article  Google Scholar 

  32. Hemminger, S., et al.: Network Emulation with NetEm, pp. 18–23. Linux conf au (2005)

Download references

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

Authors

Corresponding author

Correspondence to Sandhya Rathee.

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,

$$\begin{aligned} sent(f_{1}^{1})= & {} X_1+\Delta _{{1}}, \end{aligned}$$
(4)
$$\begin{aligned} sent(f_{1}^{2})= & {} X_2+\Delta _{{2}}. \end{aligned}$$
(5)
Fig. 16
figure 16

Illustrating the correctness of GlobeSnap for OpenFlow based networks with Non-FIFO channels

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,

$$\begin{aligned} recv(f_{2}^{1})= & {} Y_1+\lambda _{{3}}, \end{aligned}$$
(6)
$$\begin{aligned} recv(f_{2}^{2})= & {} Y_2+\lambda _{{4}}. \end{aligned}$$
(7)

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,

$$\begin{aligned} \Delta _{\text {1}} = \lambda _{{3}}. \end{aligned}$$
(8)

Using Eqs. 4, 6 and 8

$$\begin{aligned} sent(f_{1}^{1}) = recv(f_{2}^{1}). \end{aligned}$$
(9)

If there is a packet loss for flow \(f_1\) on the link which connects switch \(S_1\) and switch \(S_2\) then,

$$\begin{aligned} \Delta _{\text {1}} > \lambda _{\text {3}}. \end{aligned}$$
(10)

Using Eqs. 4, 6 and 10,

$$\begin{aligned} sent(f_{1}^{1}) > recv(f_{2}^{1}). \end{aligned}$$
(11)

Using Eqs. 9 and 11,

$$\begin{aligned} sent(f_{1}^{1}) \ge recv(f_{2}^{1}). \end{aligned}$$
(12)

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,

$$\begin{aligned} \Delta _{\text {2}} = \lambda _{{4}}. \end{aligned}$$
(13)

Using Eqs. 5, 7 and 13,

$$\begin{aligned} sent(f_{1}^{2}) = recv(f_{2}^{2}). \end{aligned}$$
(14)

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,

$$\begin{aligned} \Delta _{\text {2}} > \lambda _{{4}}. \end{aligned}$$
(15)

Using Eqs. 5, 7 and 15

$$\begin{aligned} sent(f_{1}^{2}) > recv(f_{2}^{2}). \end{aligned}$$
(16)

Using Eqs. 14 and 16

$$\begin{aligned} sent(f_{1}^{2}) \ge recv(f_{2}^{2}). \end{aligned}$$
(17)

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,

$$\begin{aligned} sent(f_{1}^{2}) \ge recv(f_{2}^{2}) \end{aligned}$$
(18)

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,

$$\begin{aligned} sent(f_{1}^{1}) \ge recv(f_{2}^{1}) \end{aligned}$$
(19)

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.

Table 7 Statistics collected at controller without enforcing order of events in statistics collection

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10922-021-09601-z

Keywords

Navigation