[nhạc đếm ngược: 7, 6, 5, 4, 3, 2, 1] Internet: Gói tin, Định tuyến & Độ ổn định Xin chào, tôi là Lynn, kỹ sư phần mềm tại Spotify và tôi thừa nhận trước rằng tôi thường coi thường độ ổn định của Internet. Lượng thông tin khổng lồ có trên Internet thực sự đáng kinh ngạc. Nhưng làm thế nào để chắc chắn từng mẩu dữ liệu sẽ được truyền đến bạn? Nếu muốn phát nhạc trên Spotify, dường như máy tính nối thẳng đến máy chủ Spotify rồi Spotify gửi bài hát cho bạn qua đường dẫn trực tiếp, riêng biệt. Thực ra, Internet không hoạt động thế. Nếu Internet cấu thành từ kết nối riêng, trực tiếp thì sẽ chẳng thể nào hoạt động được khi hàng triệu người cùng tham gia. Nhất là khi không gì đảm bảo mọi đường dẫn và máy tính luôn hoạt động. Thay vào đó, dữ liệu sẽ di chuyển trên Internet kiểu gián tiếp hơn. Cách đây rất lâu, vào đầu những năm 1970, tôi và cộng sự Bob Kahn bắt đầu nghiên cứu thiết kế tiền thân của Internet ngày nay. Bob và tôi có nhiệm vụ và cơ hội thiết kế các giao thức và cấu trúc Internet. Rồi chúng tôi kiên trì tham gia phát triển và cải tiến Internet suốt từ thời đó cho đến tận bây giờ. Cách thức truyền tải thông tin từ máy tính này qua máy tính khác cũng rất thú vị, không cần theo đường dẫn cố định, thực ra đường dẫn có thể thay đổi ngay khi hai máy đang trao đổi với nhau. Thông tin trên Internet đi từ máy tính này sang máy tính kia dưới dạng gọi là gói tin và cách gói tin di chuyển từ nơi này đến nơi khác trên Internet cũng rất giống với cách chúng ta di chuyển giữa các nơi bằng xe hơi. Tùy thuộc vào mật độ giao thông hay tình trạng đường sá, bạn có thể chọn hoặc buộc phải chọn tuyến đường khác để đi đến nơi đó cho mỗi lần di chuyển. Và cũng giống việc bạn có thể vận chuyển mọi thứ đồ bên trong xe hơi, cũng có rất nhiều loại thông tin số có thể được gửi đi bằng gói tin IP tuy nhiên, cũng có vài hạn chế. Ví dụ giả sử bạn cần di chuyển tàu con thoi từ nơi xây dựng đến nơi phóng tàu. Tàu sẽ không để vừa trong xe tải nên cần phải tách nó ra thành nhiều phần và vận chuyển bằng cả đoàn xe tải. Các xe tải có thể đi các tuyến đường khác nhau và đến điểm đích vào những thời điểm khác nhau. Nhưng một khi tất cả đã đến đó, bạn có thể lắp ráp các phần thành con tàu con thoi hoàn chỉnh và có thể phóng nó lên. Thông tin trên Internet cũng hoạt động tương tự. Nếu bạn muốn gửi một bức ảnh dung lượng lớn cho bạn bè hoặc đăng lên trang web, bức ảnh đó có thể bao gồm cả hàng chục triệu bit 1 và 0, quá nặng để gửi cùng trong một gói tin. Vì đó là dữ liệu trên máy tính, máy tính gửi bức ảnh đó có thể nhanh chóng chia nhỏ nó ra thành hàng trăm hoặc thậm chí hàng nghìn phần nhỏ hơn gọi là gói tin. Không giống như xe hơi hay xe tải, những gói tin này không cần tài xế và chúng không tự chọn đường đi cho mình. Mỗi gói tin sẽ có địa chỉ Internet của nơi nó đi và nơi nó đến. Các máy tính đặc biệt trên Internet mang tên định tuyến đóng vai trò như viên quản lý giao thông, đảm bảo cho các gói tin di chuyển thông suốt trên mạng. Nếu một định tuyến bị nghẽn, các gói tin đơn lẻ có thể đi đường khác trên Internet và có thể sẽ đến điểm đích vào thời gian hơi lệch một chút hoặc thậm chí là bị hư. Cùng tìm hiểu xem nó diễn ra thế nào nào. Là một phần trong giao thức Internet, mỗi định tuyến sẽ theo dõi nhiều đường dẫn để gửi gói tin và chọn đường dẫn phù hợp rẻ nhất cho từng mẩu dữ liệu dựa trên địa chỉ IP của điểm đến cho gói tin. Rẻ nhất ở đây không phải chỉ chi phí mà là thời gian và các yếu tố phi kỹ thuật như chính trị và quan hệ giữa các công ty. Thông thường, định tuyến di chuyển tốt nhất của dữ liệu không nhất thiết phải là cái trực tiếp nhất. Có nhiều đường dẫn để lựa chọn cho phép mạng có thể chấp nhận sai sót. Có nghĩa là mạng có thể liên tục gửi gói tin ngay cả khi có lỗi nghiêm trọng ở đâu đó. Đây là cơ sở cho nguyên tắc chính của Internet: độ ổn định. Giờ, nếu bạn muốn yêu cầu một vài dữ liệu và không phải tất cả được truyền đến thì sao? Giả sử bạn muốn nghe nhạc. Làm sao bạn chắc chắn được 100% rằng toàn bộ dữ liệu sẽ được truyền đến để bài hát chạy thật mượt? Giới thiệu với bạn một người bạn mới, TCP (giao thức điều khiển truyền nhận). TCP quản lý việc gửi và nhận toàn bộ dữ liệu của bạn dưới dạng gói tin. Nó như kiểu dịch vụ gửi thư đảm bảo. Khi bạn yêu cầu một bài hát trên thiết bị của mình, Spotify sẽ gửi đi một bài hát đã được chia nhỏ thành nhiều gói tin. Khi các gói tin của bạn đến nơi, TCP tiến hoàn kiểm định toàn diện và gửi lại xác nhận đã nhận từng gói tin. Nếu tất cả các gói tin đều ở đó, TCP sẽ ký nhận giao hàng và thế là hoàn tất. (bài hát được phát) Nếu TCP thấy thiếu vài gói tin, nó sẽ không ký hoặc không thì bài hát của bạn sẽ nghe chẳng mượt hoặc có thể bị thiếu vài đoạn. Với mỗi gói tin bị thiếu hoặc chưa hoàn chỉnh, Spotify sẽ tiến hành gửi lại. Một khi TCP xác thực đã nhận được nhiều gói tin của bài hát yêu cầu, bài hát sẽ bắt đầu được phát. TCP và hệ thống định tuyến tuyệt vời ở chỗ chúng có thể mở rộng. Chúng có thể kết nối với 8 hoặc 8 tỷ thiết bị. Trên thực tế, nhờ những nguyên tắc chấp nhận sai sót và dự phòng này mà chúng ta thêm càng nhiều định tuyến thì Internet lại càng ổn định. Điều tuyệt vời nữa là chúng ta có thể phát triển và mở rộng Internet mà không làm gián đoạn dịch vụ của bất kỳ ai đang sử dụng. Internet cấu thành từ hàng trăm nghìn mạng lưới và hàng tỷ máy tính và thiết bị kết nối với nhau về mặt vật lý. Những hệ thống cấu thành nên Internet này kết nối và giao tiếp với nhau và phối hợp với nhau nhờ vào những tiêu chuẩn đã được thống nhất về cách thức gửi dữ liệu trên Internet. Thiết bị điện toán hay các định tuyến trên Internet giúp tất cả các gói tin tìm được đường đến nơi chúng sẽ được tập hợp lại theo thứ tự nếu cần. Việc này diễn ra hàng tỷ lần mỗi ngày bất kể khi bạn và mọi người đang gửi email, lướt web gọi video, dùng ứng dụng điện thoại hay khi các cảm biến hay thiết bị trên Internet giao tiếp với nhau.