Table of Contents

Namespace VpnHood.Core.Tunneling

Classes

GeneralEventId

Provides the event IDs of VpnHood's log lines, by what a line is about.

ThrottledTunnel

Represents a tunnel with a send limit: the session's packets wait in its queue, one for all its channels, and leave it at the limit.

TrafficMeter

Tracks tunnel traffic as two independent directions, and holds the session's speed limit: one bucket per direction, which every path of the session charges, so the limit covers all of its traffic. A sender waits on it once per turn (the tunnel's queue for its packets, each forwarding stream for its reads), so its senders share it equally; a receiver only enforces it, slowing a stream or dropping a datagram the peer sent past the limit. For session-facing limits, server download maps to send and server upload maps to receive.

Tunnel

Represents a session's tunnel: it passes each packet straight on, to its UDP channel while UDP is on and otherwise to one of its stream channels, and hands up what either receives.

TunnelOptions

Represents the options of a Tunnel.