User Tools

Site Tools


mywiki:linux:tcp_performance

Formula for TCP Performance/Latency/Window Size

Formula

Bits-per-second-throughput = TCP-Window-Size-in-bits / Latency-in-seconds
Optimal TCP window size in bytes = Bandwidth-in-bits-per-second * Round-trip-latency-in-seconds = TCP window size in bits / 8
Maximum Latency for a desired throughput =TCP-window-size-bits / Desired-throughput-in-bits-per-second = Maximum RTT Latency

Example of TCP Performance

Suppose Windows size is 64K bytes, and its round trip latency is 0.03 seconds, then:

                     1 Gbps Link Rate
    Server  <--------------------------------->    Client 
               Round Rrip Latency is 0.03 

TCP throughput of 1 flow = 64K bytes/0.03 seconds = 65536 Bytes/0.03 = 65536 * 8 bits/0.03 = 17.4 Mbps

Example of optimal Windows Size

Suppose 1 TCP Flow throughput is 1 Gbps with 30 milliseconds round trip latency:

Windows Size = 1,000,000,000 bps * 0.030 seconds = 30,000,000 bits / 8 = 3,750,000 Bytes

Example of Round Trip Latency

You might want to achieve 10 Gbps FTP throughput between two servers using standard 64KB TCP window sizes. What is the maximum latency you can have between these two servers to achieve 10 Gbps?

TCP-window-size-bits / Desired-throughput-in-bits-per-second = Maximum RTT Latency

Maximum RTT Latency = 64K bytes/10 Gbps = 524288 bits / 10,000,000,000 bits per second = 52.4 microseconds

mywiki/linux/tcp_performance.txt · Last modified: by 127.0.0.1