Initialize project with clean ignore rules

This commit is contained in:
2026-03-09 04:08:19 +00:00
commit be6bf12d35
85 changed files with 4285 additions and 0 deletions

View File

@@ -0,0 +1,245 @@
---
title: networking
description: DHCP, DNS, PROXY
author: wompmacho
date: 2024-04-27T23:53:26.059Z
lastmod: 2025-02-08
editor: markdown
---
## IP Address
An Internet Protocol address (IP) address is a numerical label assigned to each
device connected to a computer network that uses the Internet Protocol for
communication. Think of it like a street address for your computer on the
internet. It's how devices find each other and exchange information.
Here's a breakdown:
* **Numerical Identifier:** An IP address is a set of numbers, typically
represented in dotted decimal notation (e.g., 192.168.1.1). There are two
main versions: IPv4 (the older version) and IPv6 (the newer version, which
uses a different format to accommodate more addresses).
* **Device Identification:** Every device that connects to a network (computers,
smartphones, tablets, servers, etc.) needs a unique IP address to be
identified and communicate.
* **Location Information:** While not precise, parts of an IP address can
provide some general information about the device's location.
* **Routing:** IP addresses are used by routers to direct network traffic to the
correct destination. When you send data over the internet, routers use IP
addresses to figure out where to send it.
In short, an IP address is a crucial element of networking. It's the unique
identifier that allows devices to communicate with each other over a network,
whether it's a local network or the vast expanse of the internet.
---
## IPv4 & IPv6
IPv4 and IPv6 are two versions of the Internet Protocol (IP), which is the
fundamental protocol that enables devices to communicate over the internet.
They are essentially addressing systems that allow devices to be uniquely
identified and located on a network.
Here's a breakdown:
* **IPv4 (Internet Protocol version 4):** This is the original version of IP,
using 32-bit addresses represented in dotted decimal notation (e.g.,
192.168.1.1). It offers roughly 4.3 billion unique addresses. Due to the
explosive growth of the internet, IPv4 addresses are now largely exhausted.
* **IPv6 (Internet Protocol version 6):** This is the newer version of IP,
designed to address the limitations of IPv4. It uses 128-bit addresses
represented in hexadecimal notation (e.g.,
2001:0db8:85a3:0000:0000:8a2e:0370:7334). IPv6 offers a vastly larger address
space, virtually eliminating the problem of address exhaustion.
Key Differences and Why IPv6 is Needed:
* **Address Space:** IPv4 has a limited number of addresses, while IPv6 offers a
practically unlimited number.
* **Address Format:** IPv4 uses dotted decimal notation, while IPv6 uses
hexadecimal notation.
* **Automatic Configuration:** IPv6 supports more advanced automatic
configuration features, simplifying network management.
* **Security:** IPv6 includes built-in security features, such as IPSec, which
enhances network security.
In short, IPv4 is the older, widely used addressing system that is now facing
address exhaustion. IPv6 is the newer, more robust addressing system designed to
replace IPv4 and provide the necessary address space for the continued growth of
the internet. The transition to IPv6 is ongoing.
---
## DHCP
Dynamic Host Configuration Protocol (DHCP) is a network management protocol that
automates the process of assigning IP addresses and other network configuration
parameters to devices on a network. Think of it as a way to automatically give
each device on your network its own "address" so it can communicate with other
devices and the internet.
Here's a breakdown:
* **Automatic IP Assignment:** DHCP eliminates the need to manually configure IP
addresses for each device on a network. This is especially useful in large
networks where it would be tedious to assign addresses manually.
* **Lease-Based System:** DHCP uses a "lease" system, where IP addresses are
assigned to devices for a specific period of time. When the lease expires, the
device must renew it or the IP address becomes available for other devices.
This helps ensure that IP addresses are used efficiently.
* **Centralized Management:** DHCP allows network administrators to manage IP
addresses from a central server. This simplifies network administration and
makes it easier to track which devices have which IP addresses.
* **Other Configuration Parameters:** In addition to IP addresses, DHCP can also
provide other network configuration parameters, such as subnet mask, default
gateway, and DNS server addresses.
Why someone might use DHCP:
* **Simplified Network Administration:** DHCP makes it much easier to manage IP
addresses in a network, especially in large networks.
* **Reduced Configuration Errors:** Manual IP address configuration can lead to
errors, such as duplicate IP addresses, which can cause network conflicts.
DHCP helps prevent these errors.
* **Efficient IP Address Usage:** The lease-based system ensures that IP
addresses are used efficiently and that addresses that are no longer in use
are reclaimed.
* **Plug-and-Play Networking:** DHCP allows devices to connect to a network and
automatically receive the necessary network configuration, making it easier to
add new devices to the network.
In short, DHCP is a valuable tool for network administrators that simplifies IP
address management and makes networks more efficient and reliable.
---
## Static IP
A static IP address is a manually assigned IP address that remains constant for
a specific device on a network. Unlike a dynamic IP address (assigned by DHCP),
a static IP doesn't change. This makes it useful for devices that need a
consistent and predictable address, such as servers, printers, or network
devices. However, it requires manual configuration and careful management to
avoid IP address conflicts.
---
## DNS
Domain Name System (DNS) is essentially the phone book of the internet. It
translates human-readable domain names (like **google.com**) into the numerical
IP addresses (like 172.217.160.142) that computers use to communicate with each
other.
Here's a breakdown:
* **Human-Friendly to Machine-Friendly:** We remember names like "google.com"
easily, but computers communicate using IP addresses. DNS bridges this gap by
converting domain names into their corresponding IP addresses.
* **Distributed Database:** DNS is a massive, distributed database. It's not
stored in one single location, but rather spread across a network of servers
around the world. This makes it robust and efficient.
* **Hierarchical Structure:** DNS is organized in a hierarchical structure, like
a tree. This structure helps to manage the vast number of domain names and IP
addresses.
* **Resolution Process:** When you type a domain name into your browser, your
computer initiates a DNS resolution process. It queries various DNS servers to
find the IP address associated with that domain name.
Why someone might use DNS:
* **Easy Access to Websites:** DNS allows us to access websites by using
easy-to-remember domain names instead of complex IP addresses.
* **Email Delivery:** DNS is also used to route email to the correct mail
servers.
* **Internet Functionality:** DNS is a fundamental component of the internet,
without which we wouldn't be able to easily browse the web or send emails.
In short, DNS is a critical part of the internet infrastructure. It's the system
that allows us to use domain names to access websites and other internet
resources, making the internet user-friendly and accessible.
---
## PROXY
A proxy acts as an intermediary between a client (like your computer) and a
server (like a website). Instead of your computer directly connecting to the
server, it connects to the proxy server, which then forwards the request to the
server. The server's response comes back to the proxy, which then forwards it to
your computer. Think of it like a middleman.
Here's a breakdown:
* **Intermediary:** The core function of a proxy is to act as a go-between for
client and server.
* **Hiding IP Address:** One common use of a proxy is to mask the client's IP
address. The server sees the proxy's IP address, not the client's, providing a
degree of anonymity.
* **Caching:** Proxies often cache frequently accessed content. If a client
requests something that's already in the cache, the proxy can serve it
directly, speeding up access.
* **Filtering and Security:** Proxies can be used to filter content, block
access to certain websites, or scan for malware. This is common in corporate
environments.
* **Load Balancing:** In some situations, proxies can distribute traffic across
multiple servers, helping to balance the load and improve performance.
In short, a proxy server provides a layer of separation between clients and
servers, offering a variety of benefits related to privacy, security,
performance, and network management.
---
## Reverse Proxy
A reverse proxy sits in front of one or more backend servers, intercepting
client requests and forwarding them to the appropriate server. It acts as a
gateway, but unlike a regular proxy (which protects clients), a reverse proxy
protects the servers. Clients connect to the reverse proxy, which then handles
the connection to the actual servers.
Here's a breakdown:
* **Server Protection:** Reverse proxies shield backend servers from direct
exposure to the internet, enhancing security by preventing direct attacks.
* **Load Balancing:** They can distribute client traffic across multiple
servers, preventing any single server from becoming overloaded.
* **Caching:** Reverse proxies can cache content, reducing the load on backend
servers and speeding up response times for clients.
* **SSL Termination:** They can handle SSL encryption and decryption, offloading
this task from the backend servers.
* **URL Rewriting:** Reverse proxies can modify URLs, making them more
user-friendly or hiding the internal structure of the backend servers.
In short, a reverse proxy acts as a gatekeeper for backend servers, providing a
range of benefits related to security, performance, scalability, and
flexibility. It's a common component in modern web architectures.
## SSL
Secure Sockets Layer (SSL) is a security protocol that creates an encrypted
connection between a web server and a web browser. This ensures that any data
exchanged between them remains private and secure. Think of it as a secret
tunnel that prevents eavesdropping and tampering.
Here's a breakdown:
* **Encryption:** SSL encrypts the data transmitted between the browser and the
server, making it unreadable to anyone who might try to intercept it. This
protects sensitive information like passwords, credit card numbers, and
personal details.
* **Authentication:** SSL verifies the identity of the website, assuring users
that they are connecting to the legitimate website and not a fake one. This
helps prevent phishing attacks.
* **Data Integrity:** SSL ensures that the data transmitted between the browser
and the server is not altered or corrupted during transit. This guarantees
that the information received is exactly what was sent.
In short, SSL is a crucial security technology that protects online
communication and helps build trust between websites and their users. It's the
foundation of secure online transactions and a vital component of a safe
internet experience.