eMule Pawcio 5 based on 0.43b PAWCIO mod WebSite!!! by Rick164 For a description on "Bandwidth control" tab look below features list.
Binaries:
eMule 0.43b Pawcio 5.0
Sources:
eMule 0.43b Pawcio 5.0 Sources ChangeLog: Zitat:
Pawcio v5.0 02/08/2004
- port to eMule 0.43b
- new code for BC
- PowerShare, HideOS, Selective ChunkSharing, ShareOnlyTheNeed
- ICS |
Instalation notes:
Mainly there is need only to overwrite emule.exe file. If something is not working try clean install:
-create new directory
-put there emule.exe
-create config dir and copy there clients.met, cryptkey.dat, preferences.dat, server.met, (nodes.dat for Kademlia only)
You need to have the most recend update fot Internet Explorer (IE 6.x SP1) for mod to run correctly, otherwise there is conflict between those programs and mod crash after connection to server. 1. Pawcio Bandwidth Control (Tag: "Pawcio: BC") - tab "Bandwidht Control" in Preferences.
Completly new upload/download system -->A. Special algorithm for minimaliziation of opened slots (as an option: can be turn on/off by "Minimize number of opened slots" option)
-->B. Bandwidth Setting in 0.1 kB increaments (Maella idea)
-->C. Simplified options for USS and DSS(now you have to choose only the minimal upload/download and decide how much eMule should use your bandwidth - slider - no more need of % of lowest ping)
-->D. Advanced option for USS and DSS (you can exactly choose what max ping should be and which server to ping)
-->E. Auto managment of Max Connections and Max Connections per 5 second. If you set them too high BC can detect this(auto managment can be turn on/off by Manage of active connections)
Info: BC changes only too high settings (when managment is turned on), if they are resonable, they won't be changed
---> F. Pinging through UDP thanks to Dong, so if your ISP is blocking ICMP traffic you can select "UDP Ping" in "Bandwidth control" tab and it should work (you need to open UDP outgoing port (default 33434) and have administrative right in Windows NT and XP pro). If UDP sending can't be used BC will automatically move on ICMP version.
-->G. Possibility of "catching" whole eMule upstream/downstream within specified limits:
-->--> I: eMule protocol, IP, TCP, UDP header overhead (option "Include Overhead")
-->--> II: TCP connection negotiations (option "Include connections overhead") - empiric calculations
-->--> III: TCP acknowledge packets (option "Include TCP Ack") - empiric (doesn't not take account of RWIN size - only 2.5% of stream)
-->H. Cumulate upload bandwidth to certain slots (as an option - "Cumulate Bandwitdth for upload slots") - idea of ZZ:SlotFocus
-->I. "Session up 1:4 limit" from Morph Next.
-->J. Status of USS and DSS (working, preparing, etc) and all limits (up, down) can be seen on Bandwidth Control Tab (you can enter any value in Connection tab but limits of ratio are preserved, you can see them on Status on Bandwidth Control Tab)
-->K. There is new type of clients: Clients on reserved upload list (ready in any time to start upload):
-->--> - when "Minimize number of opened slots" is not selected, reserved client is added when client on upload queue is just ending its session (so reserved client is able to prepare before taking the freed slot - no delays)
-->--> - when "Minimize number of opened slots" is selected, there is quantified number of reserved clients (algorithm in CUploadQueue::AcceptToReserve)
-->--> - when "Cumulate Bandwidth for upload slots" is selected, reserved clients are very similar to Trickle Slots in ZZUL (so there is rotation between upload queue and reserved upload queue)
-->L. Blue lines added to graphs (in Statistic Window) showing whole current upload and download (with whole overhead)
-->M. Possibility to choose between better control of upload and download or less CPU Usage (for fast connection speed network)
Info:
When "Include connection overhead" is selected you have to set minimum 11kB/s (instead of 10kB/s) for upload limit to have unlimited download, and minimum 3.5 kB/s (instead of 3kB/s) to have 4x ratio.
When "Include TCP Ack" is selected Session up ratio (ZZ:RATIO from MorphNext) is forced. All limits you can see on Status - Bandwidth Control.
2. Features for RELEASERS:
-
Power Sharing from ZZ (safe MorphXT 4.0 implementation). File in Power Shared mode is automatically uploaded with full chunks, regardless what you set in preference.
-
HideOS / Selective Chunk Sharing from SF-IOM mod
- ShareOnlyTheNeed - wistly idea (MorphXT)
- HideOS value and Selective chunk per file basis. Every file can have it's own values (right click on file in Shared Files window), so released files can have HideOS value 1 and Selective Chunk enabled (as Slugfiller recommends) and normal files default value (5)
3. Inteligent Chunk Selection from enkeyDev! - to avoid two or more users choose to download the same chunk, ECS relies only on randomness: users choose randomly *hoping* to choose a different chunk each; in ICS users exchange infos about what chunk is being downloaded ATM, then a user can choose the less-downloaded (priority: spread the file faster); in ICS the user preference "first/last chunk" take importance only when there are NO rare chunks (priority: spread the file); With ICS, the same situation is a release-mode one, then you will choose the shortest-to-complete chunk that is not being downloaded ATM by any other client. This increase the probability you and the other clients would have downloaded different chunks and keep (globally) a complete source for the file, though a couple of sources quit...
4. Tray menu from eMule Plus mod with fast access to Upload Speed Sense (USS) and Download Speed Sense (DSS) options. (tag Pawcio: TrayMenu)
5. USS and DSS now in Scheduler. 6. Winsock2 by eWombat 7. New Credits (as an option in "Extended Settings" - "Pawcio Credits"):
- Range from 1.0 to 100.0
- Multiplier of 3 (instead of 2) ---- ratio = 3 * downloaded / uploaded
- For new clients (downloaded and uploaded data less than 1MB) ratio = 3.0 (instead of 1.0)
- If you have recieved more than 1MB from someone but haven't given anything back user gets ratio = 10.0 * recieved in MB (but not more than 100.0)
- Small bonus for clients that have given you many MB:
- if you get 100MB then user recieve ratio = 50.0 till you give back 108MB
- 50MB - ratio = 25.0 - 55MB
- 25MB - ratio = 12.0 - 28MB
- 9MB - ratio = 5.0 - 12MB 8. Mod version (partially form The Black Hand mod) - see what mods are using other users
9. Transferred clients list from Stormit
10. Configuration of MSS in Connection Tab (from Morph Next and LSD mod)
Short guide (recommended settings):
USS/DSS Group:
- deselect "Max ping allowed"
- URL to ping - select Auto
- select options: "Minimize number of opened slots", "Cumulate bandiwidth...", "Include overhead", "Manage of active connections", "Include connection overhead".
- use slider (above "Max ping allowed" or on TrayMenu) to find best surfing experience.
-Going up slowness - 1000
-Going down slowness - 1000
Limits in USS group:
1. for T-DSL 768/128 (mostly Germany)
- Min upload - 11
- Max upload - 16
-
deselect "Session up
limit" and "Include TCP Ack packets"
2. for T-DSL 1536/256 (mostly Germany)
Min upload - 14
Max upload - 30
-
deselect "Session up
limit" and "Include TCP Ack packets"
3. for 512/128 (mostly France, Poland)
Min upload - 8
Max upload - 15
-
select "Session up
limit" and "Include TCP Ack packets"
Description of "Bandwidth Control" tab: USS (Upload Speed Sense) Group:
USS (work of ZZ :respect: ) and DSS dynamically finds current, best upload/downlaod rate from the range of "Min upload/download in kB/s" and "Max upload/download in kB/s". "Max upload/download in kB/s" can be found automatically by selecting "Auto" box. USS/DSS lower the upload/download when other applications are using your connection or when mule is downloading very fast (lowering upload - important for ADSL user when download can be limited by upload). The key of USS/DSS to work is pinging a host. SS can find the proper host to ping for you (just select "Auto" box, on the right of "URL/IP to ping:" input box). If searching fails (very rearly) it uses host given in "URL/IP to ping". If you know which host to ping
unselect "Auto" box and input own address. By pinging, USS/DSS gets replies from host and on this basis it knows what to do (increase or decrease current upload/download). USS/DSS has to have a value to comapre with received respons from host, this value is "Max ping allowed". It would be the best if you could know what is proper ping for your connection (if you know, then select "Max ping allowed" box and input it). If you don't know, do not select "Max ping allowed" box, instead use intuitive slider above (it will find the proper ping for on the base of lowest ping calculated during preparation of USS/DSS). When you move slider on the left upload/download will be lower but you can surf the net easily, on the right - opposite behaviour.
Minimize number of opened slots - when this option is selected eMule will open less slots than original if it is possible (if less users can take more bandwidth). It means that the chunks will arrive faster to users.
Cumulate bandwidth for upload slots (idea of ZZ: Slot Focus - but a bit diffrent) - when this option is not selected eMule tries to upload to all users on upload queue with the same speed. Selecting this option is causing that eMule always upload to one user (Priority client - no matter wheter he has slow or fast connection) and then rest bandwidth gives for the fastest users (faster spread of chunks). Priority client is always client which was first on upload queue (stayed the longest), thanks to this for every client ("fast", "slow") will be a turn to get data.
Session up limit (1:4) (idea of ZZ, changed by MorphNext) - instead of 1:3 and 1:4 ratio for download (or unlimited when upload higher than 10) there is limit 1:4 for session. As long as you have downloaded less than 4 times the amount you uploaded (or you are uploading higher than 10kB/s) the limit of download is the same as value entered in "Connection tab" (so it can be unlimited). When you have downloaded more - the download is limited to preserve 1:4 session ratio.
Include overhead - eMule upload not only file data. It comunicates with other users (queue ranks, names of files, hashes, etc), server. If you want this upload/download can be included within limits defined in "Connection" tab or USS/DSS.
Manage of active connection - when this option is selected and you have too high values of "Max connections" and "Max connections per 5 sec for your connection, they will be adjusted automatically when needed.
Include connection overhead - not only eMule communicates between users, system and network layer also (on diffrent level). This system communication can take a lot of bandwidth especially when sorces are loaded (SLS system, or a file with a lot sources from server). It's almost impossible to calculate this overhead exactly, but an approximate is acceptable. You can include this overhead within upload/download limits (USS/DSS or "Connection tab"). Keep in mind that to have the unlimited download or 1:4 ratio with this option selected the limits for upload were chaned:
- unlimited download needs minimum 11kB/s upload instead of 10
- 1:4 ratio needs minimum 3.5 kB/s upload instead of 3
Include TCP Ack Packets - every data received needs to be acknowledged (it is TCP ACK packet), so it's generating upstream. The amount of overhead is hardly to calculate exactly, it depends on many settings (e.g RWIN). But as with "Include connection overhead" some approximation can be done (64kB/s downstream needs circa 1.5kB/s upstream). You can include this overhead within upload limits but then Session up
limit (1:4) is enforced.
Status Group:
Here you can see what's happening with USS/DSS, what are the limits of download (limited by settings described above - so you don't have to calculate them) and what host is pinged. USS/DSS can be Disabled / Preparing / Succesfull / Failed.
Time between send/receives:
Options in extended settings. Old eMule (before ZZUL including) has got value 100 for both upload and download. Now official eMule has 1 for upload and 100 for download. Old BC version has 50 for both. Higher value means lower CPU usage, but a bit worse control of bandwidth.
Best Regards,
Pawcio