Lancast

From EMule Wiki
(Difference between revisions)
Jump to: navigation, search
(+ {{TOC Right}})
(starting to enumerate technical details from http://forum.emule-project.net/index.php?s=&showtopic=136544&view=findpost&p=968646 (will, hopefully, continue later today...))
Line 31: Line 31:
  
 
:: '''Enable Local Peer Discovery''' allows µTorrent to attempt to discover local peers via multicast. If a peer is considered local, transfer rates with the peer will not be limited unless ''Limit local peer bandwidth'' is also enabled. Local Peer Discovery will not be used for .torrent files with the 'private' flag set.
 
:: '''Enable Local Peer Discovery''' allows µTorrent to attempt to discover local peers via multicast. If a peer is considered local, transfer rates with the peer will not be limited unless ''Limit local peer bandwidth'' is also enabled. Local Peer Discovery will not be used for .torrent files with the 'private' flag set.
 +
 +
== Technical details ==
 +
Judging from a quick glance over Sivka's code, implementing '''Lancast version 1''' involves at least the following changes in the code:
 +
 +
* The file <code>Lancast.cpp</code> and the corresponding header <code>Lancast.h</code> are added to the project (the <code>.vcproj</code> file is changed accordingly).
 +
 +
* The file <code>BaseClient.cpp</code> is altered:
 +
** In <code>CUpDownClient::Init()</code>
 +
*** Additional boolean variable <code>m_bLanClient</code> is initialized.
 +
*** ...
  
 
== See also ==
 
== See also ==

Revision as of 03:41, 29 May 2008

Contents

Lancast allows clients in the same LAN (or VPN) to share their files at a very high speed, providing them with the ability of finding sources and files (keyword searches are available only on Lancast version 2; the first version of Lancast looks for ed2k hashes only) inside their LAN or VPN.

Lancast does not require an ed2k server and does not implement a LAN/VPN implementation of Kad network. Lancast relies on UDP multicasting (and thus may require IGMP support in the LAN or VPN where the clients reside; people may use UDP multicast streaming features of the VLC media player to find out whether multicasting works in their net).

It is a common misconception that Lancast uses UDP multicasting also for file transfer. In fact, it doesn't! Files are served over regular (unicast) connections.

For file transfer a modified Upload Bandwidth Throttler is used which provides a separate upload limit for LAN/VPN clients. Simpler implementations of Lancast use just unlimited upload.

LAN/VPN download is usually always unlimited; however, Lancast Version 2 in NeoMule provides its Download Bandwidth Throttler which also has an ability to manage LAN/VPN download speed.

Lancast is not usable over the Internet since multicast is disabled by 99,9% of all providers (except MBONE) and because Lancast wouldn't bring any speed advantages over ed2k/Kad anyway.

Implementations

The Lancast feature is currently available in the following mods:

  • Lancast version 2 — in NeoMule since v4.x,

Lancast is also in the «to do list» of features for the MorphXT, but is not likely to be implemented soon.

Value

Since Webcache has become criticized and abandoned, the Lancast feature now remains as one of the most advantageous tools allowing for Internet providers to economize their external traffic. By promoting the use of Lancast-capable mods of eMule in LANs and/or VPNs, all the file exchange ed2k/Kad traffic between the clients of the same provider becomes local (otherwise the traffic would twice traverse the local/Internet boundary).

Comparison with μTorrent

According to μTorrent help file (Appendix A, «Preferences» section, «BitTorrent» subsection), μTorrent has a similar feature called Enable Local Peer Discovery:

Enable Local Peer Discovery allows µTorrent to attempt to discover local peers via multicast. If a peer is considered local, transfer rates with the peer will not be limited unless Limit local peer bandwidth is also enabled. Local Peer Discovery will not be used for .torrent files with the 'private' flag set.

Technical details

Judging from a quick glance over Sivka's code, implementing Lancast version 1 involves at least the following changes in the code:

  • The file Lancast.cpp and the corresponding header Lancast.h are added to the project (the .vcproj file is changed accordingly).
  • The file BaseClient.cpp is altered:
    • In CUpDownClient::Init()
      • Additional boolean variable m_bLanClient is initialized.
      • ...

See also

Retrieved from "?title=Lancast&oldid=2518"
Personal tools