mirror of
https://github.com/ByteByteGoHq/system-design-101.git
synced 2026-04-19 15:37:24 -04:00
This PR adds all the guides from [Visual Guides](https://bytebytego.com/guides/) section on bytebytego to the repository with proper links. - [x] Markdown files for guides and categories are placed inside `data/guides` and `data/categories` - [x] Guide links in readme are auto-generated using `scripts/readme.ts`. Everytime you run the script `npm run update-readme`, it reads the categories and guides from the above mentioned folders, generate production links for guides and categories and populate the table of content in the readme. This ensures that any future guides and categories will automatically get added to the readme. - [x] Sorting inside the readme matches the actual category and guides sorting on production
1.5 KiB
1.5 KiB
title, description, image, createdAt, draft, categories, tags
| title | description | image | createdAt | draft | categories | tags | |||
|---|---|---|---|---|---|---|---|---|---|
| How NAT Enabled the Internet | Explore how NAT facilitated the expansion of the internet. | https://assets.bytebytego.com/diagrams/0231-http-header.png | 2024-01-29 | false |
|
|
Network Address Translation (NAT) is the process that has made the growth of the Internet possible.
But how does it work?
- In a corporate or home setting, multiple devices (phones, computers, etc.) share one router with a single public IP address.
- When a device wants to access the internet, it sends a request to your router. The request contains the device's private IP address.
- The router’s NAT process replaces the private IP with the router’s public IP.
- The modified request is sent to the internet.
- When the response comes back, NAT checks its record and replaces the public IP with the correct private IP. It sends the response to the right device.
NAT has several important uses:
- Conserves public IP addresses: Without NAT, IPv4 addresses would have been depleted much faster, severely limiting the growth of the Internet.
- Allows sharing: It allows sharing a single public IP address across multiple devices.
- Acts as a basic firewall: NAT acts as a basic firewall that hides internal IP addresses.
- Eases network management: NAT also makes it easy to manage large networks.
