Why the internet only just works (2006)
fermatslibrary.com
fermatslibrary.com
We never dreamed of a connection with over 10,000 packets in flight. Cutting the congestion window in half on a packet loss and ramping it back up one packet at a time was something I came up with around 1984. That does need to be rethought, and it has been.
It would be great if HN had some sort of annotation for distinguished commentators.
"Hopefully HN readers ++without the famous chrome extension++ know that Animats is the inventor of https://en.wikipedia.org/wiki/Nagle%27s_algorithm"
...
Reminds me of snooker i.e. "and for those of you who are watching in black and white, the pink is next to the green"
When someone's identity is pertinent, it seems like they tend to state it eventually anyhow.
They never mention whose death it's meant to commemorate, though, you're just supposed to know.
edit: and now that I think about it, a thread is a far more fitting memorial for someone than a minor alteration of the stylesheet, so why even have the black bar to begin with?
I'd say it's a feature. HN is a place with its customs, some of them are not documented and you get to learn them as you participate.
> why even have the black bar to begin with
For the same reason people wear / display black ribbons.
1. Tracking content stats: how much have I read today, how does this compare to trend, what is my trend?
2. Some sort of "spendable ratings currency" that would indicate quality of an item. Ideally that would be some sort of compound metric. Time, commentary, re-shares, multiple re-visits over time, references in other items (from others, from you) as part of that. Also perhaps a specific metric of how good or bad something was (probably on a 5 or 7 point scale), though I'd tend to discount that. Flags for problematic content (bullshit, clickbait, etc.) These are only personal interest metrics. At best they'd be shared with a few trusted friends.
3. Attribution and reputation tracking by both author and publisher. Find someone whose stuff is really, really good, though they publish rarely? Note that. Find someone who couldn't tell a black eye if you gave them one? Note that. You'd end up with a set of ranked sources by quality and credibility.
4. Filters / indicators to note content's likely quality. Based on previous reputation.
5. A tagging / classification system. Having thought about this a lot, I'm inclined to go with an extant ontology, probably the USLOCCS, as that's been developed, is widely used, and isn't constained by IP restrictions as Dewey Decimal is. (USLOCCS: U.S. Library of Congress Catalog Classification System).
6. Uniform presentation + user editing. A Readability / Pocket like standard page presentation model. The ability to edit that (either in stock ways or specific elements) to further clean it up. Export to other formats (ePub, PDF, text).
7. Page annotations. I want to be able to keep notes on things.
I find it curious that the Web today is so metrics driven, but nobody has saw fit to provide metrics to end users themselves.
Since I was using this in large part (though not exclusively) to keep tabs on annoying gits online, this was a less than salubrious "feature". Sigh.
Reddit + RES offers tags. I'll note specific individuals, here usually focusing on clueful. Though it's limited to a word or two, and isn't inherently shared across systems (RES uses local storage).
But yes, generally, this is another of those "why aren't Web developers providing users with a pretty obviously useful tool". It's more than clear who's paying the piper here, and it ain't us.
Reading the comment without knowing the commenters "notability" let's the comment stand on its own. After the comment I can read that the person did X or Y.
But having the comment distinguished somehow would give it more "weight" than it necessarily deserves. After all, just because someone is notable doesn't make them infallible.
Personally, having a "blue tick" like thing for distinguished posters is helpful psychologically as it reassures me that I am not reading comments by newly minted young adult or a 20+ years experienced person doing mostly rote work. Now, there is nothing inherently bad about comments made by such posters, just that it would be far more reassuring to know that a poster is, hopefully, bringing in his publicly acknowledged experience into what he is saying, especially on topics in which that person is known for. To make it clear, they could even be a 20 something distinguished person! The point is not about age but about accomplishment.
Just because it's difficult to remove the "person" from the "message" in face-to-face conversation doesn't mean we can't strive for something better online.
I have a very relevant example! A few days ago I was reading a comment here about someone that drinks tap water and how (anecdotally) they are fine, and they didn't understand the craze with bottled water. Being completely honest, I made a "mental picture" of him as a mid 20's "hipster" silicon-valley type. And I agreed with his overall message. But halfway through his comment, he had a link to his "beverage container of choice" that he drinks water from. I read the whole comment before opening that link. I had assumed that it would point to a glass and leather "artisan" water bottle... The link pointed to something similar to this:
http://assets.suredone.com/1766/media-photos/sd009014-vintag...
After opening the link, my whole view changed. Suddenly that "mental image" changed into a mid 40's overweight sysadmin, and (as much as I'm ashamed to say it), I suddenly "trusted" their message less...
I realized what had just happened, and I realized that just thinking I knew who this person was affected my thinking. If I had known that person's age, size, gender, profession, etc... Would I have given their message a second thought? Honestly I don't think I would have. And that makes me feel like shit. I have prejudisms (is that a word?) that I don't consciously know I have, and if possible I'd like to not apply them. Reading HN comments as faceless-nameless comments helps me read the message with none of that "baggage". And if I later read about the person behind the comment (and learn that it's not what I expected), it can go a long way toward reducing the prejudice that I may have that I don't even know I have.
> If it's important to the conversation, the commenter can point out their own past experience (which Animats did by saying "As one of the early workers on network congestion").
This is basically what I was trying to convey. By making it known via some mechanism, HN would help posters from repeatedly posting their credentials before saying something deep and insightful or unpopular. A mechanism that isn't obvious, as in a button that makes something else visible that shows something about a distinguished poster, would benefit both parties I think.
Are you looking for "prejudices"?
What does that matter, if the comment is good? Nothing is inherently bad about those comments, just like nothing is inherently good about others.
Rather than a blue tick in the comment thread, it might be useful to have something like that inside their user profile. For example, animats has "John Nagle" in his "about" field. Having the information available but not initially visible might be valuable to help support claims like "As one of the early workers on network congestion" without coloring the interpretation of statements outside of his area of expertise (basically, avoiding attaching an "argument to authority" fallacy to every celebrity-posted comment).
edit: Bah, just saw your later comment where you suggested a similar mechanism. Sorry.
I can't believe you were so eager to respond to me that you didn't continue reading my post. I answer your query like in the very next sentence.
I was implying something like why reading something from a textbook is better than a random answer on reddit or yahoo answers. Mind you, I am talking about posters talking about specific things, not giving opinions on a variety of things, which is why I mentioned "topics in which they are known for".
> Why is reassurance a good thing?
I prefaced my post with "personally" specifically to avoid this line of discussion. It is a personal perception, and as I said elsewhere it is futile to argue about perceptions. The answer is, it just is.
> That seems like it'd imply that you're relaxing your guard when considering their opinion.
That's reaching.
Was there an unstated assumption that packet sizes might scale up with network speeds? (and not get trapped at the original 10mbit ethernet frame size as it turned out). Today we send teeny micropackets relative to link speeds, and increasing by one packet at a time is (in retrospect) a weird outcome. But like Chesterton's fence, it's nice to know how it got there.
Back then, there were ICMP Source Quench packets, which told the sender to slow down. We used those, but Berkeley didn't, and they eventually were abandoned.
The second paper is more philosophical. Back then, the big issue in networking was running out of buffers. Memory was expensive, and everything had tiny buffers by modern standards. Running out of buffer space had been a big problem in the ARPANET, and the original ARPANET protocols focused on not running out of buffers. (The original ARPANET had hard backpressure - if there wasn't enough buffer space in the network nodes, you couldn't send. Packets were never dropped for congestion reasons.) I pointed out that even with infinite buffer space, congestion was still possible. This is now conventional wisdom (see "bufferbloat"), but back then, it was a new idea.
The other new idea was viewing congestion as a closed-loop game theory problem. See the section "Game Theoretic Aspects of Network Congestion" in RFC970. Today everybody involved with networking traffic management thinks about router strategy and end node strategy interacting. But classical queuing theory was about stochastic arrival rates. The classic paper back then was Kleinrock's "Message delay in communication nets with storage"[3], which is considered part of the theoretical underpinnings of the ARPANET. Kleinrock also wrote the classic text on queuing theory. But Kleinrock wasn't studying the ARPANET; he was studying Western Union Plan 55-A, a distributed message switching system. (Think of a system that works like email forwarding over fixed links, with lots of forwarding. Plan 55-A was like Sendmail, built out of paper tape punches and readers and phone-type switchgear. A switching node was a large building.) Plan 55-A had no influence over the rate at which people submitted telegrams. That model didn't consider behavior of senders (end nodes) at all.
So looking at the problem as a game-theory problem was new. Somehow, the network had to not reward the sender who sends the most. A FIFO queue rewards the sender who sends the most. (Hence "bufferbloat", which is what happens when you have a huge, dumb FIFO queue.) That leads to everybody over-sending, long queues, and many dropped packets. So I devised fair queuing, with a queue for each sender, to eliminate the reward for over-sending. If you're sending into a fair router, your optimal strategy is to send just enough that your own private queue has 1 or 2 packets. Now the job is to make the end node (at the TCP level) try to do that. Hence congestion windows and other forms of end node traffic shaping.
I got out of networking in 1986; I was involved with a startup doing something else. So I was out of this before Van Jacobson really got into it.
[1] https://tools.ietf.org/html/rfc896 [2] https://tools.ietf.org/html/rfc970 [3] https://dspace.mit.edu/bitstream/handle/1721.1/11562/3384053...
The recent BBR work at Google is another key to solving bufferbloat.
I finally think we have the tools needed to really solve the problem, between flow queuing and new mark drop agorithms (e.g. Codel, CAKE, PIE, fq_codel, etc.) and BBR.
So again thanks to John for his key work.
Jim Gettys (who coined the word bufferbloat).
We can call you the Saw Tooth Guy, or the Additive Increase Multiplicative Decrease Guy. We'll let you pick.
I'm interested in what HN folks think has changed. What are today's urgent problems, and what are just annoying ones that will cost time and money to work around, but aren't critical? How do they differ from those of 10 years ago? Arguably, some I discussed back then have only grown in importance, with no solution in sight - for example, DDoS attacks. Whereas some, like address space exhaustion, look like being adequately addressed, as IPv6 is finally rolling out (only took 20 years!).
New protocols are still an issue, but the problems differ depending on whether we're taking about the transport layer or the application layer. We've tried and largely failed to deploy alternatives to TCP and UDP. My effort, DCCP, for multimedia traffic is dead in the water due in part to NAT/Firewall traversal problems, and is now essentially tunneled over UDP. SCTP is successful in some limited circles, but you're very unlikely to see it end-to-end across the Internet for the same reasons.
Even TCP is really hard to extend. If you're interested, we did some work on this a few years ago: http://www0.cs.ucl.ac.uk/staff/M.Handley/papers/extend-tcp.p... It's amazing what some middleboxes do to TCP.
At the application layer, it's somewhat easier. You can deploy new protocols over UDP, as BitTorrent did and as Google has done with QUIC, and they'll work in most places, but you'll still need a fallback. The universal fallback these days seems to be to tunnel over TLS on TCP port 443, because that's rarely blocked. The fact that we need to do this is an admission of failure on the part of the Internet architecture. The fact that it just about works is the reason we've not needed to address the underlying problem, which is the tension between security and extensibility.
There has been a lot of effort more recently on sensible queue management schemes to avoid buffer-bloat, which show significant promise. For low-speed customer links, variants of fair queuing generally work well. My ISP, Andrews and Arnold, is one of the few that really gets this. They have a shaper, upstream of the DSL or FTTC link, that can be configured to 95% of the negotiated link speed, so there are no queues downstream. Then they run fairly small buffers in the shaper and WFQ. I pretty much never see any significant latency on my VoIP calls due to queuing.
In general, low-latency VoIP shouldn't be a problem - so long as the data rate is lower then the rate of the mean flow on a link, you can give it strict priority service without harming the other traffic. In practice, this requires some sort of policing to avoid abuse. Various forms of fair queuing approximate this - a flow that has a low data rate will be serviced frequently (though not as quickly as it it had priority), and see pretty low latency in the queue on a busy link.
Now, getting low latency for high quality video conferencing; that's a different question. Fair queuing doesn't really help, because the data rate can be relatively high. Instead, you've got to keep the total queue size small. This can impact competing TCP flows if you're not careful, and can cause non-negligible packet loss. Thus is due to TCP's congestion control dynamics - throughput of a TCP flow is inversely proportional to round trip time, and inversely proportional to square root of loss rate. If you reduce queuing at the bottleneck, you reduce RTT, so push up the loss rate. This is one of the reasons people gripe about TCP's congestion control. However, if ECN were widely deployed, this would become a non-issue, because we wouldn't need those packet drops to control TCP's sending rate. Generally, widely deploying ECN would be the single biggest enabler for low-latency networking.
DDoS problem becomes pressing now with the emergence of IoT. Still no general solution though.
Please give me at least a chance to get a plain pdf (or html) that I can read (and click into) without content bumping forth and back and my computer grinding to a halt.
Also, they might have restrictions about distribution of papers. Youtube also doesn't have a download link next to every video.
Using chromium it's a tiny little quicker, but still annoying. They could easily stop the content bumping and the darkening "please subscribe" overlays.
Why does clicking anywhere on the document, or highlighting any text open up a "write a new comment" sidebar? Do they really think there are going to be more users writing comments on a paper than there will be copy-pasting a few sentences from it?
It feels like the primary purpose of the site is for users who want to comment on papers, and not users who just want to read papers. For the latter group, it's a really poor experience.
I'll acknowledge there is not an overload of ads being displayed with the paper, which is cool. Also acknowledge that there certainly might be restrictions for distributing papers (a separate, possibly inflammatory topic)...but have you tried doing something as simple as printing the paper? On Chrome (windows machine) it prints out so disjointed as to diminish one's interest in reading the paper (offline of course). I just want to print this out and read it on the train ride home. I guess the intent of the site is ideal, but execution is less so.
"Thanks, for me this was mostly another illustration how to make a website that doesn't." - sounds pretty harsh to me.
I was unable to read the paper because an unclickable modal kept popping up asking me to subscribe.
And not the gp, but I'm not "helping". In fact, I have no idea what I'm supposed to take away from you having asked that question.
So, yeah, it was an unusually, negative experience on mobile.
It is really that hard to just serve PDF instead of stupid javascript filled browsers.
Well, the entire point of the site is a collaboratively annotated journal article. You may not think that's interesting, or that it's feasibly implementable with current tools, but I think the folks do a pretty good job with their stated goal. So I think this is something to be left up to the HN voting.
telnet www0.cs.ucl.ac.uk 80
Trying 128.16.6.8...
Connected to haig.cs.ucl.ac.uk.
Escape character is '^]'.
HEAD /staff/M.Handley/ HTTP/1,0
HTTP/1.0 200 Document follows
MIME-Version: 1.0
Server: CERN/3.0
...
Proudly running CERN 3.0 on a Sparc 20 continuously since ~1993.I still subscribe, since the papers are interesting, but the website needs some love.
http://www0.cs.ucl.ac.uk/staff/M.Handley/papers/
Some very good reading.
The internet is only as fragile as you build it. I have seen too many ISPs running really important stuff through POPs where everything is 1+0.
Second, it's best practice here to put the date in the title for old articles.
Not much. We're still using TCP/IP, BGP and NAT. Web-standards may have evolved, but the internet is still the same, except for the average link being 10x faster now.
> Second, it's best practice here to put the date in the title for old articles.
I agree.
But the actual internet infrastructure is still the same, this paper discusses the protocols and architectural problems. I challenge you to name something that has changed. Even IPv6 was formalized 15 years ago.
Is there another internet out there that I don't know about? If not maybe the title should be "Why the internet only just stinks"!