Question: I am using Ubuntu 14.04 LTS with Linux Kernel version 3.13.0-34.

How can I find out what is the default or what is the current TCP congestion control algorithm being used ? 

Thanks.

Answer: 
There aren't TCP variants; there are TCP *congestion control algorithms*:

```
sysctl net.ipv4.tcp_congestion_control

cat /proc/sys/net/ipv4/tcp_congestion_control

```

The default is usually `cubic` or `reno`, although plenty others are available, and programs can set the preferred algorithm for *individual connections* (e.g. Transmission enables `lp` if available).

(The same knob affects both IPv4 and IPv6, despite its name.)
If you want to find out the current congestion control algorithm used on each connection you can use the `ss` command (part of the [iproute2](https://wiki.linuxfoundation.org/networking/iproute2) package/tools):

```
ss -ti

```

Here's some example output: Below the connection details, the first item in the parameter output is the congestion control algorithm - in this case `cubic`- which is followed by various parameters related to the TCP connection.

```
ESTAB      0      0      192.168.56.102:ssh           192.168.56.1:61795
 cubic wscale:6,7 rto:201 rtt:0.218/0.038 ato:40 mss:1448 rcvmss:1392
 advmss:1448 cwnd:10 bytes_acked:8753 bytes_received:3945 segs_out:40
 segs_in:63 send 531.4Mbps lastsnd:1 lastrcv:2 lastack:1
 pacing_rate 1059.1Mbps rcv_rtt:2 rcv_space:28960

```

Note: It is possible for applications to chose the congestion control algorithm they want to use by using the [`TCP_CONGESTION`](https://www.systutorials.com/docs/linux/man/7-tcp/) setsockopt() call.