Improve The Dormitory Network Connection

work-logic

In the Turkey 690.000 students live in Government dormitories. Since 2014 all students has a free internet access. At the peek time, all studens mostly using mobile phones or laptops to watching Tv or films, only less than %10 is using for studying and this is create very huge stream traffic.

All network connection forwarding to Ankara but these systems does not enough to handle all students connections at peak time. CGN and router devices is overloaded and this cause a packet loss, jitter and high latency. Second problem is IP transit. Actually at this network doesnt have a any backbone transportation limit at any location to Ankara at layer 2 level. Layer 3 Transmission prices to high in Turkey and this also makes a less peering contract with Government and TurkTelekom.

I am a Software Engineer student and most of the time, I am spenting time to make a online research, download softwares and make tests over remote servers. Internet is high priority for me. Low speed connections or worst connections is make me angry due to connection loss when I connected to servers. This is pushes to me to make a solution like a my other projects.

I made a tests on KYK network. It is well designed system to make a limiting access to anywhere. There is a two big point at this network at peek time. First one is QOS system to limiting connection speed to everyone has a get same speed, second one is creating solution to overloaded systems problems (High tcp socket creating time, packet loss, finding the best path at loadbalancer, jitter).

Normally peoples are using vpn to bypassing basic restrictions but on this network its impossible to better access with vpn. When the network has a tons of problems vpn’s cause worse connctions. Solving high latency, jitter and low speed requires a well focused solutions and this means deasigning specific system for this situation.

The fewer systems normally between the server and the client, the more efficient the system is, but this is not the case for long distances. Distantce couse a high latency and also decrasing tcp socket performance. Solving this problem with adding Proxy server between server and client. Now tcp sockets are between proxy server and client. When the packets are losed, proxy server is retransmit this packet and also proxy server buffering data between server and client. Buffering data positive affect on transmiting data rate but this has a negative affect, like a adding a little bit latency and jitter but this is not important for me because before the proxy server i have worse connection between server and me on this bad network.

Now connection is a litle bit better but this not enough because still I have speed restriction and some times tcp socket is die and not work. To solving this problems with creating multiple connections. Another multiple connection advantage is some times if you have a chance your socket is connectted over not overloaded systems.

Nice, Looks like a i solved every problem but this is not true. Solutions comes with new problems. We are using tcp sockets for tunneling my connections. This sockets some times dies and they have to checked before to creating new connection over this tunnel system and we don’t load balanced requests to this tunnel mechanisms.

If you have work on server administration with spectifict requeriments you are guess my solution. NGINX is my favorite software for web based and high level load balancing systems.

I divided requests with nginx to my tunneling system and nginx is checking connections before sending data over tunneling system.

End of the result, all problems are solved and I will continue make a researching on internet.

Before

After