Abstract
Traditional network simulators perform well in evaluating the performance of network protocols but lack the capability of verifying the correctness of protocols. To address this problem, we have extended the J-Sim network simulator with a model checking capability that explores the state space of a network protocol to find an execution that violates a safety invariant. In this paper, we demonstrate the usefulness of this integrated tool for verification and performance evaluation by analyzing two widely used and important network protocols: AODV and directed diffusion. Our analysis discovered a previously unknown bug in the J-Sim implementation of AODV. More importantly, we also discovered a serious deficiency in directed diffusion. To enable the analysis of these fairly complex protocols, we needed to develop protocol-specific search heuristics that guide state-space exploration. We report our findings on discovering good search heuristics to analyze network protocols similar to AODV and directed diffusion.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Saha, A.K., To, K., PalChaudhuri, S., Du, S., Johnson, D.B.: Physical implementation of ad hoc network routing protocols using unmodified ns-2 models. In: ACM MobiCom 2004, Poster (2004)
Havelund, K.: Java Pathfinder, a translator from Java to Promela. In: Dams, D.R., Gerth, R., Leue, S., Massink, M. (eds.) SPIN 1999. LNCS, vol. 1680, p. 152. Springer, Heidelberg (1999)
Musuvathi, M., Park, D.Y.W., Chou, A., Engler, D.R., Dill, D.L.: CMC: A pragmatic approach to model checking real code. In: Proc. of OSDI 2002 (2002)
Ball, T., Rajamani, S.K.: The SLAM Toolkit. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, p. 260. Springer, Heidelberg (2001)
Chaki, S., Clarke, E., Groce, A., Jha, S., Veith, H.: Modular Verification of Software Components in C. In: Proc. of ICSE 2003 (2003)
Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy Abstraction. In: Proc. of POPL 2002 (2002)
Farzan, A., Chen, F., Meseguer, J., Rosu, G.: Formal analysis of Java programs in JavaFAN. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 501–505. Springer, Heidelberg (2004)
J-Sim, http://www.j-sim.org/
Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)
Sobeih, A., Viswanathan, M., Hou, J.C.: Check and Simulate: A case for incorporating model checking in network simulation. In: Proc. of ACM-IEEE MEMOCODE 2004 (2004)
Perkins, C.E., Royer, E.M.: Ad-hoc on-demand distance vector routing. In: Proc. of IEEE WMCSA 1999 (1999)
Perkins, C.E., Royer, E.M., Das, S.: Ad hoc on demand distance vector (aodv) routing, IETF Draft (January 2002)
Intanagonwiwat, C., Govindan, R., Estrin, D.: Directed diffusion: A scalable and robust communication paradigm for sensor networks. In: Proc. of ACM MobiCom 2000 (2000)
Musuvathi, M., Engler, D.R.: Model checking large network protocol implementations. In: Proc. of NSDI 2004 (2004)
Edelkamp, S., Leue, S., Lluch-Lafuente, A.: Directed Explicit-State Model Checking in the Validation of Communication Protocols. International Journal on Software Tools for Technology Transfer (STTT) 5(2-3), 247–267 (2004)
Hart, P.E., Nilsson, N.J., Raphael, B.: A formal basis for heuristic determination of minimum path cost. IEEE Transactions on Systems Science and Cybernetics 4, 100–107 (1968)
Sobeih, A., Viswanathan, M., Hou, J.C.: Incorporating Bounded Model Checking in Network Simulation: Theory, Implementation and Evaluation, Tech. Rep. UIUCDCS-R-2004-2466, Department of Computer Science, University of Illinois at Urbana-Champaign (July 2004)
Bhargavan, K., Obradovic, D., Gunter, C.A.: Formal verification of standards for distance vector routing protocols. Journal of the ACM 49(4), 538–576 (2002)
Sobeih, A., Viswanathan, M., Hou, J.C.: Bounded Model Checking of Network Protocols in Network Simulators by Exploiting Protocol-Specific Heuristics, Tech. Rep. UIUCDCS-R-2005-2547, Department of Computer Science, University of Illinois at Urbana-Champaign (April 2005)
Godefroid, P.: Model checking for programming languages using VeriSoft. In: Proc. of ACM POPL 1997 (1997)
Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: Proc. of ACM POPL 2005 (2005)
Godefroid, P., Khurshid, S.: Exploring very large state spaces using genetic algorithms. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, p. 266. Springer, Heidelberg (2002)
Holzmann, G.J.: The model checker SPIN. IEEE Trans. on Software Engineering 23(5), 279–295 (1997)
McMillan, K.: Symbolic Model Checking. Kluwer Academic Publishers, Dordrecht (1993)
Dill, D.L., Drexler, A.J., Hu, A.J., Yang, C.H.: Protocol verification as a hardware design aid. In: Proc. of IEEE ICCD 1992 (1992)
Park, D.Y., Stern, U., Skakkebæk, J.U., Dill, D.L.: Java model checking. In: Proc. of IEEE ASE 2000 (2000)
Corbett, J., Dwyer, M., Hatcliff, J., Păsăreanu, C., Robby, Laubach, S., Zheng, H.: Bandera: Extracting finite state models from Java source code. In: Proc. of ICSE (2000)
Lee, D., Chen, D., Hao, R., Miller, R.E., Wu, J., Yin, X.: A formal approach for passive testing of protocol data portions. In: Proc. of IEEE ICNP 2002 (2002)
Naumovich, G.N., Clarke, L.A., Osterweil, L.J.: Verification of communication protocols using data flow analysis. In: Proc. of ACM SIGSOFT 1996 (1996)
Visser, W., Havelund, K., Brat, G., Park, S.: Model checking programs. In: Proc. of IEEE ASE 2000 (2000)
Tan, J., Avrunin, G.S., Clarke, L.A., Zilberstein, S., Leue, S.: Heuristic-guided counterexample search in FLAVERS. In: Proc. of ACM SIGSOFT 2004/FSE-12 (2004)
Yang, C.H., Dill, D.L.: Validation with guided search of the state space. In: Proc. of ACM/IEE DAC 1998 (1998)
Groce, A., Visser, W.: Heuristics for Model Checking Java Programs. International Journal on Software Tools for Technology Transfer (STTT) 6(4), 260–276 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sobeih, A., Viswanathan, M., Marinov, D., Hou, J.C. (2005). Finding Bugs in Network Protocols Using Simulation Code and Protocol-Specific Heuristics. In: Lau, KK., Banach, R. (eds) Formal Methods and Software Engineering. ICFEM 2005. Lecture Notes in Computer Science, vol 3785. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11576280_17
Download citation
DOI: https://doi.org/10.1007/11576280_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29797-0
Online ISBN: 978-3-540-32250-4
eBook Packages: Computer ScienceComputer Science (R0)