Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Technology

UDP + Math = Fast File Transfers 449

Wolfger writes: "A new file transfer protocol talked about in EE Times gets data from one place to another without actually transmitting the data..." Well, the information is transmitted, just not in its original form. I think there are a couple of other places working on similar ideas - wasn't there a company using this for a fast file download application? User would go to download a game demo or something, receive pieces from several different places, and knit them together? Wish I could recall the company's name.
This discussion has been archived. No new comments can be posted.

UDP + Math = Fast File Transfers

Comments Filter:
  • heh.. (Score:5, Insightful)

    by Xzzy ( 111297 ) <setherNO@SPAMtru7h.org> on Thursday December 13, 2001 @10:02AM (#2698456) Homepage
    > These files routinely are mailed on tape rather
    > than transmitted electronically. "FedEx is a
    > hell of a lot more reliable than FTP when
    > you're running 20 Mbytes,"

    Having worked in the industry they mention, I'd hazard that they don't use ftp more because of the illusion of security than anything else. People in the EDA world (which is where I worked, and has a close relationship with chip manufacturers) are immensely paranoid about people getting ahold of their chip designs, because if someone steals that.. you not only lose your next chip, you enable someone else to make it for you.

    These people just don't trust firewalls and ftp yet, but they do trust putting a tape in an envelope and snail mailing it. At the very least it makes someone liable if the letter gets stolen, which you can't do with electronic transfers..

    At any rate, ftp is plenty reliable for transfering 20mb files.. I do it every time a new game demo comes out. :P Maybe they meant 20gb. Cuz I've seen chip designs + noise analysis + whatever take dozens of gigs.
  • Re:Vectors... (Score:3, Insightful)

    by CoolVibe ( 11466 ) on Thursday December 13, 2001 @10:12AM (#2698493) Journal
    > Theory that I learned in college indicates that there is a minimum number of bits that represent any information. Once compressed to that point, you can't go any further.

    Exactly. This is also the point where a equasion to represent the data is going to end up bigger than the data its trying to send. But it depends on the algorythm used too. If the data may be sent out of order, one could try block-sorting and then compressing (like bzip2 does), but since this is UDP, out of order packets will be dropped or either not delt with (I think).

    DISCLAIMER: I am not a protocol god, nor am I trying to be. Just spouting my views :-)

  • Yea, Right. (Score:1, Insightful)

    by Anonymous Coward on Thursday December 13, 2001 @10:13AM (#2698497)
    "FedEx is a hell of a lot more reliable than FTP when you're running 20 Mbytes," said Charlie Oppenheimer

    Who does this guy think he is kidding?? We regulary FTP AutoCad files of 100 Megs and ISO images of 500 Megs with no issues what so ever.

    Sure it might take an hour or or so to complete but, that beats the hell out of FedEx and it's a lot cheaper too. This guy's been smoking a few too many of his own marketing brochures.
  • by Anonymous Coward on Thursday December 13, 2001 @10:18AM (#2698521)
    These guys are implementing a Forward Error Correction mechanism for compression. It's all from research of Michael Luby at Berkeley with FEC and Tornado codes. He is a co-founder of the company. Pretty effective technology for certain applications.
  • How it works (Score:5, Insightful)

    by gargle ( 97883 ) on Thursday December 13, 2001 @10:38AM (#2698643) Homepage
    The EETimes article is extremely poorly written.

    The technique used by Digital Fountain is called Forward Error Correction. It allows a message M with m parts to be encoded into n parts, where n > m. The interesting thing about this is that any m of the n parts will allow the original message M to be reconstructed.

    This means that if a part of the message is missed, the receiver doesn't have to request a resend .. it just continues listening. This is especially cool for multicast transmission since even if receivers A and B miss different parts of the message, the broadcaster doesn't have to send the missed parts of the message to the different receivers - it just continues broadcasting since any part can substitute for any other part.
  • Re:FTP Unreliable? (Score:1, Insightful)

    by Fjodor42 ( 181415 ) on Thursday December 13, 2001 @11:09AM (#2698797) Homepage
    It is probably a typo. There would no need to use tapes to mail that amount of data either.
    It should most likely read something like "20Gb"
  • by tonywestonuk ( 261622 ) on Thursday December 13, 2001 @11:13AM (#2698818)
    I expect this system is a little like Raid 5, Used on Hard Drives. Eg, 5 disks, 1 goes down, you still have enough data to restore the failed drive.- This seams simalar to been sent 5 Million UDP packets, 1Million get lost on the way, however, you still can piece together perfectly what you wanted from the remaining 4Million.
  • by gowen ( 141411 ) <gwowen@gmail.com> on Thursday December 13, 2001 @11:20AM (#2698863) Homepage Journal
    your calculation is very optomistic. Imagine if I send you the following data:


    X+Y=4
    X+2Y=5
    2X+4Y=10
    2X+2Y=8
    You made an astonishingly bad choice of equations. If I send you
    X+Y=4
    X+2Y=5
    X+3Y=6
    X+4Y=7
    then you may find X=3, Y=1 from *any* pair of equations you recieve.
  • by StormyWeather ( 543593 ) on Thursday December 13, 2001 @11:28AM (#2698906) Homepage
    Sliding windows is flow control, not error recovery.

    I would trust UDP with anything I would trust TCP with as long as the application does the error checking on the data, which is exactly what they are saying their product does. TCP is really high overhead compared to UDP, and not always necessary. One of the reasons for TCP was so that programers wouldn't have to deal with as much, but if you can make something that handles it more efficiently then you only have to send a retransmit request whenever there is lost data, and not after every window.

    Maybe it's my tendacy to fight for the underdog but I feel UDP has gotten the shaft. It's a great way to slam traffic around, and as secure as your application is written to make it.

    Nice little doc over TCP and sliding windows for anyone that might want one. [cisco.com]
  • by mikeee ( 137160 ) on Thursday December 13, 2001 @11:42AM (#2698988)
    Digital Fountain claims that TCP connections with RTT of 200ms and 2% packet loss have a bandwidth limitation of 300kbps, no matter how fast the actual transport channel is.

    First, 2% packet loss is terrible, even on a WAN.

    Second, 200ms is terrible latency, unless you're crossing an ocean.

    Neglecting packet loss (which ought to be neglectable, though admittedly isn't at 2%), your maximum TCP throughput will be (TCP Window Size)/(2 * Latency), or the bandwidth, whichever is more. That comes to about 1280kbps on that 200ms link if you aren't using TCP window scaling options, and much higher if you do.
  • by BlueUnderwear ( 73957 ) on Thursday December 13, 2001 @11:55AM (#2699059)
    As some people have mentioned, you can use UDP with FEC to achieve some error correction. But meta-content can handle long burst errors, whereas FEC is only appropriate for short, random errors.

    This depends on the parameters of your FEC algorithm. Most FEC algorithm do indeed divide the data to be transmitted into "slices" of n blocks, to which they add k blocks. If more than k blocks are lost per slice, you're SOL, even if enough extra blocks are available in other slices. However, there is a way around that: just tune your FEC algorithm so as to make n large enough that all of your file fits into one slice.

    The downside of this is that the larger the slice is, the more computationnally intensive it is. If the only thing you're concerned about are burst errors, just interleave your slices.

    You can literally unplug the ethernet, wait a while, and plug it back in, and you're still good to go with Digital Fountain, as long as you listen long enough.

    This is possible with run-of-the-mill FEC algorithms as well, as long as you put your entire file into a single giant slice.

  • by Animats ( 122034 ) on Thursday December 13, 2001 @02:54PM (#2700025) Homepage
    The article claims that there's no overhead added, in terms of extra data, to transmit data in this way. That has to be wrong. If you add redundancy, you have to add bits. Maybe not very many, but some. Basic thereom from Shannon.

    I'd guess they have to send about 2x as much data as the original for this to work. Maybe they're applying a compressor (like gzip) up front, and taking credit for that.

    As others have pointed out, there are lots of other schemes in this class. Bear in mind that this is a protocol for broadcast and multicast, not general file transfer.

  • by Anonymous Coward on Thursday December 13, 2001 @03:02PM (#2700075)
    Basically it is non-destructive version on mp3ing music.

    You convert a digital document into a mathematical function which when applied retrieves the elements one by one composing the document.

    Mp3 do the same but in addition, they remove what you don't hear to make the mathematical function easier to produce (actually it is discreet values for a Fourier equation that is calculated, but the idea is the same).

    Now, as to how they can charge so much, I have no clue. I am sure a skilled university student could do the same... unless there is a new 'patent protected' sticker on the package.

    Artaxerxes
  • by Anonymous Coward on Thursday December 13, 2001 @05:57PM (#2701250)
    This has nothing to do with compression or cryptography. Basically these guys are using Forward Error Correction (FEC) which amounts to adding enough redundancy to the bitstream that the message can be recovered at the other end even if a certain number of bits are lost along the way. They are assuming that the extra bits required for the redundancy is less than the extra "back-and-forth" bits required for FTP over TCP. If such is the case, then you get better throughput.

    FEC is widely used in transmission media like cell phones and cable modems. These channels regularly introduce all kinds of distortion and interference. It's the use of FEC that allows you to still hear conversations despite the interference.

    There are basically two kinds of FEC -- block codes and convolutional codes. Block codes are just that. They take in a block of bits (say N) and spit out (N+K) bits. The K is your added redundancy more or less. Convolutional codes operate like finite state machines. They continually take in a stream of bits and spit out more bits at a higher rate. Tornado codes, which these guys use, are (I believe) a type of block code. Most digital cell phones use a convolutional code. In fact, the founder of Qualcomm, Andrew Viterbi, is the "inventor" of the mechanism by which convolutional codes are decoded.

    Hope this helps.

Term, holidays, term, holidays, till we leave school, and then work, work, work till we die. -- C.S. Lewis

Working...