Setup

There are several options that let the user control different aspects of how connections are setup.

VLAN

With the --vlan-priority command line option you set a priority value between 0 and 7 that is set in the Ethernet header. It is thus limited to your local network only and will not be used across any routers.

VLAN priority as defined in IEEE 802.1Q.

Example:

curl --vlan-priority 4 https://example.com

Type of Service

The IPv4 protocol header has a "Type of Service (TOS)" field. It is called "Traffic Class" in IPv6. A user can set the value using the --ip-tos option to either a numerical value between zero and 255, or by using one of the recognized names:

CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7, AF11, AF12, AF13,
AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43, EF,
VOICE-ADMIT, ECT1, ECT0, CE, LE, LOWCOST, LOWDELAY,
THROUGHPUT, RELIABILITY, MINCOST

Example:

curl --ip-tos CS5 https://example.com

Multipath TCP

Multipath TCP is a way for a TCP connection to use multiple concurrent network paths to maximize throughput and increase redundancy, compared to the normal single path that ordinary TCP uses.

You can ask curl to use Multipath TCP with the --mptcp option. It only works on Linux and it requires Linux 5.6 or later. It has no effect on QUIC or UDP connections.

The server curl connects to must also support MPTCP. If not, the connection seamlessly falls back to "normal" TCP.

Example:

curl --mptcp https://example.com