From 9ffe1cbf8cc5def8f6dd2dbffe37745f56639f5f Mon Sep 17 00:00:00 2001 From: Shahid Ul Islam <65996596+Khanz9664@users.noreply.github.com> Date: Mon, 9 Dec 2024 09:49:37 +0530 Subject: [PATCH 1/2] Update README.md --- networking/README.md | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/networking/README.md b/networking/README.md index 3555c7d..6dc3a9a 100644 --- a/networking/README.md +++ b/networking/README.md @@ -35,6 +35,68 @@ The time it takes to perform a certain task/action The number of tasks/actions per unit of time + +### DNS (Domain Name System) + +Definition: +DNS translates human-readable domain names (e.g., www.example.com) into IP addresses (e.g., 192.0.2.1). This system enables users to access resources on the internet using easy-to-remember names rather than numerical IP addresses. + +From a System Design Perspective: + +DNS helps in load balancing by directing traffic to multiple servers. + +DNS caching can reduce latency but may also lead to stale records. + +Strategies like TTL (Time-To-Live) optimization are crucial for DNS performance. + + + +### Load Balancing + +Definition: +Load balancing is the process of distributing network traffic across multiple servers to ensure availability, scalability, and fault tolerance. + +Key Considerations in System Design: + +Types: Hardware load balancers, software load balancers (e.g., Nginx, HAProxy), and cloud-based solutions (e.g., AWS ELB). + +Algorithms: Round Robin, Least Connections, IP Hashing, etc. + +Load balancers often use public IPs for external communication and private IPs for internal communication. + + + +### NAT (Network Address Translation) + +Definition: +NAT allows multiple devices on a private network to share a single public IP address for internet access. It modifies the source IP of outgoing packets and the destination IP of incoming packets. + +Use Cases in System Design: + +Conserves public IP addresses. + +Provides a layer of security by hiding internal network details from external users. + +Facilitates communication between private and public networks. + + + +### CDN (Content Delivery Network) + +Definition: +A CDN is a network of distributed servers that deliver web content and other data to users based on their geographic location. + +System Design Benefits: + +Reduces latency by serving content from the nearest server. + +Decreases load on the origin server. + +Improves fault tolerance and scalability. + + +--- + ## Questions
From ab25113148bbbff51ed7c17e75bbd74c8a1c55a4 Mon Sep 17 00:00:00 2001 From: Shahid Ul Islam <65996596+Khanz9664@users.noreply.github.com> Date: Mon, 9 Dec 2024 09:56:59 +0530 Subject: [PATCH 2/2] Update README.md --- networking/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/networking/README.md b/networking/README.md index 6dc3a9a..f9fe165 100644 --- a/networking/README.md +++ b/networking/README.md @@ -6,6 +6,10 @@ - [Private IP](#private-ip) - [Latency](#latency) - [Throughput](#throughput) + - [DNS_(Domain_Name_System)](#DNS_(Domain_Name_System)) + - [Load_Balancing](#Load_Balancing) + - [NAT_(Network_Address_Translation)](#NAT_(Network_Address_Translation)) + - [CDN_(Content_Delivery_Network](#CDN_(Content_Delivery_Network)) - [Questions](#questions) ## What is Networking?