-=[ Sugestion to improve GiT ]=-

Gamer's Internet Tunnel, formerly Gamer's IPX Tunnel

-=[ Sugestion to improve GiT ]=-

Postby Carlos_Ed » Tue May 18, 2004 7:20 am

Hi there. First of all I'd like to thank GiT developer for creating such usefull piece of software. And especially for making it available for free!
I'd like to state here that I believe that there isn't much that can be done to improve even further this program, except for one small thing:

Is it possible create a future version with packet compression technology? Or somehow compress the information on it's communications so that it has less bandwith requirements? The thing is: for example a 4 Player Starcraft game on GiT is impossible over a 128Kbit line. Because the trafic Starcraft generates total almost a 37kb/s transfer rate! :shock: Now this doesn't sound all that much, but for the ones that do not know, a 128Kbit Internet Connection only can do a max. of 16kb/s rate... the result is that the game slows down to a crawl while waiting for packets from all the players. Now I am not asking for a solution to this... I don't think that it is even possible. But I'm sure this situation can be improved so that we don't have to take almost 30 minutes just to get every player's "barracks" done! :? BTW the "barracks" is something that at normal speed it takes less than a minute to build. As we take days to finish a game that otherwise would take an hour or so, it's kind of annoying.

I know I could just use Battle.Net and get up to 8 players without problems. But as it turns out, when you use NAT to share your Internet Connection you can't have all the computers on you home LAN connected to Battle.Net. (God how I hate that!! :x ) So the deal is: we set up GiT to bridge both LANs and play games thorugh that. We have sucessfully played Warcraft III and Starcraft (in slomo mode... ). Every player connected to everyone without problems.

Here's a bit of tech stuff: I don't know how GiT is programmed and I don't have the source code either. But I believe that GiT works very generally like this:

1st -> Listen for packets sepecified on the config. uppon finding them, it forwards them to the specified destinations.
2nd -> Check the Internet for GiT packets and forwards them to your computer and LAN.

Now comes this: How does you GiT knows which internet incoming packets are the ones forwarded by the other GiT? Are they marked? Or it just routes everything that comes in to your computer and LAN (if so, very big security problem here...)? So the compression could be implemented like this:

[Capture] --> [Compress] --> [Forward] --------(Internet)-------> [Receive] --> [Decompress] --> [Retransmit]

Is it possible to do so? I believe it is, but only the author of GiT can answer this...

Now for those people out there having problems, have it occured to you that the guys who created the game made it in a way to make stuff like GiT impossible to use with their game? So what do you think of that?... :wink:
Last edited by Carlos_Ed on Wed May 19, 2004 4:21 am, edited 1 time in total.
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Tue May 18, 2004 10:07 am

In your little diagram, the second [Forward] should be worded more like [Retransmit] but GIT does not know at all what packets are really from the other GIT. If somebody were to spoof packets to your port 213, GIT would happily retransmit them onto your LAN. Of course, that assumes you are using port 213, and also that you are using something like TCP listen server. If you connect with UDP or TCP listen and TCP connect servers, GIT does validate that the packets are received from the proper address you list, and rejects all packets not from that address. That is of course spoofable if somebody knows the exact address you are listening for GIT packets from (very unlikely of course) and you can always use a port other then 213.

It is highly unlikely that compression will be added to GIT. Fistly, many games already compress there game bandwidth, and second, if you really want to try, just tunnel GIT through another program such as ZBD and see how it works then.

Also, it is simple impossible to write a game that supports a LAN mode of game play and have GIT not be able to make it work over the internet. Only games that can only connect to a single or hardcoded master server (think MMORPGs) are really something GIT can not help you with.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby Carlos_Ed » Tue May 18, 2004 10:37 am

Hey, fast reply! Thanks! Adequatly in time for todays fragfest! :D
ZBD? I will see that then... have any details on how do I tunnel GiT through ZBD ? Or is it easy to find for myself?

PS: Got any link for ZBD? I'm having trouble finding it...
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Tue May 18, 2004 11:31 am

http://www.google.com/search?q=zebedee& ... ng%20Lucky

ZBD is not the easiest thing to set up, but its not really that hard either. It adds encryption and compression. You will probably have to tell GIT to connect using TCP connect to localhost port 213 and have ZBD listen on 213 and forward to the remote GIT address.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby Carlos_Ed » Wed May 19, 2004 4:35 am

:shock: OMFG!!

ZBD is not the easiest thing to set up, but its not really that hard either.


... well perhaps I'm doing something wrong? I'm having a hell of a time just to figure out the DOCs. I have set up ZBD server... but I can't get the client to connect! And I'm stuck here. If I'm having all this trouble setting up ZBD, my noob friends will NEVER get it running... I'm close to giving up on ZBD, because we have no problems except the "Starcraft in Slomo Mode". Oh well... :roll:

NOTE: I'm not requesting help on ZBD! This is a GiT forum, lol... I'll have my help on it from somewhere else. Of course if there is a soul out there so kind as to drop here a tiny post on setting up ZBD, I would apreciate it! :lol:
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Carlos_Ed » Wed May 19, 2004 6:27 am

Ok... I successfully set up ZBD... FINALLY! It was about time... I'll post results here after I test this later on with my friends. We are going to try Starcraft being tunneled with GiT through ZBD with compression. Well, if results are satisfactory... would you reconsider adding compression to GiT ? :D I mean, as a feature you can turn on and off... not as a fixed feature. Like that if people get crap results with compression they just simply turn it off to solve the issues. And for the games which do not compress their trafic (I believe many of the old IPX classics don't do it...) turning on compression might improve performance over slow connections running more than 3 players?

PS: I would love to see GiT source code... can I get it? If so, where then?
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Wed May 19, 2004 11:05 am

No, GIT is not open source, but if somebody wants to provide an easy wrapper or example of ZLib, maybe I could consider adding that. Keep in mind that since GIT is free, I can't spend a lot of time working on it right now, since it won't pay my bills :)
Let me know how ZBD goes though, I am curious if its worth using compression at all.
Last edited by Ark on Thu May 20, 2004 1:47 pm, edited 1 time in total.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby Carlos_Ed » Wed May 19, 2004 5:22 pm

Ok, I knew this would happen... my noob friend couldn't set the tunnel up on his side! :? Damn it... why does he live so far from me? LOL Maybe tomorrow we will try again. But I ran a few tests with ZBD on my house LAN and is seems ZBD reduced messages to about 80% their original sizes. But, these values depend greatly on the content being transmitted, in this case I was transfering WinRAR compressed files. :oops:
Anyway, my friend logged on Messenger when I was about to test transmitting other stuff, so we had been trying to set ZBD between me and him all day. Poor guy screwed parameters so bad he ended up with a ZBD server running bzip2 compression tunneling trafic to himself... and he was supposed to be the client! :shock:

As for the zlib wrapper... maybe I can work something, care to say how should I create it so that I can make it easy for you to integrate on GiT? Note: I am not promissing anything... I have very limited experience on C++ but I sure hell like to learn! :twisted:
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Wed May 19, 2004 5:25 pm

Get him to install VNC (http://www.tightvnc.com/download.html) and then set up ZBD for him..
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby Carlos_Ed » Thu May 20, 2004 2:29 am

Woah! Remote Desktop! Why didn't I think of that? :D

About the zlib algorithm, how should I program it? Like, feed a 'std::string' type data, compress and return the compressed data in the same type? Or do you have any special way you might prefer me to do? I was thinking of making it so that you can use it something like this: :wink:

Code: Select all
// For compression, packet had to be captured already and stored in 'std::string packet' variable.
zlib p(packet);
p.Compress();
Send_Packet_to_Host(p.Value(), <more args>);

// And then for decompressing, the received packet had to be stores in the 'std::string rec_packet' variable.
zlib p(rec_packet);
p.Decompress();
Retransmit_Packet_to_Local(p.Value(), <more args>);
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Thu May 20, 2004 11:23 am

GIT is straight C, so likely something that takes a char * and a length parameter and returns another char * or simply takes 2 char * and 2 lengths. I havn't looked into ZLib before, maybe its simpler then I think and already has such an easy interface, who knows.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby poseyjmac » Thu May 20, 2004 1:18 pm

this would be very cool to do. im behind you on this, although im not a coder by any means. wish i could help!
poseyjmac
 
Posts: 42
Joined: Mon Mar 29, 2004 11:33 pm

Postby Carlos_Ed » Thu May 20, 2004 4:40 pm

Ark... I downloaded zlib source. And it's straight C too. So, at the first glance I didn't see any need for me to do anything! :shock: The source code is ready to be implemented! Unbelievale! All you need to do is:

Code: Select all
#Include "zlib.h"


That's it! You're ready to use everything! Besides in zlib site, there's even a ready to use dll if you prefer. Very nice indeed... sugest you go there and see for yourself:

http://www.gzip.org/zlib/

The I found the docs very well organized and easy to understand, of course... they are aimed for people at ease with straight C. Something I am not. But I think I was able to understand how you can use zlib. It seems it compresses and decompresses data streams, strings, chars * , etc... it's very flexible.

Oh BTW, remember Starcraft? That issue I had... I think it's a Blizzard screwup... because, I was able to reduce data rate to well within acceptable limits: <3.5Kb/s :lol: and although the game ran a lot faster, it still was way slower than normal! :evil:

But nevertheless compression is a good thing, because I think I read somewhere you want to add suport for PPP connections also? (if you actually do not, apologize my mistake!...) And for 56k modems, that would prove very useful indeed!
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am


Return to GIT

Who is online

Users browsing this forum: No registered users and 13 guests

cron