[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.