Skip to main content

Iphc Acked

Loss-tolerant IPv4 header compression with an acknowledgement-based handshake. A new flow is sent with full headers (no size growth) until the peer acknowledges the context, after which only the per-packet fields are sent, as absolute values, so a lost packet never desynchronises the peer. Place it next to the TUN component so local_input receives whole, unmodified IP packets: IPv6, IPv4 fragments and IPv4 with options pass through unchanged, non-IP packets are dropped, and an IPv4 header whose checksum is wrong is dropped rather than used to create a context. The first such drop is logged as a warning. RTCP multiplexed on an RTP flow (rtcp-mux) is compressed as plain UDP.

Tags: NETWORKING

FieldTypeLabelDescriptionDefault Value
Local InputStringPackets from the local side of the tunnel, typically the TUN component. These are compressed toward the peer.
Network OutputStringCompressed packets, full headers, acknowledgements and refresh requests sent toward the peer.
Network InputStringPackets from the peer. Compressed IP packets are restored to their original headers. Acknowledgements and refresh requests are consumed here and never forwarded locally.
Local OutputStringRestored packets delivered to the local side of the tunnel, typically the TUN component.
Ack Interval MsUint32OptionalA context is acknowledged on its first full-header packet and again on a later one only if at least this many milliseconds have passed since the last acknowledgement sent for it. Bounds the acknowledgement traffic to one packet per flow per interval while a lost acknowledgement is recovered after the interval.100
Context Idle Timeout MsUint32OptionalA compression context whose flow has been silent for this many milliseconds may be reused for a new flow once all 256 context identifiers are taken.60000
Admission PacketsUint32OptionalNumber of packets a flow must show before it is given a compression context; until then its packets pass through unchanged. Keeps one-shot flows such as DNS queries, traceroute probes and ICMP errors from each costing an acknowledgement and a context. Also the number of consecutive RTP-looking packets (version 2, same SSRC and payload type, sequence number increasing by one) before a flow is compressed with the RTP profile. 1 to 255.4
Compress UdpBoolOptionalCompress the IPv4 and UDP headers of UDP packets, and the RTP header too for flows detected as RTP. When off, UDP passes through unchanged. Set the same on both peers.true
Compress TcpBoolOptionalCompress the IPv4 header of TCP packets; the TCP header goes as is. Saves 15 bytes per packet but costs throughput on bulk transfers, so it is off by default and TCP passes through unchanged. Set the same on both peers.false
Compress OtherBoolOptionalCompress the IPv4 header of packets of any other IP protocol (ICMP, GRE, ESP, SCTP, ...). When off, they pass through unchanged. Set the same on both peers.false