Formal specification and verification of TCP extended with the Window Scale Option

We formally verify that TCP satisfies its requirements when extended with the Window Scale Option. With the aid of our μCRL specification and the ltsmin toolset, we verified that our specification of unidirectional TCP extended with the Window Scale Option does not deadlock, and that its external behaviour is branching bisimilar to a FIFO queue for a significantly large instance. Finally, we recommend a rewording of the specification regarding how a zero window is probed, ensuring deadlocks do not arise as a result of misinterpretation.

[1]  Robert T. Braden,et al.  Requirements for Internet Hosts - Communication Layers , 1989, RFC.

[2]  Jan Friso Groote,et al.  Verifying a Sliding Window Protocol in µCRL , 2004, AMAST.

[3]  Jonathan Billington,et al.  On Defining the Service Provided by TCP , 2003, ACSC.

[4]  Sally Floyd,et al.  TCP Selective Acknowledgment Options , 1996, RFC.

[5]  R. V. Glabbeek The Linear Time-Branching Time Spectrum I The Semantics of Concrete , Sequential ProcessesR , 2007 .

[6]  Rob J. van Glabbeek,et al.  Branching time and abstraction in bisimulation semantics , 1996, JACM.

[7]  Tom Ridge,et al.  A Rigorous Approach to Networking: TCP, from Implementation to Protocol to Service , 2008, FM.

[8]  Rob J. van Glabbeek,et al.  The Linear Time - Branching Time Spectrum II , 1993, CONCUR.

[9]  Jonathan Billington,et al.  Formalising TCP's Data Transfer Service Language: A Symbolic Automaton and its Properties , 2007, Fundam. Informaticae.

[10]  Jonathan Billington,et al.  Validating TCP connection management , 2002, FME 2002.

[11]  Kurt Jensen Coloured Petri Nets , 1992, EATCS Monographs in Theoretical Computer Science.

[12]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[13]  Wan Fokkink,et al.  Formal specification and verification of TCP extended with the Window Scale Option , 2016, Sci. Comput. Program..

[14]  Eric Madelaine,et al.  Specification and Verification of a Sliding Window Protocol in LOTOS , 1991, FORTE.

[15]  Vinton G. Cerf,et al.  Requirements for the Internet , 2003, Proceedings. 11th IEEE International Requirements Engineering Conference, 2003..

[16]  Jaco van de Pol,et al.  1 Motivation : A Modular , High-Performance Model Checker , 2010 .

[17]  K. K. Ramakrishnan,et al.  Formal specification and verification of safety and performance of TCP selective acknowledgement , 2002, IEEE/ACM Trans. Netw..

[18]  William C. Fenner,et al.  Known TCP Implementation Problems , 1999, RFC.

[19]  Wan Fokkink,et al.  Mechanical Verification of a Two-Way Sliding Window Protocol , 2008, CPA.

[20]  Jan Friso Groote,et al.  Verification of a sliding window protocol in μCRL and PVS , 2005, Formal Aspects of Computing.

[21]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[22]  Bogdan M. Wilamowski,et al.  The Transmission Control Protocol , 2005, The Industrial Information Technology Handbook.

[23]  Wan Fokkink,et al.  Introduction to Process Algebra , 1999, Texts in Theoretical Computer Science. An EATCS Series.

[24]  W. Richard Stevens,et al.  TCP/IP Illustrated, Volume 1: The Protocols , 1994 .

[25]  Jonathan Billington,et al.  Closed Form Expressions for the State Space of TCP's Data Transfer Service Operating over Unbounded Channels , 2004, ACSC.

[26]  Van Jacobson,et al.  TCP Extensions for High Performance , 1992, RFC.

[27]  Jan Friso Groote,et al.  A Correctness Proof of a One-Bit Sliding Window Protocol in µCRL , 1993, Comput. J..

[28]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[29]  Michael Norrish,et al.  Rigorous specification and conformance testing techniques for network protocols, as applied to TCP, UDP, and sockets , 2005, SIGCOMM '05.

[30]  Edmund M. Clarke,et al.  Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons , 1982, Sci. Comput. Program..

[31]  Jonathan Billington,et al.  Termination Properties of TCP's Connection Management Procedures , 2005, ICATPN.

[32]  Dexter Kozen,et al.  Results on the Propositional µ-Calculus , 1982, ICALP.

[33]  Jan L. A. van de Snepscheut,et al.  The sliding-window protocol revisited , 2005, Formal Aspects of Computing.

[34]  Mark Anthony Shawn Smith Formal verification of TCP and T/TCP , 1997 .

[35]  S. L. Murphy,et al.  Service specification and protocol construction for the transport layer , 1988, SIGCOMM 1988.

[36]  ExampleIna SchieferdeckerGMD FokusHardenbergplatz Abruptly Terminated Connections in TCP | A Veri cation , 1996 .

[37]  Eduardo Valido-Cabrera Software reliability methods , 2006 .

[38]  K. K. Ramakrishnan,et al.  Formal specification and verification of safety and performance of TCP selective acknowledgment , 2002, TNET.

[39]  Jan Friso Groote,et al.  An Efficient Algorithm for Branching Bisimulation and Stuttering Equivalence , 1990, ICALP.

[40]  Radu Mateescu,et al.  CADP 2011: a toolbox for the construction and analysis of distributed processes , 2012, International Journal on Software Tools for Technology Transfer.

[41]  Vern Paxson,et al.  TCP Congestion Control , 1999, RFC.

[42]  Jorge C. A. de Figueiredo,et al.  Using Coloured Petri Nets to Investigate Behavioural and Performance Issues of TCP Protocols , 1999 .

[43]  M. A. S. Smith Formal Verification of Communication Protocols , 1996, FORTE.

[44]  Mihaela Sighireanu,et al.  Efficient on-the-fly model-checking for regular alternation-free mu-calculus , 2003, Sci. Comput. Program..

[45]  Joseph Y. Halpern,et al.  “Sometimes” and “not never” revisited: on branching versus linear time temporal logic , 1986, JACM.

[46]  Marta Kwiatkowska,et al.  Survey of fairness notions , 1989 .

[47]  Wan Fokkink Modelling Distributed Systems (Texts in Theoretical Computer Science. An EATCS Series) , 2007 .

[48]  Simona Orzan,et al.  Distributed state space minimization , 2004, International Journal on Software Tools for Technology Transfer.

[49]  Erik P. de Vink,et al.  Verification and Improvement of the Sliding Window Protocol , 2003, TACAS.