Bandwidth vs data transfer: Mbit/s, terabytes and what a 1 Gbit/s port means

Port speed and monthly traffic are different numbers. How they relate, how to convert between them, and how to estimate what you need.

Servers and cloud19 min readUpdated

Port speedHow fast: a rate1 Gbit/s, which is 125 MB/sIt caps every second. It says nothing about the month.Monthly transferHow much: an amount324 TBthe most the port couldmove in a 30-day monthA 6 TB allowanceto scale: 1.9% of the tankRate × time = amount125 MB/s1 Gbit/s ÷ 8×2,592,000 s30 days × 86,400 s=324 TBheld all monthAn allowance is a separate limit on the amount, far below this.Port speedHow fast: a rate1 Gbit/s = 125 MB/sMonthly transferHow much: an amount324 TBthe most the port couldmove in a 30-day monthA 6 TB allowance, to scale1.9% of the tankRate × time = amount125 MB/s×2,592,000 s=324 TBper secondin 30 daysflat out

In short

  • Port speed, often called bandwidth, is a rate: how many bits per second the connection can carry at any moment. Data transfer is an amount: how many bytes actually crossed it over a billing period, usually a month.
  • 1 Gbit/s is 125 MB/s, because a byte is eight bits. Held flat out for a 30-day month (2,592,000 seconds) it would move about 324 TB. A monthly allowance of a few terabytes is a separate limit, far below that.
  • Network speeds use decimal prefixes (mega is a million), while many tools print binary units (MiB, GiB, TiB), which make the same bytes look about 9 per cent smaller at the terabyte scale.
  • Size the port for your busiest minutes and the allowance for the month. Every estimate is the same multiplication: page weight times views, bitrate times hours times viewers, or rate per player times players times hours.
  • Some network contracts are billed at the 95th percentile instead: the rate is sampled, usually every five minutes, the top 5 per cent of samples are ignored, and the highest one left sets the bill for the month.
On this page
  1. Port speed is a rate, data transfer is an amount
  2. Bits on the wire, bytes on the disk
  3. When a terabyte is not a terabyte
  4. From a port speed to terabytes a month
  5. Peaks size the port, the average fills the month
  6. 95th percentile billing: paying for the busy hours
  7. Estimating what you actually need
  8. Measure it on your own server
  9. The mistakes that catch people out
  10. Questions
  11. Sources

Copy a 10 GB backup to a new server with a 1 Gbit/s port and, even if nothing else slows it down, it takes a little under a minute and a half, not ten seconds. Then read the plan again: it includes 6 TB of traffic a month, which looks tiny next to a port that could, on paper, move hundreds of terabytes. Nothing is wrong with either number. They measure different things, in units that happen to share letters.

The port speed is a rate: how fast data can flow at any moment. The traffic figure is an amount: how much flowed over the month. Once you can convert between the two, and between bits and bytes, you can look at any plan and tell whether it fits a website, a video stream, a VPN or a game server before you pay for it.

Port speed is a rate, data transfer is an amount

Think of the network port as a pipe. Its speed, written in bits per second, says how much can pass through at once: a 1 Gbit/s port can carry a billion bits every second and no more. It says nothing about how much actually passes. A port can sit nearly idle for a month, or run flat out for a day and then go quiet.

Data transfer, also called traffic, is the water that went through the pipe: the total number of bytes counted over a billing period, usually a month. Time is the only thing that links the two numbers. An amount is a rate multiplied by how long it was held, so a slow rate held all month can move more than a fast one held for an hour.

The word bandwidth muddles this, because people use it for both. Strictly it is the rate, the width of the pipe, but plenty of plans say "bandwidth" when they mean the monthly amount. The unit tells you which one you are looking at. Anything per second (Mbit/s, Gbit/s, MB/s) is a rate. Anything in bytes without "per second" (GB, TB) is an amount.

Neither number says how soon the first byte arrives. That delay is latency, set mostly by distance and the route, and a wider pipe does not shorten it; where your server is covers it.

Bits on the wire, bytes on the disk

Link speeds are counted in bits, because a link sends a stream of individual bits. File sizes, disk sizes and monthly traffic are counted in bytes, and a byte, symbol B, is eight bits.1 Careful writing spells the bit out (Mbit/s); marketing shortens it to a lower-case b (Mbps). Either way, Mbit/s and MB/s are different units, and the second is eight times the first.

To turn a port speed into bytes, divide by eight. 1 Gbit/s is 1,000,000,000 bits per second, which is 125,000,000 bytes per second, or 125 MB/s. That is the ceiling for everything the port carries, headers included. The 10 GB backup needs at least 10,000 MB ÷ 125 MB/s = 80 seconds, and a few more in practice, because every packet spends part of its size on headers rather than your data (the VPN example below shows how much).

Port speedIn bytes per second10 GB at best
10 Mbit/s1.25 MB/s8,000 s, about 2 h 13 min
100 Mbit/s12.5 MB/s800 s, about 13 min
1 Gbit/s125 MB/s80 s

When a terabyte is not a terabyte

The second trap is the prefix. In the International System of Units, kilo, mega, giga and tera are powers of ten: 103, 106, 109 and 1012.2 Computing borrowed them for powers of two, because 210 = 1,024 is very nearly 1,000, and so the same word came to mean two different numbers.1

In December 1998 the International Electrotechnical Commission approved a standard with separate names for binary multiples: kibi (Ki) for 210, mebi (Mi) for 220, gibi (Gi) for 230 and tebi (Ti) for 240. Under them, 1 MB is 1,000,000 bytes and 1 MiB is 1,048,576; 1 GB is 109 bytes and 1 GiB is 1,073,741,824.1

Network speeds are decimal. NIST records that some LAN designers once read a megabit per second as 220 bits per second, while telecommunications engineers all read it as exactly a million.1A 1 Gbit/s port is exactly 109 bits per second. The confusion starts when a tool on your server reports traffic in binary units, and worse, when it prints them with the decimal symbols.

Decimal (SI)Binary (IEC)Binary is larger by
1 kB = 1,000 B1 KiB = 1,024 B2.4%
1 MB = 106 B1 MiB = 1,048,576 B4.9%
1 GB = 109 B1 GiB = 1,073,741,824 B7.4%
1 TB = 1012 B1 TiB = 1,099,511,627,776 B10.0%

Derived from the definitions above: the gap is the binary value divided by the decimal one.

The gap grows at every step, which is why it bites hardest at the scale of monthly traffic. vnStat, a common traffic counter on Linux, shows the whole problem in one setting: its UnitMode option picks between IEC prefixes (KiB, MiB, GiB) in powers of 1,024, an older style that writes KB, MB and GB but still means powers of 1,024, and SI prefixes in powers of 1,000.3 So 6 TB of traffic can appear as 6.00 TB, as 5.46 TiB (6 × 1012 ÷ 240), or as 5.46 "TB" in the old style.

From a port speed to terabytes a month

Here is the conversion for a 1 Gbit/s port that never pauses for a whole 30-day month.

  1. Turn bits into bytes

    1 Gbit/s is 1,000,000,000 bits per second. Divided by 8, that is 125,000,000 bytes per second: 125 MB/s.

  2. Count the seconds

    A 30-day month has 30 × 24 × 3,600 = 2,592,000 seconds.

  3. Multiply

    125 MB/s × 2,592,000 s = 324,000,000 MB, which is 324 TB.

A 31-day month has 2,678,400 seconds and gives 334.8 TB. The same 324 TB is about 294.7 TiB in binary units, which is the figure a tool set to IEC prefixes would print.

1 Gbit/s, in bytes per second
125MB/s
1 Gbit/s held for a 30-day month
324TB
1 Mbit/s held for a 30-day month
0.324TB
1 TB a month, as an average rate
3.09Mbit/s

The third number is the one worth remembering: every megabit per second held for a whole month moves about a third of a terabyte. 10 Mbit/s all month is 3.24 TB, 100 Mbit/s is 32.4 TB. Turned round, each terabyte a month is an average of 8 × 1012 bits ÷ 2,592,000 s, about 3.09 Mbit/s.

Rate, heldall monthMoved in30 days1 Mbit/s0.324 TB10 Mbit/s3.24 TB100 Mbit/s32.4 TB1,000 Mbit/s324 TBA 1 Gbit/s portrunning flat outPlan allowancesof 1 to 30 TBaverage out at3.1 to 92.6Mbit/sLog scale: each labelled step is ten times the last.
Read across: a rate held for a whole 30-day month on the left, the data it moves on the right. The thick stretch of the axis is where the monthly allowances on Clouduxe plans fall when turned back into an average rate. Derived: TB = Mbit/s × 2,592,000 s ÷ 8 ÷ 1,000,000.

What an allowance means as a rate

The same arithmetic tells you what a monthly allowance is. A 6 TB allowance is 48 × 1012 bits. Spread evenly over 2,592,000 seconds, that is an average of 18.5 Mbit/s, 1.9 per cent of a 1 Gbit/s port. You could also spend it all at once: at the full 125 MB/s, 6 TB is gone in 48,000 seconds, about 13 hours and 20 minutes.

The port is sized for moments, the allowance for the month. A 1 Gbit/s port with a few terabytes of traffic lets a single transfer run at full speed, but over a month the average has to stay at a few per cent of the port or less.

Peaks size the port, the average fills the month

Real traffic is not flat. A site whose visitors live in one time zone is busiest in their evening and nearly idle before dawn. The drawing below is one made-up but typical-shaped day, with numbers chosen so the arithmetic is easy to follow.

Mbit/s255075100000:0006:0012:0018:0024:00Average: 20 Mbit/sPeak: 100 Mbit/sShaded area: 216 GB moved that day30 days like it: 6.48 TB
Mbit/s25507510000h6h12h18h24hAverage: 20 Mbit/sPeak: 100 Mbit/sShaded: 216 GB that day30 days like it: 6.48 TB
One day of traffic on a server. The peak decides whether the port can carry it; the shaded area, which is the average multiplied by the time, is what counts against a monthly allowance. The port's own limit, 1,000 Mbit/s, is far above the top of this chart. Illustration, not a recording.

One curve, two questions. Can the port carry it? Look at the peak: 100 Mbit/s at nine in the evening, a tenth of a 1 Gbit/s port, so yes, with room to spare. How much does it use? Look at the area under the curve, which is the average rate multiplied by the time: 20 Mbit/s × 86,400 s ÷ 8 = 216 GB for the day, and 6.48 TB over thirty days like it. That is more than a 6 TB allowance, even though the port was never more than a tenth full.

The mistakes run in both directions. Size the port from the average and the evening chokes, because the peak is five times higher. When more arrives than a port can send, packets wait in a queue, and once the queue is full new arrivals are dropped. TCP takes each loss as a sign of congestion and backs off, so pages and streams stall for everyone at once.13 Size the monthly total from the peak (100 Mbit/s held for 30 days is 32.4 TB) and you buy five times the traffic you use. How far the peak sits above the average depends on your audience: one time zone makes a sharp evening peak, visitors spread around the world flatten it. Your own graphs are the only reliable guide.

95th percentile billing: paying for the busy hours

Some network contracts are billed on a rate rather than an amount. The common method is called burstable, or 95th percentile, billing, and it lets usage go above a committed rate for short periods without paying for a higher commitment.5 It works in four steps.

  1. Sample the rate

    Measure the average rate on the link at regular intervals, in most cases every five minutes.

  2. Sort the month

    At the end of the month, sort all the samples from highest to lowest.

  3. Drop the top 5 per cent

    Throw away the highest 5 per cent of samples, the rarest spikes.

  4. Bill the next one

    The highest sample left is the rate billed for the whole month.

Five minutes is the usual sampling interval, not a universal one.5With five-minute samples, a 30-day month has 30 × 24 × 12 = 8,640 of them; 5 per cent is 432 samples, or 36 hours. So bursts that add up to less than about 36 hours in a month do not raise the bill.5

Mbit/s501000Top 5% of samples: thrown awayBilled rate: about 72 Mbit/sAverage: 20 Mbit/sThe day's 288 five-minute samples, sorted from highest to lowest
Mbit/s501000Top 5%: thrown awayBilled: about 72 Mbit/sAverage: 20 Mbit/s288 five-minute samples, highest first
The same day as above, cut into 288 five-minute samples and sorted from highest to lowest. The top 5 per cent are thrown away and the next sample becomes the billed rate, well above the average and below the peak. Illustration: the samples come from the day drawn above.

If every day of a month looked like the illustrative one, the billed rate would be about 72 Mbit/s: more than three times the 20 Mbit/s average, and below the 100 Mbit/s peak. That is the intent: a link has to be built for its busy periods, and the percentile follows that need more closely than the mean or the single highest sample does.5

Details vary between contracts, and direction is the big one. LibreNMS, an open-source monitoring system with a billing module, can account by total data transferred or by 95th percentile; for the percentile it bills the higher of the inbound and outbound figures by default, with an option to add the two together.6To see the figure for your own server, vnStat's --95th option calculates it for the current month from five-minute data, for received, transmitted and total traffic, along with the minimum, average and maximum rates.4 A fixed monthly allowance is the other model: it counts the amount, so how fast the bytes went does not matter, only how many there were.

Estimating what you actually need

Every estimate is the same multiplication: how much one unit of use sends, times how many units there are in a month. What changes from one workload to the next is the unit, and whether the peak or the total is the number that binds.

A website: page weight times page views

The HTTP Archive's Web Almanac put the median page weight in October 2024 at 2,652 KB on desktop and 2,311 KB on mobile, up from 1,208 KB and 505 KB ten years earlier.7 Take the mobile median, about 2.3 MB, as a starting point (the Almanac does not say whether its KB is 1,000 or 1,024 bytes; the difference here is under 3 per cent). 100,000 page views a month × 2.311 MB = 231 GB. One terabyte covers about 430,000 such views (1,000,000 MB ÷ 2.311 MB).

For your server that is an upper estimate, for two reasons. Returning visitors reuse files their browser has cached, although the Almanac warns that a good part of a page may be downloaded again anyway.7And page weight includes bytes that never leave your server: fonts, scripts and analytics loaded from other domains, or images served by a CDN. Weigh your own pages in the browser's developer tools and count only what your server sends.

The rate is tiny. 231 GB over a 30-day month is 231 × 8 × 109 bits ÷ 2,592,000 s, an average of about 0.71 Mbit/s; a busy hour at ten times that is still only 7 Mbit/s. For a website, the monthly total is the number to check, not the port. The server calculator does this sum from your traffic, and the page on hosting websites covers the rest of the sizing.

A video stream: bitrate times hours times viewers

Video is the opposite case: steady, heavy, and multiplied by every viewer. YouTube recommends encoding a 1080p live stream at 30 frames per second at 10 Mbit/s with H.264, and 12 Mbit/s at 60 frames per second.8One hour at 10 Mbit/s is 10,000,000 × 3,600 ÷ 8 = 4.5 GB. You can test the method on a published figure by running it the other way. Netflix says an hour of high-definition video uses up to 3 GB,10 and 3 × 8 × 109 bits ÷ 3,600 s is about 6.7 Mbit/s: the same order as the 3 to 5 Mbit/s connection it recommends for 720p and 1080p.9 The two do not match exactly, because one is the connection Netflix recommends and the other the most an hour can use.

Now relay a 10 Mbit/s stream from your own server to 50 viewers. Each viewer receives a copy, so while the stream is live the port carries 50 × 10 = 500 Mbit/s: half of a 1 Gbit/s port, which fits. Two hours a night is 500,000,000 × 7,200 ÷ 8 = 450 GB a night, and 13.5 TB over 30 nights. Here the port says yes and the allowance decides the plan. At 100 viewers the stream alone would need the whole port before any overhead, and both limits bind at once. Sending one copy to a platform that serves the viewers costs you one copy: 4.5 GB an hour.

A VPN: every byte crosses the server twice

A VPN server sits in the middle of its clients' traffic. When a client downloads a 1 GB file through the tunnel, the server receives that gigabyte from the internet and then sends it, encrypted, to the client. Five people who each pull 100 GB a month through the tunnel mean 500 GB arriving at the server and a little more than 500 GB leaving it. Whether that counts as 500 GB or about 1 TB against an allowance depends on whether your host counts inbound traffic, outbound traffic or both, so find out before you size the plan.

The "little more" is overhead. Every packet carries headers as well as data. With minimum-size headers, IP and TCP take 20 bytes each, so a segment can carry the packet size minus 40 bytes of data:11 1,460 bytes in a 1,500-byte packet, 2.7 per cent less than the packet. A tunnel wraps another layer around that. WireGuard sends all of its packets over UDP,14 whose header is 8 bytes,12adds a 16-byte header of its own (a type byte, three reserved bytes, a 4-byte receiver index and an 8-byte counter), and its encryption makes the payload 16 bytes longer.14

Add an outer IPv4 header and that is 20 + 8 + 16 + 16 = 60 bytes per packet, plus up to 15 bytes of padding, because WireGuard pads the inner packet to a multiple of 16 bytes.14 If the outer packets are 1,500 bytes, the inner packet can be at most 1,440, which carries 1,400 bytes of data after its own IP and TCP headers instead of 1,460: about 4 per cent less. On a small 100-byte packet it is 60 bytes plus 12 of padding (100 rounds up to 112), 72 per cent extra, which is why tunnel overhead matters more for chatty, small-packet traffic than for downloads. Ethernet adds its own framing on top of all of it. The VPN page and the guide to WireGuard and OpenVPN cover the rest.

A game server: players times rate times hours

A game server sends every connected player a steady trickle of small packets, so the estimate is per player: rate per player × players × hours online × days ÷ 8. With a round number chosen only to show the arithmetic, 100 kbit/s per player and 32 players for six hours a day gives 3.2 Mbit/s at the busiest time, and 3,200,000 × 21,600 s ÷ 8 = 8.64 GB a day, about 259 GB a month. Real per-player rates differ a lot from one game to another, so use a published figure for your game. The calculator has sourced figures for each game it covers, for example Minecraft: Java Edition.

WorkloadBusiest rate (sizes the port)A month (fills the allowance)
Website, 100,000 median mobile page viewsUnder 10 Mbit/sAbout 231 GB, less with caching
1080p stream at 10 Mbit/s to 50 viewers, 2 hours a night500 Mbit/s13.5 TB
VPN, five people pulling 100 GB eachWhatever their connections allow500 GB in, 500 GB and a few per cent out
Game, 32 players at 100 kbit/s each, 6 hours a day3.2 Mbit/sAbout 259 GB

Derived in the text above. The game row uses a made-up per-player rate to show the method.

Measure it on your own server

Estimates get you to a plan; after that, the server counts its own traffic. Linux keeps byte counters for every network interface: /sys/class/net/<interface>/statistics/tx_bytes is the number of bytes the device has transmitted, and rx_bytes the number it has received.15 The counter is a running total rather than a monthly one, and it starts again from zero when the server reboots. It counts whole packets, headers included, so it reads a little above the total size of the files you moved, and the kernel leaves the finer points of what is counted to each network driver.15 It is in plain bytes, so you choose the prefix when you convert it. Replace eth0 with your interface's name (ip link lists them).

cat /sys/class/net/eth0/statistics/tx_bytes1843276533912awk '{ printf "%.2f TB  %.2f TiB\n", $1/1e12, $1/2^40 }' /sys/class/net/eth0/statistics/tx_bytes1.84 TB  1.68 TiB

Same bytes, two numbers about 9 per cent apart. For a month-by-month view you need something that keeps history: vnstat -m shows traffic per month, and vnstat --95th gives the current month's 95th percentile.4 When your figure and your provider's disagree, check five things in order: the prefix (TB or TiB), the direction (in, out or both), the dates the month starts and ends, the interface, and whether a reboot has reset the counter you are reading.

The mistakes that catch people out

  • Reading Mbit/s as MB/s. The tell: a download that levels off a little under 125 MB/s (a little under 119 MiB/s, if the tool counts in binary) has filled a 1 Gbit/s port, and there is no more speed to find.
  • Treating the port speed as an allowance. The check: divide the allowance in TB by 0.324 to get the average rate it allows over 30 days. 6 TB comes to about 18.5 Mbit/s.
  • Sizing from the wrong number. The tell is in your graphs. If the rate sits flat at the port's limit every evening, the port is too small; if the allowance is used up before the month ends, the allowance is.
  • Counting a relay once. Compare rx_bytes with tx_bytes. On a VPN server they climb at nearly the same pace; on a stream relay with fifty viewers, the outbound counter climbs about fifty times as fast as the inbound one.
  • Comparing TiB with TB. Two figures about 9 per cent apart are the same bytes in different units until shown otherwise: 6 TB is 5.46 TiB.
  • Blaming the port for a slow site. A wider pipe helps only when the pipe is full; if it is not, look at distance. If it is full of traffic nobody asked for, that is a flood, and the guide to DDoS attacks covers it.

Before you choose a plan, run vnstat -m on the server you have now, read last month's total (check whether it is printed in TB or TiB) and compare it with the allowance. Then run vnstat --95th and check that the maximum rate it reports sits well under the port.4

Questions

Is 1 Gbit/s the same as 1 GB per second?

No. A byte is eight bits, so 1 Gbit/s is 125 MB/s. A 1 GB file takes at least 8 seconds on a 1 Gbit/s port, and a little longer in practice because every packet also carries headers.

How many terabytes a month is 1 Gbit/s?

About 324 TB in a 30-day month if the port ran flat out the whole time: 125 MB/s times 2,592,000 seconds. A 31-day month gives about 335 TB. That is the capacity of the port, not an allowance to use it.

How much data transfer does a website need?

Multiply page views by page weight. The median mobile page weighed about 2.3 MB in 2024, so 100,000 views a month is roughly 231 GB. Browser caching and files served from other domains or a CDN reduce what your own server sends.

What is 95th percentile billing?

A way of billing a connection by its rate. The rate is sampled at a fixed interval, usually five minutes, the samples are sorted at the end of the month, the top 5 per cent are thrown away, and the highest remaining sample is billed. Bursts adding up to less than about 36 hours a month do not raise the bill.

Why does my server report less traffic than my provider?

The usual causes are units (a tool showing TiB reads about 9 per cent lower than TB for the same bytes), direction (inbound, outbound or both), different start and end dates for the month, a different network interface, or an interface counter that started again from zero when the server rebooted.

Will a faster port make my website load faster?

Only if the port was full. If it was not, the delay is elsewhere, often in the round trips between the visitor and the server, which depend on distance rather than on how wide the pipe is.

Sources

  1. Definitions of the SI units: The binary prefixesNIST
  2. Metric (SI) PrefixesNIST
  3. vnstat.conf(5) manual pagevnStat
  4. vnstat(1) manual pagevnStat
  5. Burstable billingWikipedia
  6. Billing ModuleLibreNMS documentation
  7. Page Weight: 2024 Web AlmanacHTTP Archive
  8. Choose live encoder settings, bitrates, and resolutionsYouTube Help
  9. Netflix-recommended internet speedsNetflix Help Center
  10. How to control how much data Netflix usesNetflix Help Center
  11. RFC 879: The TCP Maximum Segment Size and Related TopicsIETF
  12. RFC 768: User Datagram ProtocolIETF
  13. RFC 7567: IETF Recommendations Regarding Active Queue ManagementIETF
  14. Protocol and CryptographyWireGuard
  15. sysfs-class-net-statistics (ABI documentation)The Linux kernel documentation

Put it to work on a server of your own.

Size a server for your workload with the calculator, or see which plan fits the job you have in mind.