Contents:

Corrections to jwbensley <at> gmail <dot> com

SI Throughput Calculators

Required Speed Calculator

Data to transfer in Gigabytes:
Required Speed (Mbps):
Per Month (30 days)
Per Week (7 days)
Per 5% Month (36 hours)
Per Day (24 hours)
Per Hour (60 minutes)
Day Sum: GBs*1000*1000*1000*8=Bits
Bits/24/60/60=Bps-per-day
Bps-per-day/1000/1000=Mbps-per-day

Required Bandwidth Calculator

Transfer speed in Mbps:
Required Bandwidth (GBs):
Per Month (30 days)
Per Week (7 days)
Per 5% Month (36 hours)
Per Day (24 hours)
Per Hour (60 minutes)
Day Sum: Mbps*60*60*24/8=Megabytes per Day
MBs/1000=GBs

IEC Throughput Calculators

Required Speed Calculator

Data to transfer in Gibibytes:
Required Speed (Mibps):
Per Month (30 days)
Per Week (7 days)
Per 5% Month (36 hours)
Per Day (24 hours)
Per Hour (60 minutes)
Day Sum: GiBs*1024*1024*1024*8=Bits
Bits/24/60/60=Bps-per-day
Bps-per-day/1024/1024=Mibps-per-day

Required Bandwidth Calculator

Transfer speed in Mibps:
Required Bandwidth (GiBs):
Per Month (30 days)
Per Week (7 days)
Per 5% Month (36 hours)
Per Day (24 hours)
Per Hour (60 minutes)
Day Sum: Mbps*60*60*24/8=Mebibytes per Day
MiBs/1024=GiBs

Protocol Overheads Calculator (application goodput)

Application Speed (Mbps):
L2 MTU Size (Octets):
Ethernet Headers:
Standard Frame
(14 Octets)
 
 
1st VLAN
(4 Octets)
2nd VLAN
(4 Octets)
MPLS Label Stack:
1st Label
(4 Octets)
2nd Label
(4 Octets)
 
3rd Label
(4 Octets)
4th Label
(4 Octets)
IP Headers:
Smallest IPv4 Header
(20 Octets)
Largest IPv4 Header
(60 Octets)
 
Smallest IPv6 Header
(40 Octets)
 
Transport Headers:
Smallest TCP Header
(20 Octets)
TCP Header Options
(16 Octets)
 
Smallest UDP Header
(4 Octets)
Largest UDP Header
(8 Octets)
Additional Headers/Payload
Octets = ((Mbps*1000)*1000)/8
Frame Payload = MTU - Upper Layer Headers
Octets/Frame Payload = Frame Count
Frame Count * (Frame + MPLS + IP Headers) + Octets = Total Octets Tx
((Total Octets/8)/1000)/1000=Total Mbps

Layer 1 Bit-Timing Calculator

Wire Speed (Mbps):
L1 Overheads:
Preamble + SFD (8 Octets):
Interframe Gap (GE Reduced)
(8 Octets)
Interframe Gap (Standard)
(12 Octets)
Interframe Gap (100GE Reduced)
(1 Octets)
Interframe Gap (10GE Reduced)
(5 Octets)
L2 Overheads:
Ethernet Frame Contents:
(SRC MAC + DST MAC + VLANs + Etype + Payload)
(6+6+0+2+46)
Frame Check Sequence
(4 Octets)

IP PPS Calculator

IP Payload (Octets):
Pps:
(IP Octets * Pps)
*8/1000/1000 = Mbps
Goodput (Mbps):
 
20 octets IP header + 14 octets Ethernet header
((IP Octets+20+14) * Pps)*8/1000/1000 = Mbps
Throughput (Mbps):
 

Raw Throughput (Mbps):
 
Ethernet Headers:
Standard Frame
(14 Octets)
 
 
1st VLAN
(4 Octets)
2nd VLAN
(4 Octets)
MPLS Label Stack:
1st Label
(4 Octets)
2nd Label
(4 Octets)
 
3rd Label
(4 Octets)
4th Label
(4 Octets)
IP Headers:
Smallest IPv4 Header
(20 Octets)
Largest IPv4 Header
(60 Octets)
 
Smallest IPv6 Header
(40 Octets)
 
Transport Headers:
Smallest TCP Header
(20 Octets)
TCP Header with Options
(36 Octets)
 
Smallest UDP Segment
(4 Octets)
Largest UDP Segment
(8 Octets)
26 Byte Payload
(Mbps*1000*1000)=Bps
/26=Pps:
 
 
 

Bandwidth Delay Product

TCP Throughput
TCP Receive Window Size (KiBs):
Delay (RTT seconds):
RWIN (bits) / Seconds = Mbps
Max Goodput (Mbps):
 

Required RWIN*1
L4 Goodput (Mbps):
Delay (RTT 0.005==5ms):
Speed (bits) * Delay (seconds) = RWIN
Required RWIN
(KiBs):
 

Required Latency
TCP Receive Window Size (KiBs):
L4 Goodput (Mbps):
RWIN (bits) / L4 Goodput (bps) = Latency
Max RTT Latency
(ms):
 
*1: CWIN will need to be this size too. Socket buffers (SO_SNDBUF/SO_RCVBUF) too.

TCP RFC3649 L4 Throughput Guestimater

L2 Link:
Speed (Mbps):
MTU (Bytes):
Ethernet Headers:
Preamble + SFD (8 Octets):
 
Interframe Gap (GE Reduced)
(8 Octets)
Interframe Gap (Standard)
(12 Octets)
 
Interframe Gap (100GE Reduced)
(1 Octets)
Interframe Gap (10GE Reduced)
(5 Octets)
 
Standard Frame (no VLANs)
(14 Octets)
CRC/FCS
(4 Octets)
 
1st VLAN Tag
(4 Octets)
2nd VLAN Tag
(4 Octets)
MPLS Label Stack:
1st Label
(4 Octets)
2nd Label
(4 Octets)
 
3rd Label
(4 Octets)
4th Label
(4 Octets)
IP Headers:
Smallest IPv4 Header
(20 Octets)
Largest IPv4 Header
(60 Octets)
 
Smallest IPv6 Header
(40 Octets)
 
Transport Headers:
Smallest TCP Header
(20 Octets)
TCP Options
(16 Octets)
RFC6349 Sec 1.2 RTT (seconds):
 
L4 Goodput (Mbps):
 

Size of TCP ACK:
TCP MSS:
Max TCP MSS at L2:
TCP MSS Pps
L4 Goodput (Exc. Headers) in Mbps:
Required TCP RWIN (KiBs):
(RTT seconds * L4 Goodput Mbps)
TCP ACK timing per TCP MSS
Assume RFC1122 Sec 4.2.3.2
(ACK every second datagram, instead of every datagram):
TCP MSS Pps with ACKs:
L4 Goodput (Exc. Headers) in Mbps with ACKs:

TCP Delay (this is a guestimate of the best possible scenario)

Receiver Settings
MTU (bytes):
MSS (bytes):
RWIN (bytes):
RTT (seconds):
One-way delay (seconds):
Packets Tx to fill RWIN:
Time to fill RWIN (seconds):
Time to return one ACK (seconds):
Time to Tx and ACK one RWIN:
ACK'ed RWINS per second:
Bandwidth (MBs/p/s):
Speed (Mbps):
Assume RFC1122 Sec 4.2.3.2
(ACK every second datagram, instead of every datagram):
 
Max Throughput (Mbps):
 

95th Percentile Calculator

Minutes per hour
60
5 minute sampling intervals per hour
60/5 = 12
Minutes per day (60*24)
1440
5 minute sampling intervals per day
1440 / 5 = 288
Minutes per 30 day month
30 * 1440 = 43200
5 minute sampling intervals per month
43200 / 5 = 8640
Hours per 30 day month
24 * 30 = 720
5% of month in hours
(720 / 100 = 7.2) * 5 = 36
Hours spent transferring:
 
 
 
% of month spent at this speed

Unit Converter

From:
Tbps:
Gbps:
Mbps:
Kbps:
bps:
TBps:
GBps:
MBps:
KBps:
Bps:
Tibps:
Gibps:
Mibps:
Kibps:
TiBps:
GiBps:
MiBps:
KiBps:
      Convertions
      1 Tebibit = 1099511627776 (2^40)
      1 Terabit = 1000000000000 (10^12)
      Tibi to tera = *1.099511627776
      Teri to tibi = *0.90949470177

      1 Gibibit = 1073741824 (2^30)
      1 Gigabit = 1000000000 (10^9)
      Gibi to giga = *1.073741824
      Giga to gibi = *0.93132257461

      1 Mebibit = 1048576 (2^20)
      1 Megabit = 1000000 (10^6)
      Mebi to mega = *1.048576
      Mega to mebi = *0.9536743164

      1 Kibibit = 1024 (2^10)
      1 kilobit = 1000 (10^3)
      Kibi to kilo = *1.024
      Kilo to kibi = *0.9765625
      

Reference Table:

IEC 60027 Binary Prefixes
SI Binary Prefixes
Speeds
1 Octet/Byte:
8 bits
1 Octet/Byte:
8 bits
1 Bps:
1 bit
1 Kibibyte (KiB):
8,192 bits
1 Kilobyte (kB):
8,000 bits
1 Kilobit (Kbps):
1,000 bits
2^10
1,024 bytes
10^3
1,000 bytes
10^3
 
1 Mebibyte (MiB):
8,388,608 bits
1 Megabyte (MB):
8,000,000 bits
1 Megabit (Mbps):
1,000,000 bits
2^20
1,048,576 bytes
10^6
1,000,000 bytes
10^6
1,000 kilobits
 
1,024 kibibytes
 
1,000 kilobytes
 
 
1 Gibibyte (GiB):
8,589,934,592 bits
1 Gigabyte (GB):
8,000,000,000 bits
1 Gigabit (Gbps):
1,000,000,000 bits
2^30
1,073,741,824 bytes
10^9
1,000,000,000 bytes
10^9
1,000,000 kilobits
 
1,048,576 kibibytes
 
1,000,000 kilobytes
 
1,000 megabits
 
1,024 mebibytes
 
1,000 megabytes
 
 
1 Tebibyte (TiB):
8,796,093,022,208 bits
1 Terabyte (TB):
8,000,000,000,000 bits
1 Terabit (Tbps):
1,000,000,000,000 bits
2^40
1,099,511,627,776 bytes
10^12
1,000,00,000,00 bytes
10^12
1,000,000,000 kilobits
 
1,073,741,824 kibibytes
 
1,000,000,000 kilobytes
 
1,000,000 megabits
 
1,048,576 mebibytes
 
1,000,000 megabytes
 
1,000 gigabits
 
1,024 gibibytes
 
1,000 gigabytes