Hacker News new | past | comments | ask | show | jobs | submit login
An Engineer's Guide to Bandwidth (yahoo.net)
112 points by aristus on Oct 1, 2009 | hide | past | favorite | 17 comments



<useless but informative gripe>

An actual engineer would know bandwidth isn't something measured in bits per second.

Technically, bandwidth is the width of a band of frequencies. For example, the bandwidth between 3 GHz and 4 GHz is 1 GHz. The bandwidth of an 802.11 channel is 22 MHz.

Obviously it's a lost cause trying to stop everyone from using "bandwidth" to mean throughput or a data rate. Don't get me started on people using bandwidth to mean how much work they can handle either: "I don't have the bandwidth to handle another project, you better give it to somebody else."

</useless but informative gripe>


There's this wonderful property that all human languages have, polysemy, which gives them the ability to give one word multiple related meanings. I'm sure there are examples in English...


Except that engineers are supposed to use precise, unambiguous language. I blame the computer guys for knowing jack of signal processing / communications theory and misusing the technical terms due to plain ignorance. It wouldn't be so bad if the ignorant fools in question weren't so arrogant...


I agree with that arrogant part. I think also though, it does get annoying when people know full well what you are talking about, but then interject with some clarification or correction or disambiguation that really wasn't necessary.

The problem is that sort of interjection ruins the conversation and interrupts the communication of ideas that are bigger than the individual words that comprise them.


It also gets annoying when people discuss things and in the end discover they are talking about different things, you know. When a networks guy talks about bandwidth, he might refer to bit rate or channel capacity, but for an RF engineer, bandwidth is measured in Hertz. Interrupting the commnunication of ideas is bad, but communicating imprecise ideas is close to useless.


So the onus is on you to make yourself clear in spite of the ambiguity (a simple way would be to mention a unit early in the conversation). Really, the terminology isn't going to change no matter how much noise you make, so it would be worthwhile to save yourself the effort.


I blame the computer guys for knowing jack of signal processing / communications theory and misusing the technical terms due to plain ignorance.

It's revenge!

But seriously, we also do it a lot to ourselves. There seems to be a programmer mindset -- experiencing our ability to figure things out using deduction and documentation, we get conditioned to think we can quickly get a working handle on anything. As a result, engineers and scientists of all sorts are constantly annoyed at computer guys posting stupid things. (But at least we can unite in our exasperation at journalists.)

We programmers live, "There's nothing more dangerous than a little knowledge." Often we live with the consequences. (In the late 90's I despaired at the dilution of the language around Object Orientation. Things have gotten better since then, somehow.)


Well, I upvoted your comment, because it was useless but informative as advertised. ;)


I like the point about keeping the HTTP GET or POST request in a single packet to avoid the round trip from TCP slow start.


Why is he using 1460 as the packet size? He says that it's 1500 minus the packet overhead, but I've always seen MTU as 1492 (I could be recalling incorrectly here). In any case, MTU changes as you travel over various networks with various settings, using various technologies (ethernet,wireless,fiber,etc).


MTU is the maximum Ethernet v2 packet size (1500); MSS is the "payload" it can carry (1460). If you see 1492 for your MTU, you are maybe using Point to Point Protocol over Ethernet (PPPoE) which chomps another 8 bytes.


Ethernet MTU is 1,500 bytes. IP overhead is 20 bytes. TCP overhead is another 20 bytes, which leaves us at 1,460 maximum segment size (MSS).


The referenced link is far more interesting than the resulting discussion.

For persons who are designing web applications, the post outlines considerations that are not generally known or well understood. Some considerations, such as managing the number of round trips also apply to app<->database connections.


[deleted]


When I was editing this post I thought for about 5 seconds about replacing that screenshot. Then I got over myself and did something useful instead.

Not everything in life needs to be a competition.


Isn't the proper term "throughput"?


Yes, but it's too late to change (see seiji's downvoted comment below).


Bandwidth always confuses me a lot, when they mean throughput




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: