06/34 Địa chỉ IP Các chương

Địa chỉ IP sinh ra để làm gì?

Vì sao Internet cần địa chỉ IP?

Đầu thập niên 1970, ARPA có ARPANET, một mạng vô tuyến và một mạng vệ tinh. Ba mạng này được xây bằng những công nghệ khác nhau, nên cách truyền dữ liệu và cách đánh địa chỉ cũng không giống nhau.

Nếu một máy trên mạng vô tuyến muốn gửi dữ liệu tới một máy nằm sau ARPANET, địa chỉ nào có ý nghĩa với cả hai mạng?

Không thể bắt mọi mạng trên thế giới dùng cùng một công nghệ. Thứ cần chung là một cách để ghi gói dữ liệu đang đi tới đâu.

Đó là bài toán mà IP giải quyết.

Một lớp chung nằm trên các mạng khác nhau

Năm 1973, Bob Kahn chuyển sang ARPA và bắt đầu tìm cách nối ARPANET với những mạng khác. Ông mời Vint Cerf, khi đó ở Stanford, cùng làm.

Kahn và Cerf không cố chuẩn hoá cách từng mạng truyền dữ liệu. Mạng vô tuyến vẫn dùng sóng radio, mạng vệ tinh vẫn chạy theo cách của nó. Thứ họ cần là một giao thức nằm phía trên những khác biệt đó.

Lớp IP chung nằm trên mạng vô tuyến, ARPANET và mạng vệ tinh

Mỗi mạng vẫn truyền dữ liệu theo cách riêng. IP cho các mạng một cách đánh địa chỉ chung ở phía trên.

Năm 1974, hai ông công bố ý tưởng này trong bài báo A Protocol for Packet Network Intercommunication.

Khi dữ liệu cần sang mạng khác, một máy đứng ở ranh giới nhận gói và chuyển nó đi tiếp. Máy đó khi ấy gọi là cổng nối (gateway), ngày nay là việc của bộ định tuyến (router).

Nhờ vậy, máy ở hai đầu không cần biết những mạng ở giữa dùng radio, đường dây hay vệ tinh.

Một gói tin đi qua ba mạng

Ngày 22/11/1977, ý tưởng này được thử trên ba loại mạng thật.

Một chiếc xe van của SRI chạy quanh vùng vịnh San Francisco và truyền dữ liệu bằng mạng vô tuyến. Dữ liệu đi tiếp qua ARPANET và mạng vệ tinh, trước khi tới một máy ở Đại học Nam California.

22/11/1977: một đường đi qua ba mạng
MẠNG VỆ TINH ARPANET MẠNG VÔ TUYẾN xuyên nước Mỹ qua Đại Tây Dương sóng vô tuyến Xe van của SRI vùng vịnh San Francisco UCL London, Anh Virginia bờ đông nước Mỹ USC ISI Los Angeles

Dữ liệu đã đi qua ba loại mạng khác nhau và vẫn tới được máy đích.

Một hệ thống nối nhiều mạng như vậy được gọi là liên mạng (internetwork), và đó cũng là gốc của chữ Internet.

Nhưng khi có hàng triệu máy nằm sau những mạng khác nhau, gói tin phải ghi gì để các router dọc đường biết đưa nó đi đâu?

Mỗi gói tin mang hai địa chỉ IP

Giao thức ấy về sau được gọi là giao thức Internet (IP, Internet Protocol). Khi một máy gửi dữ liệu bằng IP, mỗi gói có một địa chỉ IP nguồn và một địa chỉ IP đích.

Gói IP mang địa chỉ nguồn 10.1.2.3 và đích 192.168.1.10, đi từ máy A qua hai router tới máy B, qua Wi-Fi, mạng ISP và Ethernet

Cách truyền bên dưới có thể thay đổi ở từng đoạn. Router vẫn nhìn địa chỉ IP đích để quyết định bước tiếp theo.

Router nhìn địa chỉ đích để quyết định chuyển gói sang đâu tiếp theo. Địa chỉ nguồn cho máy nhận biết phải trả lời về đâu.

Đường truyền ở từng đoạn có thể là Wi-Fi, cáp đồng hay cáp quang, nhưng địa chỉ IP đích vẫn đi cùng gói suốt đường.

IPv4: địa chỉ dài 32 bit

Năm 1981, RFC 791 định nghĩa phiên bản IP mà ngày nay gọi là IPv4. Mỗi địa chỉ IPv4 dài 32 bit:

11000000101010000000000100001010

Ba mươi hai chữ số 0 và 1 thì khó đọc, nên người ta chia chúng thành bốn nhóm 8 bit rồi đổi từng nhóm sang số thập phân:

8 bit 11000000 192
8 bit 10101000 168
8 bit 00000001 1
8 bit 00001010 10
4 × 8 = 32 bit192.168.1.10

Mỗi nhóm 8 bit có 2⁸ = 256 giá trị, nên mỗi số nằm trong khoảng 0 tới 255.

Vì vậy, 192.168.1.10 chỉ là cách viết dễ đọc hơn của 32 bit đó.

Một địa chỉ chưa cho biết cả mạng

Laptop của bạn có địa chỉ 192.168.1.10. Nhưng nó không ở một mình: router, điện thoại, TV trong nhà cũng nối vào cùng mạng Wi-Fi, mỗi thiết bị một địa chỉ.

Các địa chỉ đó đều nằm trong cùng một khoảng, từ 192.168.1.0 tới 192.168.1.255:

Router 192.168.1.1, laptop 192.168.1.10, điện thoại 192.168.1.20 và TV 192.168.1.30 trong một mạng Wi-Fi, đều nằm trong khoảng 192.168.1.0 tới 192.168.1.255

Mỗi thiết bị một địa chỉ. Cả mạng là một khoảng địa chỉ, còn chỗ cho nhiều máy nữa.

192.168.1.10 chỉ cho biết địa chỉ của laptop.

Nó chưa nói rằng mạng này chạy từ 192.168.1.0 tới 192.168.1.255.

Nhưng máy tính cần biết điều đó.

Nếu laptop muốn gửi dữ liệu tới:

192.168.1.20

thì máy đích nằm ngay trong mạng này.

Còn nếu muốn gửi tới:

8.8.8.8

thì địa chỉ đó nằm ngoài mạng này và dữ liệu phải được đưa cho router để đi tiếp.

Vì vậy ngoài địa chỉ của máy, ta còn cần mô tả:

mạng này gồm những địa chỉ nào?

Có thể viết đầy đủ:

192.168.1.0 → 192.168.1.255

Nhưng trong mạng máy tính, khoảng này thường được viết gọn thành:

192.168.1.0/24

Và khi nói laptop 192.168.1.10 nằm trong mạng đó, bạn thường thấy:

192.168.1.10/24

Vậy con số /24 đã biến một địa chỉ thành cả một khoảng như thế nào?

Tại sao /24 lại tương ứng với 192.168.1.0 tới 192.168.1.255?

Nguồn bài viết (6)

  1. Internet History of 1970s · Computer History Museum
  2. A Protocol for Packet Network Intercommunication (Cerf & Kahn, IEEE Trans. Comm., 5/1974) · IEEE (bản in lại tại Princeton University)
  3. Internetworking (1977) · SRI International
  4. Brief History of the Internet · Internet Society
  5. RFC 791 — Internet Protocol · IETF
  6. RFC 1122 — Requirements for Internet Hosts: Communication Layers · IETF