Playground for running HTTP over SCTP experiments.
The Firefox directory contains patches and files necessary for HTTP over SCTP support in firefox. The patches were tested on Ubuntu, FreeBSD 10.2 and Mac OS X 10.10. They are based on the work of Jonathan Leighton and Preethi Natarajan from the University of Delaware. The original patches are available at ~leighton.
A port of phttpget.c
adding SCTP support is provided in the file phttpget.c
.
It runs on FreeBSD, Linux, MacOS X (using the SCTP NKE), and Solaris. It uses HTTP 1.1 and supports pipelining.
The transport protocol can be selected by setting the HTTP_TRANSPORT_PROTOCOL
environment variable.
Supported values are TCP
and SCTP
. If the variable is not set, TCP is used.
The remote UDP encapsulation port can be configured by setting the HTTP_SCTP_UDP_ENCAPS_PORT
environment
variable. Supported values are 0
, ..., 65535
. If it is unset or set to 0
, no UDP encapsulation
is used. Please note that for using UDP encapsulation, the local UDP encapsulation port must also be set
to a non-zero value. You can use sudo sysctl -w net.inet.sctp.udp_tunneling_port=9899
on FreeBSD.
Please note that UDP encapsulation is only supported on FreeBSD and MacOS X (with the SCTP NKE).
The following example should work on FreeBSD using a tcsh:
env HTTP_TRANSPORT_PROTOCOL=SCTP HTTP_SCTP_UDP_ENCAPS_PORT=9899 phttpget bsd10.fh-muenster.de index.html
A port of the web server thttpd adding SCTP support is available at nplab/thttpd. It runs on FreeBSD, Linux, MacOS X, and Solaris using a kernel SCTP stack and supports IPv4 and IPv6. On FreeBSD and Mac OS X it supports also UDP encapsulation. An instance running on FreeBSD is reachable at bsd10. It currently supports neither persistent connections nor pipelining. Please note that some old patches are available at A.D.F's patches, including patches adding persistent connections and pipelining.
The file packet-http.c.patch
add support for HTTP/SCTP dissection to the current developer
sources of wireshark.