
Faster P2P By Matching Similiar Files? 222
Andreaskem writes "A Carnegie Mellon University computer scientist says transferring large data files, such as movies and music, over the Internet could be sped up significantly if peer-to-peer (P2P) file-sharing services were configured to share not only identical files, but also similar files.
"SET speeds up data transfers by simultaneously downloading different chunks of a desired data file from multiple sources, rather than downloading an entire file from one slow source. Even then, downloads can be slow because these networks can't find enough sources to use all of a receiver's download bandwidth. That's why SET takes the additional step of identifying files that are similar to the desired file... No one knows the degree of similarity between data files stored in computers around the world, but analyses suggest the types of files most commonly shared are likely to contain a number of similar elements. Many music files, for instance, may differ only in the artist-and-title headers, but are otherwise 99 percent similar.""
Nickelback? (Score:5, Funny)
Well, sure, if you're only looking at Nickelback [thewebshite.net] songs.
Comment removed (Score:5, Informative)
Re:Nickelback? (Score:5, Interesting)
DHT even supports partially corrupted files, your client just discards the corrupt data.
My question is, why would I want to use SET over DHT? Does SET not need a ceneralized server, or does it have any other advantage at all?
TFA is really short on technical details, but it sounds to me as though SET is just a re-design of DHT. Still, I imagine SET support will be in the next builds of all the major bittorrent clients if it ends up being worth something.
Re: (Score:2)
Re: (Score:2)
Re:Nickelback? (Score:4, Informative)
For instance, if I'm uploading my "Songs I Like to Dance To" mp3 mix, and someone else is uploading an "All-Time Greatest Dance Hits" CD rip, and there are a couple of songs both uploads have in common, SET would enable someone downloading my MP3 mix to treat the CD rip as a partial seed (and vice versa), and pull down the songs held in common from either one.
Whereas DHT would simply enable people to pull down my mix from other people uploading the mix, or the CD rip from other people uploading the CD rip, even if the tracker was down. (If I understand what DHT does correctly. Which it is possible I don't.)
Re:Nickelback? (Score:5, Interesting)
Some P2P protocols allow looking up a file by a hash which does not take filename into account, but this will not handle the case where the files differ in only one small section. The best example is the following:
Person downloads an MP3.
Person finds that the MP3 is not properly tagged (for example, has a comment field saying who ripped it/released the rip, and has no track number.)
Person changes the MP3's ID3 tag
Now, nearly all existing P2P protocols will treat the new file as a completely different file, when in reality the most important contents (the audio itself) have not changed, only the file's metadata.
Other users will go for the "full-file" match with the largest number of sources, thus causing the mistagged MP3 to propagate more than a "fixed" one.
So a P2P system that ignores the ID3 tag when hashing would have significant advantages, in which the user could download the file from many sources and then choose which source to get their metadata from.
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Informative)
Tested on u
Re: (Score:3, Informative)
By "Some", you mean "Every Single Frickin' One Of Them", right?
No. Only the most brain-dead P2P protocols will. "tree" hashes are in use by several P2P protocols. Some are just old or primitive, and have a large number of old servants around that don't understand newer hashes.
Re: (Score:2, Interesting)
Basically - and this isn't the first time this idea has been tabled, I have an unpublished paper and a reference implementation - chuck BT's idea in the bin, as it uses lists of SHA1 hashes and that's not suitable for this. Shareaza's better placed to do this technically, but you could of course adapt torrent.
What you actually want to use is a TTH - Tiger Tree Hash (THEX standard). That's a Merkle hash tree based on TI
Re: (Score:2)
As TFA current describes things, I'm really struggling to find a use for this feature that does not involve copyright infringement. The rightsholders for "legitimate" p2p traffic already have a strong incentive to act as a central authority for low-bandwidth meta-data.
I think th
Re: (Score:2)
Most recent p2p use hashes to recognize files instead of just filename, BUT this makes that music files that are different in their header will come out as different.
This method allows just to distinguish between data and meta-data for the file and allo the meta data to be different.
Anyway, just my understanding of it.
Otherwise, i'm sure they could just do md5 hashes of all your 16k/32k/64k parts of all your shared files and download parts with the
Re:Nickelback? (Score:4, Interesting)
I think what he's talking about may be more like the document fingerprinting algorithms used to pare search engine results, or to detect plagiarism in student papers.
In some cases you will be downloading components of a file from two sources, neither of which have the others' component. The example in TFA was downloading the video portion of a movie from a foreign language site and the audio from a site with the language you speak but less bandwidth.
I suppose another example would be that if you were downloading an anthology of stories, you could take a particular story from a server that hosted a different anthology including that story. Or maybe you are downloading the new distro; you could take some of your files from sites offering the distro version you are looking for, some from sites only offering the files you need to upgrade to that version, and some from entirely different distros or much older versions if they happened to be the same.
I guess it could be thought of as a kind of "fuzzy akamai".
It's an interesting idea, but I don't see any commercial support for it. In fact I see commercial opposition under the current regime of copyright laws and royalty based business models.
Re: (Score:2)
Who needs commecial suport for P2P?
Re: (Score:2)
Well, sure, if you're only looking at Nickelback songs.
Or "theory of a deadman" or "default"
I think they should merge and call themselves Theory of a Nickelfault
=D
Re: (Score:3, Insightful)
The last thing I want is a "similar" file.
What would be a "similar" file to a FreeBSD ISO? It would either be a corrupted file or one with an introduced exploit.
Re:TorrentSoup (Score:5, Informative)
Re: (Score:2)
Thankfully, that's not practical at this time.
You can fairly easily generate 2 chunks with the same md5.
You cannot easily generate a chunk with the same md5 as a given, pre-existing chunk.
Re:TorrentSoup (Score:4, Interesting)
It would be interesting if the implementing software could also look for possible matches within your existing file structure and reduce the data downloaded automatically, kind of like using diff and just downloading the patch.
Re:TorrentSoup (Score:4, Informative)
Re: (Score:2)
Re:TorrentSoup (Score:4, Insightful)
grea tide a (Score:5, Funny)
The music kids listen to (Score:3, Funny)
That'll work great with (Score:2)
No wait, hear me out. Most porn is going to be largely white or black skin colour (particularly with Friesian Cows if you're into that sort of thing), so the P2P can just find a chunk with a similar amount of that colour and download that!
Summary: (Score:5, Informative)
Re: (Score:2)
Re: (Score:2)
Tiny chunks, Large files (Score:2, Insightful)
The article talks about 16kb chunks, which for a dvd image would take more than the torrent protocol currently allows.
The client would spend more time communicating its chunk lists around than actually getting data.
(If I remember rightly, torrents can have a max of 65535 chunks and some servers prevent huge
Re: (Score:2)
meh (Score:2)
there's definitely potential for problem here. what if those files really arent supposed to be the same? a swapped byte here and there could have huge effects on the end result.
Overhead (Score:2)
I'm sure smarter people than I have already thought this out,
but that seems to be the most immediate downside.
"SET divides a one-gigabyte file into 64,000 16-kilobyte chunks"
In other words: instead of seeking out the one master-hash for the file,
your P2P is looking up the thousands of chunk hashes.
Container-aware P2P (Score:2)
Should work just fine... (Score:2, Informative)
This works by breaking files down into clusters and hashing the clusters (like Bittorrent already does). Then it searches for other shares that have clusters with the same hash value, and requests them.
Assuming that the hashing scheme being used it "good" in that there are no collisions, two clusters with the same hash will contain the *exact same* information.
Should work just fine.
Its all just ones and zeros (Score:2)
Shows the real trouble with P2P (Score:2)
This is just an illustration of the fact that P2P is an incredibly inefficient way of transferring files around. Most of the material is not only pirated, but a big fraction of the pirated material is the same stuff. P2P "peers" aren't necessarily nearby, either in a physical or bandwidth sense. So huge amounts of bandwidth are being spent shipping the same stuff around.
If it weren't for the piracy issue, the daily output of the RIAA, which is a few gigabytes, could be distributed efficiently by putti
Re: (Score:2)
P2P is very inefficient.. but the problem is that means that are maximally efficient (e.g. proxies, usenet, etc.) are inaccessible to the masses.
Re: (Score:2)
Yes, if we had "alt.binaries.music.riaa.top40" we could probably cut the world's P2P load in half. At least.
It might be a good move for the RIAA members to do that. They pay radio stations to play the stuff. Why not cut out the middleman and ship direct to consumers?
We may be headed for an era where top-40 music is free, but ad-supported.
in other news (Score:2)
But think of the RIAA... (Score:2)
Blurring the Line Between Data (Score:3, Interesting)
In essence, if you were downloading a music CD, the data chunks could be coming from someone who has an Ubuntu ISO image, or some type of copyrighted material.
With this system it essential becomes impossible to tell who is uploading what.
Re: (Score:3, Interesting)
That being said, about 90% of the commenters missed the point completly, though it is somewhat understandable given how vague and nontechnical the linked article and summa
Re: (Score:2)
As the other reply said, the chances of two chunks, even ones that are relatively small (like 16kb) being identical are very, very small, unless the source data was similar in the first place. So you're not going to be able to download your top 40 CD from all-free sources using that method.
You could do something like reducing the chunk size to 10 bytes or something else really small, and probably be able to find chunks from non-copyrighted sources. (Disregard for the moment the fact that the overhead wou
wondered how long it would take.. (Score:2)
Permuted Local Chunk Versions (Score:2)
At some p
Updates (Score:2)
Re: (Score:2)
Could really work! (Score:4, Funny)
Already been done a long time ago (Score:3, Informative)
Unfortunately, there are some issues with it:
-Only Shareaza supports it, other clients didn't want to play along.
-Shareaza has/d a bug where it would fail to reconstruct the id3 tag after downloading, giving you files with empty tags
-Only mp3 is supported, so no ogg, aac or wma
So this paper isn't as revolutionary (if that's what they mean).
This will only work with identical files that have metadata that is frequently changed by end-users, because there's no way you're going to be able to get a good file if you try to mix a cam with a dvdrip, or an ogg with an mp3, or an xvid file with a divx file. It just doesn't work that way.
Juuuust one problem... (Score:2)
But ID3v2 files occur at the start of the file and have variable size. AVI files might have similar video streams but different language audio tracks, or be interleaved slightly differently, and so forth.
So although similar information might exist in these files, the chances of that information laying exactly on the same chunk boundaries, and thus the chunks having matching MD5s, is pretty low I bet. Even a 1ms
An interesting licensing issue (Score:4, Interesting)
I tried it (Score:3, Funny)
Don't see how it could work on a large scale. (Score:3, Interesting)
How do you know a file is similar? By hashing? There's no guarantee that a particular chunk of a file with an md5 hash (for example) contains the same bytes as that of another file.
There are 2^256 possible chunks of 256 bits of data. There are 2^16 possible hashes with (using a 16 bit binary key) for that same data. That means that for every hash match, the data has a 1 in 16 chance of actually matching.
You can extend the key length to reduce this ratio, but you'll end up with a key length equal to your data size before you're sure the data is not a collision.
The problem gets worse if the chunks of data aren't equal in size.
This can only work if you have a centralized database of every possible file combination on your network. It's workable for a small amount of files, but will grow exponentially in a real environment. Not to mention, the centralized database would have to handle a significant amount of traffic, reducing the speed gains possible.
Count me as skeptical.
perhaps 100% similar (Score:3, Interesting)
Similarity detection rules.
Re: (Score:3, Informative)
Re: (Score:2)
Have you tried ripping the song from the same CD twice in a row and doing a binary diff? Have you then tried it on a different PC with the same codec/bitrate/software? How about on a different OS with the same codec/bitrate?
mod this up -- angio...this is the problem (Score:3, Insightful)
A 200MB, 30min video that was compressed at 1000kbps DiVX is not the "same file with minor changes" as a 200MB, 30min video that was compressed at 900kbps DiVX. They ARE different files and should be treated as such. You also can't deduce anything from their filenames, play length, or any other characteristic so how would you determine which ones can go together and which ones can't? I did not see codecs or compression mentioned at al
Re: (Score:3, Interesting)
Re:Right.... (Score:5, Informative)
(Yes, I'm one of the authors.)
Re: (Score:2)
It sounds like what you are saying is that someone wants to download X, but there are few sources of X. There are many sources of Y, which is really X, renamed. Your tool would download the proper header info from the X source and the majority of the data from the Y sources.
Re:Right.... (Score:4, Informative)
Re: (Score:2, Interesting)
Re: (Score:2)
I think that may depend on if the affected metadata affects the length of the entire file. I'm not sure of BT's hashing function, but I think (let X be a constant that is configurable by the guy making the torrent file) when creating a torrent, it creates a hash of each string of X bytes. Thus, if you make the file a different size (by, say, changing the genre tag from "Jpop" to "J-pop" -- assuming there is no NULL padding in the ID3 tag -- or by removing/addin
Problem with variable insertions? (Score:3, Interesting)
Re:Problem with variable insertions? (Score:5, Informative)
Re: (Score:2)
Compare a video clip that has Nixon saying "I am NOT a crook" with one that says "I am a crook".
Compare a copy of the US constitution which removes the "due process of law" provision with one that doesn't.
Both are 99.9% similar and both may be popular on Bittorent as spoofs, but neither is what you'd want.
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Interesting)
I disagree, this could be done with No Change to any protocol, client, or server: the only thing that needs created is a torrent creator located on a machine that had a full version of every "simular" torrent to be shared. the torrents would all be linked read only to the same DVD image (for exampl), only part of that DVD image would be labeled as "downloaded" and you would put the
Re: (Score:2)
I, however, know that you're wrong, and that bittorrent DOES in-fact work precisely that way.
Then please explain how partial files are shared with bittorrent... They won't have the exact same size and hash until they're completely downloaded, yet everyone is sharing their partially downloaded file... One of the most important
It will still be WORSE. (Score:3, Informative)
I grab an mp3 from person A. I then clean up the tag and rename it to suit me.
You want to download that same song with a different name and different tag.
You connect to person B sharing it. If you're using BitTorrent, you can also connect to any of 99 other people trying to download it from person B.
Using the new model, you could also connect to person A and myself and download the blocks that are the same.
So instead of only...
99 people in the swarm and 1 seeder
you'd
Re: (Score:3, Informative)
It's already been addressed: files encoded with different codecs, bitrates, compression ratios, what-have-you look completely different, have vastly different checksums, and even if named exactly the same and with the exact same file size, would never be confused for each other by any algorithm that's comparing what's actually IN the files.
-l
Re: (Score:2)
I'll admit that I'm definitely not the most educated person in these matters, but I just don't quite "get it". If you are going to download only the differences between two files, doesn't that require that some computer has access to both files and can compare the differences? If one end or the other doesn't have both files, wouldn't you need to transfer the file first to make the comparison? (meaning you'd still need to download the whole thing?)
Anyway, I've thought about this before, even though I don'
Re: (Score:2)
Re: (Score:2)
Yes, that's why I said "you could look at it as just encoding". The extreme case of my example, obviously, is the single bit. Therefore, the most likely candidate for copyright infringement would be the person providing the bittorrent tracker that told you which chunks to download and which order to put them in. However, it doesn't seem like the answer is so clear. If that were the case, then what about conventional bittorrent participants? Are they guilty of copyright infringement, or is it only the p
Re: (Score:2)
Well, yes, I know that you can obviously do a checksum, but that won't tell you which parts of the file have changed. Unless, that is, you run checksums on the individual chunks. However, checksums do not uniquely identify a file. That is, it's been shown that you can manufacture a file to match a given checksum and yet have it be different from the file that the checksum was originally created from.
Part of the reason checksums work so well is that it's extremely unlikely that two given files will have
Re: (Score:2)
More like creating a diff program for binary files, not just text.
thats the part their sharing. IE if you find identical segments in similar files, you can grab the identical segments from either torrent. They even have the example, a trailer.
A better example would be a movie with 3 version, IE a extended version, a theatricle version, and a TV version. If you cut the theater version and TV version from the extended version (after encoding, etc)
Re: (Score:2)
However, there is no
It gets worse. (Score:3)
To paraphrase Morbo: "DOW
Re: (Score:2)
would that make it easier to defend yourself against the MAFIAA? since all they know about is 1 block that matches a copyrighted file (or at least, the hash matches)?
Think about how that would be accomplished. (Score:2)
Your computer would then go through ALL YOUR FILES and advertise the md5 checksums to everyone.
Normally, you just advertise the blocks for the file that you're downloading.
So, I'm downloading a Debian iso
Normally, I would not even be talking to your box.
Suddenly, your bandwidth
Re: (Score:2, Interesting)
Or you can maintain a set of managed/hosted files, exactly like if they were on an rsync server.
As for network efficiency, this isn't Gnutella, we've learned a lot in years of research since then, such as how to make searches that scale well. Very, very well. Well enough to be able
That would be better, but still too big. (Score:2)
And things like md5 are useful because there is such a low probability of collisions (two different files having the same md5 checksum).
And by that same token, the likelihood that two different songs would have blocks of the exact same bits in a block is practically zero.
Their system WOULD work for movies IF they had previously incorporated the
Re: (Score:2)
Re: (Score:2)
Lets say I make a torrent, example-v1.0.torrent, containing file X (with the checksum "foobar"), and file Z (with the checksum "deadbeef"). I seed it, people download it, yippie.
Now lets say later on, file X changes, and now has the checksum "barfoo". So I create example-v1.1.torrent. Under the current BitTorrent system, both file X and file Z wo
Re: (Score:3, Funny)
Re: (Score:2)
downloading parts of completely different files, it's just not relying on file names to find matches.
Re:Snakeoil (Score:4, Funny)
May I suggest you don't open your e-mail and refrain from answering the phone for today? I usually fill up my bullshit quota with those two media alone. Slashdot is just the icing on the cake. ;)
Re: (Score:2)
Re: (Score:2, Insightful)
Okay, I'll admit that there's a few MP3s that have different ID3 tags but the actual audio is the same. A few. The large majority of duplicate songs are NOT the same audio data. It's been re-ripped, transcoded, or some other horrid thing done to it and is not the same data anymore.
Now, even assuming that there ARE tons of very-alike files out there, you'd have to write an intelligent comparer for each one so that it knew how to deal with the file and what informati
Re: (Score:3, Interesting)
It's more then a few. Most people use the default settings in their audio ripper/compression program, and it's all from the same CD. Even more people never uses an audio ripper and/or compressor, and simply downloads the file from the Internet. Not that many people bother to change ID3-tags either, but every single person that do, leads to a different file.
Re: (Score:2, Insightful)
Re: (Score:2)
After spending several ye
Re: (Score:2)
Re: (Score:2)
Well, they're all composed of 1's and 0's, so they must be basically identical. Except for those songs that contain a 2, or a -1.
Re:This could work for some files, but not for oth (Score:3, Interesting)
But the article makes it sound like their custom software breaks up media files into their component streams, which clients can download separately as they desire.
Re:This could work for some files, but not for oth (Score:3, Interesting)
Re: (Score:2, Funny)