Show HN: Máy tính đã đến được máy chủ của tôi như thế nào?
(how-did-i-get-here.net)Tiêu đề tóm tắt: Hành trình của gói tin Internet và vai trò của giao thức BGP
- Bài viết giải thích tính năng
traceroutedùng để theo dõi dữ liệu được truyền qua Internet như thế nào. - Nội dung mô tả quá trình gói tin di chuyển từ máy tính của người dùng, qua router, ISP, rồi đến máy chủ đích cuối cùng.
- Sử dụng chương trình traceroute
ktr, vốn phát trực tuyến kết quả theo thời gian thực, để theo dõi các máy chủ mà gói tin đi qua ở từng bước.
Hành trình của gói tin Internet
- Máy tính của người dùng bắt đầu giao tiếp với router, và router này là điểm vào mạng của ISP.
- Quá trình đi qua mạng của Linode và cuối cùng đến máy chủ được theo dõi bằng traceroute.
Frontend của trang web
- Trang web vẫn hoạt động bình thường ngay cả khi JavaScript bị vô hiệu hóa.
- Máy chủ nhận yêu cầu HTTP, bắt đầu traceroute, và hiển thị kết quả theo thời gian thực trên trang web mỗi khi có kết quả mới.
Truy vết ngược đường đi của gói tin
- Trên thực tế, hệ thống chạy traceroute từ máy chủ về máy tính của người dùng và lần ngược đường đi đó.
- Trong định tuyến Internet thực tế, gói tin có thể đi qua các đường khác nhau, nhưng nhìn chung sẽ theo một lộ trình tương tự.
Định nghĩa về mạng
- Mỗi mạng được gọi là một hệ tự trị (AS), là tập hợp các router và máy chủ được kết nối với nhau.
- Chủ sở hữu AS quyết định cấu trúc của Internet thông qua các kết nối với những AS khác.
- Internet là một cấu trúc trong đó các mạng thuộc sở hữu doanh nghiệp được nối với nhau bằng các giao dịch tài chính và thủ tục hành chính.
Thông tin WHOIS
- Sử dụng giao thức WHOIS để tra cứu thông tin chủ sở hữu của hệ tự trị (AS) mà mỗi địa chỉ IP thuộc về.
- Thông tin được cung cấp từ nhiều máy chủ khác nhau theo cấu trúc do quản trị viên máy chủ WHOIS thiết lập.
Giao thức BGP
- BGP (Border Gateway Protocol) là giao thức mà các router biên giữa các AS sử dụng khi chuyển tiếp gói tin sang mạng kế tiếp.
- BGP quyết định hình dạng của Internet, và các router của từng AS chia sẻ bảng định tuyến thông qua BGP.
Bối cảnh lịch sử
- Bài viết giải thích lịch sử từ thời kỳ đầu của ARPANET, hình thức sơ khai của Internet, đến sự phát triển của giao thức BGP.
- BGP v4 là giao thức định tuyến Internet chủ yếu vẫn đang được sử dụng cho tới ngày nay.
Ý kiến của GN⁺
Phần quan trọng nhất của bài viết này là phần giải thích về tính năng traceroute, cho phép theo dõi theo thời gian thực hành trình mà các gói dữ liệu đi qua trên Internet, cùng với giao thức BGP đóng vai trò then chốt trong quá trình đó. Bài viết giúp các kỹ sư phần mềm mới vào nghề hiểu cấu trúc phức tạp của Internet, đồng thời cho thấy Internet không chỉ là một cấu trúc kỹ thuật đơn thuần mà còn là một hệ sinh thái phức tạp đan xen giữa nhiều doanh nghiệp và chính sách, từ đó tạo nên sức hấp dẫn riêng.
1 bình luận
Ý kiến Hacker News
Lexi, một nhà phát triển trẻ 17 tuổi, quan tâm đến việc hiểu sâu cách máy tính hoạt động và những cách trực quan hóa mới.
traceroutecó thể phát trực tiếp theo thời gian thực lên website.BGP là giao thức quyết định hình dạng của Internet và cá nhân không thể trực tiếp sử dụng.
Đây là biểu diễn theo chiều ngược lại của cách máy chủ đi đến máy tính của người dùng, và việc định tuyến ở mỗi chiều phần lớn rất khác nhau.
Có đề xuất một bài báo về cách
traceroutehoạt động, vì nhiều người bỏ qua việctraceroutecó thể không đối xứng.Việc phát triển trình phân tích cú pháp cho giao thức WHOIS gần như là bất khả thi, vì định dạng phản hồi rất tự do.
Thay vì dò theo ICMP ECHO, có thể dùng kết nối HTTP TCP sẵn có giữa trình duyệt phía client và máy chủ web để đi xuyên qua NAT phía client và/hoặc tường lửa duy trì trạng thái.
Có giới thiệu nghiên cứu trước đây về
traceroutengược.Các gói tin của một phiên TCP thường đi theo các tuyến bất đối xứng trên Internet, do các quy tắc kinh doanh liên quan đến chi phí và lỗi của con người.
Có nhắc đến
mtr, công cụ được dùng thường xuyên hơntraceroute, giúp chẩn đoán mất gói gián đoạn và hiểu luồng lưu lượng trung bình.Lexi không chỉ hiểu sâu TCP/IP và toàn bộ 7 tầng của mô hình OSI mà còn thành thạo phát triển frontend và backend, phần cứng nhúng, ứng dụng di động và trình biên dịch.