Slashdot Mirror


Replacing TCP?

olau writes "TCP, the transfer protocol that most of the Internet is using, is getting old. These guys have invented an alternative that combines UDP with rateless erasure codes, which means that packets do not have to be resent. Cool stuff! It also has applications for peer-to-peer networks (e.g. for something like BitTorrent). They are even preparing RFCs! The guy who started it, Petar Maymounkov, is of Kademlia fame."

444 comments

  1. Has anyone considered Decnet? by Power+Everywhere · · Score: 4, Interesting

    Now that Digital is little more than IP spread across a few different companies, maybe the holder of Decnet's patents could release the protocol under an Open Source license. If I recall correctly it was quite the networking layer.

    1. Re:Has anyone considered Decnet? by DAldredge · · Score: 2, Informative

      Not all of Digital's network tech was sane...

      DEC MMJ

      Digital Equipment Co.'s proprietary Modified Modular Jack. It is identical to a standard USOC 6-position jack, except that the locking tab has been offset to the right to prevent an MMP (modified modular plug) from fitting into a USOC jack. AMP5-555237-2 Plug

    2. Re:Has anyone considered Decnet? by JohnGrahamCumming · · Score: 5, Informative

      It was quite a complicated set of protocols and IIRC the final versions were using TCP/IP as their transport layer and below. The versions before that were using OSI.

      http://en.wikipedia.org/wiki/DECnet

      John.

    3. Re:Has anyone considered Decnet? by RAMMS+EIN · · Score: 1

      I thought Linux already has Decnet support. How does that work?

      --
      Please correct me if I got my facts wrong.
    4. Re:Has anyone considered Decnet? by Anonymous Coward · · Score: 2, Informative

      Works GREAT! I've used it for some of my customers who need DECnet access and are running workstations and DECnet-enabled applications on Linux. The inaddr structures are virtually identical from the old Digital DECnet-PC libraries, so code is pretty portable.

      However, DECnet Phase IV only has a 16-bit address address range. You get larger networks using "hidden areas", which are similar to the 10.* and 192.168.* reserved addresses. It also requires that the NIC MAC address imply the DECnet address,
      which drops requirement for ARP support and means all interfaces have the same DECnet address.

      DECnet Phase V, as other posters have noted, has kindof moved from the OSI to TCP/IP type networking.

      DECnet is a nice protocol, but it just doesn't scale easily to Internet-sized networks.

    5. Re:Has anyone considered Decnet? by toneighty · · Score: 1

      At least we didn't have users trying to plug phone lines into the jack and it was easy to describe on the phone. -ep (ex dec fs)

    6. Re:Has anyone considered Decnet? by DAldredge · · Score: 1

      That isn't they reason they did it, the did it so they could charge much more than everyone else...

      Otherwise they would have just color coded the jacks.

    7. Re:Has anyone considered Decnet? by toneighty · · Score: 1

      Like that works with users and the keyboard/mice jacks? Or the speaker/mic jacks? -ep

    8. Re:Has anyone considered Decnet? by DAldredge · · Score: 1

      About as well as having a BREAKABLE plastic tab...

      Face it, users will screw it up. ;->

    9. Re:Has anyone considered Decnet? by dwaggie · · Score: 1

      Er, MMJ heads are distinctive and easy to tell at a glance what they are. Sure, they're a bastard, but you don't have to worry about what the pinout /might/ be if you inherit a messy 'IT supply' closet.

    10. Re:Has anyone considered Decnet? by ivan256 · · Score: 1

      So, you can use existing crimping tools, you can make cables in second instead of minutes that it takes to terminate with DB9 or DB25, you can visually distinguish telephone from serial, and nobody plugs their $1000 serial terminal to a phone jack and fries the communications logic when the phone rings or confuses the keyboard jack with the communications jack and calls tech support? Where's the downside?

      Of course now, 25 years later and with DEC and serial terminals both gone, maybe it's a little bit of a pain to get cables for these things... But so what? PCs are cheaper than dumb terminals now. Upgrade!

    11. Re:Has anyone considered Decnet? by St.+Arbirix · · Score: 2, Interesting

      I found one of these in a warehouse back when I was in highschool. I always wondered what such a useless looking cable could be for. It wasn't like that tab would have prevented me from putting the cable in a plug wrong. I ended up grinding off the offensive bit and using it anyway, it was 80ft of otherwise good cable encased in the stiffest plastic I've ever seen used. Now it runs through dirt.

      --
      Direct away from face when opening.
    12. Re:Has anyone considered Decnet? by Anonymous Coward · · Score: 0
      No, DECnet evolved a long time before IP, and has all it's own protocol IDs etc. Phase 3 DECnet was used on the DARPAnet, Phase 4 became quite wide spread amongst DEC users, transported on Ethernet II and DDCMP links. Phase 4 had quite an array of protocols associated with it, including some very nice console & booting stuff (MOP).


      Phase 5 is the OSI Implimentation, which DEC bet the house on - Unfortunately for them OSI was a costly solution and the world went with IPv4.


      IP became available for most DEC platforms, initially through 3rd party and OS kits. Eventually DEC created their own IP stacks, but they've never been called DECnet.


      Interestingly DEC also decided that they need a fast Local area protocol for good terminal services and remote mounted disk support, which they built and called LAT (Local Area Transport).
      LAT allowed DEC to create some of the early cheep (in DEC's frame) terminal servers, and allowed some good network transport stuff for the early days of PCs, which was part of their PathWorks product.


      buggered if I can ever get my /. login to work

  2. nonsense by N3wsByt3 · · Score: 4, Interesting

    TCP may be old, but it can go on for another 50 years wothout any problem.

    --
    --- "To pee or not to pee, that is the question." ---
    1. Re:nonsense by savagedome · · Score: 3, Interesting

      TCP may be old, but it can go on for another 50 years wothout any problem.

      Somehow, the title of your post is appropriate for the subject of your mesaage.
      Did you pull that 50 years out of your..... you know.

      Change is not going to happen overnight. They are suggesting a better protocol which is still in the labs for the most part.

      Remember how long since IPv6 is out? And now check what we are still using. It's all about changing it gradually.

    2. Re:nonsense by Dave9876 · · Score: 1

      TCP != IP...They are 2 seperate layers, TCP sits on top of IP.

    3. Re:nonsense by ebuck · · Score: 3, Insightful

      Who flamebaited this? It's not derogatory, and it's a valid opinion. TCP's shortcomings are going to constantly be mitigated by better router and switch hardware.

      The article is little more than an advertisment for their socket management software, so it's no more news than what SCO produces, but from what I can gather...

      There's no way to obtain data that was truly lost, so they are using an error correcting encoding of the data (and wasting some of the bandwith in the process) They're not really doing something radical, it's just UDP/IP. They just have some software that silently handles the data loss and unpacking which sits on top of a UDP/IP socket. So they've moved the problem from layer 3 into the application layer (layer 7).

      Their entire product places emphasis the amount of network utilization, but little else. I imagine that they're wasting a portion (but who knows how much) of their "utilized" bandwith, and they're certainly wasting a lot of CPU time encoding and decoding the packet payload. Thier sales pitch is basically "TCP/IP bad, UDP/IP better" but they never clearly address how much CPU time this solution requires or how much of the "utillized" bandwith is wasted.

      Using UDP/IP with retransmission in software has been done many times. Look at FTP.

    4. Re:nonsense by Rei · · Score: 1

      Yeah... but TCP does have some drawbacks when it comes to performance. Why not go to a faster protocol? Unlike IPv6, you don't need anyone else's code to understand their protocol - if you write some peer to peer network that uses this protocol, you're good to go.

      Of course, I'd still like to see a good protocol that doesn't require in-order packet receipt in addition to the changes that they mentioned; when transfering large volumes of data, why not?

      Of course, the wired won't have really come into its age until someone codes their own consciousness into the protocol itself. :)

      --
      Did you really name your son "Robert');DROP TABLE Students;--"?
    5. Re:nonsense by OrangeTide · · Score: 1

      33.6K modems will be in use for another 500 years. Not that I did any research to come up with this theory.

      --
      “Common sense is not so common.” — Voltaire
    6. Re:nonsense by SavingPrivateNawak · · Score: 4, Funny

      TCP != IP...

      Duuude, you can't compare TCP to IP, they're different units! You have to divide them (TCP/IP)!

    7. Re:nonsense by ebuck · · Score: 0, Offtopic

      Well, then it might be a troll, or it might be a rational statement. The best trolls are, of course, both.

      But flamebait would be something more along the lines of TCP/IP only being the choice of backward retards who can't figure out that there's been better solutions around since the mid 90's, and if they'd only get off their fat asses and RTFM, then they'd get a clue and be able to download streaming video of hot one-on-one grit action starring Natalie Portman.

      Gosh, that was easier than I thought...

    8. Re:nonsense by Alioth · · Score: 2, Interesting

      Also, why layer it on top of UDP? Why not just have a new layer 3 IP protocol instead?

    9. Re:nonsense by smittyoneeach · · Score: 1

      I'm sure that TCP is someone's intellectual property...

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    10. Re:nonsense by Harik · · Score: 1
      Using UDP/IP with retransmission in software has been done many times. Look at FTP.

      Don't you mean TFTP?

    11. Re:nonsense by Aragorn992 · · Score: 4, Insightful

      They are suggesting a better protocol which is still in the labs for the most part.

      And what makes this a better protocol? Its vast history of being a solid, reliable protocol with its massive amount of industrial testing? Oh wait thats TCP.

      Frankly, new stacks that look better than old ones are a dime a dozen. Until you test them in the real world you will never know and why bother changing TCP when it does a damn fine job right now?

      IPv6 was implemented for the sole reason (primarily) of addressing the shortage of IP addresses.

    12. Re:nonsense by bogomipz · · Score: 2, Insightful

      Using UDP/IP with retransmission in software has been done many times. Look at FTP. Umm, since when is TCP not software?

    13. Re:nonsense by Nemo_The_Mad · · Score: 1

      I concur. If it aint broke dont fix it. This is a sales pitch as are lots of posts these days. Sex is billions of years old, and is not out of style yet. But for some in this forum, it has yet to gain widespread use.

    14. Re:nonsense by pilgrim23 · · Score: 1

      Banyan VINES anyone?

      --
      - Minutus cantorum, minutus balorum, minutus carborata descendum pantorum.
    15. Re:nonsense by js7a · · Score: 1
      And what makes this a better protocol?

      At the risk of commenting without having read the RFCs, it sound's like they're proposing a redundant form of error-correcting coding in which a certain number of dropped packets could be tolerated. The advantage of not having to have a constant two-way conversation going is pretty substantial for many applications.

      I say, thumbs up! Let some apps try it out with the UDP layer, and if they work really well, then I'd welcome an http version.

    16. Re:nonsense by Anonymous Coward · · Score: 0

      It seems that the 'protocol' utilizes UDP, basically a wrapper around UDP.. that was just my 2 minute Reading of TFA.. So calling it a protocol is sort of a misnomer, or at least calling it a replacement for TCP is. It seems its more of a way of sending data faster using UDP while still ensuring the remote end receives the data.

    17. Re:nonsense by MasTRE · · Score: 1

      >And what makes this a better protocol? Its vast history of being a solid, reliable protocol with its massive amount of industrial testing? Oh wait thats TCP.

      You'll never know if you never try it

      >Frankly, new stacks that look better than old ones are a dime a dozen. Until you test them in the real world you will never know and why bother changing TCP when it does a damn fine job right now?

      But by that logic everything new = bad, and there will never be any progress. I'm one that likes to give things a chance before making a judgement. All I'm saying is that you should not discount it just because it's new. Or that it's not the right color. Or it doesn't look the same. Don't be afraid of change and things that are different.

      --
      Must-not-watch TV!
    18. Re:nonsense by Anonymous Coward · · Score: 0

      They'll be essential to justify thin clients in the future.

    19. Re:nonsense by AK+Marc · · Score: 1

      TCP's shortcomings are going to constantly be mitigated by better router and switch hardware.

      Only if by "router and switch hardware" you mean "some device in the middle that encapsulates TCP in something else." TCP is horrible over long fat networks, especially long fat networks with large loss. TCP is about the worst protocol currently in use for transmissions over satellite. People doing satellite transmission often employ boxes to encapsulate TCP into UDP or other connectionless protocol (with ACK spoofing on both sides of the connection to keep the data flowing). If it was so great, why are satellite networks full of such acceleration boxes?

      There's no way to obtain data that was truly lost, so they are using an error correcting encoding of the data (and wasting some of the bandwith in the process) They're not really doing something radical, it's just UDP/IP. They just have some software that silently handles the data loss and unpacking which sits on top of a UDP/IP socket. So they've moved the problem from layer 3 into the application layer (layer 7).

      Huh? Do you know what you are talking about? Moving it to layer 7 would be like RAR/PAR. You would send, to the application, extra data, then let the application determine if there was data loss, then pull the necessary missing/corrupt data from the forward error correction (FEC) that was sent. However, back to satellite networks, they have FEC built into layer 2. With building it directly into the stack, it will be moving it into the stack, layer 3. FEC can be no more invasive than a CRC. I don't hear people whining about how inefficient it is to have all those CRCs running around for error checking, and it really doesn't take much more to turn error checking into error checking/correcting.

      Their entire product places emphasis the amount of network utilization, but little else. I imagine that they're wasting a portion (but who knows how much) of their "utilized" bandwith, and they're certainly wasting a lot of CPU time encoding and decoding the packet payload. Thier sales pitch is basically "TCP/IP bad, UDP/IP better" but they never clearly address how much CPU time this solution requires or how much of the "utillized" bandwith is wasted.


      Who cares? CPUs are getting cheaper all the time. having to put in a PIII level chip, rather than PII isn't going to matter much, just another $100 to the cost of a $5000 router. TCP absolutely sucks for transmissions over satellite. This sounds much better. Also, it sounds good for other fat networks with higher than desired loss, like home broadband connections. TCP got the initial lead because networks were small and crappy. It was easier to build retransmissions into the protocol than to build it into every application, and they didn't have trouble filling up their 300 baud connections. Now, it is time to consider something that is designed for 10 GB networks, as well as something that can handle a 10 Mb network over satellite. FEC is better than CRC and doesn't take much more space or time, and space has gotten much easier and cheaper, as has processor cycles. The reasons TCP was ideal in the '70s don't apply any more. It is time to move on. What will be next? This may be it (or a precursor to what is next).

  3. Evil Bit? by Sexy+Commando · · Score: 5, Funny

    Does it have Evil Bit implemented?

    1. Re:Evil Bit? by Anonymous Coward · · Score: 0

      If it's used for P2P programs, I'd settle for the "Anonymous Coward" bit.

    2. Re:Evil Bit? by Anonymous Coward · · Score: 0

      No, sadly. :-(.

      I don't understand why they won't do it, as this is the reason I use Jabber for IM.

    3. Re:Evil Bit? by EvilTwinSkippy · · Score: 1

      Yes, but only for pidgeons and percussion instruments.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    4. Re:Evil Bit? by ebuck · · Score: 1

      It might, but the parental controls are set such that nobody will know till they reach age 150.

  4. Kudos to submitter by Johnny+Doughnuts · · Score: 0, Offtopic

    Kudos for using coral.

    1. Re:Kudos to submitter by Johnny+Doughnuts · · Score: 1

      Is it that bad? I bet if you hadn't complained you could have typed them in by now.

    2. Re:Kudos to submitter by ebuck · · Score: 1

      I was more thinking along the line of, "Yeah, Really great. Kudos for posting a company's product advertisement as if it were news."

    3. Re:Kudos to submitter by Anonymous Coward · · Score: 0

      But why should I have to? Isn't the whole point of hyperlinking that I don't have to type URL's? Why not post it regular and force those who want to use the cache to add the extra bits. Better yet just link both. Something like Article(Coral Cache).

    4. Re:Kudos to submitter by AhabTheArab · · Score: 1

      Coral's website offers a Firefox extension that will add an option to the right click context menu for links to append .nyud.net:8090 automatically to any link.

    5. Re:Kudos to submitter by Anonymous Coward · · Score: 0

      So complain to whoever set up your firewall. 8090 is perfectly valid port to want to be able to communicate on.

  5. A working wikipedia link for Kademlia by jbellis · · Score: 3, Informative
    1. Re:A working wikipedia link for Kademlia by daserver · · Score: 2, Informative

      The link in the post is coralised. Maybe someone is blocking your outgoing port 8090 for you :-)

    2. Re:A working wikipedia link for Kademlia by squiggleslash · · Score: 2, Interesting
      Maybe someone is blocking your outgoing port 8090 for you :-)
      That would be fairly normal. Most businesses I've seen tend to block all ports except 80, 553, and, occasionally, 8080 because it's a popular "alternative".

      I'm kind of baffled to be honest that the Coralisational people chose a port other than 80. Still, if we're in an article discussing running a high level protocol over the top of another high level protocol (these people seem to understand efficient networking about as well as they understand the GPL), it kind of seems appropriate.

      --
      You are not alone. This is not normal. None of this is normal.
    3. Re:A working wikipedia link for Kademlia by Anonymous Coward · · Score: 0, Insightful

      Well some of use are at work and not sitting in our mother's basement. Most companies don't just leave every outgoing port open and they surely are not going to open a port for us to read an article. Coral is a nice idea with a flawed implementation.

    4. Re:A working wikipedia link for Kademlia by daserver · · Score: 1, Redundant

      > Coral is a nice idea with a flawed implementation. Care to explain this flamebait or shall we just leave it at that? :)

    5. Re:A working wikipedia link for Kademlia by Pxtl · · Score: 1

      Interesting - the problem is that there's quickly becoming a sea of similar products. Sun's JXTA is an open standard as well, and Microsoft has their own similar p2p system that they rolled out with SP2. How the hell is a dev supposed to pick which to go with? (personally I'm leaning towarsd JXTA, but i'm really at a loss).

    6. Re:A working wikipedia link for Kademlia by SpaceLifeForm · · Score: 1

      Didn't you mean ports 80, 443, 53, and sometimes 8080?

      --
      You are being MICROattacked, from various angles, in a SOFT manner.
    7. Re:A working wikipedia link for Kademlia by julesh · · Score: 1

      The link in the post is coralised. Maybe someone is blocking your outgoing port 8090 for you :-)

      Actually, when I was trying it about 5 minutes ago, the service seemed to have been slashdotted (I was getting an error back from the coral server I connected to).

      It has recovered now, though.

    8. Re:A working wikipedia link for Kademlia by squiggleslash · · Score: 1

      No, 80, 443, and sometimes 8080. 53 is DNS, most companies require their employees to use a local DNS server.

      --
      You are not alone. This is not normal. None of this is normal.
    9. Re:A working wikipedia link for Kademlia by hugesmile · · Score: 1
      If you can't get the original link to work, try this link.

      Where do people come up with these product names?

    10. Re:A working wikipedia link for Kademlia by phobos13013 · · Score: 1

      i dont mean to be as harsh as im sounding, but is it really 'informative' to post a wiki link.... without commentary at least?

      --
      ...and it should be known by now
    11. Re:A working wikipedia link for Kademlia by Anonymous Coward · · Score: 0

      If you read the Coral webpage, you'd see that the choice of port 8090 is merely an artifact that it's currently deployed on the PlanetLab test-bed, and not anything fundamental in the "implementation". And they are looking to switch to port 80 as soon as they can do port sharing in that infrastructure.

    12. Re:A working wikipedia link for Kademlia by Anonymous Coward · · Score: 0
      is it really 'informative' to post a wiki link

      Well, indeed, certain Wikipedia links are more deserving of 'troll' than 'informative'...

  6. This has nothing to do with Portugal by Anonymous Coward · · Score: 0, Funny

    This has nothing to do with Portugal! It's useless!

    1. Re:This has nothing to do with Portugal by Anonymous Coward · · Score: 0

      Best. Troll. Ever. AZORES #1!

    2. Re:This has nothing to do with Portugal by Anonymous Coward · · Score: 0

      Impressive. The trollness is strong in this one.

  7. Old!=bad by gspr · · Score: 5, Insightful

    The submitter says that TCP is getting old, but does that really tell us anything about how well it does its job?

    1. Re:Old!=bad by g0at · · Score: 0, Troll

      Yeah, exactly. Stairs, and the wheel, are pretty old too. Perhaps we should study mandating elevators powered by square motors for all homes!

      -b

    2. Re:Old!=bad by jfengel · · Score: 5, Interesting

      From the first paragraph of TFA:

      This problem stems from the fact that TCP calculates the congestion of the channel based on its round-trip time. The round-trip time, however, reflects not only the congestion level, but also the physical length of the connection. This is precisely why TCP is inherently unable to reach optimal speeds on long high-bandwidth connections.

      A secondary, but just as impairing, property of TCP is its inability to tolerate even small amounts (1% - 3%) of packet loss.

      I find it kind of interesting that these are two competing problems: one having to do with high bandwidth (and presumably high-reliability) connections, the other with low-reliability connections. My home DSL, however, often fits into the latter category: 3% packet loss is not uncommon on bad days. So maybe the two aren't so incompatible after all.

    3. Re:Old!=bad by RAMMS+EIN · · Score: 4, Insightful

      TCP does have its shortcomings.

      As they mention on their site, TCP's bandwidth usage is dependent on the latency of the link. This is due to the fact that sliding windows (the number of packets that are allowed to be out on the network) have a limited size. TCP sends a windowful of packets, then waits until one is acknowledged before sending another one. On high-latency links, this can cause a lot of bandwidth to go unused. There is an extension to TCP that allows for larger windows, addressing this problem.

      Another problem with TCP is slow start and rapid back-off. IIRC, a TCP connection linearly increases its bandwidth, but will halve it immediately when a packet is lost. The former makes for a very slow startup, whereas the latter causes a connection to slow down dramatically, even though a lost packet can be due to many factors other than congestion. Slow start has been addressed by allowing connections to speed up quicker, about rapid back-off I'm not sure.

      The solution this company provides seems to play nice with TCP by varying the transmission speed in waves. Apparently, this improves speed over TCP's back-off mechanism, but it obviously doesn't provide optimal bandwidth utilization.

      --
      Please correct me if I got my facts wrong.
    4. Re:Old!=bad by BridgeBum · · Score: 2, Informative

      TCP is a good protocol, but it is far from perfect. It does have weakness in it's windowing mechanism which can vastly reduce the throughput over long distances/mild latency with long durations. (Think FTP.) This is probably the problem they are refering to with #1.

      For #2, this could simply be retransmission problems. TCP has a strict sequential ordering to packets, so a packet lost in the stream could cause other packets to be discarded, forcing more retransmissions than were technically required. This could be considered a 'weakness' of the protocol, since under some circumstances it could be desireable to receive the packets in a random order and allow assembly at the endpoint. (Think BitTorrent) So it's not unreasonably to examine advances in networking protocols. As for wide spread adoption....well, that's another story all together.

      --
      My UID is the product of 2 primes.
    5. Re:Old!=bad by labradort · · Score: 2, Interesting

      Now I understand why my satellite based ISP from years ago would start off transfers at a trickle and slowly speed up. It interpreted the 700ms ping into space and back as congestion.

      This could have a benefit for parts of the world where the Internet is available only by satellite.
      People typically think of Antarctica and mountain regions when I say that, but really, any place without phone or cable, or where you need something better than text messaging over a blackberry, fits the role of using satellite ISP.

      I only need to travel a mile from my University with terrific bandwidth to be in place where there are no phone lines or cable available.

    6. Re:Old!=bad by gmack · · Score: 1

      There is no need to replace the procol to fix either problem. ECN was deisgned to fix the former problem and AFIK there has been plenty of research put into fixing the the backoff mechanism.

    7. Re:Old!=bad by amorsen · · Score: 4, Informative
      TCP has a strict sequential ordering to packets, so a packet lost in the stream could cause other packets to be discarded

      That's what selective ack is for. It's pretty old hat at this point, everyone has it implemented.

      --
      Finally! A year of moderation! Ready for 2019?
    8. Re:Old!=bad by ebuck · · Score: 4, Informative

      Most modern TCP/IP implementations use a sliding window algorithim internally, which caches the out of order packets while it's trying to re-get the missing packet.

      So you're really only concerining yourself with ordered delivery when the delay in the natural order is greater than that of the sliding window (the cache of received packets that you're not going to tell the software about just yet)

      This takes care of trivial things where packets arrive "just barely" out of order, but in a true packet loss situation, can block the channel for quite some time.

      So the strict sequence you refer to is the sequence the packets are presented to the next layer (usually the application in Ethernet), not the sequence the packets are received by the machine.

    9. Re:Old!=bad by Anonymous Coward · · Score: 0

      I for one, welcome our square motor overlords!

    10. Re:Old!=bad by Gilk180 · · Score: 5, Informative

      Actually, TCP increases exponentially until the first packet is dropped. It backs off to half, then increases linearly, until another packet is dropped, backs off to half ...

      This means that a TCP connection uses ~75% of the bandwidth available to it (after all this stabilizes). So if there is only a single tcp connection over a given length, it will be 75% full at best. However, the whole reason for doing a lot of this is to allow many connections to coexist. If you transmit as fast as possible, you will get the highest throughput possible, but you will end up with a lot of dropped packets and won't play nice with others.

    11. Re:Old!=bad by Anonymous Coward · · Score: 0

      > Now I understand why my satellite based ISP from years ago would start off transfers at a trickle and slowly speed up. It interpreted the 700ms ping into space and back as congestion.

      You just need a bigger window, and use ECN instead, which will tell you when there's congestion, not guess.

    12. Re:Old!=bad by labradort · · Score: 1

      The service I used was based on Direct PC.
      There was only a Windows client that worked
      with their PCI card and it didn't offer such
      tuning as ECN. I did play with MTU and Window
      size a little, but it didn't help that problem.

    13. Re:Old!=bad by Anonymous Coward · · Score: 0

      It would seem that some alteration in the TCP's ignoring physical length of connection would be an easier change to accomplish.

    14. Re:Old!=bad by EvilTwinSkippy · · Score: 1
      You know, the alphabet is getting old too. The modern standard is a good 150 years old, with varients going back for thousands of years. Surely such antiquated standards need to up updated for the 20th century as well.

      (Tongue firmly in cheek)

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    15. Re:Old!=bad by Harik · · Score: 2, Interesting
      I call bullshit to your logic. I've got a number of point-to-point T1s for specific uses, and I can quiesce them and do large file transfers over them for backups. I get ~170k transfer speeds, which are theoretical link maximum. (packet/frame overhead). According to you, I should saturate out at 144k.

      Now, what they're doing isn't quite the same. You wouldn't serve webpages or email over their protocol. You would do something like bittorrent, though, since you can snag the missing frame later or from another peer. It'd be really good for streaming media, since mere milliseconds after the frame is due it's already useless. Moreso with videoconferencing and VoIP, since those can't have even a tiny buffer.

    16. Re:Old!=bad by j1m+5n0w · · Score: 2, Informative
      TCP's bandwidth usage is dependent on the latency of the link. This is due to the fact that sliding windows (the number of packets that are allowed to be out on the network) have a limited size.

      TCP's window size is not a fixed size. There is a maximum, but most "normal" connections are well below it. (Links with very high bandwidth and high delay may reach this limit, which can be increased somewhat with the right TCP extensions.) TCP's window size, in fact, regulates its bandwidth consumption.

      Another problem with TCP is slow start and rapid back-off. IIRC, a TCP connection linearly increases its bandwidth, but will halve it immediately when a packet is lost.

      That's not a bug, it's a feature! AIMD (additive increase, multiplicative decrease) is used because it's been found to work for most people. The multiplicative decrease part may seem drastic (cutting the window in half whenever a packet is lost), but it does do a good job of preventing severe packet loss due to congestion.

      When multiple connections are sharing a link, TCP ends up favoring the lower latency connection. This happens because when a packet gets lost (often this is because a link is not fast enough to handle the data being sent over it), the corresponding sender fails to receive an acknowledgement, and reduces it's window size in half. Window size is incremented by some small value each time a full window of data is acknowledged. The window size of low latency connections grows much more quickly than high latency connections, so the low latency connection will have a larger window most of the time.

      This is a known limitation of TCP, but I'm naturally suspicious of anyone who claims to have "fixed it" without offering specific details. Squeezing a little more bandwidth out of TCP is far less important than preventing the Internet from becoming unusable whenever a link becomes congested.

      -jim

    17. Re:Old!=bad by Thuktun · · Score: 3, Informative

      That's what selective ack is for.

      And that only works within the TCP window size. For discretely-sized data transfers on the order of megabytes and gigabytes, delaying transfer of one TCP window (on the order of dozens of kilobytes) is not the best way to get maximum throughput.

    18. Re:Old!=bad by TheShalafi · · Score: 1

      1-3% would be incredible non-material when it comes to transmissions... hell anything below 10% or even 15% is fine in most networks. (Note, I did say MOST, obviously there are networks where QoS MUST be "Five 9's").

    19. Re:Old!=bad by InfiniteWisdom · · Score: 3, Interesting

      No, the problem is with the way TCP's congestion window works. When there is no loss, the congestion window is increased linearly, typically at 1 packet a roundtrip. On the other hand, whenever a packet is lost the window is cut in half. On a high latency, high bandwidth link (i.e. one with a large delay-bandwidth product) the window required to keep the link saturated could be tens of thousands of packets. You could tweak the parameters, but ultimately you still have additive-increase multiplicative decrease (AIMD).

      The key problem with TCP is that it assumes that most losses happen because of packets being dropped due to congestion, not because of data corruption. Treating every loss as a congestion event worked well in the early days of the Internet, but is counterproductive today where the core of the Internet has plenty of spare capacity and congestion usually happens at the edges.

      If ECN were universal, one could ignore losses (for the purpose of congestion control). There are lots and lots of protocols that have been designed by the computer science research community... like look through the proceedings of, say, ACM SIGCOMM. You'll find no shortage of new protocols.

      Designing one that has big enough advantages to justify the cost of switching is another matter. TCP works find to today's cablemodems and such. Its when you start talking about trans-continental multi-gigabit networks that its limitations become a problem.

    20. Re:Old!=bad by dgatwood · · Score: 2, Interesting
      The back-off design works relatively well if you assume that the network is relatively reliable. As soon as non-bandwidth-related packet loss is introduced at any real frequency, it becomes the most horrible nightmare in existence. Add a filter to your firewall sometime that tdrops 1% of packets randomly. Try to use the connection.

      This is compounded when you start doing layered networking (PPPoSSH or similar) on top of such a system. Then, the packet dropping problem is replaced with multi-second latency all of a sudden, and performance goes to hell in a handbasket. The backoff design works well in the lab, but doesn't always work well in a real-world environment....

      What we need to do, IMHO, is to stop doing backoff after a connection has been established for a few thousand packets. Combine this with preemptible bandwidth reservation, and you have a much more robust connection in terms of maximizing data rate in a real-world network environment.

      Basically the idea is this: on connect, you do a bandwidth estimation based on the sliding window results for the first few thousand packets.

      You tell the router upstream "Okay, it looks like I'm getting 128Mbps to server A. Please reserve that much bandwidth and notify me if you are no longer able to provide it because something more important or more realtime needs the bandwidth."

      If higher priority traffic preempts you, you would get an "ICMP bandwidth reduced" packet or something. You then switch back to the sliding window to establish an estimate of your current bandwidth (or possibly the packet contains that info).

      If the app is consistently trying to push more data, the stack might periodically request a higher bandwidth allocation. If it succeeds (ICMP bandwidth increased?), the stack could increase the bandwidth allocated to that particular connection.

      Thoughts?

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    21. Re:Old!=bad by Percy_Blakeney · · Score: 1
      Actually, TCP increases exponentially until the first packet is dropped. It backs off to half, then increases linearly, until another packet is dropped, backs off to half ...

      Well, actually, that's somewhat incorrect. TCP increases its window size exponentially (slow start) until it reaches a certain threshold, at which point it increases linearly (congestion avoidance). If a packet is lost, then the threshold is cut in half but the window size starts from zero again (i.e. redo slow start).

      Tweaks to TCP have somewhat modified this behavior (e.g. a triple duplicate ACK will halve the threshold but restart the window size in congestion avoidance mode at the threshold), but the behavior described above is generally accurate.

    22. Re:Old!=bad by Java+Ape · · Score: 1
      Yeah, just like us long-in-the-tooth nerds. We're old, but we can still do our jobs well . . .

      Um, well at least we can read Slashdot at work as well as you youngsters!

    23. Re:Old!=bad by aminorex · · Score: 1

      agreed. the alphabet is obsolete. kanji is superior for transmitting meanings, and IPA is superior for transmitting sounds.

      --
      -I like my women like I like my tea: green-
    24. Re:Old!=bad by j1m+5n0w · · Score: 1
      What we need to do, IMHO, is to stop doing backoff after a connection has been established for a few thousand packets.

      I don't think not backing off at all is a good idea. Your connection could change routes at any time, and you can't assume you'll be notified. On the other hand, it may be reasonable to only back off a little (say 10%) for each lost packet, instead of half. Or maybe subtract a large constant number (like 50 or 100 packets) from the window for each dropped packet, if the window size is huge.

      Another option would be to drastically reduce the window only when the ration of dropped vs. successful packets exceeds some threshold (like 1 or 2%) - though this wouldn't play nice with routers that implement random early drop (RED).

      I agree with you that TCP doesn't work great in all situations, and it is sometimes overly sensitive to packet drops, especially on connections with enormous bandwidth-delay products. It's also important, though, to realize the tradeoffs that TCP makes - over-agressive congestion control could potentially cause a lot more problems than overly-conservative bandwidth utilization.

      -jim

      (I'm sure there's hundreds of research papers out there on this topic if I cared to look)

    25. Re:Old!=bad by Handpaper · · Score: 1
      If higher priority traffic preempts you, you would get an "ICMP bandwidth reduced" packet or something.

      Cool! We get a brand new DDoS tool.

    26. Re:Old!=bad by Gilk180 · · Score: 1

      With the latest versions of tcp, fast recovery results in behavior as described.

    27. Re:Old!=bad by Anonymous Coward · · Score: 0

      That's what selective ack is for. It's pretty old hat at this point, everyone has it implemented.

      You tell me where TCP SACK is in the world. Maybe Tahoe or Reno, but SACK is definately NOT IMPLEMENTED EVERYWHERE!!

    28. Re:Old!=bad by Anonymous Coward · · Score: 0

      Actually, TCP increases exponentially until the first packet is dropped. It backs off to half, then increases linearly, until another packet is dropped, backs off to half ...

      Nope, not exactally.

      TCP does slow start, then when it drops, cuts the ssthresh to half, and then slow starts again. Once it reaches ssthresh, THEN it increases cwnd by 1/cwnd (ie linearly).

    29. Re:Old!=bad by asldihf · · Score: 1

      Orbital Data (www.orbitaldata.com) has an enhanced TCP stack packaged as a 'router-like' appliance. It uses advanced packet handling to accelerate any TCP/IP application flowing through it to full line speed through high amounts of packet loss and latency.

      Orbital's appliance is "transparent" using standard TCP/IP datagrams. It can be placed directly in-line or positioned as a proxy to the application dataflow. Most TCP/IP applications can be accelerated to full line speed, regardless of distance or the amount of packet loss present.

      Flow control seems to belong on the network rather than in the stack.

    30. Re:Old!=bad by Anonymous Coward · · Score: 0

      What jobs? Don't they have a tooth-length limit at your company yet?

    31. Re:Old!=bad by Thuktun · · Score: 1

      Flow control seems to belong on the network rather than in the stack.

      TCP is very valuable for network streams that need a byte-by-byte reliable FIFO. It's just a poor choice for streams that can tolerate lost packets or very large transmissions where lost packets in the short term aren't important.

  8. Is it an open protocol? by FooAtWFU · · Score: 4, Insightful

    If it's not an open protocol (if they charge for use) it may find niche applications. If it is, it may proliferate. I wasn't able to find details about this on the site.

    --
    The World Wide Web is dying. Soon, we shall have only the Internet.
    1. Re:Is it an open protocol? by debianlinux · · Score: 1

      http://www.rateless.com.nyud.net:8090/codes.html

      at the bottom it reads:
      "We are planning to release Rateless Codes for free, non-commercial use, in open source under the GNU Public License."

    2. Re:Is it an open protocol? by squiggleslash · · Score: 1
      A pedant comments:

      I'm assuming they're specifically saying "for free, non-commercial use" because they plan to charge (or otherwise limit) commercial use of the protocol.

      In which case, how will they do that if they're releasing the code in open source under the "GNU Public License" (presumably the GPL)?

      I'm guessing they're not aware you can't restrict uses if you're releasing under the GPL.

      --
      You are not alone. This is not normal. None of this is normal.
    3. Re:Is it an open protocol? by volsung · · Score: 1

      Which is slightly contradictory, since releasing under the GPL would not prevent commercial use.

    4. Re:Is it an open protocol? by RealAlaskan · · Score: 4, Informative
      If it's not an open protocol (if they charge for use) ...

      It doesn't look good. Their webpage says:``We are planning to release Rateless Codes for free, non-commercial use, in open source under the GNU Public License.'' They are seriously confused about the terms of their own license. The GPL doesn't lend itself to ``free, non-commercial use'': it lets the licensee use and distribute freely, at any price, for any use.

      Either they'll loose that ``non-commercial use'' crap, or this will go nowhere.

    5. Re:Is it an open protocol? by jfengel · · Score: 2, Informative

      The front page says "not patented". They could claim it as a trade secret, but not if they plan to introduce an RFC. So even if they don't wish to open their sources, there will be open implementations very quickly.

      Assuming there aren't any underlying IP issues. I'm not aware of any patents on the forward error correcting codes they're using, but that doesn't mean they don't exist. And assuming some jackass doesn't say, "Here's a thing and it's not patented; I'll patent it and then license it back to the guys who did the work!" The patent office seems to do a lousy job of checking non-patent prior art.

    6. Re:Is it an open protocol? by dustman · · Score: 0

      The GPL doesn't lend itself to ``free, non-commercial use'': it lets the licensee use and distribute freely, at any price, for any use.

      No, it doesn't.

      The General Public License gives you a license to use that code under certain terms.

      When they say "free, non-commercial use", and they talk about the GPL, they are making sense. The Linux kernel, which is GPL, may use their implementation. Microsoft cannot use their implementation in any of its Windows OSes without releasing the OS kernel under terms which are compatible with the GPL.

      "Dual licensing" software under the GPL and some other commercial license is noble, (because you are releasing open source), viable (see Qt and Aladdin Ghostscript for examples of people who have made money doing this), and does not conflict with the goals of the FSF.

      The GPL does not lend itself to "commercial use", because the "standard" model of software licensing is paying a price per use/copy of the binary, and the GPL doesn't work this way.

      GPL trolls (sorry, not that I'm implying you're one) always pipe up with "but you can sell GPL software as much as you want", while totally ignoring the fact that the whole concept of selling software is based on the idea of copyright-enforced scarcity, which the GPL eliminates.

    7. Re:Is it an open protocol? by Kazrath · · Score: 0

      FootAtWFU. Just had to say: Love the signiture. Its from the best movie of all time!!!! (Prince Bride)

    8. Re:Is it an open protocol? by n6mod · · Score: 2, Insightful

      Acutally, there are likely to be a mountain of patent issues. Not sure how legitimate these will turn out to be.

      Peter's paper was originally presented at the same conference where Digital Fountain also presented approximately the same thing. (Building on the LT codes that they had been shipping for years)

      I'm quite sure that DF has a stack of patents on their version.

      This may get interesting.

      (Disclaimer: DF laid me off in 2003)

      --
      You have violated Robot's Rules of Order and will be asked to leave the future immediately.
    9. Re:Is it an open protocol? by peragrin · · Score: 1

      Boy are you idiot

      Microsoft as long as they didn't change the stack could use it in their kernel without releasing the full kernel code. As the Stack wouldn't be a derivative of the whole kernel. If MSFT changed the code for optimizing that would have to be released.

      Now to be really nice MSFT might have to make available upon request(not even a download, but emailed) an LGPL style wrapper, to wrap around the stack for connections into their kernel. But as long as they adjust the EULA to say the Stack comes from GPL software to get the source code email this person they are legal.

      MSFT can be in complaince with the GPL and still incorpriate GPL code. It just needs to be done intelligently.

      --
      i thought once I was found, but it was only a dream.
    10. Re:Is it an open protocol? by Ironsides · · Score: 1

      What they are really going to have problems with is that some rateless error codes are copyrighted/patened. And the company that did this have already made products (for a year or two now). So long as their code does not violate them they are fine. But if they do, I'm not sure they can GPL the code.

      --
      Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
    11. Re:Is it an open protocol? by Anonymous Coward · · Score: 0

      The GPL also says that no limits can be put on GPL'd code that are more stringent or limit rights granted by the GPL so it's not possible to make GPL'd code only noncommercial.

    12. Re:Is it an open protocol? by cdrudge · · Score: 1

      Not necessarily. They can give it away for non-commercial use and charge whatever they want for commercial use. However, anyone in the non-commercial use can easily give it to anyone in the commercial use category for free, essentially bypassing the need for a commercial entity to pay for it in the first place.

      All this is beside the GPL requirements for open sourcing anything it's included in.

    13. Re:Is it an open protocol? by Yaztromo · · Score: 1
      When they say "free, non-commercial use", and they talk about the GPL, they are making sense.

      No they aren't. "Non-commercial use" means it can't be used in a commercial setting. The GPL doesn't forbid use in commercial settings, only how you have to release any code based on the licensed sources.

      Just look at all of the corporations using Linux. If the GPL enforced (or permitted) "non-commercial use", then there are tens of thousands of corporations out there breaking the GPL just by using the software. IBM, RedHat, Novell, and lots of others would be in violation, as they are commercial entities.

      What the GPL doesn't permit is an entity (corporation OR individual) from taking the licensed sources, and incorporating them into a closed-source project. However, corporations are still allowed to use the code.

      The literal meaning of "non-commercial use" is "if you're a corporate entity, you can't use this at all". And that's not what the GPL is about.

      Yaz.

    14. Re:Is it an open protocol? by RealAlaskan · · Score: 4, Informative
      The General Public License gives you a license to use that code under certain terms.

      Almost true. It gives you a license to distribute that code, under certain terms. No license is needed to use a copy. Read section 5 of the GPL for an elegant confirmation of that.

      When they say "free, non-commercial use", and they talk about the GPL, they are making sense. The Linux kernel, which is GPL, may use their implementation.

      Sorry, you're way off here. Redhat sells Linux, and their customers use it for commercial purposes. Therefore, the Redhat version of the Linux kernel can't use their implementation. The issue is moot, however, since the non-commercial restriction would make their license non-GPL-compatible. Their implementation couldn't be included even in a kernel which would see non-commercial use only.

      Microsoft cannot use their implementation in any of its Windows OSes ...

      Wrong. If MS wanted to make a version which they would give free of charge to private individuals and charitable organizations, they could use it, since that would be entirely non-commercial, both in distribution and in use.

      ... without releasing the OS kernel under terms which are compatible with the GPL.

      For MS, that would be a problem, but it's the GPL part, not the non-commercial part, that would bite them. As I said above, the non-commercial restriction would render this license incompatible with the GPL.

      The GPL does not lend itself to "commercial use", because the "standard" model of software licensing is paying a price per use/copy of the binary, and the GPL doesn't work this way.

      Sorry, you've mis-construed non-commercial. Non-commercial typically means not used in commerce. Believe it or not, is is possible to sell software for non-commercial use. If you run your business using the software, that's commercial use. By the way, you should tell Redhat and Novell that bit about the GPL not working for ``paying a price per use/copy of the binary'', that'll be a revelation to them.

    15. Re:Is it an open protocol? by Have+Blue · · Score: 1

      If they don't use BSD or some other non-viral license, it will never replace TCP.

    16. Re:Is it an open protocol? by Anonymous Coward · · Score: 0
      Boy are you idiot

      Who idiot?

    17. Re:Is it an open protocol? by Turmio · · Score: 1

      If they really intend to get it standardised with IETF, two independent implementations must be available.

    18. Re:Is it an open protocol? by pjt33 · · Score: 1
      The General Public License gives you a license to use that code under certain terms.

      Almost true. It gives you a license to distribute that code, under certain terms. No license is needed to use a copy.

      Depends on jurisdiction. Legal opinion in the UK is divided as to whether one requires a licence to execute a copyrighted program, as execution creates a temporary copy in memory.
    19. Re:Is it an open protocol? by farnz · · Score: 1

      They'd have to be very careful about how they put the stack into the kernel to avoid falling foul of section 2 of the GPL; if a court were to rule that the work they'd done to put the stack into the kernel made the stack/kernel combination a collective work (or a derived work), they would have no permission to distribute the combination, unless they removed the stack and any code that derived from the stack.

    20. Re:Is it an open protocol? by Fnkmaster · · Score: 4, Interesting
      They apparently already have some problems with GPL compliance. They are distributing binaries of a tool called Rateless Copy which they state uses the GPLed libAsync library under their own license while promising to deliver source code under the GPL "soon".


      Don't get me wrong, I think they mean well, but they are trying to prohibit commercial use of GPL-linked works. Nobody said the GPL was always friendly to your business plan, but you can either take it or leave it, not have it both ways. I know one of the founders of this company, Chris Coyne - he used to regularly come to my parties in college. Nice guys, and I am sure they mean well. They could use some serious guidance though on licensing and IP issues, not to mention trying to make a viable business out of network software, which is a tough proposition in itself.


      Feel free to contact me if you need help guys. :)

    21. Re:Is it an open protocol? by timster · · Score: 1

      Well, they can't charge for use, but they can charge for unrestricted copies. For example if Cisco wanted to use this company's protocol, they could just use the GPL implementation but then they would have to release the source to their modifications to the public as GPL software. Cisco might not want to do that, because to use the protocol they'd presumably have to port the code to IOS, and releasing a GPL version of the port would allow others to examine the code and potentially proprietary parts of IOS.

      So it might be better for Cisco to approach this company and ask for a proprietary license that didn't have the GPL restrictions. Then Cisco would not have to release source.

      Of course, Cisco might decide to just implement it themselves, since it's not patented.

      --
      I have seen the future, and it is inconvenient.
    22. Re:Is it an open protocol? by NoMercy · · Score: 4, Funny

      It's quite bloody obvious what would happen, if the protocal takes off, the BSD folk need to implement a BSD version, the linux guys would then dump there version and use the BSD version because the BSD guys tend to write better code, and it would likely be more comptable, windows would then use the BSD version and MacOS X would have the BSD version by default.

      No point really not releasing it under a BSD licence in the first place, save leting the BSD guys write a far better version for the world to use.

      The RFC is more important than the code anyway, and there fools for not writing the RFC first.

    23. Re:Is it an open protocol? by dustman · · Score: 3, Informative

      Boy are you idiot

      Thanks... I'm not sure if you're confused or trolling, but I respond anyway:

      Microsoft as long as they didn't change the stack could use it in their kernel without releasing the full kernel code.

      Wrong. The reason the LGPL exists is to address this specific case. If the stack were LGPL licensed, then MS could include it, and only be required to submit any changes they made to the LGPL'ed stack itself.

      As the Stack wouldn't be a derivative of the whole kernel.

      How could you possibly argue that their stack was a derivative of the MS kernel? I assume you meant to say that the MS kernel was a derivative of the stack... But then you are 100% wrong here. If MS used this code, then their kernel would be a derivative work, there's basically no way to get around it.

      Technically, the FSF specifically states that if two programs run in operation via a "pipe", that it doesn't consider them linked. Any form of dynamic linking, they are considered linked, so you couldn't load the stack as a dll or driver and consider yourself not a derivative work. There is perhaps a tiny bit of leeway if you're a lawyer, where you could say "the FSF thinks loading a driver makes the kernel a derivative work, but I don't, so let's argue that in court".

      Now to be really nice MSFT might have to make available ... an LGPL style wrapper

      You are way off base. GPL apps are specifically allowed to include LGPL stuff. This is a special case exemption from the normal rules of the GPL. LGPL stuff is *not* allowed to include GPL stuff.

    24. Re:Is it an open protocol? by kelnos · · Score: 1

      It doesn't really matter how they release their own implementation of it. If this is going to get adopted, they're going to have to write an RFC, which will be sufficient to write a closed-source implementation, if someone so desires.

      The real question is if they plan on patenting something about the protocol, and then trying to charge royalties to license the patent. Or if they plan on giving it a nifty name, trademarking the name, then requiring silly fees to use their trademark to say your implementation is compliant. Though I suppose if that were the case, we could just call it something else.

      The protections on their particular implementation are irrelevant; if they want this protocol of theirs to go anywhere, they're going to have to write an open document describing it.

      --
      Xfce: Lighter than some, heavier than others. Just right.
    25. Re:Is it an open protocol? by dustman · · Score: 1

      Almost true. It gives you a license to distribute that code, under certain terms.

      My mistake, I guess, although you're picking nits. When I said "use" here, I was talking about using their implementation in a product you create. Since their software is a library intended to be "used" (oops, I guess I meant "linked") into other software, I figured it would be obvious.

      Sorry, you're way off here. Redhat sells Linux, and their customers use it for commercial purposes.

      I have not read the article (although I would like to), all the links (even though coral-ized) are dead right now for me at least, so perhaps you are placing more weight on the "non-commercial" wording they used than I did. I was just pointing out that releasing something for "non-commercial" use under the GPL makes a lot of sense, since the normal business model of "commercial" software is not compatiable with the GPL.

      If they say they are releasing under the GPL, then Redhat is allowed to use the software with their own GPL'ed software, such as their version of the Linux kernel.

      Sorry, you've mis-construed non-commercial. Non-commercial typically means not used in commerce. Believe it or not, is is possible to sell software for non-commercial use.

      I think *you've* misconstrued things. The normal meaning of "commercial software" means "software that is sold" or "software that is not open source".

      google - site:opensource.org commercial

      google - define:commercial software

      By the way, you should tell Redhat and Novell that bit about the GPL not working for ``paying a price per use/copy of the binary'', that'll be a revelation to them.

      Whoo boy, zing! I guess that punched a hole in me!

      Seriously, everyone knows that if you buy Redhat or Novell off the shelf, you're not "paying for use/copy of the binary", or if you are, you're an idiot. You can download the same binary for free, or you can have it burned to CDs and mailed to you for a couple of dollars if your link is slow.

      When you buy a commercial Linux distro, you are paying for support, or bound manuals, or something. If you're paying for "use/copy of the binary", you are paying for something you could get for free, and there's better ways you could donate money to the organization of your choice than this.

    26. Re:Is it an open protocol? by Erik+Hollensbe · · Score: 1

      Did you ever possibly think they wanted to get the binary out there as soon as possible, and the code looks like someone ran it through tr with input from /dev/random?

      I don't think we're in disagreement about confusion over the license, but instead of bitching here, how about sending them an email?

    27. Re:Is it an open protocol? by sysadmn · · Score: 1

      It's not clear how you use a software license to lock up a PROTOCOL. If you've described it adequately, what's to stop someone else from reverse engineering it? Patents, of course.

      --
      Envy my 5 digit Slashdot User ID!
    28. Re:Is it an open protocol? by Woody77 · · Score: 1

      Interesting, I wonder how this applies to devices which don't load a copy into memory (execute directly out of flash/nvram/rom/eeprom, etc).

    29. Re:Is it an open protocol? by Dahan · · Score: 1
      I think *you've* misconstrued things. The normal meaning of "commercial software" means "software that is sold" or "software that is not open source".

      That's nice, but the discussion is about the meaning of "non-commercial use" (or "commercial use") [of software], not "commercial software."

    30. Re:Is it an open protocol? by drawfour · · Score: 1

      How could you possibly argue that their stack was a derivative of the MS kernel? I assume you meant to say that the MS kernel was a derivative of the stack... But then you are 100% wrong here. If MS used this code, then their kernel would be a derivative work, there's basically no way to get around it.

      I agree with the rest of your post here -- obviously Microsoft will NOT use any GPL code in something like Windows. But I dispute that the kernel is a derivative of the stack. You're saying that if MS were to use a GPL'd _NETWORK_ stack, their task scheduling algorithms are derivatives? The video display subsystems are derivatives? The USB drivers, file system, Win32 subsystems are derivatives? Not even close. If ANYTHING, the stack could be a derivative of the kernel, but even that is not true. Possibly the HOOKS used to tie the two together could be considered derivatives, but not the rest of the implementation.

      I hate analogies, as there's always SOMETHING wrong with them, but I'll take a shot anyway. What you're saying is that if I design a tire for a car (especially a car that already exists) suddenly the entire car is a derivative... Obviously not true. Now, what if the way the tire attaches to the car changes. Well, then whatever plumbing is needed to actually attach the tire is a derivative. But surely the exhaust system and most of the engine itself will not be changed. Therefore the only thing that you can claim is derivative are what things changed about system in order to get the tire to work.

      My computer can work just fine without a network stack. Well, at least without any network connectivity -- which implies that any part of the network stack that is running is actually useless. But I don't see how anyone could claim that an OS is a derivative of a network stack. Whether you LoadLibrary a DLL or use a "named pipe" for the communication is irrelevant -- the two are very independant items, or at least the order of dependency is wrong.

    31. Re:Is it an open protocol? by Anonymous Coward · · Score: 0

      There is perhaps a tiny bit of leeway if you're a lawyer, where you could say "the FSF thinks loading a driver makes the kernel a derivative work, but I don't, so let's argue that in court".

      Actually, there's a lot of leeway, because NT allows dynamically loadable protocol drivers. If the NT kernel wasn't a "derived work" before they used this code, a judge probably wouldn't consider it derived afterwords. See Nvidia drivers on Linux etc.

    32. Re:Is it an open protocol? by dustman · · Score: 1
      I agree with the rest of your post here -- obviously Microsoft will NOT use any GPL code in something like Windows. But I dispute that the kernel is a derivative of the stack. You're saying that if MS were to use a GPL'd _NETWORK_ stack, their task scheduling algorithms are derivatives?

      Quoting from the GPL, section 0:

      The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language.


      The writers of the GPL are not saying "here is what we think of as a derivative work", it's the writers reaffirming "here is what copyright law says is a derivative work".

      There's really no leeway here in your argument. By definition, a piece of software (named A) which contains a piece of software (named B) or a portion of it, is a derivative work.
    33. Re:Is it an open protocol? by drawfour · · Score: 1
      There's really no leeway here in your argument. By definition, a piece of software (named A) which contains a piece of software (named B) or a portion of it, is a derivative work.
      What about a piece of software (named A) that does not contain, but rather USES a piece of software (named B)? Is A a derivative of B? Better hope not, otherwise any application that uses a single interface of the operating system is a derivative work of the operating system. If A using B is not a derivative, then what about A using B, which is a derivative of C? Should be the same thing...

      The US Code, Title 17, Chapter 1, Section 101 defines "derivative work" to be:

      A "derivative work" is a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a "derivative work".
      The question is what is a "work"? If a "work" can be a DLL, then all that is required is to make your own "derivative work" a DLL that you give full source code to, and then plug into it. It's highly doubtful that accessing it through interfaces is a "derivative" work.

      There are other concerns as well -- such as what are the legal issues with distributing your fully-open-sourced DLL with a closed-source distribution? Does simple inclusion of an open-source piece of software in your distribution make your entire distribution a "derivative work"? Does the distribution medium necessarily become a "work", which is then a "derivative work"?

      The problem is that copyright law was written a very long time ago without even an inkling that computers would be around. When people talk about the GPL being iron-clad or that it's never been tested in a court -- it's because there are many possible ways to interpret what exactly is meant and how it applies to computers. A computer "work" needs to be defined, by LAW. Already there is a definition for "work of visual art". Maybe a "computer work" should be defined.
    34. Re:Is it an open protocol? by dustman · · Score: 1

      What about a piece of software (named A) that does not contain, but rather USES a piece of software (named B)? Is A a derivative of B?

      Well, now you're discussing a somewhat different topic. The FSF asserts that dynamic linking constitutes a derived work. Other people (myself among them) don't agree with this view.

      google: dynamic linking derivative work

    35. Re:Is it an open protocol? by drawfour · · Score: 1

      No, that IS the topic. All of this GPL stuff actually hinges on that. If the FSF is correct in their interpretation (that dynamic linking is a derived work) then the GPL is likely solid.

      If, however, they're wrong, then the way AROUND the GPL is to write a wrapper DLL around the GPL'd code, make THAT DLL open source, and then dynamically link your closed-source code to that open-sourced DLL.

      This is one reason why the GPL has never been tested in court -- companies don't want to take this risk in violating copyright law by trying something like this.

    36. Re:Is it an open protocol? by bedessen · · Score: 1

      They're also in violation of the GPL by distributing binaries linked against the Cygwin DLL without providing source. Cygwin is GPL'd, and linking against it requires your project to be GPL'd, unless they bought the pricey GPL buy-out license from redhat. Thus, they cannot provide Cygwin binaries without source, even if they're not distributing cygwin1.dll itself.

    37. Re:Is it an open protocol? by Fnkmaster · · Score: 1

      By the way - after googling a bit for the libasync stuff, it looks like it was almost all written by their advisor, David Mazieres, so they are presumably using it all with permission - if their site had been a bit more clear I probably wouldn't have been confused about this in the first place. But I think your point about the Cygwin distribution still stands, though I don't know much about Cygwin licensing (I'll take your word for it though).

      Maybe they do have a license, and everything is in the clear. I think it was the strange "source coming real soon now" messages that threw me off, sort of led me to assume there was something funky going on.

    38. Re:Is it an open protocol? by bedessen · · Score: 1
      From <http://cygwin.com/licensing.html">http://cygwin.c om/licensing.html>

      By default, all executables link against this library (and in the process include GPL'd Cygwin glue code). This means that unless you modify the tools so that compiled executables do not make use of the Cygwin library, your compiled programs will also have to be free software distributed under the GPL with source code available to all.


      So, if you compile a Cygwin binary (that requires the Cygwin DLL), your program must be GPL because Cygwin is GPL.

      Alternatively, Redhat offers two alternatives, both documented on that page: Any OSI-certificed license is acceptable, so your code could be BSD and still link to the GPL library. Or, you can purchase a buy-out license.

      However, the website in this case was distributing Cygwin-compiled binaries without source, which unless they bought the Redhat buyout thing violates the Cygwin license.

      I suspect their response would be just to remove the Cygwin binaries. However they still have an obligation to provide source to anyone they gave the binaries to. "The cat's out of the bag" so to speak once you distribute the first binary copy to one person.
  9. Already Slashdotted! by Anonymous Coward · · Score: 0

    No comments and already slashdotted.

  10. What exactly about TCP is getting old? by Anonymous Coward · · Score: 4, Insightful

    Some inefficiencies are one thing, but you're going to need a compelling reason to get everyone to switch.

    1. Re:What exactly about TCP is getting old? by narsiman · · Score: 1

      Yup it is getting old. My packets are getting wrinkled. There is a smell of an old fart all the time. I can even hear a walker being dragged when my CPU is not whizzing. Should change it before they announce it has alzheimers or the flu. I didnt even get my shots this year.

  11. Link is dead by millwall · · Score: 1, Funny

    The link seems to be dead.

    I guess the new protocol still has some time left in development.

    Not ready for slashdotting yet.

    1. Re:Link is dead by Nightreaver · · Score: 1, Insightful

      Well, all links have been Coralized by the auther (read more about Coral) in the hope of withstanding a slashdotting, but Coral is still still under development, so I would assume it's here the problem lies.

  12. Interesting but by Anonymous Coward · · Score: 0

    Even if this attempt to switch to another technology is succesful, it would be painfully slow

  13. TCP is old...so what? by RAMMS+EIN · · Score: 5, Insightful

    TCP is old, but that doesn't mean it's bad or replacement is due. Some shortcomings have surfaced and been adressed. For the most part, TCP does a good job at what it was designed to do.

    --
    Please correct me if I got my facts wrong.
    1. Re:TCP is old...so what? by Anonymous Coward · · Score: 0

      In other news... Wheels, the device that most vehicles use to transport themselves, are getting old. These guys have re-invented the wheel...

    2. Re:TCP is old...so what? by Anonymous Coward · · Score: 0

      Or rather, they invented a new wheel that does the same thing as the old wheel that everyone already has.... Also, because everyone alredy has the old wheel, nobody needs the new one....

    3. Re:TCP is old...so what? by ebuck · · Score: 1

      The problem that TCP addresses hasn't changed, so the protocol hasn't been replaced.

      The problem of what to do when you lose data during a transmission only has a limited number of solutions, and TCP's simplicity (ask again) is it's greatest strength.

      Mabye future replacements will reorder the header in such a way that it simplifies the hardware processing required by the routers, but the core solution will last a lifetime because if you are missing a piece of the data (and you need all of it) you'll eventually ask for that piece again.

      It's the equivalent to asking someone to repeat that last sentence because you dropped the phone.

    4. Re:TCP is old...so what? by Harik · · Score: 2, Insightful
      And their "solution" (forward error correction) really means: introduce 5% packet loss in perfect conditions so even in an up-to-5% packet loss environment you get 100% transmission speed.

      (Hint: redundant data is the same as packet loss from a time standpoint)

    5. Re:TCP is old...so what? by Woody77 · · Score: 2, Insightful

      But not from a computation standpoint. Yes, you lose some bandwidth due to FEC, but if you don't drop the packets, you also don't need to compute the missing data from the FEC data.

      AFAIK, the point of FEC is that you need to send less data than you actually lose, but that's getting into lots of wierd math theory that I'm still coming up to speed on with FEC (looking at it for an application at work).

      The other advantage of FEC over NACK that I can see is that on a high-latency connection, or a server dealing with lots of clients, the server doesn't need to get involved. The client can compute the missing piece, maybe in less time than the resend would take.

    6. Re:TCP is old...so what? by Nevyn · · Score: 1

      I assume it's for things like realtime video/music streaming. You can blast it out from the server, and once it's gone you never need to go back. Where in TCP you have to keep hold of it for some extended period so you send it again if you don't get ACKs. From the server's POV this would be a big advantage.

      --
      ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B
  14. No way by Anonymous Coward · · Score: 0

    IP maybe is ready to be replaced.
    TCP is not ready to be replaced.
    TCP has solved all the major persistance problems.

  15. I wouldn't make any mention of bittorrent, etc.. by drunkennewfiemidget · · Score: 5, Insightful

    Because then you're going to have the suits trying to push it down, no matter how great/useful it is in an effort to kill the possibility of coming out with something that could make pirating any easier or more efficient. That's the only way they're going to see it.

    It's good to see innovation though, nonetheless.

  16. Yet another "reliable UDP" layer by syates21 · · Score: 2, Insightful

    This is hardly an innovative idea, and usually by the time you end up considering all the issues you wind up with something that looks a lot more like TCP than you had originally intended.

    Plus there are already protocol stacks that work around most of their gripes about TCP (slow performance over long pipes, etc).

    1. Re:Yet another "reliable UDP" layer by jrumney · · Score: 5, Insightful

      It appears that they get better performance than TCP by considering (all - 1) the issues. Basically, their protocol works and performs better than TCP because the pipes have spare capacity. If the pipes were at capacity, their protocol would break down. TCP has been designed to be robust in all conditions. Protocols like this that rely on "in most cases we can get away with allowing more errors than TCP does" are not going to replace TCP.

    2. Re:Yet another "reliable UDP" layer by Cinnamon · · Score: 2

      You know, despite my skepticism about what these guys are proposing, I'll take issue (somewhat) with your comment. Saying "TCP has been designed to be robust in all conditions" is true if by 'robust' you mean 'able to transmit at least some data'.

      But the criticism levelled at TCP in high-bandwidth, high-latency applications is entirely valid, and in some circumstances the inefficiency is so bad as to force people to use hacked solutions built on top of UDP (if you want to call doing a ton of application-level ECC a hack.) As clever as many of the features of TCP are, they're useless if inherent limitations in the protocol make it impossible to use it to carry the volume of traffic you need it to.

      I would argue that TCP is designed to be able to handle high packet loss, unstable routing, unstable physical links, etc., and it does all of that extremely well. But the fact is that regardless of how rare or rampant that sort of instability is, if a protocol can't scale to cross-country gigabit+ connections then something needs to be done, either in terms of improving the protocol or replacing it with something that has all the necessary functionality.

      --
      -- If we were in any other industry they would've shot us a long time ago.
    3. Re:Yet another "reliable UDP" layer by shostiru · · Score: 1

      Indeed. I'm curious how it handles saturation conditions. A poorly designed UDP protocol can turn into packet storms when throughput approaches theoretical limit.

    4. Re:Yet another "reliable UDP" layer by jrumney · · Score: 1

      Both you and the summary (though not the article itself, which shows that the creators do actually have a clue) use the word "replace" when I think you mean "complement". There is a place for protocols like this in certain applications (P2P, gaming, video streams etc), as long as they are designed to lose packets rather than swamp the network with retries when conditions get bad enough that they break down. But many applications don't need the extra performance and do need the reliability that comes with TCP.

    5. Re:Yet another "reliable UDP" layer by zatz · · Score: 1

      The "pipes" do not always have "spare capacity". TCP is only able to saturate some types of links, and the "spare capacity" on others is really *wasted bandwidth which TCP cannot utilize*, because its congestion heuristic is too conservative.

      --

      Java: the COBOL of the new millenium.
  17. Rateless Internet (slashdotted) by Andreas(R) · · Score: 5, Informative
    Their website of the so called "experts" is down, it's slashdotted! (ironic?)

    Here is a summary of their technology copied from their website:

    Rateless Internet The Problem

    Rateless Internet is an Internet transport protocol implemented over UDP, meant as a better replacement of TCP. TCP's legacy design carries a number of inefficiencies, the most prominent of which is its inability to utilize most modern links' bandwidth. This problem stems from the fact that TCP calculates the congestion of the channel based on its round-trip time. The round-trim time, however, reflects not only the congestion level, but also the physical length of the connection. This is precisely why TCP is inherently unable to reach optimal speeds on long high-bandwidth connections.

    A secondary, but just as impairing, property of TCP is its inability to tolerate even small amounts (1% - 3%) of packet loss. This additionally forces TCP to work at safe and relatively low transmission speeds with under 1% loss rates. Nevertheless, our extended real-life measurements show that highest throughput is generally achieved at speeds with anywhere between 3% and 5% loss.

    The Solution

    By using our core coding technology we were able to design a reliable Internet transmission protocol which can circumvent both of the fore-mentioned deficiencies of TCP, while still remaining TCP-friendly. By using encoded, rather than plain, transmission we are able to send at speeds with any packet loss level. Rateless coding is used in conjunction with our Universal Congestion Control algorithm, which allows Rateless Internet to remain friendly to TCP and other congestion-aware protocols.

    Universal Congestion Control is an algorithm for transmission speed control. It is based on a simple and clean idea. Speed is varied in a wave-like fashion. The top of the wave achieves near-optimal throughput, while the bottom is low enough to let coexisting protocols like TCP smoothly receive a fair share of bandwidth. The time lengths of the peaks and troughs can be adjusted parametrically to achieve customized levels of fairness between Rateless Internet and TCP.

    The Rateless Internet transport is now available through our Rateless Socket product in the form of a C/C++ socket library. Rateless Internet is ideal for Internet-based applications, running on the network edges, that require high bandwidth in a heterogenous environment. It was specifically built with peer-to-peer and live multimedia content delivery applications in mind.

    1. Re:Rateless Internet (slashdotted) by Oscaro · · Score: 3, Informative
      Also, (from the site we know that

      Rateless Socket will be made available to select companies and institutions on a per-case basis. To find out more, please contact us.
    2. Re:Rateless Internet (slashdotted) by skiman1979 · · Score: 2, Insightful
      Their website of the so called "experts" is down, it's slashdotted! (ironic?)

      I've seen this "irony" thing mentioned before for this topic. The article discusses a protocol replacement for TCP that is supposed to be "better," but their site went down. If this new protocol was being actually used, then maybe it would be ironic. But for that to happen, their web server would have to use it, and the rest of us (who want to view the site) would have to use the protocol too. Where's the irony here? That would be like saying that ssh is bad because our FTP clients can't connect to it.

      --
      Having a smoking section in a public restaurant is like having a peeing section in a public swimming pool.
    3. Re:Rateless Internet (slashdotted) by morten+poulsen · · Score: 1

      > Their website of the so called "experts" is down,
      > it's slashdotted! (ironic?)

      It's all TCP's fault! It needs replacement, now! ;-)

  18. Brilliant! by morgdx · · Score: 4, Insightful

    A slightly faster equivelent to TCP that I have to pay for and no-one else uses.

    Sign me up for that sucker right now.

    --
    http://jfin.org/jFin pure java open source financial library
    1. Re:Brilliant! by julesh · · Score: 1

      Why do you say you'd have to pay for it? There are free downloads on their web page of code for a very wide variety of operating systems, and the article summary above states they're submitting RFCs for it, so pretty soon it ought to be an open standard, available for anyone to implement.

  19. Not F/OSS by TwistedSquare · · Score: 2, Interesting

    Considering this is slashdot and all, I was surprised that their implementation does not appear to be open source (or indeed, freely available at all), though presumably such an implementation will be possible following the RFCs. It seems to work nicely alongside TCP using UDP, quite a cool idea. The question is whether it can break TCP's de facto stranglehold on reliable Internet communication. I'd love to play with it if I could.

    1. Re:Not F/OSS by Anonymous Coward · · Score: 0

      "The question is whether it can break TCP's de facto stranglehold on reliable Internet communication."

      I'm not sure I would describe an IETF standard as an "OMG! Rage Against the Machine! Evil Empire stranglehold".

    2. Re:Not F/OSS by Andreas(R) · · Score: 1

      Actually, it's "free". See the license

  20. Yes by igzat · · Score: 0

    The link is down. The new protocol should help keep the internet running efficiently for the next decade or so.

  21. Whew! by PhotoGuy · · Score: 4, Funny
    "TCP, the transfer protocol that most of the Internet is using

    Often stories are posted that refer to products or code names, with no description, which is quite annoying.

    I'm glad to see this post doesn't run that risk.

    Thanks for clearing that up for me.

    -d

    --
    Love many, trust a few, do harm to none.
    1. Re:Whew! by Anonymous Coward · · Score: 0

      how about referring to processors as "the brains of a computer" from now on?

    2. Re:Whew! by olau · · Score: 1

      You're welcome. We all learn something new each day.

    3. Re:Whew! by KefabiMe · · Score: 1

      What's this internet thingie people keep talking about? I HATE it when articles mention products or code names and doesn't explain them!

      Don't you dare tell me to RTFA, it should be explained in the article itself!!!

  22. here is the story, before it gets slashdotted by N3wsByt3 · · Score: 1, Redundant

    better replacement of TCP. TCP's legacy design carries a number of inefficiencies, the most prominent of which is its inability to utilize most modern links' bandwidth. This problem stems from the fact that TCP calculates the congestion of the channel based on its round-trip time. The round-trim time, however, reflects not only the congestion level, but also the physical length of the connection. This is precisely why TCP is inherently unable to reach optimal speeds on long high-bandwidth connections.

    A secondary, but just as impairing, property of TCP is its inability to tolerate even small amounts (1% - 3%) of packet loss. This additionally forces TCP to work at safe and relatively low transmission speeds with under 1% loss rates. Nevertheless, our extended real-life measurements show that highest throughput is generally achieved at speeds with anywhere between 3% and 5% loss.

    The Solution
    By using our core coding technology we were able to design a reliable Internet transmission protocol which can circumvent both of the fore-mentioned deficiencies of TCP, while still remaining TCP-friendly. By using encoded, rather than plain, transmission we are able to send at speeds with any packet loss level. Rateless coding is used in conjunction with our Universal Congestion Control algorithm, which allows Rateless Internet to remain friendly to TCP and other congestion-aware protocols.

    Universal Congestion Control is an algorithm for transmission speed control. It is based on a simple and clean idea. Speed is varied in a wave-like fashion. The top of the wave achieves near-optimal throughput, while the bottom is low enough to let coexisting protocols like TCP smoothly receive a fair share of bandwidth. The time lengths of the peaks and troughs can be adjusted parametrically to achieve customized levels of fairness between Rateless Internet and TCP.

    The Rateless Internet transport is now available through our Rateless Socket product in the form of a C/C++ socket library. Rateless Internet is ideal for Internet-based applications, running on the network edges, that require high bandwidth in a heterogenous environment. It was specifically built with peer-to-peer and live multimedia content delivery applications in mind.

    --
    --- "To pee or not to pee, that is the question." ---
  23. Is replacing TCP necessary? by bigberk · · Score: 4, Insightful

    There's no doubt that an alternative to TCP might have technical merits. But as far as communication protocols go, TCP itself is pretty amazing. Modern TCP implementations have been tweaked over decades and have impressive performance and reliability. And modern TCP/IP stacks have rather unspoofable connection establishment, another excellent feature for security.

    If you want to replace TCP, you have to do more than just develop a new protocol that is faster. It would have to outperform TCP in speed, reliability, and substantially so in order to outweigh the costs of ditching a well-established and trusted protocol.

    1. Re:Is replacing TCP necessary? by multriha · · Score: 1

      That's one of the arguments for new transport protocols (TCP replacements), TCP has been tweaked for decades, so if researcher can in a few months using a handful of graduate students notably beat it performance-wise, TCP is pretty bad.

      (disclaimer: currenting doing adapative transport protocol research)

    2. Re:Is replacing TCP necessary? by 10101001+10101001 · · Score: 2, Insightful

      Two things. One, while modern TCP/IP stacks have hypothetically rather unspoofable connection establishment, programs like nmap show that not enough OSs take advantage of that in a meaningful way allow for short bursts of fake connection and do some action spoofs. Two, while it sounds like there's various issues with this rateless protoocol, the idea of a standard, faster protocol for larger pipes doesn't mean an end to TCP. It does mean that people have realized that single tcp connections have issues saturating bandwidth at very high speeds and that alternative protocols for that situation seem appropriate. To act like an alternative to tcp is somehow a doom to tcp is to act like no one uses udp because tcp has all these wonderful features that overcome limitations to udp. There's clearly the case that a new standard protocol that does have better file transfer features wouldn't be such a bad idea to consider as a third primary protocol. In OS terms, I'd liken it to how a Windows NT/X environment has messages (udp), streams (tcp), and random file access (new protocol, which will probably not be rateless).

      --
      Eurohacker European paranoia, gun rights, and h
    3. Re:Is replacing TCP necessary? by EvilTwinSkippy · · Score: 1
      The problem is that a researcher working for a few months can't possibly subject his or her work to the truely off-the-wall situations in which TCP is used.

      Will it work well across a satellite link (bandwidth to spare, but high latency)? How about a modem connection over a crappy rural phone line? In a steel mill with a ton of magnetic interference? Across a saturated T1 connection? I have actually seen, and had to push live data that mattered, through each of these.

      TCP/IP is about 40 years of lessons learned the hard way. It would be like a graduate student designing a high-performance car that gets 100 miles per gallon. Sure, it's fuel efficient, but can it be built cheaply, and how will it fare in a crash?

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
    4. Re:Is replacing TCP necessary? by Anonymous Coward · · Score: 0

      Rateless is a niche protocol intended for satellite links and other high-latency, high-error rate links. What they do not want you to know about is the fact that a data-link with decent error correction and a large TCP window will completely remove any advantage they have.

      As for better protocols than TCP, some same UDP is better. I mean, it is good enough for X and NFS.

      Another alternative to TCP is SCTP. This protocol is useful because it keeps the message oriented nature of UDP (which is handy for atomic transactions, such as database queries), but adds TCP's reliability and rate control.

    5. Re:Is replacing TCP necessary? by Anonymous Coward · · Score: 0

      Q: What sort of bandwidth do you think you'll get out of TCP if you're communicating through a satellite link or on a laser-link to the moon?

      A: Not much, because the latency eats your sliding window for lunch.

  24. Finally! by germaniumdiode · · Score: 1

    Yay! Something to speed up my p2p client! It was almost getting to the point where getting in my car and driving to whoever's computer I happened to be downloading from was faster than downloading it. Of course, with shareaza 2.0 http://www.shareaza.com/ out, it did get a lot faster anyway (with the support for SP2 and all).

  25. UDP... is drwining the internet. by leuk_he · · Score: 0

    The internet will die in 2006.

    That is what will happen if udp will be the basis for it. Since udp has no rate control build in this either has to be build at the application level or servers/routers will drown. Yes, ik know routers can drop udp packets if overloeaded, but this kind of procotol just sends more packets to compensate for the dropped packets.

    1. Re:UDP... is drwining the internet. by imsabbel · · Score: 2

      So you say if telcos sell more bandwith than their infrastructure can handle there will be problems...
      Uh. Wouldnt have thought THAT could happen....

      --
      HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
    2. Re:UDP... is drwining the internet. by Anonymous Coward · · Score: 0

      Umm.. no. Dropping a packet is partically effortless, and there's no difference between flooding UDP packets and flooding TCP packets, to a router they are all IP (Internet Protocol) packets. TCP, UDP and other protocols are algorithms implemented on the client side to make the best use of the IP infrastructure. TCP has congestion control that realizes that sending more packets per second past a given point is useless because they're dropped, and then configures wait times to get the highest possible throughput for the round-trip time and bandwidth available. (UDP is just a really thin wrapper around IP, to make it more useable in everyday coding). There are already many applications that don't use TCP, such as real-time multiplayer games, streaming media and VoIP, and the Internet isn't suffering because of that.

    3. Re:UDP... is drwining the internet. by adrenaline_junky · · Score: 1

      There are already many applications that don't use TCP, such as real-time multiplayer games, streaming media and VoIP, and the Internet isn't suffering because of that.

      Actually, UDP causes me enormous headaches already. Let me explain.

      I have three primary uses of UDP:

      1) Running two Americas Army servers
      2) VoIP
      3) VPN (one of my big clients is only configured to use UDP VPN)

      If I attempt to do all three things at once (or sometimes even just two) without taking special precautions my internet connection becomes completely useless. And this is even with all of the traffic shaping & policing that I do at my router.

      The reason is that UDP applications just tend to send data no matter whether they are creating congestion or even completely flooding the whole link to death. And while I can control what is transmitted FROM my side of the connection, I ultimately can not control what is transmitted TO my side (though I have some *implied* control where TCP is concerned since it is so well behaved).

      The only way to *try* to deal with this is to control the bandwidth on an applications by application basis. So, on my AA servers I specifically set a maximum rate that clients are allowed to send & receive data (though this unfortunately limits the players to the "worst case scenario" bandwidth at all times). And I build my VoIP usage into my bandwith estimates.

      But does this completely solve the problem? No! Whenever I connect to one of my client's VPNs via UDP, there is no way to set the maximum rate it should transmit at, so it ends up flooding my internet connection. My only solution is to turn off my game servers temporarily and let the VPN use my whole bandwidth.

      Personally I wish there were an option in TCP that would tell the stack to NOT re-send lost packets. This way TCP could optionally have the quick response time of UDP, but still maintain the the rate control.

      From the perspective of managing scarce bandwidth, let me tell you from experience that UDP *sucks*. TCP's built-in rate control lets me affect the rate packets are being sent to me by policing the packets that have already been sent. Wheras dropping UDP packets with policing does nothing to slow the rate at which packets are being sent.

    4. Re:UDP... is drwining the internet. by Anonymous Coward · · Score: 0

      The point is, though, that this doesn't affect other users. It only affects you, because you're running those apps. The original poster was saying that UDP is drwning the *whole* Internet, but the built-in controls of the IP protocol make this almost impossible no matter which higher-level protocol is used.

      I agree that UDP apps can be a big drain on the system - perhaps what you want is some sort of OS-level mechanism for sharing the bandwidth between them equally (essentially, make it seem like the apps are each running on a different machine and there's a fair router inbetween).

  26. Coral Cache? by RAMMS+EIN · · Score: 0

    If their technology is that good, why do they need Coral Cache to protect them from slashdotting? ;-)

    --
    Please correct me if I got my facts wrong.
    1. Re:Coral Cache? by Anonymous Coward · · Score: 0, Informative

      because YOU are still using TCP to connect to them to view their website. if we all were using their Rateless Internet Protocal, perhaps they wouldn't be /.ed.

      [/poor humor]

    2. Re:Coral Cache? by skiman1979 · · Score: 1

      maybe because they're not using this new protocol yet. They can't use the protocol if no one else is, so how would it help protect them anyway?

      --
      Having a smoking section in a public restaurant is like having a peeing section in a public swimming pool.
  27. Ugh -- eyes are playing tricks on me. by IronChefMorimoto · · Score: 4, Funny

    While this sounds very interesting (have to re-take all those networking certification exams again, I guess), when I read this...

    The guy who started it, Petar Maymounkov, is of Kademlia fame." ...my eyes told my brain this...

    The guy who started it, Petar Maymounkov, is of Chlamydia fame."

    I was about to wonder what sort of "fame" you could get from that. Need coffee. Need sleep.

    IronChefMorimoto

    1. Re:Ugh -- eyes are playing tricks on me. by Rosco+P.+Coltrane · · Score: 1, Funny

      Hey you know what? when I read The guy who started it, Petar Maymounkow, is of Kademlia fame, my eyes told my brain Drop your panties Sir Arthur, I cannot wait till lunchtime.

      Now that I've use some random phrase in the blurb as an excuse to coin my joke, can I get my mod point please?

      --
      "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  28. /.ing by Anonymous Coward · · Score: 0

    you should have posted the non-coralized link so we can slashdot it

    here

  29. Link doesn't use port 80 by chiph · · Score: 1

    Can someone post the text of the article? My company's firewall won't allow non-port 80 sites to be opened, even for outgoing traffic.

    Slashdot editors: Please look for this in the future before including links. Thanks.

    Chip H.

    1. Re:Link doesn't use port 80 by REBloomfield · · Score: 1

      Ditto moi. That's why I've resisted jumping on the "won't somebody think of the children and use coral cache" bandwagon.....

    2. Re:Link doesn't use port 80 by karmatic · · Score: 1

      Copy URL, remove .nyud.net:8090, and go.

      Since most people will be using the cache, the site is less likely to be slashdotted.

    3. Re:Link doesn't use port 80 by wed128 · · Score: 1

      http://www.rateless.com/rcx1.html -- coral free link.

    4. Re:Link doesn't use port 80 by Anonymous Coward · · Score: 0

      How about posting both so as not to punish those who can't access port 8090 (and I bet it is a lot more than you think). And how do you know that most people will be using the cache? I think most people will probably not even read the article.

    5. Re:Link doesn't use port 80 by Malc · · Score: 0, Offtopic

      Why not wait until you get home this evening? Is it really so critical to your work tasks today that you can't wait? Presumably if it were then you could make a good business case to your IT/MIS department.

  30. Respect! by WormholeFiend · · Score: 5, Funny

    R-E-S-P-E-C-T
    Find out what it means to me
    R-E-S-P-E-C-T
    Take care, TCP

    Oh socket to me, socket to me,
    socket to me, socket to me...

    1. Re:Respect! by Chief+Typist · · Score: 1

      TCP = Takin' Care of Packets

      -ch

    2. Re:Respect! by miles31337 · · Score: 5, Funny

      Sung by Arethernet Franklin, no doubt.

  31. ANY loss level?? by D3 · · Score: 4, Funny
    "By using encoded, rather than plain, transmission we are able to send at speeds with any packet loss level."
    I want to know how they get data transmission at 100% loss!
    --
    Do really dense people warp space more than others?
    1. Re:ANY loss level?? by merdaccia · · Score: 3, Funny

      They never said anybody received anything ...

      --

      *blinking cursor*

    2. Re:ANY loss level?? by julesh · · Score: 1

      I want to know how they get data transmission at 100% loss!

      Oh, that's easy. You just infinite time.

    3. Re:ANY loss level?? by psmears · · Score: 2, Funny

      They only claim to be able to "send at speeds"... I guess 0bps is a speed :-)

    4. Re:ANY loss level?? by iNetRunner · · Score: 1
      I want to know how they get data transmission at 100% loss!
      That's easy: the protocol isn't open source and costs money.
      --
      Store with salt
  32. Can Anybody Explain? by RAMMS+EIN · · Score: 2, Insightful

    Can anybody explain to me how this technology? It reads like marketing speak to me, despite the fact that it will be/is released as open source. How does the technology actually achieve reliability without retransmits? Does it actually achieve it?

    --
    Please correct me if I got my facts wrong.
    1. Re:Can Anybody Explain? by Anonymous Coward · · Score: 0

      Redundancy. They send some extra packets so that you can recover the whole file even if you only get a fraction (maybe 97% is what they aim for) of the packets being sent. This is not new, it's based on error-correcting codes and they even have competition from a company called digital fountain (google for it). In fact, the main paper describing their idea cites a paper by M. Luby who is behind digital fountain. Of course there will be different implementations of these ideas and which is better, I don't have a clue.

    2. Re:Can Anybody Explain? by CallFinalClass · · Score: 1

      While I haven't RTFA yet, I would suspect that they're considering using some sort of Forward Error Correction (FEC). FEC pads packets/frames with enough redundant info so that the actual data can be reconstructed. All digital cellular methods use FEC to some extent as there's no time to go back and request another frame/packet be sent. Downside is that more data is sent and time must be spent to detect/correct errors.

    3. Re:Can Anybody Explain? by MisterEntropy · · Score: 1
      What they call "Rateless Erasure Codes" seem to be very close to what are called "Secret Sharing" schemes in cryptographic contexts.

      Essentially, if you want to send N blocks of data, you can generate any number of specially encoded blocks, such that the original message can be reconstructed from any N of them -- it doesn't matter which N blocks you use.

      For a TCP replacement, that means you don't need to do windowing, or to detect and retransmit dropped packets. Instead, you just send blocks until the receiver has enough to reconstruct the whole stream.

      It's a very, very good idea, and there are lots of different ways to do it.

  33. Not gonna work if encumbered by JohnGrahamCumming · · Score: 4, Insightful

    1. This is coming from a company who are surely going to want to make money out of it somehow. Part of the reason TCP succeeded is there was no one to pay.

    2. They don't seem to understand the GPL:

    "We are planning to release Rateless Codes for free, non-commercial use, in open source under the GNU Public License."

    The GPL doesn't restrict commercial use, and hence the only way that they can do this is either they try to add some conditions to the GPL, or they use another mechanism to restrict commercial use: e.g. patents.

    No matter how good this technology is it's not going to get wide adoption is an alternative to TCP unless it's unencumbered.

    John.

    1. Re:Not gonna work if encumbered by Serveert · · Score: 1

      So that raises this question. Why spend money researching something for 3 years when you cannot profit from it? Guess they shouldn't have researched it in the first place.

      --
      2 years and no mod points. Join reddit. Because openness is good.
    2. Re:Not gonna work if encumbered by karmaflux · · Score: 1

      MySQL works quite nicely under a dual license. The basic problem is that there's actually not too much call to replace TCP -- it works.

      --

      REM Old programmers don't die. They just GOSUB without RETURN.

    3. Re:Not gonna work if encumbered by karmatic · · Score: 1

      It's not that they can't profit from it - it's just that software is an unusual market, and they will have to act accordingly.

      Perhaps they can make money selling implementations of the software. Perhaps they make it by selling closed-source versions to companies who don't want to GPL their products.

    4. Re:Not gonna work if encumbered by mdfst13 · · Score: 1

      "MySQL works quite nicely under a dual license."

      Yes, but that is two *separate* licenses. This would be a single, modified version of the GPL that is not compatible with the regular GPL (which allows commercial use). MySQL *adds* options; this reduces them.

    5. Re:Not gonna work if encumbered by JohnGrahamCumming · · Score: 1

      > Why spend money researching something for 3 years when you cannot profit from it?

      I never said that they shouldn't be allowed to profit from it. Far from it.

      What I said was that this wont be a widespread replacement for TCP specifically because of the fact that it looks to me like they'll try to license it for $$$ to commercial entities. There's no good reason why Cisco, 3Com, Nortel, etc. should want to license that particular technology.

      Sure it solves a problem and improves TCP throughput on long links. But the major hardware vendors, not to mention OS people, are not going to pay a license fee for that; they'll just get together as a consortium and decide on their own TCP replacement protocol, make it available for free and all their boats will rise.

      John.

    6. Re:Not gonna work if encumbered by JohnGrahamCumming · · Score: 1

      > MySQL works quite nicely under a dual license.

      Sure does, but that's not a fair comparison. TCP is a fundamental protocol and to gain really widespread adoption a replacement needs to be unencumbered. MySQL is doing well because FOSS can use it under and appropriate license and a company can license it for non-FOSS use (as my company does).

      But for a protocol to be encumbered creates a roadblock to its use. It will find use in interesting niches, but not as a _the_ replacement for TCP.

      John.

    7. Re:Not gonna work if encumbered by Have+Blue · · Score: 4, Insightful

      If they want it to replace TCP, it will have to be completely unencumbered, and that includes viral licenses. Under BSD, commercial adoption would be possible.

    8. Re:Not gonna work if encumbered by realdpk · · Score: 2, Funny

      No license in the world will make MySQL work "nicely".

    9. Re:Not gonna work if encumbered by DarkSarin · · Score: 1

      I tend to agree. For things like this, BSD licenses make more sense than the GPL (which is great, but it doesn't suit everyone, and never will).

      --
      "We don't know what we are doing, but we are doing it very carefully,..." Wherry, R.J. Personnel Psychology (1995)
    10. Re:Not gonna work if encumbered by olau · · Score: 1

      I'm not sure they actually want to replace TCP. BUT the important thing is that they provide an open standard (and they are writing RFCs, remember) - then everyone and their mother can write an implementation.

    11. Re:Not gonna work if encumbered by Craig+Ringer · · Score: 1

      They may simply mean that they consider the GPL non-commercial by its very nature, that is that it is not generally possible to deeply embed GPL code in a larger product. If your view of commercial use is limited to embedding something in a closed source product, I suppose that makes sense.

      Of course, if it's based on a GPL product they'll have a rather harder time offering "commercial" (presumably conventional embed in a closed source for a fee style) licenses than they might be expecting ;-)

  34. As for UDP replacing TCP... by LittLe3Lue · · Score: 1

    ...as for UDP replacing TCP I dont care. Its cool, and im glad there are changes tryign to be made.

    I doubt seriously they will be done soon. Unlike going from 32 bit to 64 bit processors, going from TCP to UDP as the primary or only method seems more useless then effective in a corporate view.

    I dont see people wanting to put effort into adapting any time soon. But its still great to hear that we might.

    Also, thanks for the info on Kademlia, as a noob developer, I always wondered how they did that ;)

  35. TCP is dying... by Anonymous Coward · · Score: 0

    even on BSD.

  36. Encoded Packets doesn't Solve Problems by kakos · · Score: 4, Insightful

    I did read their website and it looks like their revolutionary new replacement for TCP is UDP with their proprietary ECC built on top of it. However, there is a good reason why TCP never used ECC (they did exist back then).

    1) The major problem a TCP packet will face is getting dropped. They mention this problem. They claim their encoding will solve this problem. It won't. No ECC algorithm will allow you to recover a dropped packet.

    2) Most packets that are corrupted are corrupted well beyond the repair of most ECCs.

    3) ECCs will cause packet size to increase. Not a huge problem, but why do it when ECCs don't help too much to begin with?

    1. Re:Encoded Packets doesn't Solve Problems by Another+MacHack · · Score: 5, Informative

      You'd be right if they were talking about an error correcting code designed to repair damage to a packet in transit.

      They're actually talking about erasure correction, where each symbol is a packet as a whole. In a very simple form, you send a packet sequence like this:

      A B (A^B) C D (C^D)

      So if you lose packet A, you reconstruct it from (B ^ (A^B)) = A. This simple scheme increases the number of packets sent by 50%, but allows you to tolerate a 33% loss, presuming you don't lose bursts of packets. There are more sophisticated schemes, of course, and there are various tradeoffs of overhead versus robustness.

    2. Re:Encoded Packets doesn't Solve Problems by netwiz · · Score: 3, Insightful

      well, assuming that the dropped frames aren't sequential in large number, some kind of ECC (think RAID5 for IP) could alleviate this issue. Granted, you'd be sending three packets for every two packets worth of data, but you could lose any one of them and still be okay.

      However, I don't think most people would necessarily enjoy 50% larger payloads required to make this work. It could be tuned back, but for every decrease in overhead, the effect of losing a frame gets worse. In the end (and this is purely speculative, as I've no real data or math to back this up) it may be that TCP remains more effective with better throughput.

      I'll be honest, I don't see/experience the kinds of lag and retransmission problems that are described in the article, and any large streaming transfers to my home or desk regulary consume 100% of my available bandwidth. So for me, TCP works just fine.

    3. Re:Encoded Packets doesn't Solve Problems by kakos · · Score: 1

      I did not know this. Thanks! Do you have any good literature on erasure correction?

    4. Re:Encoded Packets doesn't Solve Problems by daserver · · Score: 2, Interesting

      Sorry this is not correct. Rateless erasure codes is ECC per complete file not per packet. Please read the paper.

    5. Re:Encoded Packets doesn't Solve Problems by hamanu · · Score: 2, Informative

      You are a fuckng pompus ass...
      no wait, sorry, you hit one of my buttons.

      ECC codes CAN and DO cover packet loss if you interleave the ECC information accross packets, instead of just generating it for a single packet. In this scenario lost packets are called "Erasures", and their coding is "rateless erasure coding". It will work just fine.

      --
      every _exit() is the same, but every clone() is different.
    6. Re:Encoded Packets doesn't Solve Problems by oakad · · Score: 1

      I think the term "digital fountain" always comes up when erasure correcting codes are discussed. They are able to correct bit erasures and packet erasures too. There is great description of them in the D. Mackay's book, available on the net: http://www.inference.phy.cam.ac.uk/mackay/DFountai n.html

    7. Re:Encoded Packets doesn't Solve Problems by RAMMS+EIN · · Score: 1

      That was one of my thoughts when I read it.

      I actually think ECC is a good idea, but not in the TCP layer. It could help a lot by improving the perceived bit error rate of wireless links, causing fewer packets to get lost, and thus improving the performance of TCP. Putting ECC in TCP is too little, too late.

      --
      Please correct me if I got my facts wrong.
    8. Re:Encoded Packets doesn't Solve Problems by Vengie · · Score: 1

      Kurose and Ross -- and Yang Richard Yang's class lecture notes from Yale's CS 339. Just google for (sans quotes) "yale yang richard notes". Also, check out ANTS.

      -br

      --
      When in doubt, parenthesize. At the very least it will let some poor schmuck bounce on the % key in vi. (Larry Wall)
    9. Re:Encoded Packets doesn't Solve Problems by kakos · · Score: 1

      And you are a complete and total jackass. I didn't know that ECCs could be used to correct erasures. I was corrected, I admitted I was wrong. So, shut the fuck up, dick.

    10. Re:Encoded Packets doesn't Solve Problems by Raphael · · Score: 3, Insightful

      You are almost correct, except that doing the error correction on the whole file instead of a single (or a couple of) packets allows the file to be transmitted even if one or several packets are dropped.

      However, this kind of error correction is only good if you are exchanging rather large files. They cannot claim to replace TCP if their protocol cannot be used for any kind of interactive work. Take for example SSH or HTTP (the protocol that we are using for reading Slashdot): they are both implemented on top of TCP and they require TCP to work equally well for exchanging small chunks of data (keypress in an SSH session, or HTTP GET request) and exchanging larger chunks of data (HTTP response).

      While their new protocol would probably work well for the larger chunks of data, it is very likely to reduce the degrade the link performance for the smaller bits exchanged during an interactive session. So they are probably good for file sharing. But TCP has many other uses...

      Also, they mention that they can be TCP-friendly by transmitting in "waves". I doubt that these "waves" can be very TCP-friendly if their time between peaks is too short. One thing that TCP does not do well is to adapt its transmission rate to fast-changing network conditions. So if they allow the user or the application designer to set the frequency of these waves, they could end up with a very TCP-unfriendly protocol.

      --
      -Raphaël
    11. Re:Encoded Packets doesn't Solve Problems by freqres · · Score: 2, Informative

      I have to agree with you about having doubts about this. Vinton Cerf and the others that came up with TCP were/are real smart fellars and put a lot of thought into the design. Thanks to guys like Shannon, Hamming, Hartley and Nyquist, we have a pretty thorough understanding of the limits of computer networks and sending/receiving information. Unless some wacky/spooky new way is figured out in the far reaches of physics, I don't see big improvements happening in the fundamental protocols.

      --
      Rampant Ninja related crimes these days...Whitehouse is not the exception
    12. Re:Encoded Packets doesn't Solve Problems by julesh · · Score: 1

      well, assuming that the dropped frames aren't sequential in large number

      My experience is that this isn't usually the case. How about yours?

    13. Re:Encoded Packets doesn't Solve Problems by Anonymous Coward · · Score: 0

      No ECC algorithm will allow you to recover a dropped packet.

      I'm not sure if ECC is the right term for it, but you certainly can recover M packets from any M of M+N packets with an appropriate code..

    14. Re:Encoded Packets doesn't Solve Problems by Jeff+DeMaagd · · Score: 1

      However, I don't think most people would necessarily enjoy 50% larger payloads required to make this work.

      50% is assuming there is a correction/redundant packet for every two data packets. With four data packets and a fifth correction packet would only mean 25% overhead. I bet that you'd regularly be able to sustain 12% or more packets being lost or corrupted.

      That said, that is pretty high, I would call the connection suspect. I can see it being useful for wireless connections though.

      I'd rather add a thin error checking addition and ask for a retransmission for the occasional dropped packets.

    15. Re:Encoded Packets doesn't Solve Problems by Bloater · · Score: 1

      So you can't tolerate less than the original amount data being sent before retransmit? (2/3 of 3/2 is 1)

      Why not just stick with TCP? Because the common flow control algorithms ramp up in the face of latency? Then use a fast-start algorithm.

      I think perhaps there is more to this technology than you describe.

    16. Re:Encoded Packets doesn't Solve Problems by Raphael · · Score: 2, Informative
      I'd rather add a thin error checking addition and ask for a retransmission for the occasional dropped packets.

      Congratulations, you have just re-invented TCP with selective acknowledgments (a.k.a. SACK, RFC 2018, published in October 1996).

      For more discussion on this topic, see also: http://www.icir.org/floyd/sacks.html.

      --
      -Raphaël
    17. Re:Encoded Packets doesn't Solve Problems by Anonymous Coward · · Score: 0

      Hardly. For some reason, it mostly seems to be concentrated on errors rather than erasures.

      This is unfortunate, as dealing with the latter is so damn easy. Basically, it goes like:

      You have x packets of "information", but transmit y packets of "something" where y>x. You then treat these as vectors where elements are single packets and the equation is that something = information * some_matrix. Then, if you're lucky, information can be recovered from a vector of any x packets by picking the respective rows from the matrix and then multiplying your vector with its inverse.

      Simple, huh? Using galois fields and picking a nice matrix with certain desireable properties are just implementation details :)

    18. Re:Encoded Packets doesn't Solve Problems by Bloater · · Score: 1

      presumably they would vary quickly between max rate and (2*desired - max), so TCP would act like there was a steady network (ignoring the rapid change). If the max and min rates go okay, add a DC component and reduce the amplitude. If the peaks drop packets, move the DC component down and reduce the amplitude until the peaks don't drop packets, if the troughs also drop packets, reduce the DC component and amplitude further.

      But perhaps TCP could benefit from this sort of thing too, start on an expected "good" rate, and oscillate rapidly, adjusting the DC component to increase the average rate, and adjust the amplitude to reduce the retransmit rate.

      I suppose the ECC could be sent on a trough to cope better with loss on a peak while the reliability is unknown.

      I have not studied this though. It seems very interesting, perhaps I will look into it further.

    19. Re:Encoded Packets doesn't Solve Problems by shadowmatter · · Score: 4, Informative

      I suspect the exact details of the erasure codes they're using can be found here, which by no coincidence is written by Petar Maymounkov and David Mazieres (both the authors of the original Kademlia paper). A good primer for erasure codes would be to read up on Reed-Solomon codes, which seek to provide similar end-results as erasure codes.

      Rateless codes are important because they are the first step to a "digital fountain" model of data transfer. The idea is this: say you have a file of 10KB. Using erasure codes, you can "oversample" this file -- that is, turn this file into 40 1KB chunks. Now by collecting ANY 10 of these 1KB chunks, you can reconstruct the original file.

      The reason the digital fountain is so cool (and the reason for its name) is because it would make the most amazing BitTorrent client ever. Why? In BitTorrent, you're doing things like choking/unchoking, aggressively seeking the rarest pieces, and hoping that some guy who has the ONLY COPY of piece X doesn't leave the network before it is replicated. Using Erasure Codes, everyone would just blindly get whatever data is sent to them (where each data unit is an "oversample"), and blindly forward it on all outbound links. But if you're getting data in this manner, isn't there a chance you'd get the same piece of data twice (which is like getting the same piece twice in BitTorrent, which is no use)? If you oversample enough, you can make the chance of this happening approach 0. Note in this scheme, there's no choking or unchoking here (so you'll never go through a period of time on a rare torrent where EVERYONE is choking you, and your download rate is 0KB/s), and you don't have to worry about that one guy leaving the swarm with some critical piece -- not just because you can always reconstruct it, but also because that piece is no more critical than any other.

      It's beautiful, really. So why aren't we doing it? Simple -- erasure codes are computationally expensive to compute, although
      they're getting easier as new sorts of erasure codes are being developed, and PCs get faster. The first big breakthrough was with Tornado codes, if I remember correctly. Anyway, we'll see what the future holds...

      - shadowmatter

    20. Re:Encoded Packets doesn't Solve Problems by renehollan · · Score: 2, Informative
      You are correct: you can overcome a burst error of any length with a suitable ECC.

      However, what do you do when you encounter a burst error longer than your ECC design limit? A more complex code may not be the answer for reasons of computational complexity.

      The solution (employed with great success in CD media) is interleaving: instead of sending A1A2A3 B1B2B3 C1C2C3 you send A1B1C1 A2B2C2 A3B3C3. Let's assume the middle of that, A2B2C3, got lost, and you can only recover an error of one third that length. No worries! You've interleaved your data!!

      You deinterleave what you receive from A1B1C1 A3B3C3 into A1<error>A3 B1<error>B3, and C1<error>C3. Each of these can be corrected.

      There are whole families of such interleaved error correcting codes. You can even interleave interleaved codes! CIRS means "cross-interleaved Read Solomon" and covers many of the techniques employed commercially (particularly in CD media).

      But, there is a price to pay, and that is latency: you have to have all the data to deinterleave so, instead of waiting for, say, three packets, you have to wait for nine.

      Such codes are well-suited for streaming transmissions (if you can tolerate the latency), but I'm not sure that they'd work well for interactive applications.

      --
      You could've hired me.
    21. Re:Encoded Packets doesn't Solve Problems by iminplaya · · Score: 1

      Encoded Packets doesn't Solve Problems People solve problems!

      --
      What?
    22. Re:Encoded Packets doesn't Solve Problems by Fnkmaster · · Score: 1
      This has been around for ages. Many people just aren't aware of Reed-Solomon codes (and more recently, Tornado codes). Implement on top of UDP. You can do this today in the application layer, and it's been done in many applications. Okay, so moving it into the network layer is an interesting proposal, but I'm sure these guys aren't the first to think of it either.


      This fellow was class of '01 Harvard, where error and erasure codes are a common subject in CS classes. I'm quite sure Mr. Maymounkov took a class or classes with Professor Mitzenmacher or Rabin, who have been teaching this subject in their respective algorithms classes for some time.


      Others have been working to commercialize erasure codes for some time. When it comes down to it, it's hard to sell network algorithms. It's even harder to sell something new in the network layer than it is to sell it as a UDP application library. So I guess I don't really understand their business value proposal here either, how they plan to compete with Digital Fountain, et. al. But best of luck to them anyway.

    23. Re:Encoded Packets doesn't Solve Problems by Wesley+Felter · · Score: 1

      So you can't tolerate less than the original amount data being sent before retransmit?

      Correct. That is dictated by information theory.

      Why not just stick with TCP?

      TCP only retransmits after it discovers that a packet has been dropped, which takes many milliseconds. Since forward error correction schemes are constantly transmitting check blocks, the lost data can be recovered much sooner.

    24. Re:Encoded Packets doesn't Solve Problems by Beryllium+Sphere(tm) · · Score: 1
      1) The major problem a TCP packet will face is getting dropped.

      That's true in a wide range of situations. TCP assumes it's always true.

      What about radio links? I know ham radio data transmission enthusiasts who've had to divert lots of time and money into building ultra-clean RF paths because TCP throughput would fall apart if the bit error rate were at normal levels.

    25. Re:Encoded Packets doesn't Solve Problems by Wesley+Felter · · Score: 1

      You are right that the people who designed TCP are smart, and error correction was understood at the time TCP was designed. But at that time computers weren't powerful enough to use FEC in TCP. TCP may have been the optimal protocol back in the 80s, but thanks to Moore's Law it may not be optimal today.

    26. Re:Encoded Packets doesn't Solve Problems by Anonymous Coward · · Score: 0

      Problem with tornado codes is that they can't achieve "any 10 from 40" -property. You usually have to get a couple of extra packets. I know they are ridiculously fast but these multi-ghz days you could as well go with RS which is more bandwidth-efficient. (I can decode the missing data at some 500MB/s/number_of_blocks on a 1,3GHz machine..)

      However it might be an advantageous property that you can generate some of those extra parity blocks even when you haven't yet gotten the full file.

    27. Re:Encoded Packets doesn't Solve Problems by rherbert · · Score: 1

      The problem is that when you have errors, they tend to be in bursts.

    28. Re:Encoded Packets doesn't Solve Problems by Anonymous Coward · · Score: 0

      Well, if you have a good channel you can of course reorganize the data prior to encoding so that the non-parity packets come in order. Thus you only get latency with erasures.

      Say, you send A1,B2,C3,C1,A2,B3,B1,C2,A3 where A3, B3 and C3 are parity. So you put first bits of data in A1, next B2, then C1,A2,B1 and C2..

    29. Re:Encoded Packets doesn't Solve Problems by Bloater · · Score: 1

      >> So you can't tolerate less than the original amount data being sent before retransmit?

      > Correct. That is dictated by information theory.

      Heh, you have no idea how dumb I feel :) That was the most obvious statement I've made in a long time.

      So the thing with the simple scheme the OP showed is that if the network is dropping about one in every three packets, that scheme is better than TCP because TCP has to wait to see exactly *which* packets were dropped, though TCP would be better for a mostly reliable network and fast network, as the article states.

      How come we haven't been using such schemes already, especially if the codes can be suited to the current reliability of the network and combined with TCP like behaviour to cope during the window when the network doesn't fit the model?

    30. Re:Encoded Packets doesn't Solve Problems by renehollan · · Score: 1
      This won't work for burst errors, only erasures, and only then in the face of an otherwise error-free channel. How do you know your data hasn't been corrupted just because it hasn't been lost.

      I suppose an interleaved code can help here: add checks to the individual packets, and redundancy over packets as a whole "later" to correct for erasures or corruptions. So, instead of requesting a retransmission, you wait for enough data to reconstruct what was lost or corrupted.

      Still, depending on the loss rate, retransmission might be more desirable than redundancy, trading off bandwidth for latency. I smell an adaptive approach.

      --
      You could've hired me.
    31. Re:Encoded Packets doesn't Solve Problems by Anonymous Coward · · Score: 0

      This won't work for burst errors, only erasures, and only then in the face of an otherwise error-free channel. How do you know your data hasn't been corrupted just because it hasn't been lost.

      This is the beauty in 2-level schemes: A1,B1 etc are in fact short packets that already have error correction in them. You can simply treat the uncorrectable ones as erasures instead of errors.

    32. Re:Encoded Packets doesn't Solve Problems by Wesley+Felter · · Score: 1

      How come we haven't been using such schemes already?

      Because they used to be considered CPU-intensive. Moore's Law took care of that aspect.

      Also because there has been a lot of research in this area recently so FEC has gotten better.

    33. Re:Encoded Packets doesn't Solve Problems by Wesley+Felter · · Score: 1

      Modern radio links use FEC to eliminate bit errors or convert them to packet loss. That way TCP never sees corrupted packets and doesn't have to worry about them.

    34. Re:Encoded Packets doesn't Solve Problems by renehollan · · Score: 1
      Except you don't need to correct the short burst errors (and waste bandwidth on the syndrome), because you can correct them as longer burst errors - you only have to detect the short burst errors to know to wait for the corrections.

      Having treated them as erasures, and recovered them, you can then see what the actual short burst error was, and use this information to adapt your error correction approach (i.e. do I have a poor channel or just one that drops whole packets every so often, likely due to equipment dropping them intentionally).

      --
      You could've hired me.
    35. Re:Encoded Packets doesn't Solve Problems by kelnos · · Score: 1

      This is really interesting stuff. For the theoretical erasure-code-based bittorrent client, wouldn't this increase the overall bandwidth required considerably? Or are you saying that, since the oversampling is tuned so you don't get redundant data, you can essentially use the erasure codes to "reconstruct" data that you haven't gotten yet? If so, this is cooler than I even think, probably...

      --
      Xfce: Lighter than some, heavier than others. Just right.
    36. Re:Encoded Packets doesn't Solve Problems by Fenris+Ulf · · Score: 1

      If properly done, it won't increase the bandwidth requirement. Instead, you can think of it as a tradeoff between "CPU" and "data rarity", if such a thing makes sense.

    37. Re:Encoded Packets doesn't Solve Problems by Anonymous Coward · · Score: 0

      Well, how would we go about checking it? How do we know we aren't recieving crap from a client?

      In torrent, it's now done by hashing the pieces and then transmitting the checksums in the torrentfile. Are we going to hash all possible erasure encoded packages? With rateless meaning there's an almost an infinite number of possibilities.

      Infinity is a damn lot to put in a torrentfile.

    38. Re:Encoded Packets doesn't Solve Problems by Anonymous Coward · · Score: 0

      Actually, you always need more than the original amount of data to reconstruct the original data. Otherwise, why couldn't we just randomly spew random chunks of the original file? So you trade bandwidth for distributed efficiency. But most existing distributed networks do that anyway, just by using the extra bandwidth to establish routing patterns and such.

      You will always have the bittorrent problem of partial downloads all waiting on a few clients for the rest of the data, because until more than (using your example) 10 *distinct* chunks of data are available, no one will be able to reconstruct the file, and everyone will be trying to get those last chunks from the original distributors, who are under heavy load already.

      In fact, bittorrent has the advantage over erasure codes that it only has the overhead of the communication mechanism, and it doesn't require the transfer of additional information greater than the size of the requested file. For error recovery, which is better: That chunks that fail the checksum are re-requested, or that everyone has to download one extra chunk, or more if a chunk was recieved in a corrupted state?

      I think that erasure codes will only start winning out when extremely high latency networks become popular. Even satellite may eventually qualify if the turnaround times become very high in relation to the bandwidth. Any kind of interorbital communication link already uses reed solomon coding to ensure that retransmission will not be necessary due to the excessive lag time.

  37. yet another tcp replacement? by koafc · · Score: 1

    In research, the issue of tcp replacement is a common one. THe solutions seem to either recommend making some minor tweaks (a "light" version of TCP!) or to scrap it entirely in favor of protocol X. With that knowledge, I will keep my excitement in check as I get around to reading the article.

  38. For once by neilb78 · · Score: 1, Funny

    Can't we just leave it alone.

    Oh wait...nervermind, if we did that everything would work and we'd no longer be needed.

    --
    © 2004 The SCO Group, Inc. All Rights Reserved.
  39. flamebait? by N3wsByt3 · · Score: 4, Insightful

    I fail to see what is flamebaiting it is to say that TCP can go on for another 50 years, without problem.

    Exactly the same kind of post a bit below gets 'insightful'.

    It is simply true. Yes, there are some little drawbacks with TCP, but in the whole article, they do not give a compelling reason to switch, let alone why one would *have* to. I mean, RTFA: TCP is at 1-3% and the most efficient would be a throughput with 3-5% (loss)...but so what? It's not optimal, but does it anywhere claims TCP is doomed because it's not optimal in certain area's?

    There are myriads of things that aren't optimal on the Net, it doesn't mean they have been here for years and will be for years to come, nor that it is a necessity to switch, if the only thing lacking is that it's not optimally suited.

    --
    --- "To pee or not to pee, that is the question." ---
    1. Re:flamebait? by pqdave · · Score: 1

      I think they were talking about more than a 2-5% improvement in throughput, but I couldn't find any specifics in the article to see if the increase is actually worthwhile. A transition to a TCP replacement should be a lot easier than an IP replacement, if they can run side-by-side and the gain is big enough.

    2. Re:flamebait? by arbi · · Score: 1

      Current TCP protocol is highly inefficent for high bandwidth transfers overseas. I live in Hong Kong and I have a Symmetric 10mbps residential VDSL line. When transferring with ONE THREAD with someone near my region I can max my bandwidth (about 1 MegaByte per second). When I transfer with overseas it can go as low as 30K per second.

      Sometimes using multiple threads with the same IP isn't an option because with things like BT, a lot of BT clients ban peers who try to have multiple connections. Streaming media presents a problem as well. I have already tweaked the "receive window size" and other variables. It is my sincere belief that the world needs a new protocol to handle the ever increasing bandwidth pipes with global connection latencies in mind very soon. Not 50 years from now.

    3. Re:flamebait? by chasm!killer · · Score: 1

      I have to agree with N3wsByt3 -- look at the PNG/GIF uproar of a decade or so ago. PNG, it turns out was really an improved algorithm with improved business characteristics. And it has taken at least a decade (I think) for PNG to become reasonably common. Long enough that the business arguments are no longer valid.

      --
      -- Ancient (IBM 1620 and Atari 400) Programmer
    4. Re:flamebait? by Anonymous Coward · · Score: 0

      When I transfer with overseas it can go as low as 30K per second.

      Yes, and of course that's a problem with TCP, and couldn't possibly be related to your provider, the backbone, congestion, or any of the other hops along the way, right?

  40. sounds good by spacerodent · · Score: 2, Interesting

    the real issue with any new technology like this is will it be accepted as a standard? For that to happen it needs to be relyable, easy to get (free), and hard to exploit. This looks to have all the above so in 5 to 10 years maybe we'll see this implmented everywhere.

    1. Re:sounds good by realdpk · · Score: 1

      It's not free, though. It's the sort of free the GPL folks like to talk about, but it clearly says it's for non-commercial use only (which is contradictory to the GPL, but oh well).

      Plus, since it is GPL, what are the odds it'll be incorporated into Windows? I'd say 0.

      TCP works just fine for the majority. Plus, it's free (truly free).

  41. old - so what then ? by l3v1 · · Score: 2, Insightful

    It doesn't seem reason enough to build a new protocol for TCP replacement just because it is "old". Protols ar not living beings you know, aging doesn't show on their cells. Of course troubles always has been popping up over the years, but nothing unsolvable (and nothing in the likings of IP).

    All in all, it's good to have new alternative solutions and new technologies at hand, but to state such things as replacing TCP 'cause its age (maturity, that is :D ) is a bit winged to say the least.

    --
    I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
  42. Would this "steal bandwith"? by enosys · · Score: 1

    They say that this new protocol would tolerate higher rates of packet loss. What happens to TCP connections when a lot of connections use this new protocol? Would it create worse congestion on networks, which this protocol can tolerate, but which would greatly slow down TCP connections?

    1. Re:Would this "steal bandwith"? by multriha · · Score: 1

      This protocol, like most TCP replaces are TCP-friendly. That is there are designed so that send the same amount of traffic on average as TCP would in a perfect situation. So in theory, they shouldn't make existing TCP connections slower.

  43. Good luck, but it will never happen by Ars-Fartsica · · Score: 4, Insightful

    Just look at the adoption rates on IPv6. No one is going to touch a new protocol at this stage. Its not even clear that this is needed. Point me at a specific TCP pain point that is specifically and obviously reducing internet adoption...any takers?

    1. Re:Good luck, but it will never happen by Anonymous Coward · · Score: 0

      OK, look this is a replacement for TCP in NEW applications, not existing ones. GNutella and bittorent introduced their own high-level protocols. Any new application could use this as it's low level protocol instead of TCP without a hitch.

      repeat : this is a replacement for TCP in NEW applications, not existing ones. Nobody is saying to switch your webserver over to this, but if you invent a new aplication like a streaming video server or whatever, this might work better for you, and you don't have any legacy issues.

    2. Re:Good luck, but it will never happen by daves · · Score: 1

      No one is going to touch a new protocol at this stage.

      I'd agree, except for two points. First, the protocol is built on top of UDP, meaning that it can be implemented at the application layer. All you have to do is toss the code into your P2P app, and it is available to anyone with the app.

      Second, it could be coded (and looks like it may have been coded) to beat the pants off of any TCP connection sharing the channel. TCP is cooperative - it will share 'fairly' any congested channel. It will lose to a more greedy protocol.

      These guys may have a product.

      --
      People who disagree with you are not automatically evil, greedy, or stupid.
    3. Re:Good luck, but it will never happen by Raphael · · Score: 2, Insightful
      First, the protocol is built on top of UDP, meaning that it can be implemented at the application layer.

      Or rather: the protocol is built on top of UDP, meaning that it will only be implemented at the application layer. There are other fine protocols built on top of UDP, such as RTP/RTCP used for streaming. Are there any operating systems implementing these protocols in the kernel? I don't think so. Are there libraries providing a convenient API allowing application developers to use these protocols easily? A few, but not that many. It is likely that any other protocol implemented on top of UDP would have a similar fate.

      TCP is cooperative - it will share 'fairly' any congested channel. It will lose to a more greedy protocol.

      You don't seem to understand that most network operators (those who play with the routers at your ISP or somewhere else in the backbone) want protocols to be fair. If too many people start using a protocol that is unfair, then many ISPs will start tweaking their routers and firewalls in order to limit the bandwidth available to the unfair protocol. ISPs have to keep their customers happy (or at least happy enough to pay their bill) and an unfair protocol would make many other customers unhappy.

      --
      -Raphaël
    4. Re:Good luck, but it will never happen by NoMoreNicksLeft · · Score: 1

      Ok, so here's what we have...

      1) Guys who build transport protocols at the application layer.
      2) Brainless pandering to the P2P crowd 5 years after Napster's death.
      3) A protocol that doesn't play nice with other more important, well established protocols.
      4) And a slashdotter who looks at it as a "product" rather than as a "solution" or "technology".

  44. Yawn by Rosco+P.+Coltrane · · Score: 4, Insightful

    YAWN Protocol --> Yet Another Wonderful New Protocol

    ASCII is still around, despite its numerous shortcomings. There's this small thing called "backward compatibility" that people/consumers seem to love, for some reason. Well, same thing for TCP/IP. Even IPv6 has trouble taking off in the general public, despite being essentially just a small change in the format, so never mind the YAWN Protocol this article is about...

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    1. Re:Yawn by Anonymous Coward · · Score: 0

      /me claps

  45. They are confused by kzinti · · Score: 1

    The GPL doesn't lend itself to ``free, non-commercial use'': it lets the licensee use and distribute freely, at any price, for any use.

    Perhaps what they meant was "free, non-proprietary use," which would be GPL-compatible.

  46. Doesn't work. Sorry, do not collect $200. by Anonymous Coward · · Score: 5, Informative

    Tried their "Rateless Copy" utility, transferring a 5.8 mb binary file from my web server in Texas to my local connection in Toronto.

    With Rateless Copy: time between 31-41 seconds, average of 200k/s, the resulting file is corrupted. Tried it again to ensure, same result.

    Without rateless copy (http file download) 8 seconds, average of 490k/s, the resulting file works fine as expected.

    Sorry, but I don't think it's all that great.

    1. Re:Doesn't work. Sorry, do not collect $200. by karmatic · · Score: 1

      Well, I sent it from my home workstation to my server.

      Without: 30KBps (capped by ISP)
      With: 60KBps (probably still capped by ISP).

      haven't checked the md5sum, though.

    2. Re:Doesn't work. Sorry, do not collect $200. by julesh · · Score: 1

      I'd try it myself, but it crashes with "Illegal Instruction" on my old AMD K6 server. ("cmove %eax, %edx", apparently)

    3. Re:Doesn't work. Sorry, do not collect $200. by ANTI · · Score: 5, Informative

      Here it was even worse.

      Just transfered a ~600MB (Linux CD) ISO from Europe to Australia.
      rateless-copy did about 400K/s
      scp managed 2.8M/s

      At least both files were intact

      --
      On the other side of the screen it all looked so easy.
    4. Re:Doesn't work. Sorry, do not collect $200. by rick446 · · Score: 1

      Would this partially be because of scp compressing the ISO? Or does rateless also compress?

      --
      http://pythonisito.blogspot.com/
    5. Re:Doesn't work. Sorry, do not collect $200. by tepples · · Score: 1

      Would this partially be because of scp compressing the ISO?

      Aren't the distros themselves compressed?

    6. Re:Doesn't work. Sorry, do not collect $200. by rick446 · · Score: 2, Informative

      Depends on which distro. SourceMage, for instance, bzip2-compresses their ISOs to ~130MB. And that's for a 650MB image, IIRC. Knoppix 3.6, OTOH, contains a 2GB file system compressed down to 700MB, so I wouldn't expect it to compress much (if at all).

      --
      http://pythonisito.blogspot.com/
    7. Re:Doesn't work. Sorry, do not collect $200. by arbi · · Score: 1

      The reason that most of you don't think this protocol is necessary is because most of you are living in the U.S. where residential broadband speeds are relatively slower and you mostly transfer with people within the same continent.

      Although most of you don't "see a problem" at this point in time, eventually the problem with current TCP will become noticeable as your broadband speeds increase even with transfers within the U.S.

      In Hong Kong, where I live, 10mbps Symmetric (both downlink and uplink) VDSL lines are the current standard for "residential broadband". I mostly do transfers with the U.S. where the round trip latency is around 200ms with the west coast and 250ms with the east coast and with current TCP protocol, the speed throttling effect per thread is pretty extreme. Technology will never reduce latency with overseas transfers by any meaningful amount because currently the latency achieved is nearing the speed of light barrier.

  47. SCTP by noselasd · · Score: 5, Interesting

    Why not SCTP ? See RFC 2960. Already in the Linux kernel, Kame, (solaris ?) and probably others.
    Intro here

    - SCTP can be used in many "modes"
    * Provides reliable messaging (like UDP,but reliable)
    * Can be used as a stream protocol (like TCP).
    * One connection/association can hold multiple streams.
    * One-to-many relation for messaging.
    * Better at dealing with syn flooding than TCP.

    Then again, I guess inveting the wheel is more "fun" :-/

    1. Re:SCTP by TheShadow · · Score: 1

      "Then again, I guess inveting the wheel is more "fun" :-/"

      Of course it is. Why do you think no one likes to write code in Java/.NET?

      --

      --
      "What do you want me to do? Whack a guy? Off a guy? Whack off a guy? Cause I'm married."
    2. Re:SCTP by Anonymous Coward · · Score: 2, Interesting

      SCTP is designed for a slightly different purpose than high speed reliable streams over slighly lossy paths. SCTP works well for grouping the requests for HTTP images and related files into one stream so that the startup bandwidth can be increased. My understand of SCTP for high bandwidth slightly lossy paths is that it will perform similar to TCP with the slight advantage that some substreams may have reduced latency.

      There are other existing solutions to the problem of increasing bandwidth utilization for high bandwidth moderately lossy links. High speed TCP and various variaents that modify the TCP congestion control algorithm at high data rates have been reasonably well studied, but still involve fundamential trade-offs. IMHO, you need link information or path information that seperates the dropped packets into dropped due to congestion and dropped due to natural error. Otherwise, in the schemes that I've seen, you can end up competeting for bandwidth unfairly or even starving the normal TCP connections. Also IMHO, effectively using the SACK information would go a long way to increasing data rates over TCP.

      As for the scheme that is proposed in the article, I think it is highly flawed in several respects. First, although forward error correction (FEC) can be used at a packet level, it is highly undesirable to do so for multiple reasons: it significantly increases the bandwidth used for normal transmission, it increases the complexity of stream reassembly, and in most cases, it's not needed. Second, I really don't think you buy very much by using "wave-based" transmission timing. It seems like that has a lot of potential to interfere badly both with other "wave-based" transmission and with normal TCP.

      Finally, although I realize that there can be things to gain by reworking TCP, especially for slighly lossy links, it is important to ensure that any improvement has nearly as good as performance as TCP on low corruption loss links. For low corruption loss links with many connections, TCP does really well.

    3. Re:SCTP by DylanQuixote · · Score: 1

      or perl.

  48. Getting Old? by 89cents · · Score: 4, Funny
    The air that I breathe, the water that I drink, and the land that I walk upon is getting really old. Someone needs to replace it all.

    Really, is TCP flawed?

    1. Re:Getting Old? by olau · · Score: 1

      Sigh. You are reading too much into that sentence. New technology can benefit from new inventions, new algorithms. Chances are your operating system isn't using the same scheduling algorithms that an older version of it was using ten years ago.

      Does the invention of better algorithms make the old scheduling algorithms flawed? No. Is your operating system scheduling things better? Probably.

      Maybe this new technology will be good enough to replace at least some uses of TCP. Maybe it will not. But if you had actually followed some of the links, you would probably have learned something (I assume that you don't, because, yes, TCP has some flaws over high-speed links).

  49. Re:I wouldn't make any mention of bittorrent, etc. by Ignignot · · Score: 1

    That's right brother! Down with the man! Let him make his own TCP replacement!

    While we're at it let's not talk about computers because they make pirating easier. At least then slashdot can revert to its natural state: being overrun by trolls.

    --
    I submitted this story last night, and it didn't get posted.
  50. Better TCP by whose rules? by shic · · Score: 3, Insightful

    When considering protocols for information transport, it is very important to be absolutely sure what assumptions you are making. There are a number of non-independent factors which influence the suitability (and hence efficiency) of network protocols to application demands. Bandwidth, for example, is related to but doesn't define the statistical distribution of latencies; maximum packet rate and their relationship to packet size. The channel error rate (and statistical distributions of packet failures) are again linked to fragmentation and concatenation of transmitted datagrams - and this in turn affects latencies when considering "reliable" transport protocols. Routing policy and symmetry of physical links introduces yet more tradeoffs which need to be considered - not to mention the potential problems evaluating if the burden of protocol computations outweighs the advantage of an improved strategy for a given physical link. (And I'm not even going to mention security!) When considering protocols the most important thing to consider is the model they assume of the communications infrastructure on which they are to be deployed. TCP is likely the optimal solution given the assumptions TCP makes... if you change those assumptions to more closely fit a particular network infrastructure you will likely get better performance only on that infrastructure, but far worse performance where your new assumptions do not hold. I used to be interested in the idea of dynamically synthesizing protocols to best suit the actual physical links in a heterogeneous network... however my ideas were met with extreme disinterest; I felt my critics demanded I present a protocol which beats TCP under TCP's assumptions - and no amount of hand-waving and explanation would convince them this was a silly request. I still think the idea has merit - but having wasted 3 years of my life trying to push it uphill, I've found other interesting (and far more productive) avenues to pursue.

  51. heh... NO. by Anonymous Coward · · Score: 0

    It would have been nice if they had more technical details and less sales blurb on their website.

    OT: Kind of reminded me of these "Speed up your Internet 100%!" apps targeted at those technically non-proficiant types who use Windows 98.

  52. Update TCP, don't add new protocol by AaronW · · Score: 3, Informative

    While there are a number of issues with TCP, I think it would be much better in the long run to work on fixing TCP rather than replace it. That way all the existing apps can take advantage of the fixes.

    One thing that bothers me is I see ISPs applying policing to their subscriber's bandwidth. Policing is quite unfriendly to TCP, unlike, say, shaping. With policing, a router decides either to pass, drop, or mark a packet based on if it exceeds certain bandwidth constraints. Shaping, on the other hand, will buffer packets and introduce additional latency, thus helping TCP find the sweet spot. Of course shaping will also drop, since nobody provides infinite buffer space.

    TCP is relatively easy to extend. There are still some free flag bits and additional fields can be added to the TCP header if needed.

    -Aaron

    --
    This post is encrypted twice with ROT-13. Documenting or attempting to crack this encryption is illegal.
    1. Re:Update TCP, don't add new protocol by multriha · · Score: 1

      New transport protocol (like the one in the article) are building from what we've learned from TCP, and in general try to provide the same API (a socket is a socket). All that's needed to make use of them is to change the type of sockets you are using. (This could be done at the system library level if the new protocol is deemed a replacement)

      Adding flags to TCP that alter the entire behavior of the protocol is asking for trouble. It will only make TCP implementations more complicated.

      Keep in mind that the new protocols aren't the best for all applications. The protocol described in the article is great for situations with some packet loss, but isn't the best when there isn't packet loss.

    2. Re:Update TCP, don't add new protocol by julesh · · Score: 1

      The problem is that this protocol works in an entirely different way to TCP, because it is designed to solve a problem that TCP doesn't work very well with -- unreliable connections that drop packets frequently and have long latencies. I really can't see how TCP can be fixed to work much better in this circumstance, at least not without dropping core aspects of the way it works.

    3. Re:Update TCP, don't add new protocol by pe1chl · · Score: 1

      Unreliability is best solved by adding a retransmitting link layer at the point where it occurs.
      So, when unreliability of a wireless hop is a problem, use something like LAPB over that hop. Just as it was done in error-correcting modems (V.42).
      This way you solve the problem locally without adding end-to-end overhead and without modifying the transport protocol.

    4. Re:Update TCP, don't add new protocol by tepples · · Score: 1

      Unreliability is best solved by adding a retransmitting link layer at the point where it occurs.

      A request for retransmission followed by a retransmission adds latency. Automatic erasure-coded retransmission doesn't.

    5. Re:Update TCP, don't add new protocol by Anonymous Coward · · Score: 0

      Automatic erasure-coded retransmission doesn't [add latency].

      Sure it does, just in a different place.

    6. Re:Update TCP, don't add new protocol by pe1chl · · Score: 1

      If you don't mind the overhead, add FEC at the link at the point of loss. But anyway, solve it at the point of the problem, not end-to-end.

    7. Re:Update TCP, don't add new protocol by adrenaline_junky · · Score: 1

      With policing, a router decides either to pass, drop, or mark a packet based on if it exceeds certain bandwidth constraints. Shaping, on the other hand, will buffer packets and introduce additional latency, thus helping TCP find the sweet spot.

      Er.. what?

      Your description of policing is correct, but your description of shaping is limited in scope at best.

      Shaping can involve buffering packets, but it can also include dropping packets, just as with policing.

      The difference is that when you drop packets before they are transmitted (shaping) you are preventing them from ever being sent over the connection, whereas when you drop packets after they have been received (policing) the data has *already* come across the connection.

      Policing basically has no affect on UDP traffic because the sending application generally couldn't care less whether or not the packet made it across. However, policing does impact TCP because when the sender realizes that packets are being dropped the rate at which packets are being sent will be lowered.

      So shaping directly affects the bandwidth usage, whereas policing can only do so implicitly, assuming a well behaved transmission protocol like TCP.

      As far as changing TCP, I agree. I'd like TCP to have an option to NOT resend dropped packets so that the rate control would still be active, but otherwise TCP would be more like UDP.

  53. not needed by brainspank · · Score: 1

    TCP seems to be getting to their webserver just fine!

    (it doesn't appear to be getting out, though)

    --
    It's only a model.
  54. Actually 12 different Bitsets by Prince+Vegeta+SSJ4 · · Score: 1
    Using recent thoughts in the realm of elementary particles (quarks specifically), they have come up with 1100 bits. A graphical representation can be seen here:
  55. Re:SCTP (and other neat protocols) by spaceyhackerlady · · Score: 2, Interesting

    SCTP is indeed interesting. I've tangled with it when playing with SIGTRAN, i.e. SS7 over IP. The nightmares ceased a while ago. :-)

    One of the more interesting special-purpose protocols I've ever messed with was the PACSAT Broadcast protocol, used for downloading files from satellites.

    It makes the assumption that downloaded files are of general interest, so it broadcasts them. Which files it broadcasts is in response to requests from ground stations. Ground stations can also request fills, pieces of files they haven't received yet. The protocols have hooks to allow files to be downloaded in pieces, over several orbits, since individual passes rarely exceed 20 minutes, and the downlink bit rate isn't all that high. This all runs over a protocol analogous to UDP.

    You can get files by just listening, if you want to.

    ...laura

  56. They invented TCP... again!! by Bluefirebird · · Score: 4, Informative

    (NOT) Everyone knows that TCP has problems and for many years people have been developing transport protocols that enhance or replace TCP.
    These guys haven't invented anything new. There are many flavours of TCP with different congestion mechanisms and there is a special kind of transport protocol that solves most problems...
    I'm talking about SCPS-TP, supported by NASA and it performs very well with high bit-error links (like satellites) and it also copes with high delay. The good thing about SCPS-TP is that it's compatible with TCP, because it basically an extension of TCP.
    There is another problem with using UDP based transport protocols... they usually have low priority in routers (probably because you can use UDP for VoIP...)

    --

    Fear is the mind-killer.

  57. I thought this was news for nerds? by Anonymous Coward · · Score: 0

    Its common knowledge that all Http clients (explorer, netscape, konquerer, opera, etc) use TCP/IP. Since the WWW is synominous with the internet I think the statement is valid.
    I thought this was news for nerds?

  58. Re:SCTP (and other neat protocols) by noselasd · · Score: 1

    >SCTP is indeed interesting. I've tangled with it when playing with SIGTRAN, i.e. SS7 over IP. The nightmares ceased a while ago. :-)
    My condolances. SCTP itself is ok, but the leap of adaption protocols to
    map to SS7, and not to mention SS7 itself, makes you wonder our telephone net work at all.

  59. Layer 3 or 4? by Anonymous Coward · · Score: 0

    Who says that rating a route based on transmission time is a bad idea? The problem isn't what it does, but what it doesn't do. That is, while speed is important you also need to consider things like the reliability (drop rate) and the throughput (windowing). What this says to me is the ROUTER should find an appropriate path by creating METRICS to compare paths, oh wait... they do but at the networking layer. What they're doing is creating a layer 4 protocol that does nothing new and making it rely on their propreitary layer 3 software for determining metrics. TCP is a layer 4 protocol, path determination is done in layer 3, isn't this an issue of not following the networking model? I may be wrong, in all fairness, but anyone have an answer to my dilemma?

    -meggito

  60. Oh, that's just ducky! by museumpeace · · Score: 1

    Now that I finally tought my firewall to discard all UDP packets somebody goes and makes them the kingpin of some hot new protocol. I'm not paid to keep up with all these changes, no matter how good for me or some the mythical average user they are claimed to be. Just hope they don't foist a new protocol layer or application type on us until they make it MORE RESISTANT to spoof and DOS attacks and design OUT OF IT all the possibilities for errors and botched error handling around illegal message field contents or sizes. We have certainly had our noses rubbed in what abuse is possible with TCP so PLEASE, PLEASE get it right this time around.
    I'll be looking for that RFC with a microscope and a shotgun.

    --
    SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
    1. Re:Oh, that's just ducky! by Anonymous Coward · · Score: 0

      "Now that I finally tought my firewall to discard all UDP packets..."

      your 'hosts' file must be enormous.

    2. Re:Oh, that's just ducky! by museumpeace · · Score: 1

      ok, not ALL UDP packets.

      --
      SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
  61. Beh. by Anonymous Coward · · Score: 0
    Wake me up when y'all get onboard with IPX/SPX

    /doesn't want to upgrade his 3.11 servers

  62. Transport latency and TCP by buck68 · · Score: 5, Informative

    This work seems to be about two things (which I am not sure I see a strong connection between): lowering transport latency, and using available bandwidth better. The latter has been the subject of many papers in the last few years. There are now several serious proposals of how to fix TCP with respect to long fat pipes. They don't seem to support the idea that retransmissions are harmful. So I'm going to talk about the first issue, transport latency.

    The idea of using error-correcting codes (ECC) to eliminate the need for retransmissions is an interesting one. The main benefit is to reduce transport latency (the total time it takes to send data from application A to B). Here is another paper proposes has a similar idea, applied at a different level of the network architecture.

    The root problem here is that network loss leads to increases in the transport latency experienced by applications. In TCP, the latency increases because TCP will resend data that is lost. That means at least one extra round-trip-time per retransmission. This "Rateless TCP" approach uses ECC so that the lost data can be recovered from other packets that were not dropped. In this way, the time to retransmit packets may not be needed. I say may, because there will be a loss rate threshold which will exceed the capability of the ECC, and retransmission will become necessary to ensure reliability. But, as long as the loss rate is below the threshold, then retransmissions will not be necessary. Note that the more "resilient" you make the ECC (meaning supporting a higher loss threshold), the more work will be needed at the ends. So you are not eliminating latency due to packet loss, you are simply moving it away from packet retransmission into the process of ECC. However, if you've got good ECC, the total latency will go down.

    The ECC approach may be a nice middle ground. But, it the ultimate solution to minimize latency is probably through a combination of active queue management (AQM) and early congestion notification (ECN). Unlike ECC, this approach really would aim to eliminate packet loss in the network due to congestion, and therefore completely eliminate the associated latency. Either ECC or regular TCP would benefit. In a controlled testbed using AQM and ECN, I've completely saturated a network with gigabits of traffic, consisting of thousands of flows, and had virtually no packet loss.

    It should also be noted that retransmission is NOT the dominant source of transport latency in of TCP. I am a co-author on a paper that shows another way (other than eliminating retransmission) to greatly reduce the transport latency of TCP. The basic idea is that the send-side socket buffer turns out to be the dominant source of latency (data sits in the kernel socket buffer waiting for transmission). In the above paper, we show how a dynamic socket buffer (one that tracks the congestion window) can dramatically reduce the transport latency of TCP. We allow applications to select this behaviour through a TCP_MINBUF socket option.

    -- Buck

    1. Re:Transport latency and TCP by MikeBabcock · · Score: 1

      I will comment before reading your paper ... but wouldn't a kernel remembering appropriate window sizes for given end-points decrease latency as well? Nobody seems to be talking about TCP window sizes at all here for that matter, and they're of vital importance to both throughput and latency.

      Given two endpoints with high network latency (1s rtt), high bandwidth (1Gbps) and high reliability (no packet loss), the TCP window size set too low will cause huge loss in potential bandwidth use since the sender will be waiting for ACKs on data that is being sent successfully before sending more data instead of filling the pipe appopriately.

      If the sender "learned" appropriate window sizes for given receivers and reused them on future connections, wouldn't the streams work better the first time more often?

      I've seen some nice algorithms for improved versions of RED that try to optimize window sizes more rapidly as well -- (thanks Mike) -- and replacing packet drop with ECN can eliminate lost packets almost entirely.

      --
      - Michael T. Babcock (Yes, I blog)
    2. Re:Transport latency and TCP by Control+Group · · Score: 1
      Forgive my ignorance, I'm not trying to ask a stupid or offensive question, I really do want to know: doesn't a TCP connection scale its window size over the life of the connection to resolve this exact problem?

      Or do I misremember that from my one semester of networking?

      Or are you discussing a completely different problem and I'm just dumb?

      --

      Reality has a conservative bias: it conserves mass, energy, momentum...
    3. Re:Transport latency and TCP by buck68 · · Score: 1

      There's a whole body of research that concerns improving TCP's congestion control to deal better with long fat pipes.

      I think we're talking about different definitions of latency. By transport latency, I mean the time to send a given byte (or small number of bytes, like a single video frame) from the sender to the receiver.
      Adjustments to TCP's window size happen on a coarser timescale than this, so they are not strictly relevent.

      Another type of latency might be the time to transfer a whole file using TCP. I would tend to use the term throughput in that case though.

      Re-using window-sizes has been proposed, but is generally regarded as unsafe, and certainly violates current TCP standards. Linux does re-use other values, like the TCP slow-start threshold, I believe.

      As for RED, that is what I meant about AQM, of which RED is just one example. An ideal AQM + ECN combination would completely eliminate lost packets for TCP.

      -- Buck

    4. Re:Transport latency and TCP by buck68 · · Score: 1

      The size of the socket buffer (sndbuf) and the congestion window (cwnd) are separate things. sndbuf is amount of space in the kernel to hold application data. cwnd limits the amount of data TCP will put "in flight" in any given round trip time. generally, sndbuf > cwnd. Usually, sndbuf is a fixed value (64k, 128k), whereas cwnd is adjusted by TCP continuously (as in the sawtooth pattern of TCP sending rate).

      It turns out that the (sndbuf - cwnd) can and does contribute a huge amount to the transport latency, often much more than packet retransmissions. Transport latency is the time to send a single byte through a TCP connection from sender to reciever application.

      The MINBUF mechanism in our paper essentially makes sndbuf == cwnd by having sndbuf follow cwnd.

      -- Buck

    5. Re:Transport latency and TCP by zatz · · Score: 1

      The problem with things like Explicit Congestion Notification is that they ask more of routers. TCP only works at all these days because network hardware tries so hard not to drop packets. I'd like to see more transports which don't panic in the face of a little packet loss, like this "Rateless Internet" thing.

      --

      Java: the COBOL of the new millenium.
    6. Re:Transport latency and TCP by MikeBabcock · · Score: 1

      My comment was that instead of "learning" the appropriate window size on each connection, remember an appropriate starting window size for the next time.

      On long-running servers, I'm betting this would make a noted difference.

      --
      - Michael T. Babcock (Yes, I blog)
  63. Replacing TCP indeed by jsebrech · · Score: 4, Insightful

    This doesn't provide anything like what TCP provides, namely a connection between two network nodes that allows transfer of arbitrary data with guaranteed reliability, with automated congestion control for optimized use of available network resources.

    As far as I can tell (their website could use some more straightforward actual content), this is more like bittorrent, where a file is cut up into blocks, the blocks get distributed across the network, and anyone interested in the file then reconstructs it from available data from all sources, not necessarily having to get the entire file correctly from a single source. Only it does it more efficiently than bittorrent.

    The two protocols target very different uses. TCP excels in interactive use, where the data is sent as it is generated, and no error is tolerable in the single sender-to-receiver link. Bittorrent (and other distributed network protocols) target batch jobs, where throughput is more important than reliability (because reliability can be reconstructed on the client through clever hashing schemes), and where responsiveness is entirely irrelevant.

    So, this could not possibly replace TCP, since it does not do what TCP is most useful for. At the same time, the criticisms aimed at TCP by the rateless designers are valid, but well known, since TCP is indeed poorly suited for high-volume high-throughput high-delay transmissions of prepackaged data.

    Still, good job to them for trying to come up with better protocols for niche or not-so-niche markets. I wish them all the best.

    1. Re:Replacing TCP indeed by Anonymous Coward · · Score: 0

      Genial. Now if this protocol is accepted, there will be impossible to disable P2P applications.

  64. I have a better protocol by Anonymous Coward · · Score: 5, Funny
    I've designed a new protocol that can send data from A to B losslessly at infinite speed without an actual connection between A and B.


    How does it work? Well, it's layered over Rateless Internet, in which (as we all know) packets do not have to be resent. So it carefully loses all packets and relies on Rateless Internet to make sure they arrive safely at the other side and do not have to be resent. Because no packets need to make it from A to B, you don't need any network hardware, and data can be sent just as fast as your machine can drop packets.


    Guess I'd better apply for a patent...

    1. Re:I have a better protocol by Anonymous Coward · · Score: 0

      I'd argue that rather than infinite speed, you'd end up with zero speed.

      But at least you don't have to resend those d@mn packets.

    2. Re:I have a better protocol by Ziviyr · · Score: 1

      Yeah, nothing new on Linux...

      On one computer, you can read from /dev/zero.

      Then on another put as many null bytes into /dev/null as you care to.

      Its fast, its wireless, you can do it backwards, its perfect!

      --

      Someone set us up the bomb, so shine we are!
  65. So how does redundancy improve transfer rate? by RAMMS+EIN · · Score: 1

    So they use extra packets to make up for the ones that get lost. How does that improve efficiency over resending the ones that got lost? With the 1-3% loss rate they cite, I can't imagine redundancy is going to improve things a lot.

    Of course, there is also the issue of rate limiting, which TCP initially did very (too) aggressively (modifications have since been proposed and implemented). Rateless reduces and increases transfer rate periodically, from what I understand. I am not very convinced that Rateless does a better job here.

    --
    Please correct me if I got my facts wrong.
    1. Re:So how does redundancy improve transfer rate? by julesh · · Score: 1

      While I haven't looked at their protocol in depth (as the RFCs promised don't seem to be available yet), one possible way of gaining efficiency is if they don't send back (as many?) acknowledgement packets. You're also potentially freed from concerns about window size, which on links with long latencies can seriously slow down TCP transmissions to well under the capacity of the link.

  66. Their key error by RealProgrammer · · Score: 4, Insightful
    Nevertheless, our extended real-life measurements show that highest throughput is generally achieved at speeds with anywhere between 3% and 5% loss.

    That's for just them. What if all hosts on the entire Internet were by design stuffing packets at a 3-5% error rate? Meltdown, that's what. Their "real-life" measurements do not scale, suffering from the usual assumed linearity of new designs for complex systems.

    Sometimes people fall in love with their new ideas, thinking that the rest of the world missed something obvious.

    --
    sigs, as if you care.
    1. Re:Their key error by hburch · · Score: 3, Interesting
      TCP assumes all packet losses are due to congestion. This is not always true. For example, a wireless connection can have loss due to interference instead of congestion. Although I have not looked at this in quite a while, it was considered a known issue that decreased TCP performance over wireless. This is exactly the sort of setting where an ECCs would be able to greatly increase local performance without adversely affecting global performance.

      Avoiding congestion while maintaining performance is a hard problem. Fortunately, you degrade your own performance if you create congestion and congestion often occurs on the edge. We would really like to avoid the tragedy of the commons with congestion and the Internet. If we cannot, the Internet may truly collapse by 2006.

    2. Re:Their key error by Anonymous Coward · · Score: 1, Insightful

      Sometimes people fall in love with their new ideas, thinking that the rest of the world missed something obvious.

      And sometimes they are right.

    3. Re:Their key error by RealProgrammer · · Score: 3, Interesting

      "TCP assumes all packet losses are due to congestion."

      It may be a quibble, but isn't it more accurate to say that TCP reacts to packet losses the same no matter what the cause? The packet, or group of packets, is just lost. I haven't looked into the status of RFC 3168 (ECN, router congestion flag) lately, so maybe I'm wrong.

      Since you mention it, the tragedy of the commons would be accentuated by pushing the network past saturation by design. By grabbing bandwidth, the 'haves' can effectively lock out the 'have nots' and their slower hardware, which would eventually result in no one having a usable network.

      --
      sigs, as if you care.
    4. Re:Their key error by Animats · · Score: 1
      TCP assumes all packet losses are due to congestion.

      The original idea was that TCP assumed packet losses were due to transmission errors. Congestion information was supposed to come in via ICMP Source Quench. But the BSD people didn't implement Source Quench, which broke that approach. So TCP had to assume that packet losses meant congestion, and slow down accordingly. That's how we got here.

    5. Re:Their key error by Anonymous Coward · · Score: 0

      So it sounds like it really does need an overhaul, weather THIS is the answer or not :)

    6. Re:Their key error by evilviper · · Score: 1
      It may be a quibble, but isn't it more accurate to say that TCP reacts to packet losses the same no matter what the cause?

      No, his statement is much more accurate (and specific) than yours.

      You should have said that "TCP reacts to all packet losses as if they were due to congestion, no matter what the real cause", but the parent's wording is just fine.
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    7. Re:Their key error by evilviper · · Score: 1

      I have absolutely no idea why this hasn't been modded up to +6 yet. It's quite amazing how moderators continually mod-up banal, obvious, and factually incorrect comments, yet rarely mod-up comments with genuinely informative and accurate content.

      Maybe you should have posted the full text of the story instead ;-)

      Don't mind me, I'm just ranting about stupid mods in general...

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    8. Re:Their key error by Animats · · Score: 1
      It's not that big a deal, but it is a correct historical note. I did considerable work on network congestion in the early days (look at the RFCs that bear my name, John Nagle), so I was aware of that problem back then.

      I was in favor of more effective ICMP Source Quench. I wanted a Source Quench to cut the size of the TCP congestion window for a while. This worked reasonably well. But back then, we didn't have hostile packet floods to contend with. Today, any congestion control system must be protected against spoofing, or it will become a vehicle for denial of service attacks.

      Instead we have Random Early Drop. Congestion notification by packet dropping is like traffic control by randomly kicking cars off the freeway. It has a useful effect on congestion, but it hurts individuals.

      The way the Internet really works is that the backbone has far more bandwidth than it really needs, because fibre is cheap and hardware routers are really fast. If the backbone gets congested, the network works very, very badly. (Remember in the mid-1990s, when MAE-WEST would congest and the whole West Coast would see 60% packet loss rates?) We really don't know how to handle mid-network congestion very well. Fortunately, that problem has been eliminated by throwing bandwidth at the problem.

      Near the fringes, we have congestion, but the number of different streams going through a choke point like an edge router is small enough that "fair queuing" (or "traffic shaping", in fancier forms) works. This works well with TCP, which throttles down based on round trip time. It prevents sources that don't throttle from hogging all the bandwidth. Usually, there's only one organization on a edge router, so if you want some other policy (like giving priority to video streams) it doesn't affect other users.

      Somewhat to my surprise, after twenty years, we have an Internet that works better than I'd expected after huge scaleup. But really, the main reason it works is excess backbone bandwidth.

    9. Re:Their key error by evilviper · · Score: 1
      It's not that big a deal,

      I would disagree. I think this issue is comming back to haunt us today. If source quench had been implimented, it would most likely have taken care of the current problems with wireless networks, and issues with TCP tunneling over TCP. IMHO, it would have made the internet at large do a MUCH better job of handling cases where there just isn't enough bandwidth to go around. The internet seems to exponetially self-destruct when the bandwidth gets pinched by either a physical outage or some form of DoS attack (intentional or otherwise).

      I would consider T-1 lines an example of how well source quench has worked.

      I did considerable work on network congestion in the early days (look at the RFCs that bear my name, John Nagle)

      From your initial comment, I knew you were someone quite knowledgable, but I wouldn't have guessed you'd be someone with an algorithm named after you... I don't need to look-up those RFCs, I recognized your name imediately, and I'm familiar with much of your work.

      I was in favor of more effective ICMP Source Quench.

      I think I've already established that I agree. Of course, I have many years of hindsight with which to help me make that determination.

      Today, any congestion control system must be protected against spoofing, or it will become a vehicle for denial of service attacks.

      I don't believe that source quence would have been overly vulnerable to spoofing. At least, no more so then that standard Strong filtering of ICMP packets is widespread now.

      It's also not hard to imagine source quench being used to prevent network flooding. Edge routers would be more easily able to enforce it, rather than leaving it up to the host, which may be acting malicously.

      Congestion notification by packet dropping is like traffic control by randomly kicking cars off the freeway.

      Hah! I think I'll make that my new sig in a couple weeks.

      We really don't know how to handle mid-network congestion very well.

      I've always thought that some sort of widespread throttling would be a workable solution. They could at least ensure every large subnet gets a fair chance at the bandwidth, without oversaturating a link (and causing more pointless traffic).

      Fortunately, that problem has been eliminated by throwing bandwidth at the problem.

      Well, it has worked well, thus far. However, there are still outages. The recent blaster worm gave a good preview of things to come, and ways that the network can still fail. I think more than just excess bandwidth is needed.

      Somewhat to my surprise, after twenty years, we have an Internet that works better than I'd expected after huge scaleup.

      Well, it's certainly a positive note, that the internet isn't doomed. Although it works, it still has it's many problems, and a bit of excess bandwidth certainly can't solve them all.

      International links never seem to be fast enough, for one. Better methods to handle congestion would improve everyone's experience greatly, IMHO.

      DDoS attacks seem to be rather common, with no-one appearing to do anything about it, to try and protect the internet at large from a good number of misbehaving nodes.

      These kinds of things really need to be addressed. I believe that VoIP is only the start. Video conferencing could really take-off, but the internet isn't reliable for real-time data, specifically because it's a free-for-all. I think the internet will be the next medium that TV will be broadcast on, but uping the bandwidth to the backbone won't help sort out the current issues that make high-bandwidth streaming-video problematic.
      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    10. Re:Their key error by Anonymous Coward · · Score: 0

      By grabbing bandwidth, the 'haves' can effectively lock out the 'have nots' and their slower hardware..

      So you proposing a welfare internet?! :)

  67. Nonsense sentence by Anonymous Coward · · Score: 0

    This sentence on the site:

    This is precisely why TCP is inherently unable to reach optimal speeds on long high-bandwidth connections.

    is complete nonsense. The Window Scaling Option in modern TCP stacks lets them use long high-bandwidth connections just fine, and the congestion control features in TCP adapt themselves to the pipe.

  68. It works ... i think by grahamsz · · Score: 1

    This is acutally a C library which uses UDP therefore if they released it under the GPL then any application that builds on it would also have to be GPL. Of course it's entirely possible for a GPL application to be commercial, but this does mean that to use this in a closed source appliation you'd have to buy it from them instead.

    1. Re:It works ... i think by Doctor+Memory · · Score: 1

      If it's a library, doubtless they'd release it under the LGPL, which would mean that anyone using it would only have to provide the source to the library (or a pointer thereto) if anyone asked.

      --
      Just junk food for thought...
    2. Re:It works ... i think by Anonymous Coward · · Score: 0

      It's just the library though...

      If it's not patented, nothing prevents anyone from reverse engineering it and making their own implementation.

  69. Re:SCTP (and other neat protocols) by REBloomfield · · Score: 1

    I've just done SCTP and SS7 for my degree. please make the bad voices go away.........

  70. Well... by jd · · Score: 4, Informative
    You could always use the existing "Reliable Multicast" protocols out there. Not only do those work over UDP, but you can target packets to multiple machines. IBM, Lucent, Sun, the US Navy and (yeek!) even Microsoft have support for Reliable Multicast, so it's already got much better brand-name support than this other TCP alternative.


    So others can have fun slashdotting other technologies, here are some websites. There are probably others, but this should keep those who do really want to move away from TCP happy.



    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  71. The decider... by Anonymous Coward · · Score: 0

    I can see it now.

    New Guy: "It's time to go, old man. I'm the new overlord of the net now!"

    TCP: "No f***ing way!!! TCP is still teh shit, ye hear? Now socket my fist and take a hanky from the packet to whipe yourself off on the way out".

    It was funnier in my head.

  72. Not very useful by iabervon · · Score: 1

    They're doing erasure correction with an error correcting code on the complete transfer. It's sort of a good idea, but it's only useful for transferring large files, because if there are dropped packets, you don't get that data until the end. This makes it useless for anything where you want to use the data progressively, like rendering a web page, image, etc., as you download it. So this isn't going to replace TCP except in special cases.

    For that matter, it would be much easier and no less effective to send data by UDP and request replacements by TCP as the packets turn out to be missing, with the replacements sent at the end, rather than ending with a chunk of ECC information suitable for reconstructing the lost packets without any feedback from the receiver.

    (Of course, it is an interesting math problem to figure out what information you should send after transferring a file to optimally correct a set of deletions that only the receiver knows; but in real life, you can just send the necessary information back)

  73. Old news by Ironsides · · Score: 1

    The guys ofer at Digital Foutnain have had something that does this for a year or two now. And thiers works over satelite too. Wonder if they will have any IP issues. (Intelectual Property, no pun intended).

    --
    Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
  74. EC over IP I have been doing this for years. by John+Sokol · · Score: 5, Interesting

    ecip.com I call it Error Correcting IP, and used it to stream live video from Sri Lanka in 1997 with Arthur C. Clarke Hal's Birthday
    it was a 64K shared line with 90% packet loss, I received 60Kbps for the video stream. ( I have the video to prove it )

    We even filled preliminary patents on this back in 1996 but they were never followed through with.

    Luigi Rizzo (now head of the FreeBSD project)also did some excellent work on this also. http://info.iet.unipi.it/~luigi/fec.html
    He calls it Erasure codes.

    Which is more accurate since UDP doesn't have errors, it either come across 99.999% perfect or not at all.
    So there is more information then in an error situation where ever bit is questionable.

    What this means almost 1/2 the hamming distance in the codes in needed to correct an errasure verses and error.

    Turns out the Error/Erasure correcting scheme it critical and not obvious. I spent almost 5 years working on this part time before it started making some real breakthroughs.

    My original system was designed for 25% packet loss (not uncommon in 1996).
    In the inital idea we added 1 exored packet for every three data packets, but at 25% packet loss, it turns out that it didn't increase reliablity at all! Working this out with probablities was a major eye opener!

    Even when you work the problem out you realize you will still need some retransmissions to make up for lost packets, there is no possible solutions without this.

    I have been trying to find people to help opensource this since I have working far too hard just to survive since 2000 to even consider taking on another task.

    Anyone interested in my research and carring this forward please see my site and contact me.

    John L. Sokol

    --
    I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
    1. Re:EC over IP I have been doing this for years. by Craig+Ringer · · Score: 1

      "it was a 64K shared line with 90% packet loss, I received 60Kbps for the video stream. "

      That makes no sense. You cannot reconstruct lost data out of nowhere. Using an ECC scheme works by sacrificing peak _normal_ bandwidth in exchange for error tolerance. With an ECC scheme capable of withstanding 90% packet loss you can't fit a 60kbps video through a 64kbps link even at zero packet loss. For that matter, it wouldn't be easy to do with TCP/IP, either.

      Are you sure you don't mean a 64kilobit/second video through a 64kilobyte/second (~512k) link? That verges on possible, though it's still really pushing your luck at 90% loss. Alternately, I could understand it being vaguely possible if you mean 60KB/s _after_ encoding with the ECC data, though again that'd be a bit of a stretch IMO.

    2. Re:EC over IP I have been doing this for years. by John+Sokol · · Score: 1

      I'm glad you asked.

      Yes I mean just that.

      90% packet loss according to ping. (round trip)
      Didn't have a tool to measure each direction independently at that time. (do now) With almost 10 seconds round trip time for that event!

      It all depends on where the bottle neck is and what's behind it. At the time we had characterized the way packets were dropped by differnt routers when the buffers were full and overflowing (dropping packets).

      Anyhow since we had 10 Mbps ethernet to the 64K link out of Sri Lanka, then on the other side which was MCI in New York ( I had also managed to place a Co-Lo server very close to that router also) there was only one bottleneck that I didn't have control over. the public internet pipe at 64K traveling over fiber 12,000 miles, I could get the ISP to dissconect the rest of thier coustomers just for me.

      You can still get the data through a link like this by having the sender push out almost 600 kbps in packets to get 60Kbs of my packets out on the receive side! This is a RUDE Protocol..

      So of 64kbps only 4Kbps packets was other people junk and 60 kbps was mine, this is done by saturating the link with my packets! So does this sound familiar? Sort of like a DOS attack maybe...

      Now the real trick was to make the 1/10 of the packets that did make it through turn into the 60Kbps of video data that was trying to send over this link with 0% no loss and low latency! So no retranmissions!

      We did this!.

      For anyone really willing to put some time into this opensourcing this project I will be happy to go into as much detail as they can handle or need to reimplement into an open and more usefull application.

      A knowledge of statistics would also help since I ended up learning it for this project myself.

      John

      --
      I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
    3. Re:EC over IP I have been doing this for years. by Craig+Ringer · · Score: 1

      Thanks for your reply.

      There's one thing I still don't understand, though. You had a 60kbps video data stream being delivered over a 64kbps link with 60kbps actual throughput - fine. If you're sending 600kps, you are as you say going to lose 90% of your packets.

      That said, I don't see how you can achieve a 60kbps data stream from 60kbps final throughput from your protocol, as you can't guarantee that the /right/ packets will arrive, and you have no room for redundancy. Are you sure the video codec wasn't just correcting for missed packets?

      I also don't understand your comments on packet loss. Do you mean that the link was a theoretial 64kpbs link that had 90% packet loss? Or was it _effective_ 64kbps after packet loss was taken into account? If the former, I still don't see how your scheme could work - I just can't see how you can turn 6kbps of data into 60.

    4. Re:EC over IP I have been doing this for years. by John+Sokol · · Score: 1

      I mean you take the "PING" program and run ping, you see 90% packet loss with a 6 seconds average latency, I believe I still have the files laying around from that data ping xxx.com > pinglog

      Anyhow when you start to study Error corrector/erasure code you quickly realize that at best you can only reduce errors, IE a (DB increase if you will in S/N) By increasing used bandwidth you increase S/N. Shannon's law type of stuff.

      Anyhow If can be proven mathematically that no matter how much you add you can not get 100% perfect data cross. Unless you "close the loop" using feedback as to what was lost, hence TCP.

      Now I found you can and combine Error Correction and retransmission to get 100% of your signal/data across. And by using the right type of error correction you didn't need to increase latency to do your retransmissions. (The how, would be a very long discussion to get into that I'd want to take offline)

      Now if we take this further I can deliberately strip my codes across a connection to intentionally cause a predictable and manageable amount of packet loss.
      For example I know I have a T3 (45Mbs) on one side and an dual channel bonded ISDN on the other 128Kbps (this shows how far back I had worked on this) I know that the network between my T3 and the ISDN is probably better then 10Mbps at all point up until the "last mile".

      Now let say that in 1996 MAE West was experiencing 20% packet loss (I have logs of it) almost every afternoon, but I still needed to get my data to some ISDN line on the other side of this gigabit router that is over saturated with bazillions of TCP connections.

      Is this situation what if I use an error correction code set to recover 25% loss but with retransmissions? If I send 128K I'd have 102Kbps arrive. Then there is the overhead of the code itself to deal with. But knowing where my loss if occurring at I can deliberately send 25% more data to that connection. So about 170 Kbps gets sent. 20% lost in the backbone and I am guaranteed that the remaining 5% will be lost at the ISP's ISDN terminal server before being sent down the ISDN line. So I will have a known state of 25% lost data, but 128Kbps going over my connection.

      Are you following me? What ever the lost across the backbone is become irrelevant since the lost at the connection will force me to at 25% loss.

      Now what If I were to use a perfect code (turn out I found a number of perfect erasure codes)
      Perfect codes

      So start with 128K create 170K, I lost X% across the net lost 25% -X at the ISP and receive 128K. Using a perfect code for 25% loss I recover 100% of my data that needed 128Kbps to get across.

      But this only works using retransmissions that are placed back into the error corrected stream! -- YES, Make sure everyone know John Sokol wrote this first since this was the big revelation that made this work!

      By doing this it allows you to increase the hamming distance for the next error recovery so you can tolerate future lost data better. While recovering 100% of the data sent first pass.

      Lets take the Hamming (7,4) Code it's a perfect code. It has a hamming distance of three. This allow you to correct 1 error and detect 2.

      http://www.dcs.st-and.ac.uk/~sal/school/CS3010/L ec tures/forhtml/node3.html

      For error you can only correct for 0.5 - 1/2 the hamming distance, but for Erasures you can correct for 1 - the hamming distance.

      So I can correct for 2 lost packed out of 7 I send, but only 4 are data with 3 added overhead.

      But these are block codes, and are not very efficient or effective. So used brute force and later Genetic algorithms to search for long perfect cyclical codes for Erasures.
      The closest thing to the codes I found is called "hagelbarger codes"

      --
      I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
  75. STCP by ericzundel · · Score: 2, Insightful
    A "real" replacement to TCP is STCP

    You get datagrams like in UDP but they are sent re liably.... or not depending on what you want. I believe this has been quietly implemented in CISCO routers and Unix OS vendors network stacks over the past few years.

  76. This isn't a general TCP Replacement by billstewart · · Score: 4, Insightful
    As far as I can tell from the documentation, this isn't really a TCP replacement. It's basically a set of efficient forward error correction codes, so if you've got a relatively wide open pipe you can transmit on without much packet loss, it can blast away and recover from occasional losses, but it doesn't do any actual congestion control.
    • They have a "TCP-friendliness" option that varies the transmission rate in a way that TCP windowing can probably cooperate with, so you can set the rate knobs to something less than full blast,
    • but nothing they've documented appears to address the problem of multiple users of this application trying to use a transmission path at the same time, and
    • they also don't document anything that does path rate discovery - so it may work fine if you've got a couple of small pipes feeding a fat network, but if you've got a fat pipe on the sending end and a skinny pipe on the receiving end, they don't document anything that figures out what rate is safe to transmit at.
    They also don't document when you would want to use this and when you would want to use TCP and when you would want to use this on top of TCP.
    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  77. WELCOME TO SLASHDOT! by Anonymous Coward · · Score: 0

    I think most people will probably not even read the article.

    You must be new here.

  78. Inevitable... by mistersooreams · · Score: 1

    The great thing about standards is that there are so many to choose from...

  79. TCP needs a replacement, but... by mbone · · Score: 2, Informative

    TCP uses packet loss (NOT round trip times - where did that come from?) to signal congestion, and thus to implement congestion control. This does not work well in a typical wireless (802.11X, 802.16, etc) environment, where packet losses are to be expected. TCP also does not co-exist well with lots of UDP streaming.

    So, there IS a need for a TCP replacement. However, the one being developed in the IETF is DCCP. Basically, the idea is separating congestion control and packet loss replacement.

    Maymounkov and company say that they are preparing RFC's (which implies that they intend to submit this to the ITEF), but have not yet done so. So, maybe if they do, and if they offer an unencumbered license, their technology could be used, but it is way too soon to tell.

  80. is it tcp friendly by minus_273 · · Score: 1

    one of the problems with trying to change ther version of TCP or even replacing the protocol is that protocols that use an algorithm that is not TCP friendly usually ends up hammering or getting hammered by the network. TCP vegas is supposed to be superior to TCP Reno and Tahoe however, it does not have a chance on the same network. Therefore, even though it is better, it is useless.

    --
    The war with islam is a war on the beast
    The war on terror is a war for peace
  81. What? by markov_chain · · Score: 4, Informative

    I don't know what their reasoning is, but both their claims about TCP seem incorrect.

    1. TCP does not use round trip time to calculate any "congestion levels." It increases the connection rate until packets get dropped, presumably because some router in the middle got overloaded.

    2. Packet loss is used as a signal to TCP to slow down because it tried to send too fast. The lost packets are subsequently retransmitted, so TCP can indeed not only tolerate but recover from packet loss. The only real case they have is packet loss due to reasons other than TCP's own aggressive sending rate, such as UDP traffic, wireless links, etc.

    Given these concerns, I can't help but think that they are inventing a protocol that works well only if used on a small scale. TCP is designed to back down if it thinks it's sending too fast, and is not really optimal. One can always hack a pair of TCP nodes to not play by the rules and get more than the fair share, but the problem is that that solution wouldn't work if it were adopted network-wide.

    --
    Tsunami -- You can't bring a good wave down!
    1. Re:What? by panZ · · Score: 4, Insightful
      You are absolutely correct. I was looking for someone to post this argument before doing it myself. Thanks! Mod this guy up!

      TCP doesn't use round trip time to calculate a link speed. In fact, it doesn't just the opposite. It uses a sliding window method so it can send many packets before any one has ACKed. This is done to soften the blow that round trip times will have on your send rates!

      TCP regulates its send rates by slowly sending faster and faster, then when a packet is dropped, it drops its rate fast. Slow increases and exponential backoffs make for VERY efficient link utilization on reliable networks with many active nodes whether it be a fast office LAN or world wide network.

      Their method appears to just spray data without paying attention to what other nodes are doing. It sounds like it is much better suited for point to point communications on unreliable networks. E.g. cellular data networks, packets get dropped much more frequently because of interference rather than congestions. TCP might back off too quickly in this condition because it is optimized to deal with congestion. Their protocol might be great for that first/last hop between your cell phone and the cell tower but otherwise, it undermines the great balance that TCP achieves on our amazing little internet.

      --
      --Let's hack root on 127.0.0.1 --panZ
    2. Re:What? by Percy_Blakeney · · Score: 2, Informative
      TCP does not use round trip time to calculate any "congestion levels."

      That's true, but TCP does implicitly rely upon the RTT in its ordinary operation; it does not increase the size of its congestion window until it sees an ACK, which implies a delay equal to the RTT. So, TCP doesn't use RTT in an explicit calculation but RTT does affect how quickly you're able to ramp up your utilization of the link after a packet loss.

      TCP can indeed not only tolerate but recover from packet loss

      Yes, but the question is how quickly does it recover from packet loss? This is a huge problem, especially with the advent of 1-10 gigabit ethernet.

    3. Re:What? by Anonymous Coward · · Score: 0

      1. TCP does not use round trip time to calculate any "congestion levels." It increases the connection rate until packets get dropped, presumably because some router in the middle got overloaded.

      This is true for TCP Reno and Newreno, which is what most people think of when they hear "TCP". There is a variant called TCP Vegas that infers network congestion from RTT, which works quite nicely if done dynamically, in fact, it supports nearly 30% higher throughput. There are still some other issues with it however -- current research obviously.

  82. No, No, NO! by Bozdune · · Score: 1

    If you want to replace TCP,

    IT HAS TO BE FREE. It isn't. Read their license.

    I have no doubt these people have patented their ideas, too. You'll see that hit in a couple years, muzzling everyone else's ability to use these fairly simple concepts.

    1. Re:No, No, NO! by Anonymous Coward · · Score: 0

      It doesn't have to be free. I think you've misunderstood who they're targeting. They seem to be selling it as a protocol running on top of the standard UDP stack that would be used in proprietary streaming multimedia apps. Half of these programs already use funky protocols since they don't necessarily need all of the features of TCP.

    2. Re:No, No, NO! by Bozdune · · Score: 1

      Um, read the parent post to which I was responding, maybe?

  83. Sure... it's easy..... by Cnik70 · · Score: 1

    now just have a few million people all agree on how to convert the millions of pc's, routers, etc using tcp.

    --
    -Cnik
  84. Story is out of date. by Elwood+P+Dowd · · Score: 1, Funny

    They've already published RFCs and had them approved. The internet is switching to Rateless Internet two weeks from next Wednesday, on November 10th. After that, no more TCP/IP.

    --

    There are no trails. There are no trees out here.
    1. Re:Story is out of date. by Elwood+P+Dowd · · Score: 0

      Troll? Oh, come on. It's a *joke*.

      --

      There are no trails. There are no trees out here.
  85. They are confused by ebuck · · Score: 3, Interesting

    They tell you how they solved the solution, but fail to tell you how much impact this solution has overall.

    They're basically stating that now they can flood the connection with packets.

    But they've also told you that the packets contain your data in an error correcting encoding. What they don't mention is this:

    How much overhead is required by the error correcting encoding?

    How many errors can the error correcting encoding handle? (drops 1 packet = ok, drops 400 packets = bad)

    How much cpu computation is required to encode and decode the payload?

    How is the cpu overhead managed? (how much performance will be lost by context switching, etc.)

    So they're just playing the game of distracting people with the best part of thier performance measurement without bothering to mention the performance impact of all of the other trade-offs they admitted to making.

  86. sure.. by kwoff · · Score: 1

    Yeah well IPv6 might be better than IPv4, but I don't see many people using it.

  87. HSLink! by CODiNE · · Score: 3, Interesting

    This may be just a wee bit offtopic, but it may be my only chance to ask...

    Who remembers HSLink?? If I recall correctly it was an add-on transfer method for Procomm Plus. It allowed two people connected over a modem to simultaneously send files to each other at basically double the normal speed. I remember thinking it had to be a scam, but me and my friends tested it and were able to send double the usual info in whatever time we were used to. (I forget, 10 minutes a meg I think)

    How did this work? Were we fooled or was it for reals? Could something like that be applied to dial-up internet connections?

    -Don.

    --
    Cwm, fjord-bank glyphs vext quiz
    1. Re:HSLink! by Anonymous Coward · · Score: 1, Informative
      HSLink was just a modem transfer protocol that supported simultaneous download and upload. That capability has always existed in modems, but traditional protocols like X-, Y- and Zmodem never supported more than 1 transfer at a time. Other simultaneous download and upload protocols were BiModem and Smodem.

      Could something like that be applied to dial-up internet connections?
      Dial-up Internet connections are inherently two-way. Some problems in simultaneous download and upload arise from the way TCP/IP handles acknowledging packets - if you're uploading at full speed the ACK packets don't get through as well as they should and download speeds are affected. With some OS'es (like OpenBSD) you can prioritize ACK packets higher and overcome this problem, but anyway.. HSLink wasn't magic.
  88. It's hooey... by Frennzy · · Score: 4, Insightful

    TCP doesn't use RTT to 'calculate congestion'.

    This is a load of fluff, trying to capitalize on the 'p2p craze'. There are plenty of TCP replacements out there, that actually make sense. As far as TCP not being able to utilize 'today's bandwidth', again...hooey. Gigabit ethernet (when backed by adequate hardware, and taking advantage of jumbo frames) moves a HELL (two orders of magnitude) of a lot more data than your typical home broadband connection...using TCP.

    1. Re:It's hooey... by Anonymous Coward · · Score: 0

      Your missing the point, and are incorrect, Gigabit ethernet works great in a lan situation. In my enterprise I have multiple OC-12's across the US and the gig attached servers NEVER get anywhere close to 1Gbps throughput. They're lucky if they get 100Mbps. This is because of the the inherent physics that prevent the light from returning fast enough over large geographic limitations. So TCP backs off the window size in order to accomidate what it things is a congested link. So in order for these servers to send high transfer rates they have to open multiple flows and break up large transfers into multiple smalls ones, talk about a hassell. Another solution to this problem would be to increase the Window size manually to anything above 3meg. This will allow the server to recieve the responses before the buffer fills so it wont think its congested.

    2. Re:It's hooey... by Frennzy · · Score: 1

      No I'm not, and no I'm not.

      GigEth of course works great in a LAN situation...it wouldn't be used in any other. It has a distance limitation of 100 meters per segment. This has nothing to do with TCP. My point was, the author was saying that 'today's bandwidth' was too much for TCP...when, in fact, most home connections max out at about 6Mb in one direction, and real world throughput on GigE (using TCP) has been clocked as high as 600Mb, and usually ends up being hardware (PC bus) limited. Hence my 'two orders of magnitude' statement

      TCP windowing is not a function of RTT, other than the fact that a timout will cause a retransmit, and resizing. That TCP timeout is configurable. TCP starts small, and works its way up in window size until it either hits the max configured window size, or fails to get an ack. No ACK=downsize and resend.

      The 'inherent physics' of light that you refer to are a known quantity. Average RTT from coast to coast in the US is anywhere from 60 to 80 ms, depending on your provider, current congestion, and specific hardware latency at each hop. If your TCP RTT limit is set at or below those levels, I'm amazed it works at all.

    3. Re:It's hooey... by kuknalim · · Score: 1
      "TCP doesn't use RTT to 'calculate congestion'."

      The most widely prevalent TCP implementations (which would be TCP Reno/NewReno and TCP SACK) do not directly use RTT as a measure of congestion. However, there have been several TCP versions/alternatives that use packet delay for precisely this purpose, most notably, TCP Vegas, and more recently, Fast TCP from the Caltech folks.

      I agree however that this "replacement" for TCP from Rateless looks like some fluffy marketing spiel.

      TCP does have problems scaling to high-bandwith + high delay (aka long, fat) networks. But there is no inherent limitation in TCP that would prevent it from operating in the Gbps ranges. With proper tuning, and sufficient cycles to burn, today's TCP stacks can fill Gbps pipes.

      Also, the biggest benefit from TCP is not so much about its (in)ability to achieve near-100% link utilization. It's real usefulness is that it plays nice when multiple streams are sharing a link. Imagine a network where each flow tries to muscle out every other and indiscriminately swamps the network with its own packets. Congestion collapse would be the result.

      This new protocol from Rateless appears to be suited only for dedicated pipes or for situations where it matters little if other flows are clobbered by the Rateless streams. There are plenty of UDP-based protocols that attempt to offer reliability + high speed. This one does not seem particularly striking.

      For recent, serious proposals of reliable L4 protocols, google for FastTCP or XCP.

      -thonuzo

  89. TCP is the speed limiter that keeps the net runnin by Anonymous Coward · · Score: 1

    The way TCP works is the only thing that keeps the net running as well as it does now.

    Remove TCP, and you remove the speed limit, single hosts will easily be able to overwhelm servers, a few dozen hosts will be able to overrun multi-gig cross country links with ease.

    Remove TCP, and the network admins of the world will only throttle you back in transit.

  90. and NETBLT ? by sandoval88419 · · Score: 1

    netblt (RFC) purpose is also to enhance file transfer thruput (bandwith efficiency). An implementation has also been studied.

  91. I can't resist by Mac-O-War · · Score: 1

    Netcraft confirms it, TCP is dead.

  92. You forgot something... by Anonymous Coward · · Score: 1

    That which is not TCP shall not pass through any firewall worthy of the name -- ergo, it's doomed. IPV6 may be another matter...

  93. It sounds like a crock by TTK+Ciar · · Score: 3, Interesting

    I'd still like to see a good protocol that doesn't require in-order packet receipt in addition to the changes that they mentioned; when transfering large volumes of data, why not?

    This is exactly why FTP uses UDP for its data transfer. So use FTP. In the last decade, though, improvements to TCP stacks have mostly mooted this difference. Once upon a time, when one end of a TCP transfer NACK'd a packet, it meant that packet and every packet after it would need to be re-sent (even those which had been sent already). So if you send packets 100, 101, 102 and then get a NACK for 100, you'd have to send 100, 101, 102, 103, etc. But with modern implementations, the receiver would keep packets 101 and 102, so the sender only needs to re-send packet 100, and then proceed to packet 103. This has made TCP much more efficient over lossy networks. Deferred NACKs also deal well with the problem of out-of-order packet arrival, when tardy packets show up before the deferred NACK is transmitted.

    I'm very dubious that these folks' protocol can realistically replace TCP; it simply doesn't add any must-have qualities. The only place where I see an advantage is transmitting audio and video, where you don't necessarily want to retransmit lost data, and are willing to put up with minute gaps in the data stream.

    A transport protocol that really deserves more attention is TTCP (TCP for Transactions). It abbreviates the TCP connection handshake, which makes it much more efficient / better-performing for very short transactions (like typical HTTP usage).

    -- TTK

    1. Re:It sounds like a crock by Floody · · Score: 2, Informative

      This is exactly why FTP uses UDP for its data transfer. So use FTP.

      Right! Well, except for the fact that FTP uses TCP port 20 for data (or control port-1).

    2. Re:It sounds like a crock by AhabTheArab · · Score: 1

      This is exactly why FTP uses UDP for its data transfer.

      Actually FTP uses TCP port 21. TFTP (Trivial File Transfer Protocol) uses UDP, usually port 69.

    3. Re:It sounds like a crock by AuMatar · · Score: 1

      FTP uses TCP. TFTP uses UDP. TFTP usually has horrible throughput, since its a send and hold protocol (send a packet, wait for an acknowledgement before continuing). Its used only because its absurdly simple.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    4. Re:It sounds like a crock by Aumaden · · Score: 1

      You may be thinking of FSP which is a UDP-based FTP analog. FTP, however, uses TCP.

  94. Won't work. by Anonymous Coward · · Score: 0

    UDP with rateless erasure codes, which means that packets do not have to be resent

    Rubbish, what happens if i send a one packet message, and it gets lost.

  95. Just me? by pjt33 · · Score: 1

    You didn't see the title of the story and think it was about a new antiseptic, then?

  96. Netcraft? by vivin · · Score: 1

    Has netcraft confirmed it is better?

    --
    Vivin Suresh Paliath
    http://vivin.net

    I like
    1. Re:Netcraft? by jericho4.0 · · Score: 1

      *notTCP Declared Dead. That's why you've never heard of it.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    2. Re:Netcraft? by Anonymous Coward · · Score: 0

      Netcraft isn't what it used to be

    3. Re:Netcraft? by Anonymous Coward · · Score: 0

      Netcraft is like a lame joke gone too far.

  97. Yeah cos TCP is really broken! by Anonymous Coward · · Score: 0

    Why do people always feel the need to reinvent the wheel?

    1. Re:Yeah cos TCP is really broken! by TheAwfulTruth · · Score: 1

      You say that as if it's a bad thing.

      If the wheel wasn't reinvented constantly, we'd all be driving our cars on stone and wood!

      The wheel gets reinvented all the time and it gets better with each reinvention, why not TCP?

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
  98. Not insightful by Wesley+Felter · · Score: 1

    Yeah, there's no room in the Internet for new protocols to be used along side the old protocols. No one adopted AIM, Gnutella, Real, or BitTorrent because they're not backwards compatible.

    1. Re:Not insightful by Anonymous Coward · · Score: 0

      Except all of those operate over TCP.

  99. Re:I wouldn't make any mention of bittorrent, etc. by zoeblade · · Score: 1

    Because then you're going to have the suits trying to push it down, no matter how great/useful it is in an effort to kill the possibility of coming out with something that could make pirating any easier or more efficient. That's the only way they're going to see it.

    Surely if that was the case, the music industry would have been against radios... oh, wait...

  100. rateless - more like clueless by Anonymous Coward · · Score: 0

    From my syslog:

    Oct 21 10:35:31 bonnet firefox-bin: gethostby*.getanswer: asked for "www.rateless.com.nyud.net IN A", got type "39"

    They might want to change their name from "rateless" to "clueless".

  101. Encoded by IvanD · · Score: 1

    Encoded information just increases the overhead so the efficiency... will be reduced
    However I heard of this code:
    1: enable, on
    0: disable, off
    :)
    TCP is just fine improvements are yet to come.

    1. Re:Encoded by be-fan · · Score: 1

      Huh? Encoding information can increase processing overhead, but processing overhead can be greatly overshadowed by inefficient use of the link.

      --
      A deep unwavering belief is a sure sign you're missing something...
  102. Voice Over RI (VORI) by Anonymous Coward · · Score: 0

    I want to be the first to invest in this new technology, and make a bazillion dollars. Better yet why not progress on to VORIv6?

  103. Why UDP? by Anonymous Coward · · Score: 0

    Can someone explain why they chose the UDP protocol? I thought it was not a stateful protocol. And why does DNS use UDP? What is so good about UDP?

    1. Re:Why UDP? by Anonymous Coward · · Score: 0

      It doesn't have the overhead of establishing a connection. It just assumes that the other end is there and will answer(or receive).

      With some more robustness (makeing it lossless) UDP could possibly be a better protocol for general data connections as well as it's current uses.

  104. Which point? by tepples · · Score: 1

    If you don't mind the overhead, add FEC at the link at the point of loss.

    So where is the point of loss?

    But anyway, solve [packet loss] at the point of the problem, not end-to-end.

    What if neither participant in a conversation has the capability to isolate the point of the problem, let alone to fix it? What if the routers between the participants are run by faceless multinational corporations who decline cooperation with residential customers?

  105. Redudancy is not efficient by muruguru · · Score: 1

    Lets assumes that their proposed solution runs at 100% efficiency. However, for them to be able to recover a lost packet, they will need to add redudancy to each and every packet. You can't recover data that has zero duplication. The end result is, their solution, even when working perfectly isn't likely to be better than the current solution(TCP) as far as bandwidth utilization is concerned.

  106. [Semi OT] Re:Has anyone considered Decnet? by toneighty · · Score: 1

    Hey, I'm pretty biased having worked for DEC Field Service for 12 years. It seemed the only thing keeping DEC alive was services and the hardware engineers thinking of ways to make our lives easier. You're right that users will find a way to break things. When I was a junior tech, a senior tech once told me "every service call is a prank ... look for the easy stuff first." Ken Olsen messed up by not embracing personal technology, other than that I had fun as a tech. DECNet and DECNet/VMS clusters were/are great technology, easy to setup but not too scalable. -ep

    1. Re:[Semi OT] Re:Has anyone considered Decnet? by Anonymous Coward · · Score: 0

      I have to confess, it was me and my friends prank calling you for 12 years. Don't take it personally, we just loved breaking DEC stuff and make you pull your hairs thinking of ways to fix it over the phone.

  107. Does it support... by WarriorX99 · · Score: 0, Redundant

    Does it support the evil bit?

    --
    Life today. Uncertainty tomorrow.
  108. "/" is read as "over" by IBitOBear · · Score: 2, Insightful

    It is the old-math speak usage of "/" as in "three over four" is "3/4"

    So TCP/IP is "Transmission control protocol over internet protocol" or just "TCP over IP".

    While you don't see it much, this also inferrs "HTTP/TCP/IP" and so forth.

    So just as "voice over IP" doesn't make voice and IP the same, TCP over IP doesn't really relate one to the other.

    After all, if you use dialup, the first hop of your connection is typically TCP or UDP over PPP (Point to Point Protocol) and the ISP acts as a gateway from the PPP to the IP semantics.

    (I'm guessing the immediate parent knew this, but this reply "hangs best" here in the thread. 8-)

    --
    Innocent people shouldn't be forced to pay for inferior software development.
    --"Code Complete" Microsoft Press
    1. Re:"/" is read as "over" by Anonymous Coward · · Score: 0

      joke. it was a joke.

    2. Re:"/" is read as "over" by Michael+Hunt · · Score: 2, Insightful

      <quoth the poster>After all, if you use dialup, the first hop of your connection is typically TCP or UDP over PPP (Point to Point Protocol) and the ISP acts as a gateway from the PPP to the IP semantics.</quoth>

      No. Your connection to your ISP is IP encapsulated in PPP frames. PPP is a session-based, authenticated layer 2 framing type, loosely based on HDLC. The PPP frames are discarded at the ISP's NAS/LNS, which then forwards the inner IP goo to the correct destination (usually its default route.)

    3. Re:"/" is read as "over" by IBitOBear · · Score: 1

      Sorry, My bad... I actually knew that (not the HDLC-esque part, but the IP frame "goo" part 8-) but for some reason this whole other thing came leaking out of my head. 8-)

      --
      Innocent people shouldn't be forced to pay for inferior software development.
      --"Code Complete" Microsoft Press
  109. Bull F*ck by Exousia · · Score: 1

    Packets WILL need to be resent if they get lost. What bullshit. Packets generally don't get lost in this day and age, but it is POSSIBLE. So I say, Bull Shit.

    --

    --Slashdot: News for Turds. Stuff that Splatters.
  110. So Basically, Fuque Them! by Exousia · · Score: 1

    It doesn't work. Somebody is full of sh*t here. And we all know who it is.

    --

    --Slashdot: News for Turds. Stuff that Splatters.
  111. No!!! What Bull Sh*t is ALL is. NORTON and RALPH!! by Exousia · · Score: 1

    No, I say, fuque, fuque, fuque, all of this. It isn't necessary. It is people trying to gain a reputation. It isn't necessary. TCP works fine. It'a all total bullshit and we all know it.

    --

    --Slashdot: News for Turds. Stuff that Splatters.
  112. What problem does this fix? by johne_ganz · · Score: 2, Insightful
    Up front, I believe that their product/solution/answer to the "TCP Problem" is specious, at best.

    First order of business is "What is the problem?" This is never really adequately defined, near as I can tell. Some vague references to some "problems" with TCP without any objective data to support the statements. Since a solution is being proposed to a problem, we need some way to measure the problem objectively. How else can you tell if your proposed fix is better or worse than the baseline? Since the problem is never defined in any detail, and certainly never to a point of which you can measure, and the fact that there is no objective data, makes the whole thing totally suspect right from the start. In a nutshell, extraordinariy claims without extraordinary proof

    Regardless, there are some nuggets here and there that we can pick apart (from the website):

    #1 Rateless Internet is an Internet transport protocol implemented over UDP, meant as a better replacement of TCP. TCP's legacy design carries a number of inefficiencies, the most prominent of which is its inability to utilize most modern links' bandwidth.

    #2 This problem stems from the fact that TCP calculates the congestion of the channel based on its round-trip time. The round-trim time, however, reflects not only the congestion level, but also the physical length of the connection. This is precisely why TCP is inherently unable to reach optimal speeds on long high-bandwidth connections.

    #3 A secondary, but just as impairing, property of TCP is its inability to tolerate even small amounts (1% - 3%) of packet loss. This additionally forces TCP to work at safe and relatively low transmission speeds with under 1% loss rates. Nevertheless, our extended real-life measurements show that highest throughput is generally achieved at speeds with anywhere between 3% and 5% loss.

    Point #1 is a claim without any evidence to back it up. Now most of us may think there is a hint of truth to this from experience. The danger lies in making an assumption that the problem is TCP. It could be a bad implementation of the stack you're using, some kind of packet loss in the path, or you're just trying to send too much data given the conditions of the test (ie, a Pentium 90MHz trying to fill a 10Gb/sec pipe). There's just too many variables that influence the amount of link utilization to make such a generalized statement that "TCP is inherently unable to reach optimal speeds on long high-bandwidth connections". There was a time when two Sun machines sitting next to each other couldn't utilize the entire capacity of a half duplex ethernet, for example. Yet it's not uncommon to have more bandwidth to your home via cable/dsl and make full use of it even on cross country/inter continental links these days without a whole lot of change to the fundamentals of TCP. Therefore, it's unreasonable to conclude that TCP is the cause of any of the problems, perceived or real, considering the history of TCP and it's scaleability over time and total lack of any effort to rule out other causes.

    Point #2 is a case of where a little bit of knowledge is much more deadly than none at all. I'd be willing to chalk this one up to a marketing person's copy than any particular design insight by the developers, but it's spooky that it's there. At a fundamental level, queueing theory tells us that the average time for a unit to be processed in a queue is related to the depth of the queue. If there's nothing, or effectively nothing, in the queue when your packet arrives, there is no delay in sending the packet. However, the delay grows as the depth of the queue grows. This shows up as variability in the round trip times of packets, relative to each other. Also known as "jitter". Therefore, no jitter means there are no queueing delays, which means that there isn't much traffic competing for access to the links. High jitter means there are a lot of packets competing for access to a link, and therefore much more likely to be c

  113. DCCP is also looking at these types of issues by kiwi_mcd · · Score: 1

    There is also work under way to approach this sort of issue using a new protocol called DCCP. DCCP sits on top of IP rather than UDP or TCP so is at a lower level. DCCP stands for Dynamic Congestion Control Protocol and has some reasonably interesting people behind it. Here are some links referencing it: http://www.icir.org/kohler/dcp/ http://www.ietf.org/html.charters/dccp-charter.htm l I'm actually looking to do a PhD in research on DCCP shortly so this discussion is quite interesting!

  114. FAST TCP by physman · · Score: 1, Interesting

    There was something about stramlining the TCP protocal which could speed up the internet and other networks. See http://www.newscientist.com/news/news.jsp?id=ns999 93799 and http://en.wikipedia.org/wiki/FAST_TCP

    --
    Murphy's Law of Research: Enough research will tend to support your theory.
  115. TFTP performance is just fine by billstewart · · Score: 1

    TCP performance isn't blazingly fast, because as you say it's a really simple protocol. But that just means that you shouldn't use it for things it's not designed for - it's a really fine protocol for downloading operating system code to a chip that's running a minimal bootstrap environment and doesn't have anything better to do until it's booted, as long as you're running it in a relatively benign environment.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
    1. Re:TFTP performance is just fine by AuMatar · · Score: 1

      I assume you mean "TFTP performance". In which case I agree. It has its uses, especially in the embedded world. I was just correcting the parent post in mine, he claimed FTP used UDP for performance. Using UDP for performance for a full featured FTP would require basicly emulating 95% of TCP over UDP.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    2. Re:TFTP performance is just fine by Anonymous Coward · · Score: 0

      Roger that. I use TFTP for PXE network boots (which replaced slow-loading floppy disks) as well as transferring configuration files from one managed network switch to another. I also used to use it for downloading fimware into various devices. TFTP rocks... where appropriate.

  116. TCP's shortcomings, IPv6, and TCP for IPv6 by billstewart · · Score: 1
    TCP does have real shortcomings that need to be fixed.
    • The standard implementations have window sizes too small for environments with high bandwidth*delay products
    • but there are various hacks and workarounds people have done for this
    • There's also a need to play in the IPv6 world, including all the different layers like DNS.

    IPv6 does provide bigger addresses, though classless addressing, firewalls, and NAT have given us an extra decade or two of slack. It's also supposed to give us mandatory built-in security, though IPSEC is a stopgap for that, and it's supposed to improve routing by providing hooks for things like geographical aggregation of IP addresses, though I don't think the real world has really deployed any implementations of that.

    As you say, however, they don't provide much justification for this being better than TCP (and I couldn't find much besides the Slashdot article claiming they did), much less being a general-purpose replacement for it. In particular, it doesn't appear to do any congestion control, at least in the parts that are documented - it does have an option for varying transmission rate so that it can share bandwidth with other protocols rather than hogging the whole pipe, but there's no documentation indicating that it attempts to solve simple problems like transmission from a fat port to a skinny port, much less sharing bandwidth between large numbers of sessions or accommodating buffer congestion on the receiving device, which TCP has done lots of work on over the years.

    There are some things it does that are interesting, and it may be an especially useful tool for multicasts where TCP isn't appropriate (there's been tons of work on reliable multicast protocols over the last decade or two, some of which is actually usefully implementable - this stuff may help, if integrated well, because you'd really like to minimize packet losses and retransmissions in a multicast environment, as well as not maintaining large numbers of 1:1 sessions.)

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  117. Time to dust off NetBIOS? by quarkscat · · Score: 1

    If the new Microsoft strategy of web-served
    office applications metered by usage, in
    conjunction with web-based storage (ala
    WebTV), and enforced by DRM and "Trusted
    Computing", why wouldn't M$ also force
    NetBIOS back down our craws?

  118. Re:SCTP (and other neat protocols) by LegendLength · · Score: 1

    I was halfway through an medium sized SS7 project before it was canned by our client.

    Happiest day of my life.

  119. Encryption? by Anonymous Coward · · Score: 0

    While we're developing a new protocol, it needs to be designed so that the data encapsulated within it can be easily encrypted and decrypted; with anyone from bosses and ex-lovers to the FBI trying to snoop on what people are reading, writing, or downloading, encryption at the packet level seems like the only real solution, since it's unreasonable to expect EVERY software program in the world to suddenly start supporting encryption of userdata at the program level...

  120. Maymounkov is Bulgarian for... by Anonymous Coward · · Score: 0

    Maymounkov in Bulgarian means Monkey's (of Monkey) and is pronounced My-moon-khov.

    I am not monkeying around, look it up for yourself in the English-Bulgarian Dictionary.

  121. TCP isn't getting old by TheLink · · Score: 1

    TCP has no problems saturating links in most real world conditions.

    It has problems saturating links when you have a single _short_life_ TCP connection over a very high bandwidth link and high latency link.

    When you have MANY tcp connections from many users it works fine. And this is the situation for us (the many), and I forsee it will remain so - e.g. the bandwidth demands of a hundred million customers vs the bandwidth demand of a bunch of researchers.

    Researchers in academic labs can go whip up whatever protocol for their own use.

    So I don't see this replacing TCP, especially given the limitations of using FEC.

    FEC has costs - you need to transmit redundant data - so you can't use 100% of the bandwidth. You probably need to interleave packets so that a burst doesn't wipe everything out - this leads to latency. The interleaving has to take account of the longest typical/common error burst/interruption will last.

    Where I see this being useful is multicast/broadcast or extremely high latency links:

    **Multicast
    Say you are multicasting a 1Mbps stream to 1 million users, since you use multicast you don't need 1 Tbps. But believe me you don't want to receive Acks from 1 million users! Neither do you want tens of thousand users (with suboptimal home systems) asking you to resend packets - because you just don't have spare bandwidth to do resends.

    This is where FEC can be useful. You send a stream with enough redundant data so that clients can reconstruct it. e.g. you send a 1.5Mbps stream.

    However this means clients _ABSOLUTELY_MUST_ now have at least 1Mbps to 1.5Mbps spare capacity (depends on FEC used) - otherwise good luck regenerating the 1Mbps stream! Of course this is the naive case, with some math and smart people you can probably come up with a protocol to cater for users with slower connections - but there will be tradeoffs and it will be "special case" (it'll probably start to look more like download to harddisk first then playing it e.g. super high latency, and a lot less like streaming ).

    This is the problem - there are many low-bandwidth clients on the Internet.

    **Extremely High latency links.
    If you have a space vehicle 10 light hours away, retransmissions and Acks do NOT work very well...

    But if you can't wait 1 second, then FEC still isn't going to be a magic bullet to solve the problem of transcontinental link latency and still maintain high bandwidth.

    You'd need MULTIPLE genuinely independent transcontinental links. Then you synchronize and send your FEC streams over those links. That way spurious interruptions and errors are unlikely to affect all the links.

    But that seems like such a special case.

    Maybe someone can think of how this would be useful to most of us here.

    --
  122. Would this be useful for games? by Trejkaz · · Score: 1

    Games at the moment seem to pick one of two methods. They pick UDP, with their own reliability layer whacked on top (see: any ID software title), or they pick TCP, and suffer lag spikes (see: Ragnarok Online.)

    Would this new protocol provide a way to implement reliable datagrams in a fashion that game protocol designers won't have to keep reinventing the wheel? I'm sick of all this iteration being repeated, again and again, ad infinitum. :-/

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  123. TCP isn't broken... by Money+for+Nothin' · · Score: 1

    ...so let's fix it!

  124. The seven layers by dilvish_the_damned · · Score: 1

    they must be violating them in order to implement suspend/resume. Wonders can be done once you trash the layers. Usually to no good end...
    High latency+high bandiwdth connection can benifit from large window sizes on both ends using TCP + some other optimizations, MS already tries to do away with SYN/SYN+ACK in IE in a bad attempt to accelerate the connection buildup. That said, there is nothing inherently wrong with TCP as a protocol, its just that we suffer from original implementation.
    When TCP was first developed, memory and bandwidth both were at a premium. All implementations thusfar have usually simply followed the BSD code, and standard mutual understandings have been grudgingly accepted allong the way to improve the performance.
    Yep, I proclaim there is nothing wrong with TCP. Only the way we use it.
    Now we have high bandwidth channels for the average person. Cool. Its the high latency channels that present a problem. For this reason we end up with TCP accelerators like Mentat's SkyX product or the Via Sat Linkway or the iPSTAR useage of Nettgain. The main difference is these applications do not require you to recode your user app. And non of them would be needed if TCP were retuned on all endpoints.
    Damnit, quit trying to replace TCP, and quit stepping on the layers.
    Thats my TCP rant.

    --
    I think you underestimate just how much I just dont care.
  125. Ouch, yes, that was a typo by billstewart · · Score: 1

    Thanks.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  126. RFC!!11!111 by jsantala · · Score: 1

    Whoa! Even preparing RFC's! OMG!