[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: shim6 @ NANOG (forwarded note from John Payne) (fwd)
:: On Fri, 24 Feb 2006 Iljitsch van Beijnum writes:
:: > > * Keeping shim6 state on the end host doesn't scale for content
:: > > providers. A single server may have 30,000 concurrent TCP
:: > > sessions
:: >
:: > Right. So there is precedent for storing state for 30000 instances of
:: > "something". Servers are getting a lot faster and memory is getting
:: > cheaper so adding a modest amount of extra state for longer lived
:: > associations shouldn't be problematic.
:: >
:: > (Visit a run of the mill content provider and see how many 100 byte
:: > GIFs they send you over HTTP connections that have 700 - 1200 byte
:: > overhead and of course all have high performance extensions turned on
:: > for extra bandwidth wastage.)
Wow.. I realize I'm coming a little late to this party, but have you asked
anybody who works for a large-ish content provider about their views
on what you are suggesting? (disclaimer: I do work for a fairly large
content provider, but my views in this email are my own, and do not
necessarily officially represent my employer's views in this email)
First of all, yes, content providers at times do waste quite a bit of
bandwidth with (what sometimes may appear as unnecesery (and sometimes
really is)) overhead. However, very often that is done not because people
don't understand what they are doing, but in an effort to reduce overhead
somewhere else. Case and point: we all know that http/1.1 + keep-alive is
more "efficient" from a bw perspective, yet there are some large web shops
which force all transactions into http/1.0 +no-keep-alive in order to use
"accept-filter" and therefore save on application state. That state may be
deemed as more "costly" to content providers then bandwidth. Now, since
they are obviously going to great pains to save on this state, what makes
you think that adding shim6 state into the picture "shouldn't be
problematic."?
Also, while we are on it, let me offer you a view on some issues with
shim6 from a content provider standpoint (some may be a duplication of
what Jason has wrote previously, but I want to document it for sake of
completeness):
1) Most connections to content providers (with the exceptions of
long-lived streaming sessions, but those sessions are fairly "few" per
server) are very short-lived http (think about 15 packets in each
direction including the setup/teardown). Since, shim6 (as designed right
now) does not initiate from the first packet(s), it might not take effect
for these short-lived sessions, and therefore will not help in case of
failure, so in effect, *does not work* at all for fast http transactions
1) In order to "fix" #1, shim6 has the potential to put a sizable (over
10%) state penalties on our servers (to service end-sites w/ shim6),
something which is arguably the most painful thing for those servers,
which can translate into millions of dollars of additional hardware, and
many more millions of dollars per year to power/cool that hardware.
3) While TE has been discussed at length already, but it is something
which is absolutely required for a content provider to deploy shim6. There
has been quite a bit of talk about what TE is used for, but it seems that
few people recognize it as a way of expressing "business/financial
policies". For example, in the v4 world, the (multi-homed) end-user maybe
visible via both a *paid* Transit path (say UUNET), and a *free* peering
link (say Cogent), and I would wager that most content providers would
choose the free link (even if performance on that link is (not hugely)
worse). That capability all but disappears in the v6 world if the Client
ID was sourced from their UUnet ip address (since that's who they chose
to use for outbound traffic), and the (web) server does not know that
that locator also corresponds to a Cogent IP (which they can reach for
free). This change alone would add millions to the bw bills of said
content providers, and well, reduce the likelyhood of adoption of the
protocol by them. Now, if the shim6 init takes place in the 3way
handshake process, then the servers "somewhat" know what all possible
paths to reach that locator are, but then would need some sort of a
policy server telling them who to talk to on what ip, and that's something
which will not simply scale for 100K+ machines.
4) As has also been discussed before, the initial connect time has to be
*very* low. Anything that takes longer then 4-5 seconds the end-users have
a funny way of clicking "stop" in their browser, deeming that "X is down,
let me try Y", which is usually not a very acceptable scenario :-) So,
whatever methodology we use to do the initial set-up has to account for
that, and be able to get a connection that is actually starting to do
something in under 2 seconds, along with figuring out which sourceIP and
destIP pairs actually can talk to each other.
I hope this gives people some visibility as to what some content providers
think about shim6, and why deploying it is, well, not something that
people will scramble (or very possibly chose) to do, unless those are
addresses. And, yes, everyone understands that it's all about making
trade-offs, but if you make the wrong trade-offs, and not enough people
deploy the protocol, it's simply not going to fly, and people will just go
back to de-aggregating in v6 and let Moore's Law deal with the issue (and
anyone who thinks that people will prevent paying customers from
deagregating has not seen how many hoops ISP's will jump through for that
extra revenue, or how fast customers will jump to other ISP's which will
allow them to do just that). I don't know if more work on shim6 is the
answer, or GSE/8+8 is a better alterntive, but it sure looks like what we
have in shim6 today (and it's current direction) isn't going to cut it.
Just my $0.02
Thanks,
-igor