ARPANET: Mạng lưới khởi nguồn tất cả
Một lần đăng nhập sập, một nghiên cứu sinh lo lắng, và một email không được phép — cách một dự án nghiên cứu thời Chiến tranh Lạnh vô tình đặt nền móng cho internet.
TL;DR
Năm 1969, cơ quan nghiên cứu quân sự của Mỹ (ARPA) tài trợ một mạng lưới bốn nút kết nối các trường đại học. Nó sử dụng chuyển mạch gói — cắt các thông điệp thành những mảnh nhỏ được định tuyến độc lập — thay vì các đường điện thoại chuyên dụng. Một nghiên cứu sinh vô tình tạo ra quy trình tiêu chuẩn của internet (RFC) vì anh quá lo lắng để viết bất cứ điều gì mang tính thẩm quyền. Email, ứng dụng bom tấn của mạng, chưa bao giờ nằm trong kế hoạch. ARPANET chứng minh các mạng phi tập trung hoạt động, nhưng giao thức của nó không thể kết nối các mạng khác nhau — vấn đề đó dẫn đến TCP/IP.
”Lo”
Ngày 29 tháng 10 năm 1969, một nghiên cứu sinh tên Charley Kline tại Đại học California, Los Angeles đã cố gắng đăng nhập vào một máy tính ở Stanford, cách đó 350 dặm. Anh gõ L, O, G — và hệ thống sập. Thông điệp đầu tiên từng được gửi qua ARPANET là “Lo”. Câu chuyện nguồn gốc của internet là một báo cáo lỗi.
Một giờ sau anh thử lại, và toàn bộ LOGIN đã thành công. Nhưng không ai nhớ sự thành công đó. Họ nhớ vụ sập.
Từ Sputnik đến “Mạng máy tính liên thiên hà”
Nó bắt đầu bằng sự hoảng loạn. Năm 1957, Liên Xô phóng Sputnik — một quả cầu nhôm kêu bíp bíp chứng minh họ có thể đưa vật thể lên quỹ đạo. Mỹ đáp trả bằng cách tạo ra ARPA, một cơ quan nghiên cứu quốc phòng với tiền, sự cấp bách, và gần như không có bộ máy hành chính.
ARPA thuê J.C.R. Licklider, người năm 1962 đã viết các bản ghi nhớ mô tả một “Mạng máy tính liên thiên hà” — đó là cái tên thật — nơi mọi máy tính nghiên cứu trong nước có thể chia sẻ dữ liệu như thể khoảng cách không tồn tại. Năm 1962, máy tính thậm chí không thể nói chuyện với máy in ở hành lang bên cạnh. Tầm nhìn của ông nghe như khoa học viễn tưởng.
Động lực thực tế đến từ Bob Taylor. Đến năm 1966, ông có ba terminal trong văn phòng Lầu Năm Góc, mỗi cái cho một máy tính ở xa. Ba hệ thống, ba bộ lệnh. Ông bước vào văn phòng sếp và hỏi: tại sao không có một terminal kết nối tất cả chúng? Ông bước ra với một triệu đô la để xây mạng đó.
Chuyển mạch gói
Mạng điện thoại sử dụng chuyển mạch kênh — một dây chuyên dụng giữa hai người gọi, được giữ mở ngay cả trong lúc im lặng. Lãng phí, mong manh, và quá đắt cho máy tính vốn gửi dữ liệu theo từng đợt ngắn.
Paul Baran tại RAND Corporation và Donald Davies tại National Physical Laboratory của Anh độc lập đi đến cùng một ý tưởng: cắt thông điệp thành các gói nhỏ, gửi từng cái độc lập, ghép lại tại đích. Davies đặt cho nó cái tên được giữ lại — packet switching (chuyển mạch gói).
import random
def packetize(message, size=5):
return [{"seq": i, "data": message[i*size:(i+1)*size]}
for i in range(-(-len(message) // size))]
def reassemble(packets):
return "".join(p["data"] for p in sorted(packets, key=lambda p: p["seq"]))
packets = packetize("Hello from UCLA to SRI")
random.shuffle(packets) # các gói đi các tuyến khác nhau
print(reassemble(packets)) # → "Hello from UCLA to SRI"
Tuệ giác then chốt: mạng không cần hiểu thông điệp của bạn. Nó chỉ di chuyển các gói từ A đến B. Điều này làm cho nó bền bỉ (không có điểm lỗi duy nhất), hiệu quả (không lãng phí băng thông), và không lỗi thời (nó không quan tâm bạn đang gửi văn bản, hình ảnh, hay những thứ chưa được phát minh).
IMP: Một router nặng 900 pound
ARPA cần phần cứng để biến điều này thành hiện thực. IBM từ chối. AT&T từ chối. Một công ty tư vấn nhỏ ở Cambridge tên là Bolt Beranek and Newman (BBN) nhận việc với một nhóm khoảng mười hai kỹ sư.
Họ xây dựng Interface Message Processor (IMP) — một minicomputer Honeywell nặng 900 pound, cao bằng một tủ lạnh. IMP là tổ tiên của mọi router trong nhà bạn. Mỗi trường đại học kết nối máy tính của mình với một IMP, và các IMP xử lý toàn bộ việc kết nối mạng. Các máy chủ không cần biết gì về mạng.
┌──────┐ ┌──────────┐
│ UCLA ├──┐ ┌────┤ Stanford │
└──────┘ │ │ └──────────┘
┌────┴──┐ ┌─┴─────┐
│ IMP 1 ├─┤ IMP 2 │
└───┬───┘ └─┬─────┘
┌───┴───┐ ┌─┴─────┐
│ IMP 3 ├─┤ IMP 4 │
└───┬───┘ └─┬─────┘
┌────────┴┐ ┌───┴──┐
│ UC Santa│ │ Utah │
│ Barbara │ │ │
└─────────┘ └──────┘
ARPANET 4 nút (tháng 12, 1969)
Sự tách biệt này — mạng so với các máy tính trên mạng — có nghĩa là bất kỳ máy nào cũng có thể tham gia bất kể hệ điều hành hay kiến trúc. IMP đầu tiên đến UCLA vào ngày 1 tháng 9 năm 1969. Đến tháng 12, cả bốn nút đã hoạt động.
RFC 1: Quản trị ngẫu nhiên
Không có nhóm chính thức nào để thiết kế cách các máy chủ sẽ nói chuyện qua mạng. Thay vào đó, các nghiên cứu sinh từ bốn trường đại học gặp gỡ không chính thức. Một trong số họ, Steve Crocker, 24 tuổi tại UCLA, đã viết những ý tưởng đầu tiên của họ vào ngày 7 tháng 4 năm 1969.
Anh rất sợ vượt quá giới hạn — anh không phải giáo sư, anh không có thẩm quyền. Vì vậy anh viết trong nhà tắm vào ban đêm, sử dụng ngôn ngữ khiêm tốn, và đặt tiêu đề “Request for Comments” — không phải một đặc tả, chỉ là một lời mời thảo luận.
Bản năng đó tạo ra quy trình RFC, đã quản trị các tiêu chuẩn internet kể từ đó. Các quy tắc về cách trang web được lấy, cách email được gửi, cách dữ liệu đi qua mạng — mọi giao thức internet lớn đều được định nghĩa qua quy trình mà một nghiên cứu sinh đầy lo âu đã phát minh vì anh không muốn nghe có vẻ chuyên quyền.
Qua quy trình này, nhóm đã xây dựng giao thức host-to-host đầu tiên của ARPANET: Network Control Protocol. Nó hoạt động — nhưng giả định rằng mạng sẽ không bao giờ mất gói. Trên bốn nút, điều đó ổn. Ở quy mô toàn cầu, đó sẽ là thảm họa. Khiếm khuyết đó sẽ thúc đẩy việc tạo ra kẻ kế nhiệm của nó, TCP/IP.
Ứng dụng bom tấn ngẫu nhiên
Đến năm 1971, ARPANET có 15 nút. Nhưng tính năng quan trọng nhất của nó chưa bao giờ được lên kế hoạch.
Ray Tomlinson tại BBN kết hợp một chương trình nhắn tin nội bộ với một công cụ truyền tệp. Anh cần một cách để định địa chỉ một người dùng trên một máy cụ thể, nên anh chọn một ký hiệu sẽ không xuất hiện trong tên của ai: @.
Anh nói với đồng nghiệp: “Đừng nói với ai. Đây không phải thứ chúng ta nên làm.”
Trong vòng hai năm, email là 75% tổng lưu lượng ARPANET. Mạng được xây dựng để chia sẻ sức mạnh tính toán trở thành mạng cho giao tiếp của con người. Mô hình này — người dùng khám phá mục đích thực sự của một nền tảng — sẽ lặp lại trong suốt lịch sử internet.
ARPANET đã làm đúng gì (và sai gì)
ARPANET được ngừng hoạt động vào năm 1990, nhưng những ý tưởng của nó vẫn còn:
- Phi tập trung — không có nút chủ, không có bộ điều khiển trung tâm
- Chuyển mạch gói — mọi byte bạn từng gửi xác nhận Baran và Davies đã đúng
- Cộng tác mở — quy trình RFC trở thành cơ quan tiêu chuẩn thành công nhất trong công nghệ
- Nền tảng thay vì sản phẩm — ứng dụng bom tấn được xây bởi ai đó làm việc bên ngoài chính thức
Nhưng nó cũng bộc lộ giới hạn. Network Control Protocol không thể định tuyến giữa các mạng khác nhau. Không có bảo mật — mọi người đều được tin tưởng. Và chỉ các tổ chức được ARPA chọn mới có thể kết nối.
Thử thách tiếp theo: làm cho bất kỳ mạng nào nói chuyện với bất kỳ mạng nào khác. Đó là nơi TCP/IP xuất hiện.