Internet hoạt động thế nào? IP, Router, NAT, IPv4 & IPv6
hoanggg2110
Tác giả

Mở đầu
Hầu như ngày nào chúng ta cũng sử dụng Internet.
Mở Facebook.
Xem YouTube.
Chơi game.
Đọc báo.
Làm việc từ xa.
Mọi thứ diễn ra nhanh đến mức chúng ta gần như coi đó là điều hiển nhiên.
Nhưng bạn đã bao giờ tự hỏi:
Điều gì thực sự xảy ra phía sau khi bạn bấm nút "Đăng nhập Facebook"?
Hay đơn giản hơn:
Làm thế nào chiếc laptop của bạn biết phải gửi dữ liệu đi đâu?
Để trả lời câu hỏi đó, hãy cùng theo dõi hành trình của một gói dữ liệu (Packet) từ máy tính của bạn đến Facebook.
Bước 1: Kết nối vào WiFi
Giả sử trong nhà bạn có các thiết bị sau:
Laptop
Điện thoại
Máy in
Camera
Smart TV
Tất cả đều kết nối tới cùng một Router.
Internet
│
ISP Modem
│
WiFi Router
┌──────────┼──────────┐
Laptop Điện thoại Camera
Ngay khi kết nối WiFi, Router sẽ cấp cho mỗi thiết bị một địa chỉ IP. Ví dụ:
Thiết bị IP Address Laptop 192.168.1.10 Điện thoại 192.168.1.11 Máy in 192.168.1.20 Camera 192.168.1.30
Đây gọi là Private IP.
IP Address là gì?
Bạn có thể tưởng tượng IP Address giống như địa chỉ nhà.
Ví dụ, nhà bạn ở "Số 15 Nguyễn Huệ" thì trên mạng sẽ là:
192.168.1.10
Nếu không có địa chỉ, Router sẽ không biết phải gửi dữ liệu cho thiết bị nào. Đó là lý do mọi thiết bị trong mạng đều cần một IP riêng.
Router thực sự làm gì?
Nhiều người nghĩ Router chỉ có nhiệm vụ phát WiFi. Thực tế không phải vậy.
Router giống như một người điều phối giao thông của mạng. Nó chịu trách nhiệm:
Cấp IP cho thiết bị (DHCP)
Kết nối mạng nội bộ với Internet
Chuyển tiếp dữ liệu (Routing)
Thực hiện NAT
Firewall
Port Forwarding và nhiều chức năng khác
Nói ngắn gọn, mọi dữ liệu ra vào Internet đều phải đi qua Router.
Bước 2: Đăng nhập Facebook
Giả sử bạn mở trình duyệt và nhập:
facebook.com
Máy tính lúc này không hề biết Facebook đang ở đâu. Nó chỉ biết cái tên facebook.com.
Để tìm được Facebook, máy tính sẽ hỏi một dịch vụ gọi là DNS (Domain Name System). Bạn có thể hình dung DNS giống như danh bạ điện thoại.
facebook.com → 157.xxx.xxx.xxx
Sau khi DNS trả lời, máy tính đã biết địa chỉ IP của Facebook.
Bước 3: Máy tính tạo gói tin
Máy tính sẽ tạo ra một Packet. Trong Packet luôn có ít nhất hai thông tin:
Source IP: 192.168.1.10
Destination IP: 157.xxx.xxx.xxx
Có nghĩa là: "Tôi là 192.168.1.10 và tôi muốn gửi dữ liệu tới Facebook."
Máy tính gửi gói tin cho ai?
Đây là lúc xuất hiện một khái niệm rất quan trọng.
Máy tính đã biết IP của Facebook. Nhưng nó không biết đường đi tới Facebook.
Lúc này nó sẽ gửi Packet tới một địa chỉ đặc biệt gọi là Default Gateway — thông thường chính là Router.
Laptop (192.168.1.10) → Default Gateway (192.168.1.1)
Bạn có thể hiểu rất đơn giản: không biết đường thì hỏi Router. Router sẽ chịu trách nhiệm tìm đường đi tiếp.
Làm sao máy tính biết Facebook ở ngoài mạng?
Máy tính không phải lúc nào cũng gửi dữ liệu cho Router.
Ví dụ, Laptop muốn gửi dữ liệu tới Máy in:
Laptop (192.168.1.10) → Printer (192.168.1.20)
Hai thiết bị đều nằm trong cùng mạng nên máy tính sẽ gửi trực tiếp.
Nhưng nếu muốn gửi tới 157.xxx.xxx.xxx thì phải gửi cho Router.
Vậy làm sao máy tính biết được điều này? Đó là nhiệm vụ của Subnet Mask.
Subnet Mask là gì?
Subnet Mask giúp máy tính trả lời đúng một câu hỏi:
Thiết bị đích có cùng mạng với mình hay không?
Ví dụ:
IP: 192.168.1.10
Subnet Mask: 255.255.255.0
Điều đó có nghĩa 192.168.1.x được xem là cùng mạng.
Nếu gửi tới
192.168.1.20→ máy tính sẽ gửi trực tiếp.Nếu gửi tới
157.xxx.xxx.xxx→ máy tính sẽ chuyển Packet cho Default Gateway.
Packet đi ra Internet như thế nào?
Lúc này Packet sẽ đi theo hành trình:
Laptop → Router → ISP → Internet → Facebook
Nhưng ở đây xuất hiện một vấn đề. Laptop của bạn có địa chỉ 192.168.1.10, trong khi Facebook ở ngoài Internet hoàn toàn không thể nhìn thấy địa chỉ này. Tại sao?
Private IP và Public IP
Có hai loại địa chỉ IP.
Private IP — là địa chỉ chỉ dùng trong mạng nội bộ. Ví dụ:
192.168.x.x
10.x.x.x
172.16.x.x
Các địa chỉ này không tồn tại trên Internet.
Public IP — đây là địa chỉ được ISP cấp cho Router. Ví dụ:
113.161.xx.xx
Internet chỉ biết địa chỉ này.
NAT là gì?
Đây chính là lúc NAT xuất hiện.
Giả sử Laptop có IP 192.168.1.10 và Router có Public IP 113.161.xx.xx.
Khi Packet đi ra Internet, Router sẽ thay đổi địa chỉ nguồn:
192.168.1.10 → 113.161.xx.xx
Facebook sẽ nghĩ rằng 113.161.xx.xx là người đang kết nối, trong khi thực tế phía sau Router còn rất nhiều thiết bị khác.
Router sẽ lưu lại bảng ánh xạ (NAT Table). Ví dụ:
113.161.xx.xx:50001 → 192.168.1.10
Khi Facebook phản hồi, Router nhìn vào bảng này và chuyển dữ liệu về đúng Laptop. Toàn bộ quá trình này diễn ra trong vài mili giây.
Vậy chiều ngược lại thì sao?
Đến đây hãy tưởng tượng một tình huống khác. Trong nhà bạn có một Camera ở địa chỉ 192.168.1.30. Bạn đang ở công ty và thử truy cập:
http://192.168.1.30
Điều gì xảy ra? Không có gì cả.
Tại sao? Bởi vì 192.168.1.30 chỉ tồn tại trong mạng nội bộ của bạn. Internet hoàn toàn không biết các dải mạng 192.168.x.x, 10.x.x.x, 172.16.x.x đang nằm ở đâu. Internet chỉ biết một địa chỉ duy nhất: 113.161.xx.xx — chính là Public IP của Router.
Có thể hình dung như sau:
Internet
│
▼
Public IP của Router
113.161.xx.xx
│
┌──────────┴──────────┐
│ │
Laptop Camera
192.168.1.10 192.168.1.30
Nếu có một Packet từ Internet gửi đến Router và chỉ ghi đích đến là 113.161.xx.xx, Router sẽ phải đặt câu hỏi:
"Mình nên chuyển Packet này cho Laptop, Camera hay Máy in?"
Nó không thể tự đoán được. Vì vậy Router sẽ không chuyển tiếp gói tin vào mạng nội bộ.
Đây chính là lý do vì sao người bên ngoài không thể truy cập trực tiếp vào các thiết bị trong mạng gia đình của bạn. Đồng thời, đây cũng là một lợi ích lớn về mặt bảo mật của NAT: các thiết bị nội bộ không bị phơi bày trực tiếp ra Internet.
IPv4 và IPv6
Nếu mọi thiết bị đều cần IP, thì liệu Internet có đủ địa chỉ không?
IPv4
IPv4 sử dụng 32 bit. Ví dụ: 192.168.1.10
Tổng số địa chỉ chỉ khoảng 2³² ≈ 4,3 tỷ địa chỉ. Con số này từng rất lớn, nhưng ngày nay với hàng chục tỷ thiết bị trên toàn thế giới thì không còn đủ nữa. Đó cũng là lý do NAT trở nên phổ biến.
IPv6
IPv6 sử dụng 128 bit. Ví dụ: 2001:db8:85a3::8a2e:370:7334
Không gian địa chỉ của IPv6 gần như vô hạn đối với nhu cầu hiện tại. Điều đó giúp:
Mỗi thiết bị có thể sở hữu một địa chỉ IP toàn cục.
Giảm sự phụ thuộc vào NAT.
Thiết kế phù hợp hơn với Internet hiện đại.
Hiện nay IPv4 và IPv6 vẫn đang cùng tồn tại trong quá trình chuyển đổi.
Tổng kết
Hãy nhìn lại toàn bộ hành trình của một gói dữ liệu khi bạn mở Facebook:
Laptop
→ Nhận Private IP từ Router
→ DNS tìm IP của Facebook
→ Kiểm tra Subnet Mask
→ Gửi đến Default Gateway
→ Router thực hiện NAT
→ ISP
→ Internet
→ Facebook Server
→ Response
→ Router tra NAT Table
→ Laptop
Đằng sau một cú nhấp chuột tưởng chừng rất đơn giản là sự phối hợp của rất nhiều thành phần:
IP Address giúp định danh thiết bị trên mạng.
Router kết nối mạng nội bộ với Internet và điều phối lưu lượng.
DNS chuyển tên miền thành địa chỉ IP.
Subnet Mask xác định thiết bị nào nằm trong cùng mạng.
Default Gateway là "cửa ngõ" để đi ra ngoài mạng nội bộ.
NAT chuyển đổi Private IP thành Public IP và ngược lại khi phản hồi.
IPv4 là chuẩn địa chỉ phổ biến hiện nay nhưng đang dần cạn kiệt.
IPv6 là thế hệ tiếp theo với không gian địa chỉ gần như vô hạn.
Kết luận
Networking không chỉ dành cho Network Engineer. Nếu bạn là Backend Developer, DevOps Engineer hay Software Engineer, việc hiểu một gói tin đi từ máy người dùng đến Server như thế nào sẽ giúp bạn dễ dàng tiếp cận các chủ đề nâng cao hơn như HTTP, HTTPS, Load Balancer, Reverse Proxy, Kubernetes, Docker Networking hay Microservices.
Và đó cũng chính là nền tảng để hiểu cách Internet thực sự vận hành.
Thích bài viết này?
Nội dung trên Vết Mực luôn được chia sẻ miễn phí. Nếu bài viết mang lại giá trị cho bạn, hãy cân nhắc ủng hộ để chúng mình có thể duy trì máy chủ, phát triển thêm tính năng mới và tiếp tục xây dựng một không gian dành cho những người yêu viết lách. ✨
Các cách ủng hộ:
- •Viết và đăng bài trên Vết Mực
- •Chia sẻ bài viết với bạn bè
- •Góp ý để chúng mình cải thiện sản phẩm qua email: nsikhoa@gmail.com
Dù bạn chọn ủng hộ hay chỉ đơn giản là tiếp tục đọc và chia sẻ bài viết, đó đều là nguồn động lực rất lớn với chúng mình. ❤️
Bình luận
Đăng nhập để để lại bình luận.