Gnutella Forums  

Go Back   Gnutella Forums > Current Gnutella Client Forums > Phex (Cross-platform) > General Discussion
Register FAQ The Twelve Commandments Members List Calendar Arcade Find the Best VPN Today's Posts

General Discussion For anything which doesn't fit somewhere else (for PHEX users)


Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old August 1st, 2009
Disciple
 
Join Date: August 1st, 2009
Posts: 11
Lovric is flying high
Default Streaming Phex features with extension if gnutella protocol

Hello,

Is it possible to add streaming P2P features within PHEX ?
The Gnutella protocol seems to be only applicable to files. Maybe an extension of the protocol is necessary. I need such new features to transmit live P2P video for eseco systems web3.0 appliances.
____________
Ivan Lovric
ESECO SYSTEMS
ESECO SYSTEMS
Reply With Quote
  #2 (permalink)  
Old August 1st, 2009
arne_bab's Avatar
Draketo, small dragon.
 
Join Date: May 31st, 2002
Location: Heidelberg, Germany
Posts: 1,881
arne_bab is a great assister to others; your light through the dark tunnel
Default

For ideas what to change you could look at peercast: PeerCast P2P Broadcasting

They seem to use Gnutella internally (though I don't know if it's an old version - if my memory serves me right they only supported Gnutella 0.4 for quite some time).
__________________

-> put this banner into your own signature! <-
--
Erst im Spiel lebt der Mensch.
Nur ludantaj homoj vivas.
GnuFU.net - Gnutella For Users
Draketo.de - Shortstories, Poems, Music and strange Ideas.
Reply With Quote
  #3 (permalink)  
Old August 10th, 2009
Disciple
 
Join Date: August 1st, 2009
Posts: 11
Lovric is flying high
Default Peercast is too old

Hello,

I tried to use peercast, however the version seems old and it is not maintained since 2007.
However, I will look at their source to see if it is possible to merge it with jtella, and extend the gnutella protocol.
__________
Ivan Lovric
ESECO SYSTEMS
Reply With Quote
  #4 (permalink)  
Old August 11th, 2009
arne_bab's Avatar
Draketo, small dragon.
 
Join Date: May 31st, 2002
Location: Heidelberg, Germany
Posts: 1,881
arne_bab is a great assister to others; your light through the dark tunnel
Default

AFAIK jtella is even older than peercast.

If you want to use an up-to-date java-based Gnutella client, just have a look at Phex (at least if you want to have a chance to see your improvements in the mainline client).

- Phex sources: http://www.phex.org/wiki/index.php/Subversion
__________________

-> put this banner into your own signature! <-
--
Erst im Spiel lebt der Mensch.
Nur ludantaj homoj vivas.
GnuFU.net - Gnutella For Users
Draketo.de - Shortstories, Poems, Music and strange Ideas.
Reply With Quote
  #5 (permalink)  
Old August 12th, 2009
Disciple
 
Join Date: August 1st, 2009
Posts: 11
Lovric is flying high
Default Interoperability tests with PHEX

Hello,

I have found two versions of JTELLA (Jtella-07 very old 2001, and Jtella-08 more recent 2003).
A Jtella-07 peer doesn't work with a peer Phex because Phex only accept ultrapeers, so I get 503 error codes.
The Jtella-08 seems to be able to connect with Phex because a jtella08 peer can act as an ultrapeer, so I don't have the 503 error anymore. However, I still have some issues when querying files. I will look at both source codes to see if this is an inteoperability issue.

I did also some tests with Limewire but that doesn't work at all (even when I try to connect a Limewire peer with a Phex peer).

After fixing these protocol issues, I will try to extend it with streaming features using peercast.

Have you any ideas about the interoperability issues ?
Reply With Quote
  #6 (permalink)  
Old August 12th, 2009
Phex Developer
 
Join Date: May 9th, 2001
Location: Stuttgart, Germany
Posts: 988
GregorK is flying high
Default

Yes, firewall detection issues.
Phex will not reply with search results if it determines that downloads won't work anyway because both nodes seem to be firewalled.
__________________
Reply With Quote
  #7 (permalink)  
Old August 13th, 2009
Disciple
 
Join Date: August 1st, 2009
Posts: 11
Lovric is flying high
Default TCP checksum is bad

To try interoperability tests within Phex and Jtella, I use the wireshark sniffer.
It seems that Phex truncates the TCP packets (Connect, pong...) which results in bad TCP checksum. This error causes Jtella to close the connection. (I attached the wireshark file).
192.168.1.221 is Phex
192.168.1.78 is Jtella
Attached Files
File Type: txt PhexVsJtella.txt (10.3 KB, 597 views)
Reply With Quote
  #8 (permalink)  
Old August 13th, 2009
Phex Developer
 
Join Date: May 9th, 2001
Location: Stuttgart, Germany
Posts: 988
GregorK is flying high
Default

Sorry but I can't really believe that Phex is truncating anything on TCP level. The implementation is very high level and is not doing anything TCP related.
If anything is truncated at such a low level, its either because of a bug in the Java VM, OS or something similar.
Additionally there are no connection problems with other client. I assume the interoperability problem is not caused from such a low level problem like faulty TCP packages.

Gregor
__________________
Reply With Quote
  #9 (permalink)  
Old August 13th, 2009
Disciple
 
Join Date: August 1st, 2009
Posts: 11
Lovric is flying high
Default TCP checksum is bad

Yes, it seems that the TCP checksum is not the real cause the problem.
After looking deeper in the source and doing some more tests, I see an interoperability issue in PHEX and Jtella.
The Gnutella RFC 0.6 says in section 2.3:
"Servents SHOULD remove any GGEP blocks from Ping, Pong and Push
messages before sending those messages to hosts that have not
indicated GGEP support."
Here, PHEX has not seen that Jtella-0.8 doesn't support GGEP, but sends the GGEP extension anyway. This causes Jtella to discard the PONG message due to a wrong payload exceeding 14 bytes.
AFter modifying some code in JTella, the PONG message coming from PHEX is now accepted, but I guess that a correction should also been done in PHEX, to avoid sending GGEP extensions to servents that doo not support this feature.

______________
Ivan Lovric
ESECO SYSTEMS
Reply With Quote
  #10 (permalink)  
Old August 13th, 2009
Phex Developer
 
Join Date: May 9th, 2001
Location: Stuttgart, Germany
Posts: 988
GregorK is flying high
Default

I just added the code to drop the GGEP data from pongs to SVN. I have no tested if it works correct, can you please do this...
You can get the changes directly from the Phex SVN or sometimes tonight or tomorrow from our automated build system (in case its running correctly): Index of /snapshots

I only did this change because it was quite easy to integrate, though actually I don't believe it is necessary to still support outdated nodes that don't yet support GGEP extension...

Gregor
__________________
Reply With Quote
Reply

Tags
eseco systems, m2m, streaming, videosurveillance, web3.0


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -7. The time now is 11:20 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.