Official eMule-Board: Protocol Enhancements - Howto? - Official eMule-Board

Jump to content


  • (20 Pages)
  • +
  • 1
  • 2
  • 3
  • 4
  • Last »

Protocol Enhancements - Howto? Which opcodes to use?

#21 User is offline   DavidXanatos 

  • Neo Dev
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1469
  • Joined: 23-April 04

Posted 18 May 2006 - 07:03 AM

hmmm...
I think, as long as we send a nick we can also send our mod string.
The improvement to be done is to sent our mod string only to mods that displays it and not to the official clinet. We can do it in the following way, we sends it on the first connection and if the hello answer we recives does not contain a mod string we will not send it to the client in the future anymore.

Numeric mod identification is to time intensive, and if a new mod appears all modders must update thair mods, to show the proper mod string, and conflicts between ID's will also be a problem.
To solve the problems we can use a extern universal (readable by all mods), mods.dat file that associate the names to the id's.

For the protocol extensions, i don't think that using common bit maps is a good idea, the comfilct potential is to high.

David
NeoLoader is a new file sharing client, supporting ed2k/eMule, Bittorent and one click hosters,
it is the first client to be able to download form multiple networks the same file.
NL provides the first fully decentralized scalable torrent and DDL keyword search,
it implements an own novel anonymous file sharing network, providing anonymity and deniability to its users,
as well as many other new features.
It is written in C++ with Qt and is available for Windows, Linux and MacOS.
0

#22 User is offline   Xman1 

  • Xtreme Modder
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1955
  • Joined: 21-June 03

Posted 18 May 2006 - 09:09 AM

Quote

We can do it in the following way, we sends it on the first connection and if the hello answer we recives does not contain a mod string we will not send it to the client in the future anymore.

that's the way Xtreme does (Code and idea from morph)
0

#23 User is offline   tHeWiZaRdOfDoS 

  • Man, what a bunch of jokers...
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 5630
  • Joined: 28-December 02

Posted 18 May 2006 - 06:25 PM

That's the way nearly all mods do it however it's still a waste... and concerning the overhead for features: it IS enormous!
Take an allround mod for example with
- ICS
- EDT
- L2H
- SCT
...
EVERY feature will use a separate tag and an integer!! Just to send "1" for "I support it"!!
0

#24 User is offline   BuG 

  • a little bit bugged ... sometimes
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 539
  • Joined: 16-January 03

Posted 18 May 2006 - 11:20 PM

And then I up-/download some Gigabytes. Sorry guys, this discussion is needless in my eyes. When I have a traffic of some Gigabytes, I don't care about some Kilo- or Megabytes overhead for some integers or mod strings.
David is right: As long as we send nicknames we can send a mod name, too. Please, no integer for that. I'm too lazy to permanently update a map of mod integers and I guess I'm not alone. Also, no one needs the bureaucracy of a central managed database or something like that. Who should be the "management department" and what about modders who don't care about a registry database? A periodic updated .dat file costs traffic, too. It would be a farce.

Just my 2 Cents... ;)

Edit: My 1,5 year overall statistics says, I had a traffic of about 150 Gigabytes and an overhead of about 5 Gigabytes. That's a 3% overhead, I can perfectly live with it. How much we could save with your proposals? Not more than a quarter percent, I guess.

This post has been edited by BuG: 18 May 2006 - 11:54 PM

0

#25 User is offline   PacoBell 

  • Professional Lurker ¬_¬ (so kyoot!)
  • PipPipPipPipPipPipPip
  • Group: Moderator
  • Posts: 7296
  • Joined: 04-February 03

Posted 18 May 2006 - 11:58 PM

BuG, on May 18 2006, 04:20 PM, said:

Also, no one needs the bureaucracy of a central managed database or something like that. Who should be the "management department" and what about modders who don't care about a registry database?
View Post
Right on! My sentiments exactly! :D
Sed quis custodiet ipsos custodes
Math is delicious!
MmMm! Mauna Loa Milk Chocolate Toffee Macadamias are little drops of Heaven ^_^
Si vis pacem, para bellum DIE SPAMMERS DIE!

#26 User is offline   tHeWiZaRdOfDoS 

  • Man, what a bunch of jokers...
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 5630
  • Joined: 28-December 02

Posted 19 May 2006 - 08:44 AM

Fine continue sending the modstring - the core is a COMMON tag for the features! This is really needed especially since the devs might want to use one of the used tags sometimes...
0

#27 User is offline   BuG 

  • a little bit bugged ... sometimes
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 539
  • Joined: 16-January 03

Posted 19 May 2006 - 08:51 AM

Sure, why not. But how about the old tag sending clients? They have to be supported, too.

BTW - there are currently enough tags left for use. It's not so exigent. ;)

This post has been edited by BuG: 19 May 2006 - 08:54 AM

0

#28 User is offline   tHeWiZaRdOfDoS 

  • Man, what a bunch of jokers...
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 5630
  • Joined: 28-December 02

Posted 19 May 2006 - 09:00 AM

There are - of course - but it's somehow hmmm "insolent" just to use a tag without asking the devs and ensuring it won't be used...

About compatibility: how 'bout that:

- send the NEW tag(s) only
- if old tags are received then send the old tags in the reply

This would reduce the cost for 4 features from (4*1)+(4*8) bytes = 36bytes down to 1+8 bytes (1 for the opcode and 8 for the int) that's a 75% gain.

This post has been edited by tHeWiZaRdOfDoS: 19 May 2006 - 11:04 AM

0

#29 User is offline   BuG 

  • a little bit bugged ... sometimes
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 539
  • Joined: 16-January 03

Posted 19 May 2006 - 09:13 AM

Yeah, sounds fine but one problem's left: who should manage the single bits of this tag? Who says which bit represents which feature? Where I can make a request for defining a bit for my new feature? That's the same bureaucracy like the mod tag thing would be. :unsure:

Ok, it's the same thing with the tags at the moment and as we know that's not really best. So some kind of managing the tag or the tags would be necessary.
0

#30 User is offline   tHeWiZaRdOfDoS 

  • Man, what a bunch of jokers...
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 5630
  • Joined: 28-December 02

Posted 19 May 2006 - 09:17 AM

I'd propose we define a list of tags for known features... all other bits should be discarded until the proper feature gets adapted...

Right now it's the same bureaucracy (should be bureaucrazy - what an awful word to type!) as one must inform himself about the whole banning scenario plus the used tags list... it's NOWHERE to be found (maybe the wiki would prove useful... I guess when I've collected the info I'll type it down there)
0

#31 User is offline   leuk_he 

  • MorphXT team.
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 5975
  • Joined: 11-August 04

Posted 19 May 2006 - 09:36 AM

tHeWiZaRdOfDoS, on May 19 2006, 11:17 AM, said:

I'd propose we define a list of tags for known features... all other bits should be discarded until the proper feature gets adapted...

Right now it's the same bureaucracy (should be bureaucrazy - what an awful word to type!) as one must inform himself about the whole banning scenario plus the used tags list... it's NOWHERE to be found (maybe the wiki would prove useful... I guess when I've collected the info I'll type it down there)
View Post

I created a stub for you....

http://www.fileshari...col_Information

Please keep a neutral point of view there.
Download the MorphXT emule mod here: eMule Morph mod

Trouble connecting to a server? Use kad and /or refresh your server list
Strange search results? Check for fake servers! Or download morph, enable obfuscated server required, and far less fake server seen.

Looking for morphXT translators. If you want to translate the morph strings please come here (you only need to be able to write, no coding required. ) Covered now: cn,pt(br),it,es_t,fr.,pl Update needed:de,nl
-Morph FAQ [English wiki]--Het grote emule topic deel 13 [Nederlands]
if you want to send a message i will tell you to open op a topic in the forum. Other forum lurkers might be helped as well.
0

#32 User is offline   tHeWiZaRdOfDoS 

  • Man, what a bunch of jokers...
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 5630
  • Joined: 28-December 02

Posted 19 May 2006 - 10:03 AM

Well I added the current SNAFU list :flowers:
0

#33 User is offline   Xman1 

  • Xtreme Modder
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1955
  • Joined: 21-June 03

Posted 19 May 2006 - 10:32 AM

Quote

This would reduce the cost for 4 features from (4*2)+(4*8) bytes = 40bytes down to 2+8 bytes (2 for the opcode and 8 for the int) that's a 75% gain.


hm.. my ints have only a size of 4 Bytes :-k
0

#34 User is offline   tHeWiZaRdOfDoS 

  • Man, what a bunch of jokers...
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 5630
  • Joined: 28-December 02

Posted 19 May 2006 - 11:34 AM

Hmmm a packet-int has 32bits that's 4 bytes, no? Plus an uint8 (=1bytes or 8 bits) for the opcode... anyhow it's a waste... plus it's confusing...
Maybe a dev could check the thread and propose a "mod_feature_tag" or something so we could stay compatible and won't disturb official clients...

EDIT: argh...

Maybe that's right... however just tell me what to do in my case... I want to create a new feature and HAVE to tell others that I support it...
I could re-use the existing flags but then I'd loose the ability to allow others to view my shared files :(
0

#35 User is offline   SiRoB 

  • Retired Morph Dev
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1691
  • Joined: 28-June 03

Posted 19 May 2006 - 11:35 AM

@tHeWiZaRdOfDoS
To demystify all thing that have been said above.

Overhead created by modstring is a billion less than the overhead created by ip protocol du to not optimized ip fragmentation and a trillion less than silly feature like dropping feature...

If the overhead is realy the main factor for you:
- just stop implementing additionnal feature that use ip protocol
- concentrate your power into an enhanced source exchange (no new opcode needed and great chance to reduce overhead).

And finaly there is realy many other thing to do than implement other extended protocol.

[edit]sorry though you were not going to post.
Well do what ever you want.
But don't expect official dev to provide you any kind of answer.
I think they got enough headache to provide backward compatibility for their feature, so i'm sur they will not support any other kind of extended flag just to support few mod.[/edit]

This post has been edited by SiRoB: 19 May 2006 - 11:41 AM

eMule 0.47c MorphXT v9.5 ::binary::source::
0

#36 User is offline   Andu 

  • Morph Team
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 13015
  • Joined: 04-December 02

Posted 19 May 2006 - 11:35 AM

Just check out what Dave and netfinity did with SCT. It's exactly the same problem.
Three Rings for the Elven-kings under the sky,
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.


Dark Lord of the Forum


Morph your Mule

Need a little help with your MorphXT? Click here

0

#37 User is offline   Kry 

  • No Support
  • PipPipPipPipPipPipPip
  • Group: Member_D
  • Posts: 2018
  • Joined: 27-June 03

Posted 19 May 2006 - 08:59 PM

Mods should only send mod tags to other mods. And only if they support it. Be it a commond mod capabilities tag for all of you (the optimal solution but would imply you al getting along, which is like the middle-east coming to a peaceful state), or you send your mod tags only to your mod (sending them only if modstring matches).

What makes ABOSLUTELY no sense is that people that don't support a feature keep getting tons of tags taht the client can't process. And that's something I see every day on my side. There are features aMule has that your mods doesn't, i.e., but they only get sent to aMule clients, to avoid disturbing the network.


And please don't start the overhead-is-only-a-3% talk, because ANY overhead is lost data for EVERYONE. Tehre are other overhead factors? sure. Does that mean we must ignore the parts we can easily fix? I don't think so.
Retired aMule developer.
Minister of Strange Operative Systems and Sarcasm (S.O.S & S) in President Birk's New World Order
0

#38 User is offline   Howe 

  • Splendid Member
  • PipPipPipPip
  • Group: Members
  • Posts: 236
  • Joined: 29-December 02

Posted 20 May 2006 - 05:55 PM

It's a goode idea, like the emule_misc_options tags.

eMule Antares vs Sundawner 1.1b12 & LCT - little CPU-Tool v1.40
eMule AvS use Clientanalyzer & Antileech
Greats to Wizard for its assistance for some problems
Links:
AvS Mod AvS Website
Howe is Member of Nabu nabu.de
0

#39 User is offline   tHeWiZaRdOfDoS 

  • Man, what a bunch of jokers...
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 5630
  • Joined: 28-December 02

Posted 20 May 2006 - 06:14 PM

And btw: I checked out the NeoMule code in detail and I'm shocked - I will (of course) NOT adapt anything from them... it's... awful!

[OT INFO]
Not only that David introduced lots of nonsense additional tags without asking a dev, he also introduced a bunch of opcodes which can't be used now... and with which I get spammed regularly, that is, like Kry said, really really bad behaviour!

However it continues! He also "enhanced" ICS to v2 without asking all other modders using that old enkeydev feature! He also misused the ICS opcode for SCT... we can't use the upper bits for something useful anymore now...
That leaves us 2 choices: adapt or send it to trash - really nice... :(
[/OT INFO]


This is exactly what I want to prevent! No, what I want is to stay compatible if possible and by any means necessary!
However I have to check what Netfinity did to avoid that problem... I hope he's not abusing any tags, too... will update soon!
0

#40 User is offline   SlugFiller 

  • The one and only master slug
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 6988
  • Joined: 15-September 02

Posted 20 May 2006 - 06:43 PM

The proper method of creating a new protocol extension:
1. Create a new tag, with a string name describing your feature. It's value can be anything, doesn't really matter. An integer version number(1 for first revision, 2 for second, etc) would work pretty well.

2. Add code for sending and receiving said tag in the hello packet. It would be fairly similar to the modID code, with slight exceptions. Doing this should not get you banned. Any mod that bans string-named tags will probably hit the report rule violations immediately.

3. Utilize the protocol with any client sending said tag. That is, if the tag is received, send the messages for the given protocol, and receive them. If the tag was not received, and you receive a message with an opcode matching the protocol, you should ignore it none-the-less and treat it as an unrecognized opcode.

4. Once the feature has matured and tested, and the final protocol is decided, go to the mod forum and query for the availability of single-byte opcodes for both the feature's tag and the protocol opcodes. That is, offer numbers, and modders will say if they collide with their own features. Once you find a free opcode, replace the tag names and opcodes in your feature as appropriate, and release it.
Why haven't you clicked yet?

SlugFiller rule #1: Unsolicited PMs is the second most efficient method to piss me off.
SlugFiller rule #2: The first most efficient method is unsolicited eMails.
SlugFiller rule #3: If it started in a thread, it should end in the same thread.
SlugFiller rule #4: There is absolutely no reason to perform the same discussion twice in parallel, especially if one side is done via PM.
SlugFiller rule #5: Does it say "Group: Moderators" under my name? No? Then stop telling me about who you want to ban! I really don't care! Go bother a moderator.
SlugFiller rule #6: I can understand English, Hebrew, and a bit of Japanese(standard) and Chinese(mandarin), but if you speak to me in anything but English, do expect to be utterly ignored, at best.
0

  • Member Options

  • (20 Pages)
  • +
  • 1
  • 2
  • 3
  • 4
  • Last »

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users