Slashdot Mirror


Fast TCP To Increase Speed Of File Transfers?

Wrighter writes "There's a new story at Yahoo about a new version of TCP called Fast TCP that might help increase the speed of file transfers. Sounds like it basically estimates the maximum efficient speed of your network, and then goes for it, dumping a lot of time-consuming error checking." There's also an article at the New Scientist with some additional information.

105 of 401 comments (clear)

  1. Has to be said... by Anonymous Coward · · Score: 3, Funny

    Faster pr0n!!!!

    1. Re:Has to be said... by Jeremiah+Cornelius · · Score: 3, Funny
      C'mon.

      HUGE performance increase is possible, just by ommiting the optional EVIL bit.

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
  2. Isn't this called UDP? by havaloc · · Score: 5, Insightful

    Let's see. Transmission without error-checking is called UDP, isn't it?

    1. Re:Isn't this called UDP? by Ark42 · · Score: 4, Interesting

      No, UDP has error checking per packet via a checksum. What they are talking about is probably something to do with TCP "slow-start" where TCP connections speed increases slowly so as not to flood the network at first. I think the speed starts out exponentially with each packet then backing down some when packets are dropped.

    2. Re:Isn't this called UDP? by marbike · · Score: 4, Insightful

      Well, without error checking and session state.

      Really, I am not sure that this is a good idea. TCP includes error checking for a reason. I see this as a way to transmit corrupted files, not a way to speed up the internet experiance as a whole.

      --
      it is better to light a flame thrower than curse the darkness. -Terry Pratchett Men at Arms
    3. Re:Isn't this called UDP? by Ark42 · · Score: 4, Interesting

      The article seems kinda stupid to me, it describes a basic "stop-and-wait" protocol where only 1 packet can be in transit at a given time, and if it gets lost, it is retransmitted. I am pretty sure normal TCP has a window where it can send up to X packets at once and retransmit any particular missing one. I am sure there is room for improvement, but TCP is a fairly complex protocol already and the article seems to forget about all that.

    4. Re:Isn't this called UDP? by mondoterrifico · · Score: 4, Insightful

      No, UDP is a connectionless protocol, kinda like how our postal service works. TCP is a virtual connection more like when you make a phone call.

    5. Re:Isn't this called UDP? by subreality · · Score: 4, Interesting

      #1. No. UDP has error checking. The difference between UDP and TCP is that TCP is a connection-based, sequence-enforcing protocol, where UDP is basically raw connectionless datagrams that arrive in any order and you have to handle packet loss and reordering in your application.

      #2. RTFA.

      #3. They're not getting rid of error checking. It sounds like they're reworking the windows for ACKs in TCP to allow better streaming over high speed, but realistic (IE, slightly lossy) networks. Current TCP aggressively backs off when packet loss is detected, to prevent flooding the weak link in a network connection. It works really well for consumer network speeds, but on very high speed networks (EG, 45 Mbps), even very light packet loss will drop your speed dramatically down. TCP just wasn't meant to scale to these kinds of speeds, and some reengineering needs to be done to make it work smoothly. Many of the current extensions to TCP have made matters a lot better, but it's still going to have trouble scaling to gigabit, high latency networks, and it's best to start dealing with these issues early.

    6. Re:Isn't this called UDP? by Snoopy77 · · Score: 3, Funny

      The title seems to suggest that it is called "Fast TCP"??

      Gee ... we're not even reading the title of the stories anymore.

      --
      "She's a West Texas girl, just like me" - G.W Bush Iraqis
    7. Re:Isn't this called UDP? by zcat_NZ · · Score: 4, Informative

      I can only assume that the 'description' of how normal TCP works has been 'simplified to the point of being wrong' by reporters, because it is totally wrong. The description of 'why fastTCP is better' then proceeds to describe 'normal tcp as it actually works.'

      Any then they totally confuse the issue by mentioning that you can use multiple high speed links in parallel to get higher overall bandwidth. Boy am I impressed.

      --
      455fe10422ca29c4933f95052b792ab2
    8. Re:Isn't this called UDP? by Anonymous Coward · · Score: 2, Informative

      Actually UDP error checking is optional. If the checksum field is zero, the packet integrity is not validated.

      Tom

    9. Re:Isn't this called UDP? by harvardian · · Score: 5, Informative

      I see this as a way to transmit corrupted files, not a way to speed up the internet experiance as a whole.

      Without trying to be mean, you see it that way because you don't understand what's going on (mostly because the post was misleading). Fast TCP packets will still have a checksum and everything, so you're not going to get corrupted files. The change here is that normal TCP halves its "window size", or the amount of info that's out on the network at once without receiving an acknowledgement of receipt, with each error. This means that if there's one minor slowdown when 10 packets are currently out from your computer to the recipient (you've put out 10 packets without getting an ACK back yet), then your computer will reduce its window size and only allow 5 packets to be out at a time, effectively halving the transmission rate. Since TCP continually tries to get faster, it will always hit a bottleneck, resulting in your connection vacillating between optimal speed and half of that (approximately, I guess it might be worse than this on high-speed networks based on what I've read here).

      In Fast TCP, they do this "congestion control" in a different way. Rather than halving the connection speed with every slowdown to ensure stability, they send as much data as possible as long as the network seems clear on the recipient's end (I think they estimate this with round-trip time of some sort).

      So the "error checking" being changed by Fast TCP is NOT bit checking -- it's transmission rate checking. You'll still always get your files intact.

    10. Re:Isn't this called UDP? by zcat_NZ · · Score: 2, Informative

      Yeah, I was right.. there's a link to caltech further down which actually describes what they're talking about. Good to know that nobody but the reporters really think we're all still using xmodem/kermit like one-packet-and-wait protocols

      --
      455fe10422ca29c4933f95052b792ab2
    11. Re:Isn't this called UDP? by evilviper · · Score: 2, Insightful

      Well this DOES have error checking... Just a different type.

      That said, UDP is probably a better option for 99% of high-bandwidth traffic. Higher-lever error checking could accomplish the same thing with potentially less overhead.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    12. Re:Isn't this called UDP? by harvardian · · Score: 5, Informative
      FYI, a great website for understanding how TCP congestion control works is here. It explains how TCP additively increases its window size as traffic goes through okay but then halves its window size when it runs into a problem.

      And I should clarify my first post as well by explaining what a "transmission error" is that would cause the window size to halve. From the article above:
      It is rare that a packet is dropped because of an error during transmission. Therefore, TCP interprets timeouts as a sign of congestion, and reduces the rate at which it is transmitting.
      Basically, what I mean by a "transmission error" is a timeout -- the sender sends a packet and never gets an ACK for it. TCP works on the premise that packets are mainly dropped when congestion is high enough for routers to drop packets because of maxed buffers. Thus it makes sense to reduce transmission rate when no ACK is received to adjust to the capacity of the network.
    13. Re:Isn't this called UDP? by harvardian · · Score: 4, Informative

      This is stretching my certainty (I'm recalling all of this from a sophomore year CS networks class and I've been overwhelmed by booze in my graduating week), but here's a stab at this...

      I don't think that having a long RTT (round-trip time) will have a huge effect on transmission rate in the standard TCP case. Internet traffic, if I remember correctly, is bursty (cite), meaning that a typical transmission looks like:

      SEND 32 PACKETS
      RECEIVE 32 ACKS

      SEND 36 PACKETS
      RECEIVE 36 ACKS

      SEND 40 PACKETS
      RECEIVE 38 ACKS

      (oops! Sent 2 more than I could! Halve TX window!)

      SEND 20 PACKETS
      RECEIVE 20 ACKS

      etc. In this case it's easy to see why having a long RTT doesn't slow things down particularly, since there can be a big gap between the SEND and RECEIVE and nothing changes.

      In the case of non-bursty traffic, I don't think large RTT causes a big problem for normal TCP either. This is because even with a large RTT (if it takes 400 ms to go from sender to host, for example) ACKS will still be streaming in at a constant, if slower, rate, allowing for more packets to be sent out (this is more subtle to explain, so you might want to google more for a better explanation).

      I think the reason you misunderstand this is because the New Scientist article makes it sound like you send a packet, then receive an ACK, then send one, etc. This is not the case -- you send lots of packets together...this is the principle behind the "window", that you can send out more than one packet at a time without receiving an ACK because you've been successful at that so far.

      FYI, I looked up MCI's traffic times and found that transatlantic latency is roughly 80ms compared to 45ms for within-US traffic (cite). This is non-trivial, but also not huge.

      If anybody disagrees with this assessment, please feel free to correct, since as I said, I'm not 100% sure that increased RTT doesn't mean lower window size.

      Also, from my reading a lot of the gain was simply in the fact that halving a throughput rate of 800K/sec means you're dropping to 400K/sec when realistically you should probably only be dropping a little bit. According to NS, they improved by more than two-fold, but that's probably just because normal TCP doesn't often get to the actual max of the network, it may burp a lot on the way up and dip more than halfway than its reasonable max.

    14. Re:Isn't this called UDP? by skaya · · Score: 3, Interesting
      Since TCP continually tries to get faster, it will always hit a bottleneck, resulting in your connection vacillating between optimal speed and half of that (approximately, I guess it might be worse than this on high-speed networks based on what I've read here).

      This explanation must be somewhat simplistic, because everybody already did some 100 mbps transfers on fast-Ethernet LANs (even with a couple of routers), and we did not notice that the transfer speed was oscillating between 50 and 100 mbps.

      Also, the latency of the link won't influence things significantly (I have 25 mbps at work, and if I can find something that has at least 25 mbps too, I can do FTP at 3 megabytes/s with constant speed).

      Unless, of course, when talking about "high-speed" you mean the 1-100 gbps, and "high-latency" more than 1s... I don't have real life experience with those yet.

      The numbers mentionned are clearly wrong (6000x speedup? are we joking?), and this reminds me of an article I read some times ago, boasting noticeable performance improvements when increasing MTU (packet size) on networks. Of course, larger packets means less overhead ; but the numbers and figures where completely biased - first, they were only simulations ; second, their "optimized" protocol achieved 100 mbps, and the "plain" FTP achieved not even half of that - well, again, everybody has already achieved 100 mbps speed with FTP, so there must be some "trick" - I mean, some tweaked parameter in the simulation to reduce FTP performance. If this is a real life parameter, very good ; if not, the numbers aren't even worth the bits that describe them...

      In any case, the original news seems quite vague and error-prone (again, I tend to be very skeptical when people pretend they achieve high improvements with a protocol that already works at near-wirespeed...)

    15. Re:Isn't this called UDP? by harvardian · · Score: 2, Interesting

      This explanation must be somewhat simplistic, because everybody already did some 100 mbps transfers on fast-Ethernet LANs (even with a couple of routers), and we did not notice that the transfer speed was oscillating between 50 and 100 mbps.

      That's because the oscillation happens so fast that you can't see it happening (or see the next paragraph for an alternate explanation). I mean, it is not a disputed fact that TCP will frequently halve its window during a large file transfer under normal Internet conditions, so there are definitely changes in TX speed that you can't see (your FTP program will probably average over a longer period of time to determine its displayed speed).

      As for you saying you got 100 mbps throughput on a 100 mbps line with routers...it's possible that the router is designed to handle that much traffic in its buffer. I think most routers only start barfing when they get lots of traffic on multiple input links, but that's an IIRC, not something I'm sure of.

    16. Re:Isn't this called UDP? by tincho_uy · · Score: 5, Informative

      No, the guy at new scientist got it right... TCP uses an AIMD (additive increase multiplicative decrease) rate control algorithm. The rate at which you send is controlled by the window size at any given time. If you detect a loss, you decrease your window, dividing it's size by 2. If packets are arriving ok, you make small increments to your window size.

      This new protocol uses a different window management algorithm. It uses the acks as probes, (I guess they measure delays) and if 'the coast is clear', it maxes it's transmission speed

      I do wonder about FAST TCP congestion control capabilities, thugh... As for the poster who taled about slow start, sorry pal, but slow start is just the name...At that state, the transmission rate is increased quite fast, actually

    17. Re:Isn't this called UDP? by KyleJ61782 · · Score: 2, Informative

      Actually, though, he was correct since in the latest forms of TCP found in kernels today (just check out the Linux source code...), ACKs are already used as probes to determine congestion *and* RTT for throughput purposes. With advancements like TCP Reno, and newer, rarely does TCP ever go into a full timeout, or even hit a point where multiplicative decrease is actually needed, more often just additive decrease is required to maintain efficient congestion control.

      But you are correct, slow start is anything but. It certainly is much better than just flooding the network right off the bat, however yes, it does have an exponential start. The major disadvantage of slow start is the fact that it starts from one segment onward, which is obviously worse than just halving the window.

      --

      I refuse to have a battle of wits with an unarmed person.
    18. Re:Isn't this called UDP? by 680x0 · · Score: 2, Informative

      It's called RTP (Real Time Protocol) which contains timestamps for determining when each packet is supposed to arrive. Feedback is sent back to the transmitters by a related protocol called RTCP (Real Time Control Protocol) which let's the sender know about "jitter" (variation in packet arrival times), lost packets, and other problems. Read RFC 1889 for more info. (RFCs available here.)

  3. uh BitTorrent? by diesel_jackass · · Score: 4, Funny

    This would be badass when combined with BitTorrent!

    1. Re:uh BitTorrent? by ogre2112 · · Score: 5, Funny

      I foresee BitTorrent as being the next Slashdot craze. (See: Beowulf, Natalie Portman. . .)

      "Hey! This article is great! Imagine how BitTorrent would help it!"

    2. Re:uh BitTorrent? by Wild+Wizard · · Score: 2, Informative

      I suggest you RTFPDF namely this one.

      Which says nothing about hardware (and none of the others I read mentioned any change to hardware)

      Also a little reading and you will discover this is just a stop gap measure untill ECN is fully deployed.

      And yet more reading will produce this little gem at the bottom :-
      With 9,000-byte MTU, Linux, FAST and Scalable TCP all sustained more than 2.53Gbps on a single flow between Sunnyvale and Geneva, apparently limited by the transatlantic link. HSTCP sustained 1.8Gbps in that experiment. We emphasize that these experiments are preliminary and not yet conclusive

  4. Interesting, but I might suggest a different name: by grasshoppa · · Score: 2, Interesting

    SmartTCP. It sounds like equipment is constantly tweaking the connection for the optimum through put.

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
  5. stupid non network guy question by Emugamer · · Score: 2, Insightful

    Why not just number all packets between two hosts and if the recipient doesn't recieve a packet it requests that particular packet to be resent? I see problems with man in the middle attacks but is there any other reason?

    just wondering

    1. Re:stupid non network guy question by Poofat · · Score: 5, Informative

      Thats what TCP does, just in a passive fashion. The sender queues all sent packets for resend, (on a delay) and packets are deleted from the queue when an acknowledgement for a range of packets is recived from the remote computer.

      If you're curious: RFC 793

    2. Re:stupid non network guy question by drinkypoo · · Score: 2, Interesting

      The nice thing about using TCP rather than UDP is that it has connection state so you can filter packets more cheaply, as well as doing NAT more cheaply (both in terms of processor time.) With IPv6 NAT shouldn't be much of an issue but filtering is still a big deal and getting bigger.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:stupid non network guy question by kramer2718 · · Score: 3, Informative

      What you're talking about is a NACK (negative acknowledgement). Basically, if I miss a packet, I'll send a NACK. Some protocols use them, but you can't use NACKs exclusively.

      If the recipient never NACKed a packet, the sender wouldn't know if the all the packets were getting through or if none of the NACKs were getting through.

  6. zmodem??? by case_igl · · Score: 5, Interesting

    I remember back in my BBS days what a big deal zmodem was when it started getting used all over the place. As I recall, it changed the block size that you would receive dynamically based on line quality.

    So when you sent a block of 2k and got no errors, the frame size increased to 4k...8k... etc etc... Sounds like a similar approach.

    Case

    P.S. That was a long time ago in a FidoNet far far away, so my terms may be off.

    1. Re:zmodem??? by joshuac · · Score: 4, Interesting

      Actually, the Zmodem that was widely used (real zmodem) maxed out at 1k blocks, but it would steadily scale down to as small as 16 byte blocks (if I recall correctly).

      There were variants that did 8k blocks (and often referred to themselves as Zmodem8k), but none of these were true zmodem protocol.

      Still, nothing can be quite as fast as ymodem-g :)

      A little more on topic; what they are describing does not dynamically scale the packet size, only dynamically adjust the transmission speed up to the point that ack's start slowing down, but (hopefully) before any packets actually get dropped. I suspect disney and such will be quite disappointed if they think they are going to get a 6000x speedup in practical use as hinted at in the articles. Perhaps a 10% speedup for joe blow on a dialup modem, _maybe_. Take a look at your connection some time when downloading a file; you will probably find you can already peg your bandwidth quite nicely.

    2. Re:zmodem??? by polymath69 · · Score: 4, Informative
      Note, there still is, to my knowledge, nothing slower then kermit.

      At the risk that you're trolling, Kermit is actually very good indeed (after 1990 or so,) assuming you set your options correctly.

      The defaults are slow, but they work; that's Kermit's raison d'etre and why it's still around. But Kermit was probably also the first protocol to implement sliding windows and configurable blocksizes; Zmodem probably got that idea from Kermit. Set your options correctly, and Kermit's damn good.

      The age of the BBS is over (I ran one for about 12 years) but I'm pretty sure I'll use Kermit again before I have cause to use Zmodem again.

      --

      --
      I don't want to rule the world... I just want to be in charge of mayonnaise.
    3. Re:zmodem??? by G27+Radio · · Score: 4, Interesting

      I used to run an Apple II BBS/AE in the mid to late 80's (201). X-modem was king when I started. But Y-modem and then Z-modem surpassed it.

      X-modem transmitted files as 256 byte blocks of data along with an 8 bit checksum (IIRC.) The receiver would respond with an ACK (Acknowledgement) or a NAK (Negative Acknowledgement) after each block. If it was a NAK the sender would re-send the block. If it was an ACK it would send the next block.

      Y-modem increased the block size to 1k which was helpful since the turnaround time between packet and acknowledgement was wasting a lot of time. It also used a 16-bit CRC (Cyclic Redundancy Check) instead of an 8-bit checksum. Apparently the CRC was much more reliable.

      Around the time that error correcting modems started becoming popular (USR Courier 9600 HST) a variation of Ymodem popped up called Ymodem-G. Ymodem-G would send 1k-blocks with CRC's non-stop without waiting for an ACK. If the receiver got a bad block it would simply abort the transfer and you'd have to start it over.

      Zmodem would also send blocks and CRC's non-stop unless it got a NAK back. It would resume sending at the block that caused the NAK. The variably sized blocks were pretty cool too.

      Feel free to correct any errors. It's been a long time.

    4. Re:zmodem??? by Alien+Being · · Score: 2, Informative

      Kermit with sliding windows was/is known as SuperKermit. zmodem leapfrogged SuperKermit (pun intended) speedwise by using a more efficient encoding and larger blocksizes. And, it was less processor and memory intensive than Kermit. But Kermit was more robust.

      I guess it's just not easy being green.

    5. Re:zmodem??? by Bios_Hakr · · Score: 2, Insightful

      The TCP sliding window protocol does this. When you request a page, some data is sent to you. You send an ACK. the server then sends that same ammount of data, plus some more. Then you send an ACK. This continues until you stop sending ACKs. Then the server knows that it needs to back off a bit.

      I'm pretty sure this is a standard in TCP/IP.

      --
      I'd rather you do it wrong, than for me to have to do it at all.
    6. Re:zmodem??? by Surt · · Score: 2, Informative

      You don't want to go UDP because a lot of nodes you might have to traverse across the internet will drop UDP packets while queueing TCP packets. The TCP overhead winds up being smaller than the necessary redundancy you need to add to UDP. You really only want to use UDP in situations where you can actually afford lost information to stay lost, at least until better routers come along and are widely installed.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  7. Uh oh... by ctishman · · Score: 5, Funny

    "Caltech is already in talks with Microsoft and Disney about using it for video on demand," the magazine added. "Hey! Let's take a technology that's potentially revolutionary, and give it to Microsoft!" Yay for Caltech!

  8. Cool by SilVerDirectXer · · Score: 2, Insightful

    speed or accuracy..either one...

  9. Window size anyone? by sigxcpu · · Score: 2, Interesting

    Isn't estimating the effective bandwidth of the link exactly what tcp window is all about?
    I read the article and did not understand what do thay add that is better then the standerd tcp enhancements of selective ack and big window sizes.
    clue anyone?

    --
    As of Postgres v6.2, time travel is no longer supported.
  10. Without more details, sounds like BS by IvyMike · · Score: 2, Insightful

    I'm sorry, but without further technical details, this sounds like the sort of technical mumbo-jumbo that snake-oil salesmen were peddling back in the dot-com era.

  11. Great! by Lu+Xun · · Score: 5, Funny

    Who needs erro>*H~@}&)aA=cking anyway?

    --
    That's not a soda... it's a caffeine delivery device!
  12. Re:Oh Great they've invented UDP by grasshoppa · · Score: 3, Insightful

    You people are giving me a headache. There is no mention about the removal of error checking. Actually, the article is lite on any technical details, but you can divine what they are doing well enough. Basically, it seems they keep tweaking mtu rwin, ect until they get the best connection they can.

    This isn't revolutionary so much as evolutionary.

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
  13. New Scientist didn't put it very well... by nweaver · · Score: 4, Informative

    Looking at the information on their web page at caltech, the FAST network project is working with alternate TCP window sizing schemes.

    Namely, instead of reducing window size in the case of packet loss, window size is changed based on round trip latency. The problem being that reducing the window size in response to loss works well on most networks, but has a serious problem when dealing with very high-bandwidth links.

    In such a case, the conventional TCP windowing will shrink greatly in response to even one or two lost packets, which when you are sending a LOT of data, will occur.

    The real work (and it seems to be somewhat covered in their web pages) is how to use latency for congestion detection/control, but I haven't read it in enough detail to quite understand this, NOR how this scheme will interact with conventional TCP streams.

    --
    Test your net with Netalyzr
    1. Re:New Scientist didn't put it very well... by Manifest · · Score: 2, Interesting

      How about TCP Vegas? They use RTT measurements to proactively determine congestion.

      --
      ... "follow me" the wise man said, but he walked behind ...
    2. Re:New Scientist didn't put it very well... by stj · · Score: 4, Informative

      Well, as far as I remember, there were more problems than that.

      The problems with very high bandwidth links, TCP and RTT estimation start from the fact that TCP can do that estimation just every ACK received and with very high bandwidth links it changes much faster and in greater degree. So, TCP can't efectively estimate the available capacity, since it cannot probe the channel frequently enough.

      Caltech's Vegas looks great on pictures, however, there were papers pointing out that it's not exactly fair, especially with multiple bottlenecks of real-world topology. Then there were papers fixing that, and papers critisizing those solutions, and as the result I don't see Vegas anywhere around (except for some Cisco routers maybe) - the best I see is NewReno+SACK+FACK+ECN. I can imagine that more aggressive scheme will have an advantage over TCP, although NewReno is pretty aggressive if compared to most RT rate control schemes, so it's difficult to imagine anything more aggressive than that, that would yield in times of congestion.

      The best description of what they really propose seems to be in their Infocom's paper from April this year. That looks pretty good, too. But again, as it was with original Vegas, it will probably come out that it has some flaws, they will be fixed, the fixes will have some flaws, and so on. And for the time being everybody will continue to use NewReno. *snicker*

      Fact is that there is enormous (partly bad) experience with using TCP Reno, and with current abundance of capacity in the backbones, it doesn't seem that there is much on an interest in precise traffic control. I've got to have my first problem watching some movie trailer, yet. ;-)

      One thing worth mentioning - no reasonable application uses TCP for multimedia (why Disney then?). RTP/UDP with a reasonable model-based rate control can easily at least match Vegas, and often outperform it because of the kind and amount of feedback used to adapt to the network conditions for particular application. Caltech's scheme was constructed for ultra highspeed networking and tested for processing of vast data volumes produced by LHC to overcome deficiences of traditional TCP in that case. They have a real nice article on experiments with that with good results. But that's not quite the same as typical situation.

      --
      iThink iHate iMod
  14. Nice... BUT! by digitalmonkey2k1 · · Score: 2, Funny

    Hmm, just think how much faster IIS can get infected with this one!

    --
    My sausage tree didn't grow, does that make me a bad mommy?
  15. Yes, but by Anonymous Coward · · Score: 2, Funny

    ...will Fast TCP have the Evil Bit?

  16. not optimistic by ravinfinite · · Score: 5, Insightful

    "When the researchers tested 10 Fast TCP systems together it boosted the speed to more than 6,000 times the capacity of the ordinary broadband links.

    6,000 times? The tests done in labs are usually stripped-down and the results overstated just for statistical pleasure. In the real world, however, such figures are rarely achieved.

  17. Re:Interesting, but I might suggest a different na by Achoi77 · · Score: 3, Funny
    Actually I was thinking DumbTCP, since essentially you try to remove what what makes TCP TCP...

    or you could also call it ReverseDoS..

    or Self-Slashdotting! :-)

  18. This is old technology by nerdwarrior · · Score: 4, Insightful

    Measuring the round-trip time for packets and using this to information to predict the bandwidth delay product is nothing new. This is essentially one of the effects achieved with existing TCP congestion control algorithms such as TCP Tahoe, TCP Vegas and TCP Reno. The article is light on details and doesn't lead me to believe that they've done anything signicantly different from these three. Furthermore, if it *is* doing something different, how can it still obey the existing congestion control algorithms without thrashing? After all, we can all boost the speed of our TCP connections by simply turning off congestion control, as long as nobody else does it either. ;) [UDP's lack of congestion control is precisely why a few streaming video users can clog up an entire pipe for themselves, screwing everyone else who's using it.]

  19. smells like... by wotevah · · Score: 4, Interesting
    When the researchers tested 10 Fast TCP systems together it boosted the speed to more than 6,000 times the capacity of the ordinary broadband links.

    Does that mean TCP has 99.99% (humor me) overhead ?

    But seriously, you can probably use large windows to send streams of packets such that a single ack is required for a bunch of them, but it's impossible to achieve 6000x more throughput just by "optimizing" the TCP protocol. Even over Internet (I'm not even talking LANs since there is obviously not that much room for improvement due to the low latency).

    1. Re:smells like... by wotevah · · Score: 4, Interesting
      It's lame to respond to my own post, but the other article points out that they actually used a different architecture where TCP achieved 266Mbps and their optimized version got 925Mbps, which the author chose to compare with broadband speeds (6000x the capacity of broadband).

      Still, those numbers don't look right. AFAIK TCP has 5-15% overhead, so they must have been using a high-bandwidth, really-high-latency line to get that much improvement. Really high.

      Under these conditions (that obviously are unfavorable to TCP) I would be curious to see how "fast TCP" compares to any real streaming protocol (UDP-based with client feedback control). I have a feeling that the UDP stream is faster.

    2. Re:smells like... by larryleung · · Score: 2

      These numbers look like a case of a rigged benchmark.

      If you assume that a "typical" connection has poor latency but little actual packet loss, accurately tweaking the TCP window will drastically reduce resends. A typical TCP/IP stack will do horribly if you set the latency high enough and hence you can manufacture %100 or 6,000x performance numbers as you please. Big deal.

    3. Re:smells like... by p3d0 · · Score: 2, Informative
      AFAIK TCP has 5-15% overhead...
      Hint: this is not about the overhead.
      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  20. There is a reason why TCP throttles itself by Madwand · · Score: 5, Insightful

    It's called congestion collapse and the condition is described by RFC 896 by John Nagle.

    Just firing packets into the network willy-nilly is very bad; it's the "tragedy of the commons" all over again...

  21. Fixes problems with slow-start and resends.... by malfunct · · Score: 5, Informative
    It looks like this protocol is more proactive in monitoring the line. It looks for clues that it needs to slow down before a packet gets lost. A great deal of time in a TCP connection is spent waiting for acks and resending data, this is made worse by the typical latency across then net (if I remember right it averages 30 to 800 ms for domestic connections depending on time of day, and between 700 and like 1200 for connections abroad).

    This protocol figures out ahead of time if it needs to slow down so its always getting acks back instead of waiting for timeouts. Also it avoids the binary backoff time that happens with timeouts.

    So in response to many of the previous posts it loses none of the robustness of TCP. In the worst case its as slow as TCP and in the best case it should be equally as fast as TCP. In the average case, however, it shows a huge performance increase. Most of the time on the network is the average case so this is a good thing.

    --

    "You can now flame me, I am full of love,"

  22. Nothing to see here, move along..... by trinity93 · · Score: 4, Interesting

    Looks like this this

    SCTP is a reliable transport protocol operating on top of a connectionless packet network such as IP. It offers the following services to its users:

    -- acknowledged error-free non-duplicated transfer of user data,
    -- data fragmentation to conform to discovered path MTU size,
    -- sequenced delivery of user messages within multiple streams,
    with an option for order-of-arrival delivery of individual user
    messages,
    -- optional bundling of multiple user messages into a single SCTP
    packet, and
    -- network-level fault tolerance through supporting of multi-
    homing at either or both ends of an association.

    The design of SCTP includes appropriate congestion avoidance behavior
    and resistance to flooding and masquerade attacks.

    --
    We substituted the coffee Slashdot normally drinks with "Sandoz Crystals", Lets see if they notice the difference
  23. You just need to hire the right marketing team... by Anonymous Coward · · Score: 5, Funny

    ... to get a good name for this technology.

    With Microsoft's, it would be ActiveTCP.

    With Intel's, it would be HyperTCP.

    And so on, and so forth.

  24. Caltech Site by mib · · Score: 4, Interesting

    This is part of a whole bunch of TCP and networking related work at CalTech.

    I hate to do this to them, but the Caltech Networking Lab site has more info.

    From what I see, the improvement here is to use packet delay instead of packet loss for congestion control. They claim this has a bunch of advantages for both speed and quality.

    Here is a Google cached copy of their paper from March 2003.

  25. Man! by nhaines · · Score: 5, Funny

    If only I were using Fast TCP, this could have been first post!

  26. Fast TCP is TCP + congestion control by po8 · · Score: 4, Interesting

    As near as I can tell from the popular articles, and the web page referenced in the New Scientist article, "Fast TCP" is not a new protocol, but rather better congestion control for standard TCP. I'm not a network guru by any means, so please take the comments below with a grain of salt.

    Currently, TCP implementations use a standard trick to play nice with small router queues. Using precise timing would be better. I hassled Mike Karels over it about 10-15 years ago, but the consensus at the time was that the hardware wasn't up to it. Now it is. Also, modern routers have gotten clever about queue management, which screws up the trick.

    The new proposal is to take advantage of modern HW to measure latencies. Existing TCP could thus be used more efficiently, by allowing larger amounts of data to be outstanding on the network without trashing routers.

    It is not widely understood that in 1988 the Internet DOSed itself because of a protocol design issue, and Van Jacobsen got everybody to fix it by a consensus change to the reference implementation of TCP. These articles appear to report (badly) ongoing research into that issue.

  27. Re:Oh Great they've invented UDP by Igmuth · · Score: 3, Insightful

    Actually the mention of removing error checking is in the /. article summary.
    The problem is people are just reading the summary and assuming that it is actually correct and accurate.

    Good points otherwise...

  28. Re:6000 times faster!? by gantrep · · Score: 2, Informative

    Yes indeed. 6000 times faster is possible, but 6000 times faster than what? 6000 times faster than broadband? Maybe if you're downloading a video with one very slow hop in between, and then you all implemented this it could be 6000 times faster. But there's no way it could be 6000 times faster always, or even on average. Go download aol instant messenger and look at the speed. I just did it and got 308 KB/sec, and I've seen as high as 440 from AOL's servers. You mean I could download that same file from them at 1,848,000 KB/sec or 2,640,000 KB/sec with this protocol? (Please just kindly correct my converson if I'm wrong, but that would be about 1.8 and 2.6 gigs a second would it not?) Forget about the protocol, that's rediculous for most hardware. Wide ultra2 scsi only transfers 80 megabytes per sec. How would I download. Can today's ram and motherboards even work with gigs a second?

    Is this really as rediculous as it seems to me? I always get confused by the big B/little B byte/bit distinction.

  29. Uhm... by davburns · · Score: 2, Interesting
    Both linked articles were pretty content-free. I'm trying to read between the lines and figure out what they're really doing. The article seems to imply that this is only a change on the TCP sender's side, not clien TCP stacks or anything in between.

    Maybe they're measuring the round-trip delay, and then sending more data than can fit in the reciver's window, on the assumption that ACKs "should be" in flight. Maybe they also notice when an ACK is overdue, and send a duplicate packet early, rather than wait for the normal timeout or a duplicate ACK of earlier data. If they do that, then the duplicate would come 1 RTT after the original, and the reciever's window would be full of after-loss data (so it would catch up right away.) I suppose they could assume that only one packet would be lost, and send another window-full of data after that, before recieving an ACK. (If that assumption was wrong, then that data would be lost and bandwidth wasted.) ... but that's all just guessing.

    I do hope that there is something to this (in spite of the fluff of these articles.) We're kindof stuck in terms of throughput with TCP right now.

    TCP throughput <= (TCP window size)/(Round-trip-delay)
    TCP throughput <= 9.8 * (MSS -- smalest MTU in the path) / sqrt(loss) / (Round-trip-delay)
    The former inequality is reasonably easy to fix -- make bigger windows (and buffers). The latter is harder. 9.8 is a constant (I don't know where it comes from, but that value is often quoted, and seems to work out in my experience.) It would be great to fix MSS, but lots of hardware won't support more than 1500 bytes, and nobody benifits from this until everybody upgrades, so nobody upgrades. For fast links, RTT is mostly determined by the speed of light. /* Insert C increase petition joke here. */ loss can be fixed if it's really bad (e.g., duplex mismatches), but if you've already got 4-nines, getting two more for that 10X TCP improvement is really hard.
  30. trollish - pls mod parent down by Frac · · Score: 2, Insightful

    without further technical details, this sounds like the sort of technical mumbo-jumbo that snake-oil salesmen were peddling back in the dot-com era.

    The New Scientist makes it quite clear on how the Fast TCP is done, if you know anything about how TCP works (and how the window size halves in the event of packet losses)

    shame on a relatively low-ID user making such trollish comments...

    1. Re:trollish - pls mod parent down by IvyMike · · Score: 4, Insightful

      First of all, the New Scientist article doesn't mention anything about TCP sliding windows or congestion control.

      The whole "driving a car while looking 10 meters ahead" analogy ignores a lot of the work TCP does to keep things moving fast. The "trasnmists, waits, then sends the next" packet paragraph is almost deliberately misleading.

      It tosses about a "6000 times faster" statistic without explaining 6000 times faster than what. Is my dad's 28.8 modem going to suddenly be getting throughput of 172Mbps? Of course not, but what difference is it going to make to him? I think maybe none at all, and FastTCP is only for very large network hauls, but the article has claims about me downloading a movie in 5 seconds.

      My DSL line is 768kbps; I get downloads of large files through it of around 85kBps, which is a data throughput rate of 680kbps. That means that all the layers of the OSI burrito, including resends, checksums, and routining information, add up to about 12% overhead. Not the best, but not that bad, either. How much improvement is FastTCP going to get me?

      The numbers for their practical test of Fast TCP connected two computers that got 925Mbps, and the "ordinary" TCP got just 266Mbps. Even that's pretty unbelievable to me; I find it hard to believe that TCP was running at about 25% efficiency.

      Extraordinary claims demand extraordinary evidence. Like I said before, without further technical details, this doesn't actually sound all that different than the claims of Pixelon, which also had an eye towards video on demand.

      Maybe they've got something; someone linked to the actual caltech article, which I haven't had a chance to read in detail (and wasn't linked to at the time I started my post). Caltech certainly is a cool place, so there is probably something interesting going on. But the New Scientist article is a fluff piece, pure and simple, and if calliing shennanigans on it makes me a troll, so be it.

  31. Duplicate effort? by Bull999999 · · Score: 2, Interesting

    data link layer technology, like Ethernet, already has error checking built into it's frames, so why is there a need for another error checking at the higher transport layer?

    --
    1f u c4n r34d th1s u r34lly n33d t0 g37 l41d
  32. smart window resizing by JDizzy · · Score: 2, Informative

    The speed, er... rather the window size is changed according to a rigid design, and ideas like this in the past have failed because once everyone is doing them, they stability of the network decreases. Mind you this is distinctly different that "removing error checking" because it is basically taking two steps forward instead of one step at a time. If you leap ahead two steps, and fail you simply step back one (which is still one step forward). The packets are still resent on the TCP leaving the application to not worry about data quality. Looking at packet captures of ftp traffic show that ftp is an aggressive consumer of bandwidth, and that ramping up or down near the beginning or end of the TCP session is were the greatest amount of *inefficiency* is found. So the idea is to make tcp more aggressive near the ramp-up/down stages of the connection. The idea also being to remove some of the agonizingly redundant error checking in favor of self-throttling optimistic educated guessing. Fast TCP simply wants to do the dirty work ahead of time instead of gradually discovering the safe speed limit. Fast TCP will bump into glass bandwith ceiling at mach 10, instead of 10 Mph, quicly recovering by resending the big chucks at a fraction of the window size previously sent. So it could also be described as willig to find the threashold quickly in echange for knowing the boundrys instead of wasting precious time ramping up. Traditional TCP hates data loss to the point that is "drives slow in a parking lot" attempting to never have a colision, whne the protocal itself is well designed to recover from such an event already.

    --
    It isn't a lie if you belive it.
  33. Article is inaccurate and misleading by zeds · · Score: 5, Interesting
    The New scientist writer clearly has no understanding of how TCP/IP or the Internet work in general and how Caltech's FAST could improve data transfer efficiency. His sensationalist claims that this could enable downloading a dvd in seconds are so much ignorant crap. 6000x faster than broadband? That has more to do with the fact they used an INCREDIBLY FAT PIPE (a 10gigabit connection), probably in a laboratory setting, than any of FAST's optimizations. It's true TCP/IP's efficiency maxes out at a certain rate, but that doesn't really matter in the real world, because nobody is actually downloading movies from dedicated 10gigabit links to the backbone. Not to mention that you won't see anyone serving anything at these speeds for the next decade or so. I wonder what this suggests about the accuracy of articles on subjects I know nothing about. It's an academic curiosity folks.

    See caltech's press release on FAST for an article that actually makes sense.

    Also, could someone please explain to me why boringly predictable stereotypical slashdot feedback is being modded up?

    "Whoa! Faster pr0n!"

    "Imagine a beowolf cluster of these!"

    -Insert completely unrelated Microsoft bashing post here-

    -Insert completely unrelated technobabble from some geek posting out of their ass (without reading the article first)-

    News for nerds. Stuff that matters. Discussion that doesn't.

  34. Re:they "discovered" TFTP by Aurora+Borealis · · Score: 2, Insightful

    TFTP sucks in the presence of packet loss. Its mechaism to deal with lossy networks is, umm, "trivial" :) The server sends one packet at a time, and waits for an ack after each. If a data packet or ack packet is dropped the server or client retries after something like 5 seconds (configurable, but in seconds). TCP retries faster, and keeps multiple packets in the air at one time. - AB

  35. Re:.... what?! by cakoose · · Score: 2, Interesting

    Totally ridiculous. That's the kind of crap you can expect from a totally clueless reporter. The sentence is ambiguous and in the end, it doesn't really say anything.

    For some reason, he felt the need to mention that 10 systems were tested "together" without saying how.

    It says that FastTCP can boost the speed past the "capacity" of ordinary broadband links. I don't know how you can get performance that exceeds the capacity (which I take to mean the theoretical limit). On the other hand, it isn't really clear if they even used "ordinary broadband links". For all we know, they could have been testing on a local GigE network (or on localhost!).

    If he's trying to say that FastTCP gets 6,000 times the throughput of TCP, then this implies that TCP can be at most using 1/6,001 of the theoretical maximum. I'm guessing that they're advertising some corner case (or the reporter is retarded, which is probably just as likely).

    FastTCP just seems like a better predictor of the delay/capacity properties of a connection. The New Scientist article says in one place that they were able to achieve a 4x increase in transmission speed between Geneva and California, which is impressive, but it's probably under strange conditions. The graph in their paper shows that FastTCP utilizes the link about twice as well as regular TCP when you get to 10Gbit links. The "reporter" must have done some serious mangling to get the number 6,000.

  36. It's not a breakthrough, but it's good work. by Animats · · Score: 4, Informative
    First, this has nothing to do with removing error checking. It's about better TCP window adjustment. Read the papers.

    Second, it's intended for use for single big flows on gigabit networks with long latency. You have to be pumping a few hundred megabits per second on a single TCP connection over a link with 100ms latency before it really pays off. It won't do a thing for your DSL connection. It won't do a thing for your LAN. It won't do a thing for a site with a thousand TCP connections on a gigabit pipe.

    Third, unlike some previously hokey attempts to modify TCP, this one has what looks, at first glance, like sound theory behind it. There's a stability criterion for window size adjustment. That's a major step forward.

    (I first addressed these issues in RFC 896 and RFC 970, back in 1984-1985. Those are the RFCs that first addressed how a TCP should behave so as not to overload the network, and what to do if it misbehaves. So I know something about this.)

  37. Nagle by zenyu · · Score: 4, Informative

    It sounds like they are working on a replacement for the Nagle algorithm. Nagle works well on clean connections, even if badly tuned slow-start gets annoying when you have gigabit connection and it still takes a minute to ramp up to full speed on an ISO download. Where "fast tcp" would really help is on a dirty connection. I had to connect to a supercomputer a few years ago over a 100Mbps link that corrupted or lost 30% of all packets and I had to use my own streaming on top of UDP to avoid getting hammered by shrinking windows (I still needed congestion control.) On this type of connection I'd expect their "fast tcp" might give a 10x speedup. On a normal non-noisy and relatively slow DSL connection, like I have at home, I'd be surprised by a 10% speedup.

    In other words the story is all wrong, but what they are doing is actually worthwhile. You sometimes have noisy networks, especially when they are wireless or in an industrial environment. The big long haul telecoms lines are better off doing error correction on line, but in the last mile you never really know the noise characteristics so this should be handled better on the TCP level. I would probably do something like FEC with the number of recoverable errors per packet and per lost packet per logical block, tuned to the error characteristics of the network. Then call it TCP2 and release an RFC and some BSD licensed source code.. (I thought of doing this as part of building an ISP friendly P2P protocol but decided I didn't have the time..) Their solution has the advantage that it works just great with regular old TCP implementations.

  38. These kinds of articles anger me. by Fizzl · · Score: 3, Interesting

    They represent TCP totally wrong. Not only that, they describe the whole network infrastructure wrong.
    No wonder I have trouble explaining how the network works to my sister, or even to my mother who happens to have his masters in tech. (Albeit in mechanical engineering)

    Let's see.

    "The sending computer transmits a pack, waits for a signal from the recipient that acknowledges its safe arrival, and then sends the next packet"
    No honey, thats why we have the buffers. So you could receive packets out of sequence and wait for the middle ones to arrive. This is why we have 32-bit seq and ack fields in the tcp header just after the src and dst ports. seq tells the packets order in the queue. Ack tells the seq ofthe next packet (from other peer) so we can use random increments to prevent spoofing of packets. Or make it harder atleast.
    But that's out of the scope of this rant.

    If no receipt comes back, the sender transmits the same packet at half the speed of the previous one, and repeats the process, getting slower each time, until it succeeds.
    Umm, No. I'm not 100% sure but I think the network devices are dump thingies that talk to each other on predefined carriage frequencies. Thus, you can't really "slow down" the speed to increase possibility to get the packet through. And certainly this has nothing to do with TCP. Resending of failed packets is a Good Thing (TM). They are just sent again untill they reach their destination or the "I give up"-treshold has been reached.

    "The difference (in Fast TCP) is in the software and hardware on the sending computer, which continually measures the time it takes for sent packets to arrive and how long acknowledgements take to come back"
    This is the only difference? Wow! Shit. We are definetely going to get faster speeds by adding overhead with this calculation.

    Now, I'm through with my rant.

    I really really would like to see an actual white paper how this works. There has to be more to this. By the sound of just these articles, it seems to me that someone was paid to develop new, faster protocol that would magically be backward compliant with TCP. Finally the persons couldn't come up with anything smart but gobbled together something that might sound plausible.
    Of course you can get "more than 6000 times the capacity of ordinary broadband links" by using your very own dedicated parallel LAN links. You just need fast enough computer to handle the TCP stack. You would also need some fricking fast BUS's on you computer to make any use of this bandwith. Remember, the hard drives, mem chips and other storages aren't exactly 'infinite' in speed either.
    If the demo consisted only of two computers exchanging data, there would be no need to estimate the speeds as it would be very unlikely to get packet collisions because of disturbance from other network devices. Also, again, that has nothing to do with TCP-stack. Again, this useless speed calculation is just more overhead.

    And now I'm rambling.

    Shit, why can't i just stop.

    I'm angry, that's why :(

    I hope someone would answer me with insight of what am I overlooking. This looks so useless to me.

    1. Re:These kinds of articles anger me. by GauteL · · Score: 2, Informative
      You are wrong on some points.

      No honey, thats why we have the buffers. So you could receive packets out of sequence and wait for the middle ones to arrive. This is why we have 32-bit seq and ack fields in the tcp header just after the src and dst ports. seq tells the packets order in the queue. Ack tells the seq ofthe next packet (from other peer) so we can use random increments to prevent spoofing of packets. Or make it harder atleast.
      But that's out of the scope of this rant.


      This is true, but when the TCP congestion window is full (or the Receiver window), TCP has to wait for acks. So the original is not totally untrue either.

      Umm, No. I'm not 100% sure but I think the network devices are dump thingies that talk to each other on predefined carriage frequencies. Thus, you can't really "slow down" the speed to increase possibility to get the packet through. And certainly this has nothing to do with TCP. Resending of failed packets is a Good Thing (TM). They are just sent again untill they reach their destination or the "I give up"-treshold has been reached.


      Both Ethernet (the most common linksystem to run IP on) and TCP has abilities to throttle. TCP does this by simply waiting some time between retransmits if it senses a lot of package loss (either by never receiving ACKs or receiving multiple ACKs with the same number). It does so by shrinking the Congestion Window, and thus makes sure it has to wait for ACKs before transmitting the next package sometimes.

      Remember that IP itself does not make any guarantees that packages will reach the receiver in-order or even at all. It is TCP that provides the concept of reliable data transfer by doing retransmits.

      The article is uninformed however, and this mechanism for congestion control is a necessary and important part of TCP. Leaving it out so that you can squeeze some more juice out of the system will only lead to hurt in the long run.

  39. Re:You just need to hire the right marketing team. by pantropik · · Score: 5, Funny

    I don't know why they don't just get nVidia to design it. That way the sending machine will only send the packets it thinks you're actually going to be able to see instead of the entire datastream.

    nTCP = instant speed increase.

  40. Ugh, reporters.. by Mike+Hicks · · Score: 3, Interesting

    Heh, I saw this article on Yahoo, and was immediately concerned. Stupid reporters cut out way too much information, and make the people on wee dialup systems think that they'll get the moon.

    Anyway, I think this is primarily interesting for people on really fast connections (ranging in hundreds of megabits per second up to gigabits) with relatively large latencies (tens/hundreds of milliseconds as on a transcontinental link rather than nanoseconds/milliseconds like on a LAN), but I'm sure the research will have some effect on LANs and even the standard broadband connection. Impact on dialup and other not-quite-broadband connections would likely be miniscule.

    One main issue with TCP is that it uses a "slow start" algorithm, which other people have mentioned. Real TCP stacks probably tweak the algorithm quite a bit, but from the description in Computer Networks (3rd edition, 1996) by Andrew Tannenbaum, TCP packets start off with a small "window"--how much data can be in transit at a time. The window grows exponentially as packets are transmitted and acknowledgements received until a pre-set threshold is reached, and then the window starts growing more slowly (Tannenbaum's example grows exponentially to 32kB at first, then by 1kB per transmitted packet).

    If a packet is lost, the process starts over and the threshold is set to half the window size you had before the dropped packet (I imagine many systems reduce the window size by lesser amounts). Now, this particular algorithm can cause quite a bit of nastiness. It's possible the window size will never get very large. This isn't a really huge problem on low-latency links like in a LAN where you get acknowledgements really quickly, but a hyperfast transcontinental link could be reduced to mere kilobits per second even if the percentage of dropped packets is fairly low.

    Additionally, this slow start algorithm will eventually force you to restart at a smaller window size. Given enough data, you'll eventually saturate the link and lose a packet, so until the window grows enough again, there will be considerable unused bandwidth. Good TCP stacks would attempt to guess the available link speed and stop growing the window at a certain point.

    Smart system administrators can tweak kernel variables to make systems behave better (preventing the window from getting too small, having larger initial thresholds, for instance), but it looks like a lot of work on Fast TCP and related projects is related to making this a more automatic process and growing/reducing the transmit window size in a more intelligent manner.

  41. Error Checking by DASHSL0T · · Score: 5, Funny

    Error checking hasn't been removed from TCP; we've removed it from Slashdot story summaries instead, speeding up the posting by nearly 6000x.
    --
    Linux-Universe

    --
    Freedom Is Universal
    Linux-Universe
  42. Nothing new here by Vipester · · Score: 4, Interesting
    Whoever wrote these articles is not the brightest crayon in the box. Their explanations of how "regular" TCP works and how FAST works are both exceedingly wrong. Read the FAST group's overview for an explanation of what they're doing. It's semi-heavy with technical networking terms but you'll learn that this has nothing to do with error checking.

    Congestion control based on roundtrip times is old news but is uncommon AFAIK. What really happens is direct feedback from routers along a transmission's path. This is done in TCP Vegas, which was first proposed in 1994 and I think is fairly common now. The problem with scaling this or any of the other common TCP implementations to high speed/high delay links is the reaction to detected congestion. "Normal" TCP aggressively scales back its send window (send rate) when it detects congestion, usually chopping it in half. The window/rate then grows linearly until something goes wrong again. This results in alot of lost throughput in high-speed networks especially if the amount of "real" congestion is low. The FAST group is working on a new TCP implementation that doesn't react so aggressively to congestion. This is great for those high-speed/low-congestion networks we all wish really existed but is not something you want to use on the always-backed-up Internet. Would probably make things worse.

    1. Re:Nothing new here by m.dillon · · Score: 2, Interesting
      The difference between TCP Vegas and New Reno's congestion control is that TCP Vegas attempts to calculate a stabilized bandwidth-delay product to measure the available bandwidth of the channel and then matches the bandwidth of the TCP connection to the bandwidth of the channel. New Reno depends on intermediate routers dropping packets to detect 'congestion'. TCP Vegas does not depend on feedback (in the form of missed packets) at all, really, and certainly does not depend on direct feedback from intermediate routers (beyond measuring perceived amount buffering being built up in those routers through the bandwidth-delay product calculation).

      The core stabilizing parameter of the TCP Vegas implementation is the measurement of the minimum observed RTT over the connection. No other RTT measurement is stable. For example, both the instantanious and the long-term-averaged RTT measurement creates a positive feedback situation in the core calculation (i.e. NOT stable if used alone). The minimum RTT measurement cannot be used alone without making the algorithm non-responsive to changes in available channel bandwidth, but it can be used to anchor and stabilize the algorithm and that is what TCP Vegas does.

      The problem with New Reno is that most routers do not drop packets until their queues are already mostly full... far too late (i.e. the RTTs have already gone out of control by the time intermediate nodes finally decide to start dropping packets), and even running something like RED is only a hack to try to drop packets earlier, before it is too late. Anything that depends on ALL intermediate nodes physically dropping packets according to a TCP-optimized algorithm to generate implied feedback for TCP is a stupid and unnecessary approach in my view.

      TCP Vegas is very similar to the algorithm I implemented in FreeBSD (the net.inet.tcp.inflight_enable sysctl). Both attempt to calculate the available channel bandwidth and adjust a TCP connection to fit the available bandwidth. Both have the same problem in that calculating the channel bandwidth depends on calculating the bandwidth-delay product which depends on a stable RTT, and the RTT is *NOT* stable when a channel is near or at its rated bandwidth. This is why both TCP Vegas and the algorithm I implemented in FreeBSD use the minimum observed RTT as a basis for the bandwidth-delay product calculation rather then the currently observed RTT or the long-term-averaged RTT (neither of which is stable if used alone). Both Vegas and the algorithm implemented in FreeBSD can still handle changes in available channel bandwidth within a reasonable range, but it isn't perfect because both must still be anchored using the only stable measurement available (the minimum observed RTT), and it is not possible to make it perfect due to the extreme instability of nearly all other measurements both the TCP server and TCP client could make during a connection.

      NewReno's "wait for intermediate nodes to drop packets" method of congestion control is *COMPLETELY* broken. The only reason it works at all is because most TCP connections use fairly small advertised windows. When you use large advertised windows everything blows up. TCP Vegas and the FreeBSD algorithm can handle large advertised windows without blowing up.

      It should be interesting to see what the FAST group comes up with, but I think they don't quite understand the extreme instabilities of the calculations being made. TCP Vegas does a fairly good job as does the algorithm in FreeBSD (both using the minimum observed RTT as an anchor in the calculations). Neither is perfect, but finding something better that manages to remain stable over a wide range of situations is not going to be a walk in the park.

    2. Re:Nothing new here by kuknalim · · Score: 2, Informative
      What really happens is direct feedback from routers along a transmission's path.

      Errm, no. In currently deployed versions of TCP, routers *never* send direct feedback. Implicit feedback is obtained (at the sender) by sensing end-to-end packet loss or delay.

      This is done in TCP Vegas, which was first proposed in 1994 and I think is fairly common now.

      TCP Vegas uses queueing delay as its congestion control measure. The delay is implicitly fed back to the source via the end-to-end delay experienced.

  43. Eliminating 'burstiness' of TCP/IP by Daniel_ · · Score: 5, Interesting
    If I'm reading the article right, they're using the same technique that a doctoral candidate did his Phd thesis on at OSU about 3 years ago.

    TCP is extremely bursty - it pumps all the packets it can as fast as it can over the network as soon as the window opens. Then it waits for replies to all the packets. What typically happens is the burst from the NIC overloads the local router causing numerous dropped packets. This gives the imporession to the sending machine that the network is overloaded and results in a ~90% reduction in bandwidth utilization.

    The change is to include a timer that allows the NIC to space the initial burst over the entire window. This prevents the overloading at the router and permits the NIC to reach near its theoretical maximum bandwidth.

    In tests involving one router, the results were an order of magnitude increase in bandwith utilization. I'd be interested in seeing their test setup to see how they got such dramatic improvements. Normally TCP/IP is not that ineffecient - even with its extreme burstiness.

    --
    The number you have dialed is imaginary, please rotate your phone 90 degrees and try again.
  44. But there's a reason you halve it.... by raehl · · Score: 2, Informative

    Normally, when you're sending stuff from point A to point B, there is a lot of buffering on the way. At the point where you lose a packet, you've overflown a buffer somewhere. Halving your throughput at that point is probably a good idea - you may be backing off your data transmission a lot right now, but there should be plenty of data sitting in buffers out there that needs to be cleared anyway.

    If you only back off a little bit, what happens is you just go overrun that same buffer again, and just send out a lot of data on your end that's just getting dumped halfway out.

    Think of it like dumping bags of sugar into a big funnel. You start by dumping in a quarter bag per second, then a half bag per second, then 3/4ths bag per second, then a bag a second, then 1.25 bags per second, then 1.5 bags per second...

    At which point you notice that the funnel is full and sugar is overflowing it. At this point, does it make more sense to go back to dumping 1.25 bags per second, or 3/4 bags per second? (Hint: It's 3/4ths.)

    By the time you've lost a packet from overflowing a buffer, you definitely want to back off more than a little. The rate you're filling the buffers is likely at least an order of magnitude higher than the rate you're emptying it, so it only makes sense to back off by at least an order of magnitude.

    1. Re:But there's a reason you halve it.... by malxau · · Score: 2, Interesting

      Agree.

      More to the point, the reason you lost a packet is likely to be network-wide congestion. If one connection doesn't back off its sending, but keeps sending at the same rate, it relies on other connections slowing down to allow it to do so.

      If no connection slowed down, packets would be being dropped all over the place, and total network throughput would decrease.

      In other words, this Fast TCP idea seems inherently selfish and will only improve performance for one user over others, not for all users if adopted.

    2. Re:But there's a reason you halve it.... by LarsG · · Score: 3, Insightful

      The fact that the CalTech group got a lot of improvement from their implementation is good real-world evidence that your analysis is probably off, since they don't halve their TX rate and they achieved significantly better throughput.

      What I'd like to know is where they did this real-world test. On a connection between two universities on Internet2 with wide fiber links, I can understand that they see a considerable perfomance gain. However, I'd also like to see tests done through consumer grade DSL or cable connections where the ISP typically use deep buffers.

      --
      If J.K.R wrote Windows: Puteulanus fenestra mortalis!
  45. New Scientist article bad. Research good. by IvyMike · · Score: 2, Informative

    I stand by my claim that the New Scientist article sounds like snake oil. It's a misleading article, pure and simple.

    But, now that I've read some of the documents from the Caltech site, and I think I understand the claims, the research is fairly interesting, at least in the world of "ultrascale" networking. Of course, I'm just an unfrozen caveman engineer, and that world confuses and frightens me, so my understanding might be slightly off. Here goes anyways.

    As I understand it, the authors are saying that current TCP congestion avoidance algorithms break down on very high speed, long-haul networks. They mention looking forward to 100Gbps and higher speeds for "ultrascale" supercomputing. They have papers analyzing TCP Vegas (which was designed in 1994) and show that for the networks they're looking at, Vegas "does not scale to this regime". Specifically, they examine throughput stability of Vegas, and show that with these ultrascale networks, performance can end up bouncing between the two states of "balls-to-the-wall" fast and molasses slow. (They do not actually use the phrase "ball-to-the-wall"; that's my addition.) Network performance doesn't reach equilibrium, and your average throughput is quite ugly. In this context, the "cars starting and stopping" analogy starts to make sense.

    This is a fairly different "regime" than I'm used to; then again, I'm an unfrozen caveman engineer, and the fastest neworks I've dealth with are 10Gbps LANs, and not high speed WANs. It appears that network performance on such networks can be surprisingly bad, at least, it's surprising to me. (And heck, there's a world of conditions under which Vegas is a great TCP congestion control algorithm, and the network delivers fair bandwidth to everyone. They even link to plenty of papers which analyze, simulate, and measure conditions where current algorithms work just fine.)

    They're really looking forward to where the network finally starts to reach pathological extremes, and this all breaks down, which is different than conditions I (and most readers of the New Scientist article) would have seen.

    Their first solution, by the way, is a slightly modified algorithm called "stabilized Vegas". They prove that this algorithm avoids the oscilating behavior, and thus avoids the low throughput situation that results. Neat.

    Let me summarize my summary: original article bad, sounds like a scam. Actual research interesting, but applies to network speeds and conditions that are forward-looking, and probably don't directly apply to Mr. Bob Homeuser for quite a while. Fire bad.

  46. Don't be so sure. by fireboy1919 · · Score: 3, Informative

    It comes with Solaris right now. You can also get it for Linux. Why?

    It's useful when the ssh client has it built in because you get pretty much the same speed and the ability to download between clients.

    By the way, I know about two zmodem-enabled ssh clients:
    1) SecureCRT - nonfree/Windows only.
    2) Zssh - open-source, cross-platform.

    The actual applications which initiate the transfer are called "rz" and "sz."

    --
    Mod me down and I will become more powerful than you can possibly imagine!
    1. Re:Don't be so sure. by evilviper · · Score: 2, Interesting
      It's useful when the ssh client has it built in because you get pretty much the same speed and the ability to download between clients.

      Any good reason not to just use SCP? I know you can transfer files in the same SSH window (using zmodem), but it wouldn't take too much work to modify the SSH client to start a file copy over the current connection using SCP...

      So what's the advantage here?
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
  47. Re:No corrupted files at all by Minna+Kirai · · Score: 3, Informative

    As I see it (hard to say because the article wasn't exactly technical), here is how it's going to work:

    That's wrong. You were possibly misled by a bad article. Your diagram of "Slow TCP" isn't describing TCP at all, but a more primitive protocol that can be called "Stop and Wait". Stop-and-Wait provides some of the same advantages of TCP (reliability and consistency), but obviously takes a painfully long time to transmit a file, so it's little used in real life.

    The idea that you can send many data packets before getting an ACK is already part of normal TCP. It's called the "sending window", and it measures the number of packets that can be sent before waiting for an ACK. The sending window is basically an estimate of the bandwidth of the link, which TCP maintains as it runs. The estimate starts out low, and then is continually increased as the transmission goes on. As soon as ACKs fail to arrive, the assumption is that the bandwidth was exceeded, and the estimate is cut in half. It's a linear-increase, exponential falloff procedure- which is meant to prevent from impairing the TCP performance of other users (you increase your transmission speed slowly, but decrease it quickly if there's an overload). The lineary increase of the window size is called "slow start".

    Apparently, this research uses a different technique to obtain the starting estimate of the bandwidth available. Instead of sequentially increasing the window size up to gigabit levels as the connection goes, they start out with a large estimate, because they already know the link is fast.

  48. "Video on demand" is irrelevant by Minna+Kirai · · Score: 4, Insightful

    The last sentence of both news articles suggests that this broadband-optimized TCP system could be used by corporations like Disney to provide video-on-demand. (If they're talking to Microsoft, on the other hand, the result will just be a modification to the TCP/IP stack in Windows(r), which doesn't care at all what kind of data it's transmitting)

    That's just wrong, at least according to the ways media companies have traditionally desired their materials to be broadcast over the internet. They typically use streaming protocols, which not only gives the user one-click startup, but also makes it non-trivial to keep a local copy of the file (enhancing the corporation's feeling of control).

    However, a well-designed streaming protocol won't use TCP at all. TCP hides many characteristics of the network from the application software, and to stream properly it needs to know as much as possible. One example of why TCP is bad for streaming: in streaming, you try to keep advancing time at a constant rate. Once 156 seconds of playing have elapsed, you want to be showing video from exactly 156 seconds into the source file. If at 155 seconds some packets were dropped, you should just skip over them and continue onward. TCP, however, will always try to retransmit any lost packets, even if that means they'll arrive too late to do any good. TCP has no knowledge that packets may expire after a fixed time, but a custom-built UDP protocol can be aware of that constraint.
    (Here's a reference on preferring UDP in video streaming)

    On the other hand, maybe a corporation will realize that properly controlled non-streaming playback can provide a better end-user experience (guaranteeing, for example, that once playing starts, network failures will never interrupt it). In that case, they might either try to push Microsoft to integrate this faster TCP/IP into Windows(r), or more interestingly, implement it themselves in customized player software.

    It's possible to implement a protocol equivalent to TCP on top of UDP, with only a tiny constant amount of overhead. So a programmer for realplayer, quicktime, or mplayer might be able to add the techniques from this research to his own code, even without support in the operating system.

  49. Re:6000 TIMES !!! by elem · · Score: 5, Interesting

    Actually if you read the New Scientist artictle you can see that that's a lie. What they actually did was bundle 10 FastTcp connetions (one must assume on fast lines) togeather and, fairly unsuprisingly, got speeds 6,000 times fast than a broadband connection... wow... 10 high speed lines are faster than broadband??

    This would be more interesting had they actually tested it on a standard 512kbs connection and seen if there was a speed increase. IMO it most likely would not make a huge a difference anyway since alot of the slowdown on a consumer broadband connecting is the connection buffers at your ISP. For a better explanation read the Traffic Shaping HOWTO.

  50. Re:Obviously, you're wrong. by Minna+Kirai · · Score: 2, Informative

    The mention of "156 seconds" was an oversimplified example of the kind of problem. It does happen in real streaming applications, however, especially if playing from a live source where latency constraints don't permit lengthy buffers (most important in bidirectional VoIP apps)

    Of course a streaming protocol uses a buffer. That's one reason why you don't want to run it over TCP. TCP provides its own buffer, which would be redundant with the one the higher-level protocol is also creating. Optimally, one fully-informed piece of software can manage all buffers.

    Streaming music over TCP (even HTTP) is fine, because the bandwidth needs are so low that suboptimal solutions work. Streaming video is different- not only is the total bandwidth more than 10x higher, but you've got two separate streams of data whose buffer sizes need to be correlated.

    Essentially, if the network is stressed enough so that framedrops (underflows of the application-level buffer) ever happen, then TCP will waste time retransmitting old data, while a hand-rolled UDP solution will recover quicker . Today's popular audio-only streaming doesn't usually push enough data to cause framedrop events .

    You can experimentally check that UDP is better for streaming video with applications like RealPlayer. Watch some videos with it. Then adjust your firewall to block it's UDP ports (6970+) and try again (or use the HTTP setting from inside realplayer).

  51. You're still wrong. by mfh · · Score: 2, Informative

    TCP does not provide its own underflow buffer. I'm sure modern implementations provide an overflow buffer to make sure it doesn't overwhelm the physical transport layer, but it is not the kind of buffer an application needs to ensure the seamless delivery of streaming content. Does any implementation of TCP allow for the aggregation of an arbitrary amount of data before handing it off to the application? No. That would be counter productive.

    Also, RTSP is a protocol-independent stream control mechanism. The RFC clearly states that all application data is transmitted out-of-band in another protocol. It is only a "transmission control" protocol (not to be confused with TCP, of course) and allows for the transport-independent control of data streaming to and from different sources on the net.

    In other words, it's not used to make sure the content itself gets from one place to another reliably (or unreliably). In fact, the RFC also provides support to specify a lower-transport protocol for (out-of-band) streams, either UDP or TCP. This would presumably would allow for both reliable and unreliable transmission of data, depending on your specific application.

    So in conclusion, reinventing TCP with UDP is a dumb idea and is not what RTSP aims to do. It probably plays a vital role in controlling the behavior of things such as VoIP phones. In such applications, when latency is negligible, buffers are not practical, and a reliable transport mechanism is assumed, then no, a buffer is not necessary or practical, but these assumptions do not apply to the internet-at-large in the least. If you want reliable data on the internet, you use TCP. Period.

    --
    The dangers of knowledge trigger emotional distress in human beings.
  52. Humm by Znonymous+Coward · · Score: 2, Insightful

    I have an idead! Fast TCP transfers with no error checking... And we'll call it UDP.

    --

    Karma: The shiznight, mostly because I am the Drizzle.

  53. Error checking by isorox · · Score: 2, Funny

    dumping a lot of time-consuming error checking

    Sounds like a slashdot editor

  54. This is HSTCP - more links as well by HydraSwitch · · Score: 4, Informative

    I believe this is HSTCP.
    For more info, you can also take a look at:
    Web100 and Net100.
    It basically amounts to improving the AIMD algorithm and changing the way slow start works as well. Also, whoever said it before that this will not help your DSL connection is correct. It is meant to help high speed long RTT paths. And it does so -- quite well.

  55. How This Gets Reported by jjgm · · Score: 2, Funny

    I actually heard this on the ABC radio news whilst driving to work this morning.

    Unfortunately they managed to summarise it in the most bogus form possible, and I quote (roughly)

    "Existing Internet links could run six thousand times as fast!".

    Even New Scientist, normally a beacon of good science journalism, is really dumbing it down to the noise level.

    The analogy they gave is most ironic -

    Steven Low, who led the Caltech team, likens the way the internet works now to driving a car while looking only 10 metres ahead. You slowly increase the car's speed until an obstacle comes into view, but then you have to hit the brakes. "This is OK for driving slowly in a parking lot," says Low. But on the open road you need to be able to look further ahead: "That's what we are doing with Fast TCP."

    ... as my car sat, motionless, on the congested freeway ...

  56. negligible difference on small downloads by venom600 · · Score: 2, Interesting

    Seems to me that the overhead required to estimate your speed would make small downloads slower. Since 99% of our downloads (web pages, images, etc.) are relatively small, wouldn't this be worse??

    For large downloads, however, it seems there could be some definite advantages.

  57. Interesting Concept by MasterMynd · · Score: 2, Interesting

    However, when it comes to transferring data files, I'd personally be happy sticking with the slower old version of TCP. Who would like to have a file 600 gigs in size that potentially has errors in it, and cannot be trusted? It really has problems when your calculating mountains of data to estimate future stock values, or something else requiring massive amounts of accurate data. An error here or there may not matter, but then again, it may, and you can't tell if there are errors in it or not.

    Now, this may help with streaming content, such as perhaps streaming on demand high quality video. This may help in the future with an on demand video system much like Pay-Per-View, but over the internet. Though, lets not forget that Snail Mail is still beating out the Internet.

    http://slashdot.org/article.pl?sid=02/09/23/1719 23 4&mode=thread

  58. Re:New Scientist article bad. Research good. by dszd0g · · Score: 2, Interesting

    A friend of mine posted this article to a private mailing list yesterday. I had the following to say.

    Come on, don't buy into the media's interpretation of things. I am not saying the research is bogus, just the article makes things sound different then things are. If a physical wire operates at 1.5MHz serial, there is no way to transmit more than 1.5Mbit/s over that link. Obviously anyone who attempts to sell you software that does so is pulling your chain. That said, Fast TCP is about four times faster than Linux's TCP stack on a 1Gbit/s link (how many people do you know that have one of those). That is because most existing TCP stacks do not perform well at high speeds over long distances, because the demand hasn't been there yet.

    Now with that said, different TCP's do make a big difference because of TCP's built in congestion control. The basic idea of congestion control is that a computer shouldn't send data faster than the routers along the path can handle. There are formal proofs that also show that TCP's congestion control guarentees that all TCP connections (using the same implementation and equal round trip times) are given equal priority. The basic idea is to pull back the transmit rate when a packet is dropped.

    If all the Internet used UDP, which doesn't have congestion control, our routers would be more overwhelmed than they currently are and everything would slow down.

    One can improve one's performance by pulling back less or by taking more than one's fair share.

    The statement that all the Internet uses the TCP developed in the 1970's (called TCP Tahoe) is very much false. Most of the Internet runs TCP Reno (1990) now days which includes Jacobson's modification of TCP Tahoe (1988) and added fast recovery and fast retransmit. A number of improvements to that have been discussed in TCP/IP Illustrated by Stevens (1994) and in RFC 2581.

    A newer version called TCP Vegas (1995) has been proposed which speeds up performance dramatically and provides a more consistent transmission rate. TCP Vegas hasn't really caught on yet. Fast TCP is a competitor to TCP Vegas.

    If you are still reading at this point I will give a more thorough explanation. Whenever a recipient receives a packet it sends an ACK to the sender with the packet it is expecting next.

    When TCP starts out it starts in a mode called "slow start." It starts off with a window size of 1, meaning it sends one packet and then waits for the ACK. In slow start mode it increases the window size by one each time an ACK is received until a packet is dropped. So next round it transmits 2, then 4, then 8, until it hits the threshold (Stevens[1994] suggests 65Kbytes). Once it hits the threshold it enters "collision avoidance" mode and increases the window size by one each round (each ACK by 1/window size).

    If a sender transmits packets and does not receive any ACKs by the time the timeout for the first packet occurs it pulls back all the way to a windows size of one and drops the threshold in half in both TCP Tahoe and Reno. After going back to one, they start "slow start" again growing the window size exponentially. The difference lies when one packet is dropped but the next few packets are received in a timely manner. In this situation the receiver will send back what is called a triple-ACK all stating it is expecting the missing packet. When a triple-ACK is received TCP Tahoe behaves the same as a timeout (window size to one, threshold in half, slow start), while TCP Reno cuts both the window and the threshold in half, then enters collision avoidance mode.

    TCP Vegas works totally differently. It measures round trip time and keeps track of the difference between expected and actual round trip time. If the difference is more than a certain amount it adjusts the window size in the appropriate direction. This method even detects router congestion before the routers start dropping packets in some cases. TCP Vegas also retransmits at a double-ACK

    --
    This message is encrypted with Quad ROT-13 to protect the author's copyright under the DMCA.
  59. This makes a fundamental error in assuming... by kw · · Score: 2, Informative

    that all the other streams are going to back-off during collisions. TCP normally backs off when a packet is lost because it assumes that the router buffer is full. It seems like if *everyone* used FastTCP, and no one backed off, it would simply DOS routers all over the Internet. Basically, a router buffer fills up, but everyone keeps sending at an astronomical rate, leading to 100% packet loss. Eventually it would back down far enough that the buffer would open up again, but only briefly, and the process would repeat. TCP was designed to be fair, not a bully algorithm. This thing goes in and violates that fairness principle, by being a bully while everyone else plays nicely. TCP works for the benefit of everyone, by having a universal understanding that unless everyone plays nicely, everyone loses. Hopefully this won't catch on...

  60. Seconds... by AnotherBlackHat · · Score: 2, Funny

    Scientists in California are working on a fast new Internet connection system that could enable an entire movie to be downloaded in a matter of seconds.

    Sure it does. I'm thinking around 10000 seconds.

    -- this is not a .sig

  61. compare to cold fusion by aminorex · · Score: 2, Insightful

    This really devastates the credibility of CalTech
    as an institution. It seems clear that some group
    at CalTech pumped this to the media, to the point
    where a categorically deceptive series of fluff
    pieces entered the news stream.

    Compare this to the "cold fusion" debacle in '89:
    Pons and Fleischman reported valid, and eventually
    reproducible results without hype, but the media
    pumped it with speculation. Pons and Fleischman,
    excellent, highly competent and productive stars in
    their field, were essentially tainted by no fault
    of their own, and run out of town on a rail.

    It's galling.

    --
    -I like my women like I like my tea: green-
  62. 10-week-old dup by nothings · · Score: 2, Informative
    8Gb/sec? "Fast TCP"? 10 simultaneous connections? Caltech?

    Been there, done that.

  63. any fool can design a 'faster tcp' by porky_pig_jr · · Score: 2, Insightful

    the challenge is to make this 'better tcp' to co-exist with other versions of tcp currently deployed on Internet, like Tahoe and NewReno.The key point is the notion of 'fairness'. The way TCP (at least the currently deployed versions) are designed is to cooperate (in a sense) as to provide the equal share of bandwidth to competing flows. That's one of the reasons why it is so difficult to introduce TCP-like protocol with radically new design. I believe one of the reasons TCP Vegas (which has a good potential) does not get deployed on a wide scale is that it is not entirely clear how the mix of Tahoe, NewReno and Vegas would perform in terms of fair share.

    however from what i've been reading on caltech site, it appears that one of the usages of this protocol would be to download very large file on dedicated pipe (like movie on demand). From movie server to the user through private connection. This makes sense. You can streamline lots of things. OPtimize protocol for a fat pipe. Whatever ... I wouldn't call it a 'breakthrough' though.