V2K

V2K is the app’s custom session-oriented transport family.

V2K is a custom transport branch used by the app for advanced session tuning and carrier-sensitive fallback work. It is available as `stream`, `poll`, and `carrier-poll`, and it keeps its advanced field set consistent across the app, the manager, `.v2k` files, and the Store.

Role

What V2K is for

Session control

V2K exposes practical session knobs such as chunk sizing, pull behavior, timing, auth, AEAD, and mode selection instead of hiding transport behavior behind a single fixed preset.

Carrier experiments

It is especially useful when standard transports need more targeted behavior on mobile carriers or on networks that react badly to a generic long-lived route.

Portable packaging

The full V2K field set is preserved through `.v2k` export/import and Store publication, so tuned configs can be shared without manual reconstruction.

Custom gateway path

Advanced server-side V2K deployments usually rely on the matching V2K gateway/runtime stack, not only on a plain stock inbound with no V2K awareness.

Modes

Which V2K mode to choose

stream Default

Long-lived V2K session. Best first choice when the network is not destroying the normal bootstrap and when you want the most usable throughput from the V2K family.

poll Fallback / experimental

Shorter stateful request/response model, but still tied to the older V2K bootstrap behavior. Keep it as a secondary fallback or test branch, not as the main production recommendation.

carrier-poll Carrier-sensitive fallback

Fixed request/response behavior designed for networks where the old bootstrap is too fragile. Slower than stream, but more survivable on sensitive carrier paths when tuned correctly.

Field reference

What each V2K field means in the app

Field Meaning Who should care
V2K Host Host value passed into the V2K settings and portable exports. Users working with host-sensitive routes or portable profiles.
V2K Path Path value used by the V2K transport settings. Users following a route preset that expects a specific path.
Mode Selects `stream`, `poll`, or `carrier-poll`. Everyone using V2K.
Padding Profile Framing/padding profile such as `fixed80`, `fixed80_jitter`, or `compact`. Users tuning the outer wire behavior.
Pull Concurrency How many pull workers the transport uses. Mainly stream users; `carrier-poll` forces it down to `1`.
Download / Upload Chunk Logical caps for downlink/uplink chunk size. Important for throughput, pacing, and network sensitivity.
Push Flush Delay Pacing delay for writes/exchanges. Important when a route works only with slower pacing.
Keep Alive How often V2K sends keepalive activity when the route is quiet. Important on mobile networks and idle-sensitive paths.
Session Idle Timeout How long V2K keeps session state before timing it out. Important when long idle periods are expected.
Listen Mode Whether the framed session keeps its listen/session behavior active. Stream/poll users. `carrier-poll` forces this off.
Poll Request Class Short-request class in poll; exact request frame size in carrier-poll. Poll and carrier-poll users.
Poll Response Frame Response ceiling in poll; exact response frame size in carrier-poll. Poll and carrier-poll users.
Session Auth / Auth ID / PSK V2K session authentication controls. Users on authenticated gateways or protected carrier-poll profiles.
AEAD / Cipher Payload/frame protection. In carrier-poll it protects per exchange and requires PSK auth to stay active. Users tuning security versus compatibility on sensitive paths.
Production baselines

Known good starting points

Stream baseline

Mode: stream
Padding Profile: fixed80
Pull Concurrency: 5
Download Chunk: 12288
Upload Chunk: 1360
Push Flush Delay: 4
Keep Alive: 15000
Listen Mode: on

Carrier-poll protected baseline

Mode: carrier-poll
Poll Request Class: 255
Poll Response Frame: 2048
Upload Chunk: 209
Download Chunk: 2030
Push Flush Delay: 175
Keep Alive: 1000
Pull Concurrency: 1
Listen Mode: off
Session Auth: psk
AEAD: on
About poll. Keep `poll` as a secondary fallback path. It is still useful for testing, but the project’s stronger production fallback story is `carrier-poll`, not classic `poll`.
Operational cases

Which mode usually maps to which network problem

Use stream when

The network accepts the normal V2K bootstrap and you want the best usable speed from V2K.

Use poll when

You are testing short stateful request/response behavior but still want to stay in the older V2K family for comparison.

Use carrier-poll when

The carrier kills or resets the normal bootstrap and you need a slower but more survivable fixed exchange pattern.

Leave AEAD on when

You need better survivability for payload visibility on sensitive networks, especially in carrier-poll with PSK auth.

Server side

What server owners need for V2K

V2K is not only a client-side toggle. Production V2K deployments require the matching server-side V2K runtime path, typically with the updated gateway and upstream Xray chain that understands the same V2K family.
Client and gateway must agree on auth. If you enable session auth or protected carrier-poll behavior, the client-side Auth Mode / Auth ID / PSK must match what the gateway expects.
Sharing

Why `.v2k` matters for V2K users

Portable field preservation

`.v2k` packages preserve the full V2K field set, including mode, frame sizes, timing, auth, and AEAD, instead of forcing users to rebuild those values by hand.

Store compatibility

The same packaged content can be published to or downloaded from the internal Store workflow, which is why V2K configs can move across the app ecosystem cleanly.

Safety notes

Things advanced users should remember

AEAD off can be network-sensitive. In some real paths, disabling AEAD still works for HTTPS but clear HTTP may be reset more easily. This is a network behavior issue, not always a mapping bug.
Carrier-poll is intentionally slower. It exists to keep the route alive on hostile networks, not to beat the throughput of a clean stream path.
Presets are starting points. Use them to get a stable baseline, then tune only the fields that actually matter for the failing route.

Compare it with payload workflows

Open the Socket Custom guide if you are deciding between HTTP RAW payload techniques and V2K carrier fallbacks on the same network.