Applying Formal Methods to Networking [18]

Applying Formal Methods to Networking [18]

1 Applying Formal Methods to Networking: Theory, Techniques and Applications Junaid Qadir and Osman Hasan School of Electrical Engineering and Computer Science (SEECS), National University of Sciences and Technology (NUST), Islamabad, Pakistan {junaid.qadir,osman.hasan}@seecs.edu.pk I. ABSTRACT based testing—which is inherently a trial-and-error process— is routinely used to ‘establish’ the correctness of networking Despite its great importance, modern network infrastructure protocols, software, and hardware. With exponential number is remarkable for the lack of rigor in its engineering. The of possibilities, exhaustive testing is almost always impossible Internet which began as a research experiment was never and thus subtle bugs remain unchecked and undetected un- designed to handle the users and applications it hosts today. til they manifest themselves at invariably inopportune times The lack of formalization of the Internet architecture meant where the consequences of bugs in the wild can be drastic limited abstractions and modularity, especially for the control [2] [3]. Such a lack of rigor is totally unacceptable in most and management planes, thus requiring for every new need other mature engineering or manufacturing fields, and the a new protocol built from scratch. This led to an unwieldy networking community is increasingly realizing the need for ossified Internet architecture resistant to any attempts at formal better tools and techniques for verification and testing. Using verification, and an Internet culture where expediency and formal methods will allow us to not only verify the properties pragmatism are favored over formal correctness. Fortunately, of protocols and systems, but also will help us deepen our recent work in the space of clean slate Internet design— conceptual understanding of large classes of protocols. especially, the software defined networking (SDN) paradigm— offers the Internet community another chance to develop the A standard technique to manage complexity in computer right kind of architecture and abstractions. This has also led to systems is to utilize abstractions and modularity. Apart from a great resurgence in interest of applying formal methods to the lack of a developed verification tool-chain, the Internet specification, verification, and synthesis of networking proto- also suffers from a paucity of useful abstractions, especially cols and applications. In this paper, we present a self-contained for the control plane, which has led to accumulation of a “big tutorial of the formidable amount of work that has been done bag of protocols” (documented in more than 7000 RFCs!) [4]. in formal methods, and present a survey of its applications to This is in contrast with other fields of computer science: e.g., networking. the software industry has matured to incorporate a hierarchy of abstractions designed to simplify the task of programming while ensuring correctness—e.g., in software development, the II. INTRODUCTION high-level end-to-end requirements are separated from the low- level machine code by various abstractions such as algorithms, The networking industry in a way is a victim of its own programming languages, compilers, tracers and debuggers, popularity. Internet, which began as a research experiment static analysis tools, etc. The lack of abstractions has resulted in the late 1960s, became popular before many aspects of in an unwieldy complex Internet architecture, with under- Internet’s design could be formally contemplated and designed developed underlying principles and theoretical foundations, [1]. The overwhelming success of the Internet led to the need that is totally ill-suited to the kind of dependence that is arXiv:1311.4303v1 [cs.NI] 18 Nov 2013 of rapid innovations in applications and protocols. This has expected of the modern Internet. helped develop a culture that values engineering judgment, Formal methods—computer techniques based on mathe- heuristics, and running code1 more than it values sound engi- matical logic—are poised to play a central role in future neering and rigorous verification. Unfortunately, the expedient networking as the research community increasingly converges rapid innovations resulting from this approach has resulted in towards a firm realization that traditional informal methods a hit-and-trial hacking based software development culture. In are grossly inadequate for specification, analysis and valida- contrast to well-honed verification and testing tools available tion of networking protocols [5]. Formal methods have been for other fields such as ASIC hardware design, large-scale extensively applied to the verification of hardware design software systems, the networking industry has a very primitive [6], communication protocols [7] [8] (e.g., routing protocols testing tool-chain. The lack of rigor in networking industry, [9]), secure software systems [10], engineering systems [11], on the other hand, can be observed by the fact that simulation programming languages [12], network simulations [13], large software programs [14], etc. 1The ethos of the Internet research is reflected in the famous quote of David Clark: “We reject: kings, presidents and voting. We believe in: rough Unfortunately, there has been an impression in the network- consensus and running code”. ing community that formal methods do not return benefits 2 commensurate with the effort to use them. Vint Cerf has broad understanding of formal methods and techniques and written that “Formal methods have not yielded results com- learn about their applications in the context of networking. mensurate with the effort to use them. They are overblown, This paper attempts to fill this void, and will be valuable to verbose, hard to use, hard to understand.” [15]. This criticism networking researchers who wish to exploit the large amount of has unfortunately resulted from the lack of appreciation of work done in the formal methods community to build reliable advances in formal verification and sometimes due to poor future networks whose correctness is formally verifiable. communication between the formal verification community The remainder of this paper is organized as follows. The and the networking community. It is imperative in today’s necessary background on logic is provided in section III. world, and it will become increasingly important in the future, Various tools for specification are described in section IV. to move away from manual error-prone methods of verification Different methods for formal verification, such as model and automate as much of the verification tasks as we can [16]. checking, theorem proving, static analysis, etc., are described Formal methods are still useful even if they do not meet the in section V. The role played by ideas in programming utopian “gold standards” of complete automation and complete languages is introduced in section VI. Various applications generality of mathematical proofs—in particular, interactive of formal methods to networking is surveyed in section VII. theorem proving, abstracted models, and light-weight methods Various open issues and future works are identified in section are highly suited to certain niche applications [5]. Advances VIII. Finally, this paper is concluded in section IX. in modern technology has fortunately facilitated development of many automatic and semi-automatic tools that can be III. LOGIC—THE FOUNDATION OF FORMAL METHODS conveniently used by practitioners with limited specialized Logic is the branch of knowledge that focuses on system- background knowledge of formal methods. izing truth, reasoning, and inference. Studied by generations With the increasingly central role networks play in all of philosophers (Socrates, Plato, Aristotle, Kant, etc.), logic aspects of our lives (business, personal, entertainment, etc.), has a rich ancient tradition in philosophy [24]. Logic was the correct functioning of networking protocols and systems developed in ancient Greece as a device for systematizing has never been more important. In recent times, there has deduction through which true statements, or conclusions, could been significant interest in the application of formal methods be derived from premises—statements that are assumed to be to networking [17], not only due to the importance of this correct. Although, utilized in mathematics at least since Euclid subject, but also due to the possibilities created by recent (2300 BC), the incorporation of logic into a mathematical architectural developments in the networking community. In framework has occurred mostly in the last two centuries [25] particular, the software defined networking (SDN) architecture, through the efforts of Frege, Peano, and Russell to axiomatize which proposes splitting of the control/ data planes and the mathematics. In the field of computer science, logic has been management of multiple data planes through a centralized referred to as the “the calculus of computer science”2 [26] controller to allow programming the network in a software- to highlight its pivotal, and indeed “unusually effective” [27], like fashion, makes networking accessible via formal methods. role in the fields of formal methods [28], artificial intelligence This has accentuated the networking community’s interest in [29], and theoretical computer science [30]. Formal methods, applying formal methods to networking [18]. With the use of which utilize logic for modeling and reasoning about computer formal methods in networking, the field of network verification systems, have been extensively for formal

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    30 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us