Re: Updated PFSP specifications

Arne Babenhauserheide <[email protected]> Sat, 18 Apr 2009 20:38:00 +0200
Newsgroups gmane.network.gnutella.devel
Message-ID <[email protected]>
Hi Raphael, 

Many thanks for updating the spec! 

The texts overally looks good, but the extension is problematic for Phex: 

Phex uses the X-Available-Ranges to compute the most common and least common 
segments, so it can start the download with the least common segment, and the 
chance of getting the whole file when some uploaders drop out increases. 

Your change will make this pointless, since we can't know the rarest segment 
anymore, as soon as even one segment is omitted. 


Is there another motivation for this change besides saving bandwidth? 

To save bandwidth, Phex doesn't select segments completely at random, but 
prefers segments adjadent to already downloaded segments, so it gets a less 
fragmented file which results in far fewer seperate ranges. 

(I'm sure Gregor can explain this more exactly)

Would that be a solution for gtk-gnutella, too? It would avoid changing the 
protocol (and shooting the rare-segments-first download of Phex). 

Best wishes, 
Arne

Am Dienstag 31 März 2009 23:10:09 schrieb Raphael Manfredi:
> 5. Extension from gtk-gnutella
>
> Due to header size or bandwidth contraints, a servent may choose to
> truncate the X-Available-Ranges header by only including a random extract
> of the set of total available ranges.
>
> A servent may also choose to not emit X-Available-Ranges on 503 responses,
> for the same reasons.
>
> To still give the client an accurate view on how much of the file is
> available, and signal that the server does not hold the whole file,
> an extra X-Available header MUST be generated.
>
> The format is the following:
>
>     X-Available: bytes 535204
>
> It is perfectly valid to have both X-Available and X-Available-Ranges at
> the same time, although a servent MAY choose to not emit X-Available in
> case the X-Available-Ranges header contains all the available ranges,
> since then the client can compute the amount of available bytes by himself.
>
> However, if the file served is partial, one of the X-Available or
> X-Available-Ranges headers MUST be present in the response.  When a 206 or
> a 416 response is sent back, X-Available-Ranges remains of course
> mandatory.

-- 
-- Ein Würfel System: http://1w6.org - einfach saubere (Rollenspiel-) Regeln.
-- Infinite Hands: http://infinite-hands.draketo.de - singing a part of the 
history of free software.
-- My stuff: http://draketo.de - stories, songs, poems, programs and stuff :)

-- PGP/GnuPG: http://draketo.de/inhalt/ich/pubkey.txt


[Non-text portions of this message have been removed]