CMAND Logo

Center for Measurement and Analysis of Network Data

Home | News | People | Projects | Papers | Data | Software cmand.org : TCP-HICCUPS
TCP-HICCUPS:
HICCUPS (Handshake-based Integrity Check of Critical Underlying Protocol Semantics) is a lightweight extension to TCP that helps end-hosts infer when their communication is being misinterpreted due to middlebox packet header modifications. HICCUPS applies a tamper-evident seal to the TCP 3-way handshake that is incrementally deployable and cooperative with today's middleboxes.

This web page documents HICCUPS and provides code for our development efforts. Please contact us for more information, or if you're interested in hosting a HICCUPS instance to facilitate development and Internet-wide measurement efforts.

Why:

The modern Internet contains a variety of middleboxes that operate on network traffic in ways other than traditional IP routing. Middleboxes are used for a number of reasons: enhancing performance, enforcing policies, and adding new network features. Examples range from a large corporate firewall to the wireless router you have at home.

Unfortunately, middleboxes are often hard to setup and configure. Misconfigurations and out-of-date or non-standard behaviors occur regularly and in some cases can severely degrade TCP performance. The causes are often subtle and can be a challenge to diagnose. Even more troubling is the impact middleboxes have on protocol innovation: any new option, repurposed field, or otherwise unrecognized behavior is often misunderstood and blocked, hindering the deployment of new protocols and extensions.

Downloads:

Cross-platform User Tools

For testing and evaluation on non-HICCUPS kernels (uses raw sockets) To test your connection:
  • Windows: Open a command prompt and run hc hiccups.cmand.org
  • OSX / Linux: run $ sudo ./hc hiccups.cmand.org
For lots more options, run the client with -h

Linux Kernel

Built right into the TCP stack for the full HICCUPS experience
  • Fedora Linux RPMs: (Install with: $ sudo yum install kernel32.rpm and reboot)
  • Build your own:
  • Test client for use on a TCP-HICCUPS kernel (coming soon)
Publications:

Talks:

Who:

Funding: Note: Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
Center for Measurement and Analysis of Network Data