Table of Contents

Namespace VpnHood.Core.Tunneling.Channels

Classes

StreamForwardingChannel

Represents a channel that forwards one TCP connection: it passes the bytes both ways between the connection and a tunnel connection, within the session's speed limits.

StreamPacketChannel

Represents a packet channel on a stream connection: packets go out back to back on the stream, and the ones read from it go up.

StreamPacketChannelOptions

Represents the options of a StreamPacketChannel.

UdpChannelTransmitter

Represents a UDP socket for sessions' datagrams: it hands each one it receives to its handler, and sends the sealed ones it is given.

UdpDatagram

Provides a session's UDP datagram: a version byte, the session's ID (8 bytes), the sequence number (8) and the tag (16), then the payload, sealed with AES-GCM under the session's key, with the session's ID and the sequence number as its associated data.

UdpPacketChannel

Provides a session's UDP, for the session's whole life: its keys, its send count and a send queue of its own.

UdpRoute

Represents where a session's datagrams go: the socket and the address, swapped as one, so a send never pairs one route's socket with another's address.

Interfaces

IChannel

Represents a channel of a session's tunnel: what carries its packets, or one forwarded TCP connection.

IPacketChannel

Represents a channel that carries a session's packets.

IStreamForwardingChannel

Represents a channel that carries one forwarded TCP connection.

IStreamPacketChannel

Represents a packet channel that is a connection, the kind a tunnel's channel manager takes: a session has several, picked by flow.

IUdpDatagramHandler

Represents what takes each datagram a UDP socket receives: the server's listener host, which hands it to its session, or a client's UDP channel, which takes its own.

Enums

PacketChannelState

Specifies a channel's state.