I want to work on lan gaming software called garena. I dont know what is going behind the scenes of garena. May be a simple tunnel is used to assign 192.168.1.x ip address. Can anyone suggest me any good how-to or whatever, which can help me to work on it.
I don't know garena, but maybe it allows you to connect in the same Virtual LAN (VPN) through Tunnelling.
Here's an example of tunnelling in c# --> Windows TCP Tunnel
BTW, I suggest you to don't write both VPN server and client, but possibly only the client part, since there are plenty of valid free VPN servers like: OpenVPN
EDIT:
maybe it's not what you need. Actually, I did't get exactly what you mean with "work on garena": Writing a similar software ? Connecting to it ? Reverse-engineering it ? ...
EDIT2:
I still think that if you really don't have to write your server you can connect to openVPN (or others) with your C# client (not so easily, but much more than write both tiers).
Because writing a secure, stable and reliable VPN server is very very hard, so if you can take advantage of something long time tested is way preferable.
But, if you want to do something very simple I think my first link can help you.
Here some related question in SO:
http://stackoverflow.com/questions/2238287/create-a-vpn-client-in-c
http://stackoverflow.com/questions/1571031/c-windows-service-that-connects-to-network-through-vpn
http://stackoverflow.com/questions/2074780/how-to-create-a-vpn-software