Een server is in feite niets anders dan een soort postkantoor (lees doorgeef luik) allerlei cliënts melden zich daar en geven informatie aan de server over wie je bent wat je download en vooral wat je deelt. Al de gegevens (hash codes genaamd) van de geconnecte cliënts worden met elkaar vergeleken en dan worden de juiste cliënts met elkaar in contact gebracht. Alle servers op hun beurt staan ook met elkaar in contact en wisselen die gegevens ook onderling aan elkaar uit, vandaar dat het niet uitmaakt welke server je connect ze hebben allemaal dezelfde gegevens in de database. Het is met eMule zo geregeld (om de servers wat minder te belasten) dat de cliënts ook onderling deze gegevens aan elkaar verstrekken zonder tussenkomst van een server, ja zelfs zonder dat je connect met een server is eMule in staat om uiteindelijk toch te gaan uitwisselen het duurt alleen langer voor je sourses vind maar in principe is een server zelfs overbodig. Ook de optie om bij elke start van eMule een serverlijst op te halen is volkomen overbodig, de laatste keer dat ik ooit een serverlijst heb opgehaald is al meer dan twee jaar geleden. Server lijsten worden ook onderling door eMule cliënt aan elkaar doorgegeven. Zo worden dode servers automatisch verwijderd en nieuwe servers aan je lijst toegevoegd zodra een andere cliënt in je queue komt te staan. Zo blijf je altijd up to date voor wat de servers betreft, en hoef je ze dus eigenlijk alleen de allereerste keer dat je met eMule begint deze lijst op te halen en daarna niet meer (tenzij je door een crash een hele schone installatie op je harddisk moet zetten van bijvoorbeeld Windows) zo werkt het op het P2P netwerk van eDonkey waar je met eMule gebruik van maakt.
Over Low ID en High IDEen ID bij eMule of eDonkey is een code die berekend wordt uit je IP adres en een aantal gegevens van je PC hardware, en zorgt ervoor dat met zekerheid gezegd kan worden dat de cliënt dezelfde is als waarmee geconnect was wanneer je connectie met een server verbroken wordt, en eventueel hersteld. Zo wordt je door de server geïdentificeerd. Dit gebeurt d.m.v. UDP packets, dat is speciaal verkeer tussen de cliënt en de server. Krijg je bijvoorbeeld nadat je de computer uitschakelt en weer aan, een nieuw IP adres toegewezen door je profider (bij dynamische IP toewijzing) dan wordt deze code opnieuw berekend en via UDP verkeer aan de server verstrekt. Een Low ID krijg je toegewezen wanneer de poorten waar het verkeer plaats moet vinden niet of slecht bereikbaar zijn. Oorzaken kunnen zijn een niet juist ingestelde firewall, of Router. Een slechte verbinding of druk bezette lijn bij je profider (vooral met kabel verbindingen kan dat gebeuren). Een slechte responce tijd omdat bijvoorbeeld de PC het te druk heeft met andere zaken enzovoort, in ieder geval zijn de poorten die nodig zijn voor goed verkeer niet of slecht bereikbaar. De servers hebben dat niet graag, omdat het bijzonder veel UDP verkeer tot gevolg heeft en het netwerk als het ware dicht slibt met UPD verkeer, waardoor het uitwisselen van bestanden (dat gaat met TCP verkeer) steeds moeilijker verloopt en dus steeds trager. De meeste servers zullen cliënts met een lage ID negeren (niet toelaten) terwijl de wat grotere servers ongeveer 20% van hun totale capaciteit reserveren voor cliënts met een Low ID. Een High ID heb je al vanaf 1.000.000 het getal kan nog veel hoger zijn, maar dat maakt verder niets uit m.a.w. hoeveel hoger dan 1.000.000 is geen maat voor een snellere download of zo, dus elke ID boven de 1.000.000 is hoog en goed, verder is een eventueel hogere waarde niet van belang.
Om een goede verbinding tot stand te brengen op het netwerk moet je dus een High ID hebben, daarbij zijn de poorten die gebruikt worden van groot belang. De poorten 4661 en 4662 moeten in beide richtingen, zowel voor inkomend als uitgaand TCP verkeer toegankelijk zijn, dit kun je hier eventueel testen, de poorten voor UDP verkeer zijn 4665 en 4672. Wat precies de functie is van de poorten die door eMule / eDonkey gebruikt worden wordt hieronder uitgelegd.
Poorten in eMule
- Poort 4661: gebruikt om een connect request (TCP) naar de server te sturen, en te connecten (in eMule en eDonkey).
- Poort 4662: gebruikt voor het verzenden en ontvangen van de data (TCP) van en naar de cliënt (in eMule en eDonkey).
- Poort 4665: gebruikt voor UDP verkeer tussen cliënts en servers waarmee je niet geconnect bent (in eMule en eDonkey)
- Poort 4672: wordt gebruikt voor UDP verkeer tussen cliënts op het Kademlia netwerk, maar natuurlijk alleen in eMule.
Dit zijn de poorten die hoofdzakelijk door eMule en eDonkey gebruikt worden, sommige cliënts gebruiken daarvoor nog andere poorten, maar 99% van de data transfer vind plaats via poort 4662. Werk je met een firewall of router zorg dan dat deze poorten wijd open staan in de router of de firewall, zodat ongehinderd verkeer kan plaatsvinden anders krijg je een Low ID, en zoals boven beschreven de daarmee gepaard gaande problemen.
Nieuwe ontwikkeling m.b.t. de eMule serversDeze servers gaan zo langzaamaan ook over op nieuwe software en wel de "Lugdunum v16.38 P75" software of hoger. Deze is in staat gebruikers te blokkeren (lees bannen) als je teveel verkeer veroorzaakt op die server. Als je een server met deze software connect krijg je 1200 (standaard, maar is in te stellen) credits, niet verwarren met je eigen credits van eMule die je hebt opgebouwd. Wanneer je je bestanden lijst naar de server stuurt worden er punten afgetrokken (16 per bestand), en naarmate je meer bestanden hebt kost het je meer punten. Er zijn idioten die honderden bestanden gedeeld laten staan. Kom je op nul uit dan wordt je van de server gekicked en gebanned voor een half uur (standaard, maar is ook instelbaar) en kun je niet meer met die server connecten in die tijd. Dit afnemen van je credits op de server gebeurt ook met het zoeken, het UDP verkeer en het pauzeren en hervatten van een download, maar wees gerust credits verdienen doe je ook. Namelijk 1 punt per seconde tot een maximum van 1200 credits, dus als je cliënt zich goed gedraagd blijft e.e.a. mooi in evenwicht. Krijg je ondanks alles dus toch de melding dat je connectie verloren gegaan is dan betekend dat in de meeste gevallen dat je van de server gekicked bent. Niet echt een ramp want als je auto reconnect hebt aan staan pakt ie gewoon de volgende server, en als die met een lagere software versie werkt lukt dat nog wel, dat dit niet lang meer zal duren mag duidelijk zijn. Want wanneer meer en meer servers opverstappen op de nieuwere software (hoger dan p75) houd het gewoon op en ben je afhankelijk van de source exchange in eMule om nog sources (bronnen) te vinden. Het is een manier om de servers een beetje te ontlasten, want zoals je nu wellicht zelf wel kunt zien zijn er een aantal servers die onevenredig zwaar worden belast (zeer veel gebruikers), 't is maar dat je het weet.
Nog even wat achtergrond informatieDe eDonkey P2P server is van oorsprong een bedenksel van Jed McCaleb die één van de trend zetters was van het eDonkey P2P Netwerk. De zogenaamde "slimit module", werd geïntroduceerd door Lugdunum in versie p58, en beoordeeld cliënts op de manier waarop ze zich gedragen t.o.v. de servers. Als de serverload, geproduceerd door een bepaalde cliënt te hoog is dan wordt de cliënt geblacklist door de server. Deze manier van zelf bescherming is noodzakelijk geworden om een stabiele werking van de server te garanderen. Elke cliënt begint zoals gezegd met 1200 credits, en moet credits betalen voor elke actie die de cliënt van de server vraagt. Wanneer de credits zijn opgebruikt wordt de cliënt bestempelt als agressief en geblacklist en niet meer bediend door de server, dit kan variëren van 10 minuten tot twee uur, en als de cliënt zijn gedrag niet veranderd (door het reduceren van zijn UDP requests) zal de tijd dat je gebanned wordt ook steeds meer toenemen.
Tot versie p74: negerenTot versie p74 geblacklist worden zorgde ervoor dat je cliënt gewoon werd genegeerd door de server. Dat betekende dat je cliënt geen antwoord meer kreeg op source requests (het vragen naar bronnen) maar dit werd meestal door de gebruiker niet opgemerkt. eMule source exchange verminderde het effect van bovenstaande maatregel.
vanaf versie p75: verbannenIn versie p75 en hoger werd dit veranderd. Geblacklistte cliënts worden nu van de server gekicked en geblacklist, inplaats van dat de requests worden genegeerd. Om een idee te krijgen volgt hieronder een lijstje van acties die je credits kosten, en hoeveel dat er dan zijn.
Kosten van je acties
- Per data packet (frame): 1 credit
- Per Source request (gevraagde bron): 16 credits
- Per login poging: 100 credits
- Per afgebroken login poging: 900 credits (eMule cliënts met uitgeschakelde "safe connect" optie)
Een login poging die wordt geweigerd omdat de server vol is kost natuurlijk geen credits. Een cliënt die zich aan de regels houd verdiend 1 credit per seconde, tot een maximum van 1200 credits. Dit geld voor twee dingen: de server waar de cliënt mee geconnect is, en alle servers in de serverlijst van de cliënt. Omdat elke server uit de lijst zeer veel afgevraagd wordt naar bronnen via UDP packets. Het is dus van belang je gedeelde bestanden onder de 1000 te houden en je te downloaden bestanden zeker niet hoger dan 40 te kiezen, met 50 downloads tegelijk kom je in de gevaren zone. Schakel als het even kan de safe connect functie in, de safe connect functie zorgt ervoor dat er bij een connect maar met één server tegelijk wordt getracht te connecten. Als deze functie uit staat wordt er met twee servers tegelijk geconnect en degene waarmee je het eerst geconnect bent wordt het, de andere wordt gedropt dit kost je 900 credits dus is het wel de moeite waard om deze optie aan te zetten.
Tips en adviezenHet credit punten verbruik door de cliënt hangt dus af van een aantal factoren, en het enige advies dat gegeven kan worden om niet gebanned te worden is: Probeer niet meer dan 30 bestanden tegelijk te downloaden per keer, en zorg dat je gedeelde bestanden directory niet meer dan 1000 bestanden bevat.
Servers gebruiken die nog oude software draaien is ook geen oplossing, gewoon omdat deze servers je geen bronnen meer geven wanneer je eenmaal geblacklist bent vanwege je overkill aan UDP verkeer.
Tot slotWanneer je cliënts gedrag aanleiding geeft je van een server met Lugdunum versie p75 of hoger te kicken, zal je bij nagenoeg elke server binnen no time geblacklist worden gedurende 10 minuten tot 2 uur en geen bronnen meer krijgen. Die garantie is 100%. Je zult dus geen enkele bron meer vinden op deze servers. De enige manier om nog bronnen te vinden is dan via eMule's source exchange, en dat gaat een stuk trager die zekerheid heb je.
Dit probleem bestaat al maanden, maar nu (sinds eMule v0.30) is het ook daadwerkelijk te zien in je verbose log:
[Anti Blacklisting] Connection to Lugdunum Server Detected (Initial Credits: 1200)
[Anti Blacklisting] Connection Accepted By Server: ProbenPrinz.de
[Anti Blacklisting] Cost: 100 Credits --- Remaining Credits: 1100
[Anti Blacklisting] Sending Shared Files List To Server: ProbenPrinz.de
[Anti Blacklisting] Files: 197 --- Cost: 295 Credits --- Remaining Credits: 805
Wees gewaarschuwd! Het zou jammer zijn als je geblacklist wordt door de servers.