What Affects Throughput When Tunneling Servers?

jmacdoug007

Honorable
Sep 27, 2012
18
0
10,510
When tunneling through one server to another what are things that will affect the throughput? Besides the answer of "everything" lol

Do all hardware parts need to be exactly the same to ensure throughput can be maximized?

 
Solution
I will give you a network answer since you posted this to a network forum but if you mean the actual servers running application such as VNC or RDC I will have to defer to one of the server guys who is around here.

Pretty much you have 3 things.

When you run a tunnel you put the data inside another data stream. This would be similar to if you had a shipment and you didn't want people to see the writing on the outside of a box so you put it in another plain box. This adds a between 50-60 bytes to every packets (for ipsec tunnels). What percentage of overhead this is depends on the packet size but it is generally a few percent but for some voice data it can be close to 40%

Next you have the pure CPU load it takes to encrypt the...
I will give you a network answer since you posted this to a network forum but if you mean the actual servers running application such as VNC or RDC I will have to defer to one of the server guys who is around here.

Pretty much you have 3 things.

When you run a tunnel you put the data inside another data stream. This would be similar to if you had a shipment and you didn't want people to see the writing on the outside of a box so you put it in another plain box. This adds a between 50-60 bytes to every packets (for ipsec tunnels). What percentage of overhead this is depends on the packet size but it is generally a few percent but for some voice data it can be close to 40%

Next you have the pure CPU load it takes to encrypt the data. As cpu have gotten stronger it is not as big a issue.

The last is related to the first one. When you add bytes to a maximum size packet it will no longer meet the rules for the transmission media. The only solution is to break the packet into 2 parts. So now you have the overhead on the first part plus more overhead on the second part. If for example it was only 1 byte too long you now must transmit a second packet with all the headers just to send 1 byte of data. Next when the far side gets the data it must take these parts and put them back together. This is what is called packet fragmentation and reassembly. So this issue both absorbs CPU power and bandwidth. There are ways to avoid it by adjusting MTU but most people do not do that.

The tunneling protocols are pretty standard so end devices all can talk to each other you can have a cell phone on one end and a monster server on the other and they will work.
 
Solution

jmacdoug007

Honorable
Sep 27, 2012
18
0
10,510
bill001g I truly appreciate the time you put into that. There was alot of value there for me. Thank you very much.

So I guess what im wondering next is, does my tunneling server need to be as powerful as my main server in order to maximize throughput?

Specs I currently have are


Bandwidth:port speed:RAM:HD:Raid:CPU

Main server: 10TB dedicated / 1GBps / 72GB DDR3 RAM / 4*1TB 72,000 SSD / Raid 10 / 2 quad core Xeon 5520 Processor 2.26Ghz HT TB 8MB Cache

Tunneling server: 10TB dedicated / 1GBps / 16GB RAM / 32GB 10K RPM / Mirrored / Xeon L 5504 4 cores 4 MB cache 2.0Ghz 4.8GT/s

Is there anything on my tunneling server I need more or am wasting money on?

 
You omit the most important thing the network card specs. Compared to say running a game or some large database a VPN tunnel is nothing. Both machine likely can exceed a 1g interface. Tunnels use very little memory and almost no disk since the data just flows though is never stored.

The key problem will be where you get a connection between the machine that comes anywhere close to the capacity of the machines. The bottleneck will always be the internet or whatever you put between. If you only have a 4m internet connection or even a private network that can only run 4m your machines will sit idle most the time.
 

jmacdoug007

Honorable
Sep 27, 2012
18
0
10,510
How detailed of network specs cards should I have. All I know is I have 1gbps bandwidth and a 1gbps network card.

What are some things I should specifically look at for network cards? Do you have any recommendations?
 
How did you manage to get 1g of bandwidth and what is the latency between the locations.

You have to look at the requirements your your actual application rather than just try to build the biggest "something". Does you really little good to build a race car and then need a semi truck to move 10 tons of rocks.
 

jmacdoug007

Honorable
Sep 27, 2012
18
0
10,510
Thanks again bill001g for your responses.

I pay two ISP that are hosting the servers for the bandwidth.

I do not know the latency between locations. How can I find out?

My application can utilize 18MB/sec running at full capacity which it is no where close to using that right now.

Im not an expert in this scenario, figuring things out as I go, which is why I came to this forum.

Do you have any recommendations of what I should be looking for?