Hãy bắt đầu bằng cách làm rõ một số hiểu lầm về Internet. Internet không phải là Web. Internet không phải là đám mây. Và Internet không phải là phép màu.
Nó có vẻ như một điều tự động mà chúng ta coi như hiển nhiên, nhưng thực tế có một quy trình hoàn chỉnh xảy ra phía sau hậu trường để nó hoạt động.
Vậy... Internet. Nó là gì?
Internet thực chất là một sợi dây. Hay đúng hơn, nhiều sợi dây kết nối các máy tính khắp thế giới.
Internet cũng là cơ sở hạ tầng. Nó là một mạng lưới toàn cầu các máy tính kết nối với nhau, giao tiếp thông qua một cách tiêu chuẩn hóa với các giao thức thiết lập.
Thực sự, đó là một mạng lưới của các mạng lưới. Nó là một hệ thống phân tán hoàn toàn của các thiết bị tính toán và đảm bảo kết nối từ đầu đến cuối qua mọi phần của mạng. Mục tiêu là mọi thiết bị đều có thể giao tiếp với bất kỳ thiết bị nào khác.

Internet là thứ chúng ta dùng mỗi ngày, và nhiều người không thể tưởng tượng cuộc sống thiếu nó. Internet và mọi tiến bộ công nghệ nó mang lại đã thay đổi xã hội. Nó thay đổi công việc, cách chúng ta tiêu thụ tin tức và chia sẻ thông tin, và cách giao tiếp với nhau.
Nó cũng tạo ra vô số cơ hội và đã giúp nhân loại tiến bộ, định hình trải nghiệm con người của chúng ta.
Không có thứ gì giống nó – đây là một trong những phát minh vĩ đại nhất mọi thời đại. Nhưng chúng ta có từng dừng lại suy nghĩ tại sao nó được tạo ra, nó xảy ra như thế nào, hay do ai tạo ra? Internet đã trở thành như ngày hôm nay như thế nào?
Bài viết này giống như một hành trình quay ngược thời gian. Chúng ta sẽ tìm hiểu về nguồn gốc của Internet và nó đã đi bao xa qua các năm tháng, điều này có thể hữu ích cho hành trình lập trình của chúng ta.
Việc học về lịch sử hình thành Internet đã làm tôi nhận ra mọi thứ归结为 giải quyết vấn đề. Và đó chính là cốt lõi của lập trình. Có một vấn đề, cố gắng tìm giải pháp, và cải tiến giải pháp đó khi đã tìm thấy.
Internet, một công nghệ rộng lớn và luôn thay đổi, không phải là công trình của một cá nhân hay tổ chức đơn lẻ. Nhiều người đã đóng góp cho sự phát triển của nó bằng cách phát triển các tính năng mới.
Vì vậy nó đã phát triển theo thời gian. Nó mất ít nhất 40 năm để hình thành và vẫn (vẫn còn) tiếp tục tiến hóa.
Và nó không được tạo ra chỉ để tạo ra thứ gì đó. Internet chúng ta biết và dùng hôm nay là kết quả của một thí nghiệm, ARPANET, mạng tiền thân của Internet.
Và tất cả bắt đầu bởi một vấn đề.
Sợ hãi trước Sputnik
Đúng giữa Chiến tranh Lạnh, ngày 4 tháng 10 năm 1957, Liên Xô phóng vệ tinh nhân tạo đầu tiên của thế giới vào không gian tên là Sputnik.
Vì đó là vật thể nhân tạo đầu tiên bay vào không gian, điều này gây hoang mang cho người Mỹ.
Liên Xô không chỉ dẫn đầu về khoa học và công nghệ mà còn là một mối đe dọa. Người Mỹ lo sợ rằng Liên Xô sẽ trinh sát kẻ thù, thắng Chiến tranh Lạnh, và các cuộc tấn công hạt nhân trên lãnh thổ Mỹ là có thể xảy ra.

Vì vậy người Mỹ bắt đầu suy nghĩ nghiêm túc hơn về khoa học và công nghệ. Sau cú thức tỉnh Sputnik, cuộc đua không gian bắt đầu. Không lâu sau đó, năm 1958, Chính phủ Mỹ tài trợ cho nhiều cơ quan, trong đó có ARPA.
ARPA là viết tắt của Advanced Research Project Agency (Cơ quan Dự án Nghiên cứu Nâng cao). Đó là một dự án nghiên cứu của Bộ Quốc phòng về Khoa học Máy tính, một cách để các nhà khoa học và nghiên cứu chia sẻ thông tin, phát hiện, kiến thức và giao tiếp. Nó cũng cho phép và giúp lĩnh vực Khoa học Máy tính phát triển và tiến hóa.
Ở đó, tầm nhìn của J.C.R. Licklider, một trong những giám đốc của ARPA, bắt đầu hình thành trong những năm sau đó.
Nếu không có ARPA, Internet sẽ không tồn tại. Chính nhờ tổ chức này mà phiên bản đầu tiên của Internet được tạo ra – ARPANET.
Tạo ra Mạng lưới Máy tính Toàn cầu
Mặc dù Licklider rời ARPA vài năm trước khi ARPANET được tạo ra, nhưng ý tưởng và tầm nhìn của ông đã đặt nền móng và khối xây dựng để tạo ra Internet. Thực tế rằng nó trở thành như chúng ta biết hôm nay có thể là điều chúng ta coi như hiển nhiên.
Máy tính lúc bấy giờ không giống như bây giờ. Chúng khổng lồ và cực kỳ đắt đỏ. Chúng được xem như máy xữ lý số và chủ yếu là máy tính, chỉ có thể thực hiện một số lượng nhiệm vụ hạn chế.
Vì vậy trong thời đại máy tính mainframe, mỗi máy chỉ có thể chạy một nhiệm vụ cụ thể. Để một thí nghiệm diễn ra yêu cầu nhiều nhiệm vụ, nó sẽ cần nhiều hơn một máy tính. Nhưng đó có nghĩa là mua thêm phần cứng đắt tiền.
Giải pháp cho vấn đề đó?
Kết nối nhiều máy tính vào cùng một mạng và khiến các hệ thống khác nhau nói cùng một ngôn ngữ để giao tiếp với nhau.
Ý tưởng về nhiều máy tính kết nối mạng không mới. Cơ sở hạ tầng như vậy tồn tại từ những năm 1950 và được gọi là WANs (Wide Area Networks - Mạng diện rộng).
Tuy nhiên, WANs có nhiều hạn chế công nghệ và bị giới hạn cả về khu vực lẫn khả năng. Mỗi máy nói ngôn ngữ riêng, khiến không thể giao tiếp với máy khác.
Vì vậy ý tưởng về một "mạng lưới toàn cầu" mà Licklider đề xuất và phổ biến vào đầu những năm 1960 là mang tính cách mạng. Nó gắn liền với tầm nhìn lớn hơn của ông, về sự cộng sinh hoàn hảo giữa máy tính và con người.
Ông chắc chắn rằng trong tương lai máy tính sẽ cải thiện chất lượng cuộc sống và loại bỏ các nhiệm vụ lặp lại, nhường chỗ và thời gian cho con người tư duy sáng tạo, sâu sắc hơn, và để trí tưởng tượng bay xa.
Điều đó chỉ có thể thực hiện nếu các hệ thống khác nhau phá vỡ rào cản ngôn ngữ và tích hợp vào một mạng lưới rộng hơn. Ý tưởng về "Mạng lưới" (Networking) chính là thứ tạo nên Internet chúng ta dùng hôm nay. Nó về cơ bản là nhu cầu về các tiêu chuẩn chung để các hệ thống khác nhau giao tiếp.
Xây dựng Mạng Chuyển mói Phân tán (Distributed Packet Switched Network)
Cho đến thời điểm này (cuối những năm 1960), khi bạn muốn chạy tác vụ trên máy tính, dữ liệu được gửi qua đường dây điện thoại sử dụng phương pháp gọi là "Chuyển mạch kết nối" (Circuit switching).
Phương pháp này hoạt động tốt cho cuộc gọi điện thoại nhưng rất kém hiệu quả cho máy tính và Internet.
Sử dụng phương pháp này, bạn chỉ có thể gửi dữ liệu như một gói tin hoàn chỉnh, tức là dữ liệu gửi qua mạng, và chỉ đến một máy tính tại một thời điểm. Việc thông tin bị mất và phải khởi động lại toàn bộ quy trình từ đầu là điều phổ biến. Tốn thời gian, kém hiệu quả, và tốn kém.
Và trong thời Chiến tranh Lạnh, nó còn nguy hiểm. Một cuộc tấn công vào hệ thống điện thoại sẽ phá hủy toàn bộ hệ thống truyền thông.
Câu trả lời cho vấn đề đó là chuyển mói gói tin (packet switching).
Đó là một phương pháp đơn giản và hiệu quả để truyền dữ liệu. Thay vì gửi dữ liệu như một luồng lớn, nó cắt dữ liệu thành các mảnh nhỏ.
Sau đó nó chia nhỏ các gói thông tin thành các khối và chuyển tiếp chúng nhanh nhất có thể và theo nhiều hướng khác nhau, mỗi gói đi theo tuyến đường riêng trong mạng, cho đến khi đến đích.
Khi đó, chúng được lắp ráp lại. Điều đó được thực hiện vì mỗi gói tin chứa thông tin về người gửi, đích đến, và một số thứ tự. Điều này cho phép người nhận lắp ráp chúng trở lại dạng ban đầu.
Phương pháp này được nghiên cứu bởi nhiều nhà khoa học khác nhau, nhưng ý tưởng của Paul Baran về mạng phân tán sau đó được ARPANET áp dụng.
Baran đang cố gắng tìm ra một hệ thống truyền thông có thể sống sót sau cuộc tấn công hạt nhân. Về cơ bản, ông muốn khám phá một hệ thống truyền thông có thể xử lý sự cố hỏng hóc.
Ông kết luận rằng mạng lưới có thể được xây dựng dựa trên hai loại cấu trúc: tập trung (centralised) và phân tán (distributed).
Từ những cấu trúc đó nảy sinh ba loại mạng: tập trung, phi tập trung (decentralised), và phân tán. Trong ba loại đó, chỉ có loại cuối cùng thích hợp để sống sót sau cuộc tấn công.

Nếu một phần của loại mạng đó bị phá hủy, phần còn lại vẫn sẽ hoạt động và nhiệm vụ đơn giản được chuyển sang phần khác.
Lúc đó, họ không nghĩ đến việc mở rộng nhanh chóng của mạng – chúng ta không cần nó. Chỉ những năm sau đó sự mở rộng này mới bắt đầu hình thành. Ý tưởng của Baran vượt trước thời đại, tuy nhiên, chúng đặt nền móng cho cách Internet hoạt động ngày nay.
Mạng chuyển mói gói tin thử nghiệm đã thành công. Nó dẫn đến việc tạo ra sớm kiến trúc ARPANET áp dụng phương pháp này.
Cách ARPANET được xây dựng
Điều bắt đầu như một phản ứng trước đe dọa Chiến tranh Lạnh đang dần biến thành thứ khác. Nguyên mẫu đầu tiên của Internet bắt đầu hình thành và mạng máy tính đầu tiên được xây dựng, ARPANET.
Mục tiêu lúc này là chia sẻ tài nguyên, dù là dữ liệu, phát hiện hay ứng dụng. Nó cho phép mọi người, bất kể ở đâu, tận dụng sức mạnh của máy tính đắt tiền ở xa xôi, như thể họ đang ngay trước mặt.
Cho đến thời điểm này, các nhà khoa học không thể sử dụng tài nguyên trên máy tính ở vị trí khác. Mỗi máy mainframe nói ngôn ngữ riêng, nên thiếu giao tiếp và không tương thích giữa các hệ thống.
Để máy tính có hiệu quả, chúng cần nói cùng một ngôn ngữ và được liên kết thành một mạng.
Vì vậy giải pháp là xây dựng một mạng thiết lập các liên kết truyền thông giữa nhiều máy tính siêu mainframe chia sẻ tài nguyên cách nhau dặm dây.
Việc xây dựng một mạng chuyển mói gói tin thử nghiệm quy mô quốc gia kết nối các trung tâm do các cơ quan và đại học điều hành đã bắt đầu.
Ngày 29 tháng 10 năm 1969, các máy tính khác nhau thực hiện kết nối đầu tiên và "nói chuyện", một giao tiếp 'node-to-node' từ máy này sang máy kia. Đó là một thử nghiệm sắp cách mạng hóa truyền thông.
Tin nhắn đầu tiên được gửi từ UCLA (Đại học California, Los Angeles) đến SRI (Viện Nghiên cứu Stanford).
Nội dung đơn giản là "LO".
Điều dự định là "LOGIN" nhưng ban đầu không thể thực hiện, vì hệ thống bị sập và phải khởi động lại. Nhưng nó hoạt động! Bước đầu tiên đã được thực hiện và rào cản ngôn ngữ đã được phá vỡ.
Cuối năm 1969, một kết nối đã được thiết lập giữa bốn node trên toàn mạng bao gồm UCLA, SRI, UCSB (Đại học California Santa Barbara) và Đại học Utah.

Nhưng mạng phát triển đều đặn qua các năm và càng ngày càng nhiều đại học tham gia.
Đến năm 1973 đã có node kết nối đến Anh và Na Uy. ARPANET đã kết nối các trung tâm siêu tính toán do các đại học điều hành vào mạng của nó.
Một trong những thành tựu vĩ đại nhất thời đó là một văn hóa mới đang nổi lên. Một văn hóa xoay quanh việc giải quyết vấn đề thông qua chia sẻ và tìm giải pháp tốt nhất tập thể qua mạng lưới.
Trong thời gian đó, các nhà khoa học và nghiên cứu đặt câu hỏi về mọi khía cạnh của mạng – các khía cạnh kỹ thuật cũng như đạo đức.
Môi trường nơi các cuộc thảo luận diễn ra là thân thiện với tất cả và không có hệ thống cấp bậc. Mọi người tự do bày tỏ ý kiến và hợp tác để giải quyết các vấn đề lớn nảy sinh.
Chúng ta thấy văn hóa đó kéo dài đến Internet ngày nay. Qua các diễn đàn, mạng xã hội, v.v., mọi người đặt câu hỏi để tìm câu trả lời hoặc cùng nhau đối phó với các vấn đề, bất kể chúng là gì, ảnh hưởng đến điều kiện và trải nghiệm con người.
Theo thời gian, nhiều mạng chuyển mói gói tin độc lập xuất hiện không liên quan đến ARPANET (nó tồn tại ở cấp quốc tế và bắt đầu nhân lên vào những năm 1970). Đó là thách thức mới.
Các mạng khác nhau này có ngôn ngữ riêng, và tiêu chuẩn riêng về cách truyền dữ liệu. Không thể tích hợp chúng vào mạng lưới lớn hơn, Internet chúng ta biết hôm nay.
Làm cho các mạng khác nhau nói chuyện với nhau – hay Internetworking (liên mạng), thuật ngữ các nhà khoa học dùng cho quá trình này – chứng minh là một thách thức.
Nhu cầu về Tiêu chuẩn Chung
Ngày nay thiết bị của chúng ta được thiết kế để tự động kết nối với mạng toàn cầu rộng lớn. Nhưng xưa kia quy trình này là một nhiệm vụ phức tạp.
Cơ sở hạ tầng toàn cầu này, mạng lưới của các mạng lưới mà chúng ta gọi là Internet, dựa trên các giao thức đã thỏa thuận. Chúng dựa trên cách mạng lưới giao tiếp và trao đổi dữ liệu.
Từ những ngày đầu tại ARPANET, nó vẫn thiếu một ngôn ngữ chung để máy tính bên ngoài mạng của nó giao tiếp với máy tính trong mạng của nó. Dù nó là một mạng chuyển mói gói tin an toàn và tin cậy.
Làm thế nào các mạng sơ khai này có thể giao tiếp với nhau? Chúng ta cần mạng mở rộng hơn nữa để tầm nhìn "mạng lưới toàn cầu" thành hiện thực.
Để xây dựng một mạng lưới mở của các mạng lưới, một giao thức chung là cần thiết. Đó là một bộ quy tắc.
Những quy tắc đó phải đủ chặt chẽ để truyền dữ liệu an toàn nhưng cũng đủ linh hoạt để đáp ứng mọi cách truyền dữ liệu.
TCP/IP Cứu Vãn Tình Hình
Vint Cerf và Bob Khan bắt đầu làm việc về thiết kế của thứ ta gọi là Internet ngày nay. Năm 1978, Giao thức Kiểm soát Truyền và Giao thức Internet được tạo ra, còn gọi là TCP/IP.
Các quy tắc cho Liên kết (Interconnection) là:
- Các mạng độc lập không được yêu cầu phải thay đổi
- Có nỗ lực đạt được truyền thông
- Các mạng nội bộ sẽ tồn tại cùng với các cổng giao thức (gateways) kết nối các mạng này. Nhiệm vụ của chúng là dịch giữa các mạng. Sẽ có một giao thức thống nhất, được đồng thuận cho việc đó.
- Không có kiểm soát tập trung, không có một cá nhân hay tổ chức nào负责.
Như Cerf đã giải thích:
Nhiệm vụ của TCP chỉ đơn giản là lấy một luồng thông điệp do một HOST tạo ra và tái tạo luồng đó tại HOST nhận ở nơi khác mà không thay đổi.
Giao thức Internet (IP) làm cho việc định vị thông tin trở nên khả thi khi tìm kiếm trong số lượng lớn máy tính có sẵn.
Vậy dữ liệu di chuyển như thế nào?
Vậy một gói tin đi từ đích này đến đích kia như thế nào? Từ nơi gửi đến nơi nhận? TCP/IP đóng vai trò gì trong việc này và nó làm cho hành trình đó trở nên khả thi như thế nào?
Khi người dùng gửi hoặc nhận thông tin, bước đầu tiên là TCP trên máy gửi chia dữ liệu thành các gói tin và phân phối chúng. Những gói tin này di chuyển từ router đến router qua Internet.
Trong lúc này, giao thức IP chịu trách nhiệm định địa chỉ và chuyển tiếp các gói tin đó. Cuối cùng, TCP lắp ráp lại các gói tin về trạng thái ban đầu.
Internet Tiếp Theo Như Thế Nào?
Trong suốt những năm 80, giao thức này được kiểm tra kỹ lưỡng và được nhiều mạng áp dụng. Internet tiếp tục phát triển và mở rộng với tốc độ nhanh chóng.
Mạng lưới toàn cầu kết nối của các mạng lưới cuối cùng bắt đầu xảy ra. Nó vẫn chủ yếu được sử dụng rộng rãi bởi các nhà nghiên cứu, khoa học viên và lập trình viên để trao đổi tin nhắn và thông tin. Đại chúng vẫn khá lạ lẫm với nó.
Nhưng điều đó sắp thay đổi vào cuối những năm 80 khi Internet biến hình một lần nữa.
Điều này nhờ Tim Berners-Lee giới thiệu Web – cách chúng ta biết và sử dụng Internet ngày nay.
Internet chuyển từ chỉ gửi tin nhắn từ máy tính này sang máy tính kia sang việc tạo ra một cách truy cập trực quan, dễ dàng để mọi người duyệt qua những gì ban đầu là tập hợp các trang web liên kết. Web được xây dựng trên đỉnh Internet. Internet là xương sống của nó.
Tôi hy vọng bài viết này cung cấp bối cảnh và cái nhìn sâu sắc về nguồn gốc của thiên hà thông tin chúng ta dùng hôm nay. Và tôi hy vọng bạn thích tìm hiểu về nó thực sự bắt đầu như thế nào và con đường nó đã đi để trở thành Internet chúng ta biết và sử dụng hôm nay.