织梦CMS - 轻松建站从此开始!

欧博ABG官网-欧博官方网址-会员登入

Reduce Useless Ove欧博rhead

时间:2026-01-03 06:13来源: 作者:admin 点击: 0 次
Reduce Useless Overhead: Don't put firewalled nodes in the routing table

Reduce Useless Overhead Don't put firewalled nodes in the routing table

User is offline

  netfinity 

Group: Members

Posts: 1658

Joined: 23-April 04

Posted 08 October 2007 - 07:28 PM

I've noticed, when putting my eMule behind a NAT on a non forwarded port, that other KAD nodes tries to send KADEMLIA_HELLO_REQ requests aswell as KADEMLIA_REQ packets towards my NAT'ed port. Unfortunatly most of those packets get dropped as they don't come from an IP address that I did recently contact.

Obviously such traffic cause uneccessary overhead and reduce the performance of the KAD network. So my suggestion is that firewalled nodes should in the future just ping the other nodes, using for example the new PING/PONG opcodes that where added lately, to make sure these firewalled nodes never enter the routing table of any node.

Puh, that was a lot of node:s!

eMule v0.50a [NetF WARP v0.3a]
- Compiled for 32 and 64 bit Windows versions
- Optimized for fast (100Mbit/s) Internet connections
- Faster file completion via Dynamic Block Requests and dropping of stalling sources
- Faster searching via KAD with equal or reduced overhead
- Less GUI lockups through multi-threaded disk IO operations
- VIP "Payback" queue
- Fakealyzer (helps you chosing the right files)
- Quality Of Service to keep eMule from disturbing VoIP and other important applications (Vista/7/8 only!)

0

User is offline

  netfinity 

Group: Members

Posts: 1658

Joined: 23-April 04

Posted 15 June 2008 - 09:07 PM

Bumping this thread as eMule still sends KADEMLIA2_HELLO_REQs while being Firewalled. Althought this doesn't really pose any problem for the client sending them it causes firewalled contacts to pop in and out of the routing tables and being returned in search requests coming from other clients. So, bandwidth is wasted by clients trying to contact this firewalled node as they can't get throught.

Btw. I think clients with a low upload bandwidth should also avoid joining as a node in the global KAD routing. KAD uses according to own tests about 1kB/s when idle but only about 40b/s when firewalled and idle. That would make quite much difference on a dial up connection.

eMule v0.50a [NetF WARP v0.3a]
- Compiled for 32 and 64 bit Windows versions
- Optimized for fast (100Mbit/s) Internet connections
- Faster file completion via Dynamic Block Requests and dropping of stalling sources
- Faster searching via KAD with equal or reduced overhead
- Less GUI lockups through multi-threaded disk IO operations
- VIP "Payback" queue
- Fakealyzer (helps you chosing the right files)
- Quality Of Service to keep eMule from disturbing VoIP and other important applications (Vista/7/8 only!)

0

User is offline

  Some Support 

Group: Yes

Posts: 3669

Joined: 27-June 03

Posted 15 June 2008 - 09:20 PM

Sending KADEMLIA2_HELLO_REQ while beeing UDP firewalled is fine imho (without looking closer at it right now), as the Firewalled client should still build up its own routing table, which is needed for search/source requests. However now that the UDP state is explicit checked we should probably tell the remote node about it so that it can act properly (so not adding the firewalled node to its own routing table).
This is indeed a good hint and i will try to get it done for 0.49b.

User is offline

  netfinity 

Group: Members

Posts: 1658

Joined: 23-April 04

Posted 15 June 2008 - 10:08 PM

True that they need to build the routing tables, however they should get all the information they need throught the use of KADEMLIA2_REQ. But yes adding a 'Firewalled' tag to the hello packets would do the job once the majority of the clients start supporting this tag. (actually thought suggesting that)

eMule v0.50a [NetF WARP v0.3a]
- Compiled for 32 and 64 bit Windows versions
- Optimized for fast (100Mbit/s) Internet connections
- Faster file completion via Dynamic Block Requests and dropping of stalling sources
- Faster searching via KAD with equal or reduced overhead
- Less GUI lockups through multi-threaded disk IO operations
- VIP "Payback" queue
- Fakealyzer (helps you chosing the right files)
- Quality Of Service to keep eMule from disturbing VoIP and other important applications (Vista/7/8 only!)

0

User is offline

  Some Support 

Group: Yes

Posts: 3669

Joined: 27-June 03

Posted 15 June 2008 - 10:41 PM

Quote

True that they need to build the routing tables, however they should get all the information they need throught the use of KADEMLIA2_REQ.



Results obtained from KADEMLIA2_REQ cannot be trusted before they are checked to be alive and valid. This is one of Kads security "features" as it makes sure that bad nodes cannot injected and spread (what happens if this fails could be seen on the DNS injection you found

:)

). Now of course we could also use a ping for this, but this doesn't properly checks all the stuff we want to have validated (ID, versions, kad at all)

User is offline

  netfinity 

Group: Members

Posts: 1658

Joined: 23-April 04

Posted 15 June 2008 - 11:17 PM

The suggestion of using the PING/PONG opcodes was primarily because it was already there so there wouldn't be any need to change the protocol then. I didn't think the integrity of the routing tables of firewalled clients would be of much problem as it would only be used for boot strapping search queries and would not spread to other nodes.

Well doesn't matter how it's done, just that we keep them out of the routing tables which could possibly also make KAD searching become a little bit faster as a bonus.

Btw, did you look at my other suggestion about providing information already in the KADEMLIA(2)_RES packet wether it is any point performing a STORE/GET towards the contact responding.

eMule v0.50a [NetF WARP v0.3a]
- Compiled for 32 and 64 bit Windows versions
- Optimized for fast (100Mbit/s) Internet connections
- Faster file completion via Dynamic Block Requests and dropping of stalling sources
- Faster searching via KAD with equal or reduced overhead
- Less GUI lockups through multi-threaded disk IO operations
- VIP "Payback" queue
- Fakealyzer (helps you chosing the right files)
- Quality Of Service to keep eMule from disturbing VoIP and other important applications (Vista/7/8 only!)

0

User is offline

  Some Support 

Group: Yes

Posts: 3669

Joined: 27-June 03

Posted 16 June 2008 - 12:40 AM

Quote

I didn't think the integrity of the routing tables of firewalled clients would be of much problem as it would only be used for boot strapping search queries and would not spread to other nodes.



Well, the aim is to have a all nodes beein resistant against injection (and other attacks of course). With a bad routing table kad will just not work properly (or worse). Also as we need to check regulary anyway and a Hello Handshake isn'T much mroe traffic than the ping, it is the safe way to go

:)


The advantage of your proposal is that its effects would spread faster through the network as less nodes need to update to make it work as intended. But given that it was this way for years and that the security loss would be significant enough (imho), i still prefer the tag/flag based solution.

View Post

netfinity, on Jun 15 2008, 11:17 PM, said:

Btw, did you look at my other suggestion about providing information already in the KADEMLIA(2)_RES packet wether it is any point performing a STORE/GET towards the contact responding.



Yes but i'm not sure about this yet. I do like to keep the protocol "clean" in the way that each packet does excactly what it is supposed todo, and a Kad_Req search is supposed to find other nodes close to a given ID and not to check if you have keywords, notes, sources or future stuff stored about this key. I admit it might save some traffic, but not that much that its a must have. So I will see.. as i said not sure yet.

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2026-01-03 08:01 最后登录:2026-01-03 08:01
栏目列表
推荐内容