Abstract
Standards govern the SHOULD and MUST requirements for protocol implementers for interoperability. In case of TCP that carries the bulk of the Internets’ traffic, these requirements are defined in RFCs. While it is known that not all optional features are implemented and non-conformance exists, one would assume that TCP implementations at least conform to the minimum set of MUST requirements. In this paper, we use Internet-wide scans to show how Internet hosts and paths conform to these basic requirements. We uncover a non-negligible set of hosts and paths that do not adhere to even basic requirements. For example, we observe hosts that do not correctly handle checksums and cases of middlebox interference for TCP options. We identify hosts that drop packets when the urgent pointer is set or simply crash. Our publicly available results highlight that conformance to even fundamental protocol requirements should not be taken for granted but instead checked regularly.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
RFC 793bis-Draft14 states: “Must be zero in generated segments and must be ignored in received segments, if corresponding future features are unimplemented by the sending or receiving host.” [27].
References
Contiki-NG TCP URG Pull Request. https://github.com/contiki-ng/contiki-ng/pull/1173
Contiki-NG: The OS for Next Generation IoT Devices. https://github.com/contiki-ng
Contiki OS. https://github.com/contiki-os
Cowboyku. https://github.com/heroku/cowboyku
Dataset to “MUST, SHOULD, DON’T CARE: TCP Conformance in the Wild”. https://doi.org/10.18154/RWTH-2020-00809
Heroku platform. https://www.heroku.com/
lwIP - A Lightweight TCP/IP stack. http://savannah.nongnu.org/projects/lwip/
Seastar. https://github.com/scylladb/seastar
Seastar: Virtio device reports features not supported by the OS. https://github.com/scylladb/seastar/issues/719
tcp(7) - Linux man page. https://linux.die.net/man/7/tcp
TCPM Mailinglist: RFC793bis draft 14 reserved bits: problem statement. https://mailarchive.ietf.org/arch/msg/tcpm/s0LtY3Ce3QBBAkJ_DuSH5VDNFMY
TCPM Mailinglist: RFC793bis draft 14 reserved bits: proposal. https://mailarchive.ietf.org/arch/msg/tcpm/_jpUQx0AjByR3UOgyX88RWoTxL0
Vegur: Http proxy library. https://github.com/heroku/vegur
Virtio: Paravirtualized drivers for KVM/Linux. https://www.linux-kvm.org/page/Virtio
Alashwali, E.S., Szalachowski, P., Martin, A.: Does “www.” mean better transport layer security? In: ACM International Conference on Availability, Reliability and Security (ARES) (2019). https://doi.org/10.1145/3339252.3339277
Alexa Internet: About us. https://www.alexa.com/about
Bauer, S., Beverly, R., Berger, A.: Measuring the state of ECN readiness in servers, clients, and routers. In: ACM Internet Measurement Conference (IMC) (2011). https://doi.org/10.1145/2068816.2068833
Beverly, R.: A robust classifier for passive TCP/IP fingerprinting. In: Barakat, C., Pratt, I. (eds.) PAM 2004. LNCS, vol. 3015, pp. 158–167. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24668-8_16
Bradner, S.O.: Key words for use in RFCs to indicate requirement levels. RFC 2119, March 1997. https://doi.org/10.17487/RFC2119
Cardwell, N., et al.: packetdrill: Scriptable network stack testing, from sockets to packets. In: USENIX Annual Technical Conference (ATC) (2013). https://www.usenix.org/conference/atc13/technical-sessions/presentation/cardwell
Carpenter, B., Brim, S.: Middleboxes: taxonomy and issues (2002). https://doi.org/10.17487/RFC3234
Craven, R., Beverly, R., Allman, M.: A middlebox-cooperative TCP for a non end-to-end internet. In: ACM SIGCOMM (2014). https://doi.org/10.1145/2619239.2626321
Detal, G., Hesmans, B., Bonaventure, O., Vanaubel, Y., Donnet, B.: Revealing middlebox interference with tracebox. In: ACM Internet Measurement Conference (IMC) (2013). https://doi.org/10.1145/2504730.2504757
Durumeric, Z., Adrian, D., Mirian, A., Bailey, M., Halderman, J.A.: A search engine backed by internet-wide scanning. In: ACM Conference on Computer and Communications Security (CCS) (2015). https://doi.org/10.1145/2810103.2813703
Durumeric, Z., Wustrow, E., Halderman, J.A.: ZMap: Fast Internet-wide scanning and its security applications. In: USENIX Security Symposium (2013). https://www.usenix.org/conference/usenixsecurity13/technical-sessions/paper/durumeric
Eddy, W.: Transmission control protocol specification. Internet-draft draft-ietf-tcpm-rfc793bis-14. Internet Engineering Task Force, July 2019. https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-rfc793bis-14. Work in Progress
Edeline, K., Donnet, B.: A bottom-up investigation of the transport-layer ossification. In: Network Traffic Measurement and Analysis Conference (TMA) (2019). https://doi.org/10.23919/TMA.2019.8784690
Floyd, S., Ramakrishnan, D.K.K., Black, D.L.: The addition of explicit congestion notification (ECN) to IP. RFC 3168, September 2001. https://doi.org/10.17487/RFC3168
Fyodor: Remote OS detection via TCP/IP stack fingerprinting (1998). https://nmap.org/nmap-fingerprinting-article.txt
Gilligan, R.E., McCann, J., Bound, J., Thomson, S.: Basic socket interface extensions for IPv6. RFC 3493, March 2003. https://doi.org/10.17487/RFC3493
Honda, M., Nishida, Y., Raiciu, C., Greenhalgh, A., Handley, M., Tokuda, H.: Is it still possible to extend TCP? In: ACM Internet Measurement Conference (IMC) (2011). https://doi.org/10.1145/2068816.2068834
HTTP Archive: About HTTP Archive. https://httparchive.org/about
Knutsen, A., Ramaiah, A., Ramasamy, A.: TCP option for transparent middlebox negotiation (2013). https://tools.ietf.org/html/draft-ananth-middisc-tcpopt-02
Kühlewind, M., Walter, M., Learmonth, I.R., Trammell, B.: Tracing internet path transparency. In: Network Traffic Measurement and Analysis Conference (TMA) (2018). https://doi.org/10.23919/TMA.2018.8506532
Kühlewind, M., Neuner, S., Trammell, B.: On the state of ECN and TCP options on the internet. In: Roughan, M., Chang, R. (eds.) PAM 2013. LNCS, vol. 7799, pp. 135–144. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36516-4_14
Langley, A.: Probing the viability of TCP extensions (2008). http://www.imperialviolet.org/binary/ecntest.pdf
Mandalari, A.M., Lutu, A., Briscoe, B., Bagnulo, M., Alay, O.: Measuring ECN++: good news for ++, bad news for ECN over mobile. IEEE Commun. Mag. 56(3), 180–186 (2018). https://doi.org/10.1109/MCOM.2018.1700739
Mandalari, A.M., Bagnulo, M., Lutu, A.: TCP Fast Open: initial measurements. In: ACM CoNEXT Student Workshop (2015)
Marinos, I., Watson, R.N., Handley, M.: Network stack specialization for performance. In: ACM SIGCOMM (2014). https://doi.org/10.1145/2619239.2626311
Marinos, I., Watson, R.N., Handley, M., Stewart, R.R.: Disk, Crypt, Net: rethinking the stack for high-performance video streaming. In: ACM SIGCOMM (2017). https://doi.org/10.1145/3098822.3098844
Medina, A., Allman, M., Floyd, S.: Measuring interactions between transport protocols and middleboxes. In: ACM Internet Measurement Conference (IMC) (2004). https://doi.org/10.1145/1028788.1028835
Medina, A., Allman, M., Floyd, S.: Measuring the evolution of transport protocols in the internet. SIGCOMM Comput. Commun. Rev. 35(2), 37–52 (2005)
Paasch, C.: Network support for TCP fast open. Presentation at NANOG 67 (2016)
Padhye, J., Floyd, S.: On inferring TCP behavior. In: ACM SIGCOMM (2001). https://doi.org/10.1145/383059.383083
Piraux, M., De Coninck, Q., Bonaventure, O.: Observing the evolution of QUIC implementations. In: ACM CoNEXT Workshop on the Evolution, Performance, and Interoperability of QUIC (EPIQ) (2018). https://doi.org/10.1145/3284850.3284852
Postel, J.: Transmission control protocol. RFC 793, September 1981. https://doi.org/10.17487/RFC0793
Rüth, J., Hohlfeld, O.: Demystifying TCP initial window configurations of content distribution networks. In: Network Traffic Measurement and Analysis Conference (TMA) (2018). https://doi.org/10.23919/TMA.2018.8506549
Rüth, J., Bormann, C., Hohlfeld, O.: Large-scale scanning of TCP’s initial window. In: ACM Internet Measurement Conference (IMC) (2017). https://doi.org/10.1145/3131365.3131370
Rüth, J., Kunze, I., Hohlfeld, O.: TCP’s initial window—deployment in the wild and its impact on performance. IEEE Trans. Netw. Serv. Manag. (TNSM) (2019). https://doi.org/10.1109/TNSM.2019.2896335
Rüth, J., Zimmermann, T., Hohlfeld, O.: Hidden treasures – recycling large-scale internet measurements to study the internet’s control plane. In: Choffnes, D., Barcellos, M. (eds.) PAM 2019. LNCS, vol. 11419, pp. 51–67. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-15986-3_4
Scheitle, Q., et al.: A long way to the top: significance, structure, and stability of internet top lists. In: ACM Internet Measurement Conference (IMC) (2018). https://doi.org/10.1145/3278532.3278574
Smart, M., Malan, G.R., Jahanian, F.: Defeating TCP/IP stack fingerprinting. In: USENIX Security Symposium (2000)
Stevens, W.R., Thomas, M., Nordmark, E., Jinmei, T.: Advanced sockets application program interface (API) for IPv6. RFC 3542, June 2003. https://doi.org/10.17487/RFC3542
Stone, J., Partridge, C.: When the CRC and TCP checksum disagree. In: ACM SIGCOMM (2000). https://doi.org/10.1145/347059.347561
Acknowledgments
This work has been funded by the DFG as part of the CRC 1053 MAKI within subproject B1. We would like to thank Akamai Technologies for feedback on our measurements, Censys for contributing active scan data, and our shepherd Robert Beverly and the anonymous reviewers.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Kosek, M., Blöcher, L., Rüth, J., Zimmermann, T., Hohlfeld, O. (2020). MUST, SHOULD, DON’T CARE: TCP Conformance in the Wild. In: Sperotto, A., Dainotti, A., Stiller, B. (eds) Passive and Active Measurement. PAM 2020. Lecture Notes in Computer Science(), vol 12048. Springer, Cham. https://doi.org/10.1007/978-3-030-44081-7_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-44081-7_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-44080-0
Online ISBN: 978-3-030-44081-7
eBook Packages: Computer ScienceComputer Science (R0)