Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 12 years ago.
Improve this question
Asked on Server Fault:
Load Balancing a UDP server
I have a udp server, it is a central part in my business process. in order to handle the loads I'm expecting in the production environment ill probably need 2 or 3 instances of the server. The server is almost entirely stateless, it mostly collect's data, and the layer above it knows how to handle the minimal amount of stale data that can arise from the the multiple server instances.
My question is how can I implement load balancing between the servers? I would prefer to distribute the requests as evenly as possible between the servers. I would also would like to have some fidelity, i mean if client X was routed to server y, then I want all of X's subsequent requests to go to server Y, as long as it is sensible and not overloads Y.
By the way it is a .NET system...
what would you recommend?
How many clients will be using these servers? If the number is reasonably high DNS round robin loadbalancing would probably be fine.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
The community reviewed whether to reopen this question 10 months ago and left it closed:
Original close reason(s) were not resolved
Improve this question
I'm trying to get a deeper understanding of how IIS works.
http.sys i understand is one its major components. However, i have been having trouble finding easily digestible information about it. I couldn't get a good mental model going until i heard about the WSK, then i think it all fell into place.
From a lot of random googling a little experimentation this is my current high level understanding of why it exists and how it does it's stuff.
Why:
Port sharing, and higher performance caching.
How:
User mode processes use the WinSock api to open a socket listening on a port to gain access to the networking subsystem, e.g. tcp/ip. Kernal mode software like the http.sys driver uses Winsock Kernal Sockets (WSK) api to achieve the same end using the same pool of TCP port numbers as the WinSock api.
IIS, a web service or anything that wants to use http registers itself with http.sys using a unique url/port combination. http.sys opens up a socket on this port using WSK (if it hasn't already for another url/port combination with the same port) and listens.
When the transport layer (tcpip.sys) has reconstructed a load of ip packets back into an http request that a client sent it gives it to http.sys via the port in the request. Http.sys uses the url/port number to send it the the appropriate process which parses it however it pleases.
I know it seems like I'm answering my own question but I'm really not that sure of myself on this and would like some closure so i can get on with more interesting things.
Am i close?
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
Let's say somebody invented a new protocol I would put on top of IP. Would two computers from the other ends of the world be able to communicate with it, i.e. would routers forward the frames that aren't standard TCP/UDP/ICMP?
Yes, if it is build on top of IP then it would be routable over the internet. The IP protocol defines the header and payload. The header is used for routing. So you would be able to send custom IP-based protocol data from one computer to another over the internet.
However, both computers will need custom drivers to send, receive and understand the data.
I'm not sure why you'd bother though. If you're sending custom data, you're much better off writing an application level protocol on top of tcp or udp and take advantage of the networking layer built into all computers and operating systems already. It'll be easier to write, maintain, and debug.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I'm using a lot of load balancers in my workplace and I was wondering if there is a good open source one?
By good I mean one that can be used in an enterprise, and also is it efficient to use that software with regular PC?
BTW, I've been searching the internet a lot and found a few but not sure which one is better than the other one, I need your expertise.
HAProxy and nginx are popular open source options:
http://haproxy.1wt.eu/
http://www.nginx.com/
I recommend reading through the documentation for each one to get a sense of the capabilities. HAProxy is more analogous to the network load balancers I suspect you're using at work, with full support for any application protocol layered over TCP. Nginx is really an HTTP server, but it can be configured as a reverse proxy that load balances to back-end destination servers. If you just need to load-balance HTTP traffic (and you don't need to route other network protocols like ssh or SMTP), then nginx can be a good fit.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
Say i'm communicating with a computer A in a remote network .
Is it possible to know what are the hops that he is going through?
In other word, is it possible to detect what is computer A route to my computer?
I know that A might have a various routes to my computer , it just want to find a route. My whole problem begins with that fact that some networks "hides" there inside computer ( like NAT ) and just give you the gateway ip.
(I'm not talking about my route to his computer that can be easly achived by traceroute)
thanks!
The IP option Record Route asks routers along the way to include their address in the datagram so the route can be tracked. The trick is, many routers and firewalls are not keen on giving out this information and DROP packets with this option set. And, you'd have to get the remote peer to set the flag, so it would only be useful if you're in control of the software on the remote peer too.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I will be moving a high load prod system over to new hardware over the next few weeks. However in the mean time I would like to validate that the new hardware will handle the expected loads. I would really like to stick some kind of 'proxy' infront of the current web server and copy all that http traffic to the new environment, i.e. run them both in parallel.
Ideally this proxy would also validate that the responses are the same.
I can then monitor the new hardware stats (cpu, mem, etc) and see if it looks ok.
What is this kind of proxy called? Any one have any suggestions? This is for a Windows .Net (asp.net) and SQL server environment.
Thanks all
Varnish comes to mind - https://www.varnish-cache.org/
Edit
I'd actually use nginx... (two years experience after answering this question).. varnish would be silly to use. nginx would definitely be the better option.
Have a look a JMeter. It's Java based but allows you to record user journeys and play them back in bulk for stress testing.