Return to search

Selection of best server to work on a network request of a client based on its physical and virtual location and distance to the server

When a service on the internet is scaled horizontally with multiple server instances, there are different solutions on how to map a client request to one of those server instances. In this paper I am evaluating a select few solutions for using the nearest server instance to handle a client request. I classified those solutions on the criteria ease of use, does this solution require a change of program behavior, how many resources are required for set up, the response time, are there already existing open source software or open data solutions available, how accurate is the solution, does it scale horizontally and lastly how robust the solution is.

In this paper I evaluated GeoDNS, a central hyper text transfer protocol (HTTP) redirect server, decentralized instances and using an Anycast internet protocol (IP) address as a solution.

Based on the described evaluation criteria I found that the central redirect server in combination with a GeoDNS server works best to map a client request to the nearest server instance. The decentralized instances are a specialization of the redirect server and setting up a public routable Anycast address is complicated.

I compared three methods of matching a client IP address to a geolocation. In this practical implementation I found using local files matching IP ranges to countries works best over using regional internet registry provided registration data access protocol (RDAP) endpoints or using the same RDAP method with a cache. The local mapping file implementation is the fastest, compared to the other described implementation, and less error-prone.

The entire source code of this work and implemented programs can be found here (https://paulgo.dev/mrpaulblack/bachelor-thesis).:1 Introduction and Intention
2 Solutions
2.1 Geolocation DNS
2.2 Central Redirect Server
2.3 Decentralized Implementation
2.4 IP Anycast
3 Implementation
3.1 Experiment Setup
3.2 Method of Observation
3.3 Observations and Analysis
4 Conclusion
Bibliography
List of Figures
List of Tables
List of Source Codes

Identiferoai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:87628
Date24 October 2023
CreatorsBraeuning, Paul
ContributorsHochschule für Technik, Wirtschaft und Kultur Leipzig, Leipzig
Source SetsHochschulschriftenserver (HSSS) der SLUB Dresden
LanguageEnglish
Detected LanguageEnglish
Typeinfo:eu-repo/semantics/acceptedVersion, doc-type:bachelorThesis, info:eu-repo/semantics/bachelorThesis, doc-type:Text
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0024 seconds