Trang chủ / Giao thức và tiêu chuẩn
Lịch sử internet: Tại sao TCP/IP thay thế các giao thức mạng trước đó và kết nối các hệ thống riêng biệt
Lịch sử internet thường được kể như câu chuyện về những máy tính nhanh hơn và những sợi cáp dày hơn, nhưng bước đột phá quan trọng nhất lại vô hình. Internet không phát triển như một mạng duy nhất được quy hoạch tập trung. Nó phát triển như một cách để kết nối nhiều mạng khác nhau đã tồn tại từ trước, sử dụng một họ giao thức chung đóng vai trò ngôn ngữ chung. Họ giao thức đó chính là TCP/IP, và thiết kế của nó là lý do khiến các hệ thống riêng biệt cuối cùng có thể hoạt động cùng nhau.
Để hiểu tại sao TCP/IP thay thế các giao thức mạng trước đó và kết nối các hệ thống riêng biệt, cần nhìn vào bối cảnh mạng máy tính đầu thập niên 1970. Mạng máy tính lúc đó đã hoạt động, nhưng hoạt động trong sự cô lập. Mỗi mạng có những giả định riêng về phần cứng, phương thức truyền dẫn và phần mềm. TCP/IP thành công vì nó không được thiết kế để trở thành giao thức tốt nhất cho một mạng duy nhất. Nó được thiết kế để đủ tốt nhằm kết nối tất cả các mạng đó lại với nhau.
Bối cảnh ban đầu: Nhiều mạng, không có ngôn ngữ chung
Vào cuối thập niên 1960 và đầu thập niên 1970, kỹ thuật truyền gói tin đã được chứng minh là khả thi bởi ARPANET tại Hoa Kỳ, mạng của Phòng Thí nghiệm Vật lý Quốc gia tại Vương quốc Anh, và CYCLADES tại Pháp. Đây là những thành tựu lớn, nhưng chúng không tương thích với nhau. Chính ARPANET sử dụng Chương trình Kiểm soát Mạng, hay NCP, để cho phép các máy chủ giao tiếp. NCP hoạt động tốt khi mọi máy chủ nằm trên cùng một mạng và chạy phần mềm tương tự, nhưng nó giả định một mạng đơn nhất, đồng nhất.
Các mạng khác đưa ra những lựa chọn khác nhau. Một số được xây dựng cho các liên kết vô tuyến nơi kết nối bị nhiễu và gián đoạn. Những mạng khác được xây dựng cho liên kết vệ tinh với độ trễ lớn. Mạng đại học, mạng thương mại và mạng quân sự mỗi loại tối ưu hóa cho môi trường riêng. Kết quả là một tập hợp các hòn đảo cô lập. Bạn có thể di chuyển dữ liệu hiệu quả trong một hòn đảo, nhưng không có cách chuẩn nào để gửi dữ liệu từ hòn đảo này sang hòn đảo khác mà không cần xây dựng một bộ chuyển đổi tùy chỉnh cho mỗi cặp mạng.
Các giao thức trước đây có nhiều hạn chế chung:
- Phụ thuộc vào mạng: Chúng giả định mạng cơ sở là đáng tin cậy và đồng nhất, nên không thể xử lý việc mất mát, trễ hoặc sắp xếp lại thứ tự xảy ra khi dữ liệu đi qua các phương tiện truyền khác nhau.
- Địa chỉ mạng đơn: Các địa chỉ chỉ có ý nghĩa bên trong một mạng duy nhất, không có cách nào trên phạm vi toàn cầu để xác định đích đến trên một hệ thống khác.
- Sự liên kết chặt chẽ: Các chức năng kiểm soát bị gắn chặt với phần cứng cụ thể và cấu trúc mạng của một mạng duy nhất, khiến việc thêm các loại mạng mới trở nên khó khăn mà không phải viết lại giao thức.
Khi số lượng mạng tăng lên, cách tiếp cận này không thể mở rộng. Việc duy trì một bộ chuyển đổi riêng cho mỗi kết nối có thể xảy ra sẽ đòi hỏi số lượng cổng ngày càng tăng, mỗi cổng đều có logic tùy chỉnh riêng.
Các nguyên tắc thiết kế đằng sau TCP/IP
Giữa năm 1973 và 1974, Vint Cerf và Bob Kahn, dựa trên công trình của cộng đồng ARPANET và chịu ảnh hưởng từ các ý tưởng của CYCLADES và những nguồn khác, đã đề xuất một cách tiếp cận khác. Thay vì cố gắng làm cho tất cả các mạng trông giống nhau, họ đề xuất một họ giao thức sẽ giả định rằng các mạng là khác nhau và cung cấp một lớp chung ở phía trên. Đây trở thành Chương trình Kiểm soát Truyền dẫn, sau đó được chia thành Giao thức Kiểm soát Truyền dẫn và Giao thức Internet, hay TCP/IP.
Sức mạnh của nó đến từ một số lựa chọn thiết kế có chủ đích vốn bất thường vào thời điểm đó.
1. Phân lớp và Giao thức Internet
TCP/IP tách các trách nhiệm thành các lớp. Giao thức Internet, hay IP, xử lý công việc ��ịnh địa chỉ và chuyển tiếp gói tin qua các mạng. Nó cố ý đơn giản và không có kết nối. Mỗi gói tin, được gọi là datagram, được xử lý độc lập và chuyển tiếp đến đích mà không cần một mạch đã được thiết lập trước. IP không đảm bảo giao hàng, thứ tự hay sửa lỗi. Nó chỉ cố gắng hết sức để đưa gói tin đến nơi. Mô hình nỗ lực tốt nhất này có nghĩa IP có thể chạy trên hầu như bất kỳ mạng cơ sở nào, từ mạng cục bộ Ethernet đến liên kết vệ tinh đường dài, vì nó yêu cầu rất ít từ mạng đó.
2. Độ tin cậy đầu cuối với TCP
Độ tin cậy được chuyển đến hai đầu của quá trình giao tiếp, không phải ở giữa. Giao thức Kiểm soát Truyền dẫn, hay TCP, chạy trên máy chủ gửi và nhận. Nó chia dữ liệu thành các phân đoạn, đánh số chúng, truyền lại các phân đoạn bị mất, sắp xếp lại chúng theo đúng thứ tự và kiểm soát luồng dữ liệu để tránh làm quá tải máy chủ nhận hoặc mạng. Bằng cách đặt các chức năng này tại các điểm cuối, cốt lõi của mạng có thể vẫn đơn giản và nhanh chóng. Các cổng trung gian, sau này được gọi là bộ định tuyến, không cần lưu giữ trạng thái chi tiết về mỗi kết nối đi qua chúng.
3. Kiến trúc mở và khái niệm cổng
Có lẽ nguyên tắc quan trọng nhất là kiến trúc mở. TCP/IP không đưa ra bất kỳ giả định nào về việc một mạng trông như thế nào bên trong. Nó chỉ yêu cầu mỗi mạng có thể mang một gói IP và một cổng có thể chuyển đổi giữa định dạng cục bộ của mạng đó và định dạng IP. Điều này khiến việc liên kết các mạng với nhau trở nên khả thi mà không cần thay đổi thiết kế bên trong của chúng. Một trường đại học đang chạy một loại phần cứng và một phòng nghiên cứu đang chạy loại phần cứng khác đều có thể tham gia cùng một mạng internet bằng cách triển khai IP ở biên mạng của mình.
Tại sao các giao thức trước đó không thể mở rộng
NCP, giao thức mà TCP/IP đã thay thế trên ARPANET, minh họa sự khác biệt một cách rõ ràng. NCP giả định một mạng đơn nhất với một không gian địa chỉ đơn nhất và các liên kết cơ sở đáng tin cậy. Nó không thể định địa chỉ một máy chủ bên ngoài ARPANET, và nó kiểm soát luồng dữ liệu theo cách phụ thuộc vào hành vi cụ thể của các Bộ Xử lý Thông báo Giao diện ARPANET. Khi các nhà nghiên cứu cố gắng kết nối ARPANET với mạng truyền gói vô tuyến và vệ tinh, NCP không có cách nào để xử lý tỷ lệ lỗi và độ trễ rất khác nhau của chúng.
TCP/IP giải quyết các vấn đề này bằng thiết kế:
- Địa chỉ toàn cầu: IP giới thiệu định dạng địa chỉ thống nhất không phụ thuộc vào bất kỳ mạng đơn nhất nào. Mọi máy chủ đều có thể được xác định bằng một địa chỉ IP, cho phép bộ định tuyến chuyển tiếp gói tin qua nhiều nhảy mà không cần hiểu chi tiết của từng mạng trên đường đi.
- Phân mảnh và ghép lại: Nếu một gói tin quá lớn đối với một mạng cụ thể, các cổng có thể phân mảnh nó thành các mảnh nhỏ hơn và để nó được ghép lại tại đích đến, do đó các mạng có kích thước gói tin tối đa khác nhau vẫn có thể tương tác.
- Độ bền vững: Vì TCP xử lý việc truyền lại và sắp xếp thứ tự, việc mất một gói tin trên liên kết vô tuyến bị nhiễu không làm hỏng toàn bộ kết nối. Giao thức tự điều chỉnh theo điều kiện của từng đường truyền.
Sự tổng quát này chính là sự đánh đổi then chốt. TCP/IP không phải là giao thức nhanh nhất đối với bất kỳ mạng đơn lẻ nào khi xét riêng bi��t, nhưng nó là giao thức khả thi duy nhất cho một mạng internet được tạo thành từ nhiều mạng khác nhau.
TCP/IP đã kết nối các hệ thống riêng biệt trong thực tế như thế nào
Công việc thực tế của việc liên kết thuộc về các cổng. Một cổng kết nối với hai mạng trở lên sẽ nhận một gói IP trên mạng này, kiểm tra địa chỉ đích của nó, quyết định mạng tiếp theo hướng đến đích đó, và chuyển tiếp gói tin đi. Bản thân các mạng không cần phải thay đổi. Chỉ có các máy chủ và cổng cần hiểu IP.
Mô hình này đã được thử nghiệm trong suốt cuối thập niên 1970 trong các thí nghiệm liên kết ARPANET, truyền gói vô tuyến và mạng vệ tinh. khoảnh khắc quyết định đến vào ngày 1 tháng 1 năm 1983, được gọi là Ngày Cờ, khi ARPANET chính thức chuyển đổi từ NCP sang TCP/IP. Mọi máy chủ đều được yêu cầu sử dụng TCP/IP để duy trì kết nối. Sự chuyển đổi gây xáo trộn, nhưng nó chứng minh rằng một cộng đồng đa dạng có thể hội tụ về một họ giao thức duy nhất mà không làm sụp đổ mạng.
Sự chấp nhận được đẩy nhanh với Mạng của Quỹ Khoa học Quốc gia, hay NSFNET, được xây dựng vào giữa thập niên 1980 để kết nối các trung tâm máy tính siêu nhanh và sau đó là các mạng học thuật khu vực. NSFNET chấp nhận TCP/IP làm tiêu chuẩn của mình và biến việc liên kết thành điều kiện tham gia. Các mạng thương mại muốn trao đổi lưu lượng với các trường đại học cũng phải hỗ trợ TCP/IP. Vì giao thức được tài liệu hóa công khai và không gắn liền với một nhà cung cấp duy nhất, các nhà sản xuất có thể triển khai nó trên các hệ điều hành và phần cứng khác nhau, điều n��y càng mở rộng phạm vi của nó hơn nữa.
Từ mạng internet nghiên cứu đến cơ sở hạ tầng toàn cầu
Khi TCP/IP trở thành lớp chung, sự đổi mới có thể diễn ra ở cả phía trên và phía dưới nó. Ở bên dưới IP, các công nghệ liên kết mới như Ethernet, token ring, cáp quang và sau đó là mạng không dây có thể được triển khai mà không thay đổi các ứng dụng. Ở bên trên IP, các giao thức mới như Hệ thống Tên Miền, HTTP của World Wide Web và SMTP của email có thể phát triển mà không cần lo lắng về chi tiết của các mạng cơ sở. Hình dạng đồng hồ cát này, với IP ở eo thắt, chính là điều cho phép internet phát triển nhanh chóng đến vậy.
Các họ giao thức trước đó không cung cấp sự độc lập này. Chúng gộp địa chỉ, độ tin cậy và kiểm soát phần cứng lại với nhau, nên bất kỳ thay đổi nào trong một lĩnh vực đều đòi hỏi thay đổi ở tất cả các lĩnh vực khác. Thiết kế phân lớp của TCP/IP cho phép mỗi phần của hệ thống tiến hóa riêng biệt nhưng vẫn tương tác được. Đó là lý do tại sao nó có thể hấp thụ những loại mạng hoàn toàn mới, từ mạng cục bộ trong văn phòng đến mạng dữ liệu di động nhiều thập kỷ sau đó, mà không tự nó bị thay thế.
Sự phát triển của internet do đó ít liên quan đến việc xây dựng một mạng để thống trị tất cả và nhiều hơn đến việc thống nhất về một bộ quy tắc tối thiểu, chung để nhiều mạng có thể hợp tác. TCP/IP đã cung cấp sự thống nhất đó. Bằng cách thay thế các giao thức chuyên biệt cho từng mạng trước đó bằng một họ giao thức được thiết kế cho sự liên kết, nó đã biến một tập hợp các hệ thống riêng biệt thành một hệ thống toàn cầu duy nhất, trong đó về nguyên tắc, bất kỳ máy chủ nào cũng có thể giao tiếp với bất kỳ máy chủ nào khác.
