---
url: /apranik/configuration/shared/proxy-request-timing.md
---
# Proxy request timing

The `proxy_request_timing` key of a [Trojan](../protocol/trojan.md) or
[VLESS](../protocol/vless.md) outbound. The client holds its proxy request until
the application's first bytes, so both leave in one write. A request sent alone is
a small packet of a fixed length, which DPI can recognise.

## Structure

```json
{
  "max_delay": "400ms",
  "skip": { "enabled": false, "ports": [21, 25, 110, 143, 587, 3306] }
}
```

## Fields

### `max_delay`

duration
Default: 400ms

The longest the request waits for the first bytes before it is sent alone.

### `skip.enabled`

boolean
Default: false

Send the request at once for the ports in `skip.ports`. Their protocols (FTP, SMTP,
POP3, IMAP, MySQL) wait for the server to speak first, so otherwise they start
`max_delay` late. The cost is the recognisable lone request.

### `skip.ports`

list of integers
Default: \[21, 25, 110, 143, 587, 3306]

Destination ports that skip the wait. Writing it replaces the default list.

UDP is not affected: a UDP session sends its request with its first datagram.
