4 điểm bởi GN⁺ 4 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Internet chuyển đổi giọng nói, hình ảnh và văn bản thành các mẫu của điện, ánh sáng và sóng vô tuyến, rồi cho chúng đi qua thiết bị của nhiều nhà khai thác độc lập; dữ liệu được chuyển tiếp chỉ bằng quyết định cục bộ tại từng hop, không có bộ điều khiển trung tâm hay một chủ thể duy nhất biết toàn bộ đường đi
  • Tái tạo số của điện báo, chuyển mạch kênh của mạng điện thoại, chuyển mạch gói, Ethernet, IP, TCP, DNS và TLS không phải là các thành phần của một bản thiết kế hoàn chỉnh, mà là những giao thức được tích lũy dần để giải quyết các giới hạn vật lý và vận hành của từng thời kỳ
  • IP chỉ đảm nhiệm việc truyền theo kiểu nỗ lực tối đa, chấp nhận mất mát, trùng lặp và thay đổi thứ tự; TCP xử lý truyền lại, khôi phục thứ tự và kiểm soát tắc nghẽn ở đầu cuối; DNS chuyển tên thành địa chỉ và TLS bổ sung xác thực cùng mã hóa
  • Khi mở trang web lần đầu, trước cả khi truyền nội dung còn cần nhiều vòng khứ hồi cho tra cứu DNS, kết nối TCP và bắt tay TLS, nên chỉ băng thông cao thôi không thể loại bỏ khởi đầu chậm do độ trễ
  • Nhờ tầng IP đơn giản và các tiêu chuẩn mở, có thể triển khai các giao thức mới như HTTP, VPN, WebRTC, QUIC mà không cần xin phép hay thay thế các router hiện có; Internet tiếp tục bù đắp các giới hạn theo từng lớp mỗi khi xuất hiện yêu cầu mới

Từ tín hiệu vật lý đến bit

  • Truyền thông Internet liên tục biến đổi thông điệp thành sóng Wi‑Fi, xung điện trên dây đồng và ánh sáng trong cáp quang, rồi khôi phục lại theo thứ tự ngược ở phía bên kia
    • Thiết bị và cáp được hàng triệu cuộc trao đổi cùng chia sẻ, và dữ liệu đi qua thiết bị do các công ty độc lập ở nhiều quốc gia sở hữu
    • Không có máy tính trung tâm điều phối lưu lượng; mỗi thiết bị chỉ chọn chặng kế tiếp
  • Internet không được thiết kế trong một lần; chuyển mạch gói, TCP, DNS, TLS đều được bổ sung về sau để giải quyết những vấn đề cụ thể của mạng đang hoạt động sẵn
  • Nguyên lý cơ bản của mọi liên kết là ở một đầu làm thay đổi một đại lượng vật lý, và ở đầu kia đo nó tại những thời điểm đã được thống nhất
    • Một sợi dây căng có thể truyền dao động cơ học, nhưng theo khoảng cách tín hiệu sẽ suy yếu do ma sát và độ chùng
    • Dây đồng dùng điện áp, cáp quang dùng laser, Wi‑Fi dùng sóng vô tuyến để mang bit bằng cách thay đổi dạng tín hiệu

Truyền thông số và giao thức do điện báo đặt nền móng

  • Từ “network” ban đầu chỉ hình dạng lưới với các sợi chỉ hay dây đan chéo, rồi đầu thế kỷ 19 được dùng cho mạng kênh đào và đường sắt, và đến thập niên 1840 bắt đầu chỉ hệ thống dây dẫn và trạm chuyển tiếp của điện báo
  • Năm 1844, Samuel Morse truyền câu “What hath God wrought” từ Washington đến Baltimore
    • Mã Morse không truyền nguyên giọng nói, mà là một mạng số truyền các ký hiệu rời rạc dưới dạng xung điện ngắn và dài
    • Bộ chuyển tiếp không khuếch đại dạng sóng đã suy yếu, mà xác định có hay không có xung rồi tạo ra các xung mới sạch sẽ
    • Khuếch đại đơn thuần làm nhiễu tăng lên theo từng đoạn, nhưng tái tạo ký hiệu rời rạc ngăn thông điệp bị suy giảm ngay cả ở quy mô xuyên lục địa
  • Những quy tắc được bên gửi và bên nhận chia sẻ trước, như xung cho từng ký tự và các thủ tục như received, repeat, chính là giao thức
    • IP, TCP, DNS và TLS cũng giống như vậy ở chỗ đều là những quy tắc được công khai thống nhất về định dạng thông điệp và trình tự liên lạc
  • Trong mạng điện báo, con người thực hiện việc định tuyến
    • Nhân viên tại trạm chuyển tiếp in thông điệp ra băng giấy rồi phát lại khi tuyến gần điểm đích có chỗ trống
    • Vào giờ cao điểm, thông điệp được xếp chờ trong ngăn lưu trữ; cấu trúc này về sau được tái hiện thành lưu-trước-chuyển-sau điện tử và router
  • Cáp điện báo xuyên Đại Tây Dương đầu tiên đi vào hoạt động vào tháng 8 năm 1858, nhưng hỏng chỉ sau 3 tuần do hư hại cách điện và vấn đề quá áp
    • Tuyến cáp thành công được SS Great Eastern đặt vào năm 1866 với chiều dài khoảng 4.000 km trong một đoạn liền mạch
  • Bit là đơn vị thông tin nhỏ nhất, biểu thị một trong hai trạng thái 01
    • 1 byte gồm 8 bit có thể biểu diễn 256 trạng thái và chứa một ký tự hoặc một số nhỏ

Băng thông và độ trễ

  • Băng thông là số bit một liên kết có thể mang mỗi giây, còn độ trễ là thời gian để một bit đến được phía bên kia
  • Có thể tăng băng thông bằng cách rút ngắn khoảng cách giữa các lần truyền tín hiệu hoặc dùng nhiều bước sóng song song, nhưng độ trễ bị giới hạn bởi khoảng cách và tốc độ ánh sáng
    • Ánh sáng di chuyển trong thủy tinh với tốc độ khoảng 200.000 km/giây, tức khoảng hai phần ba tốc độ trong chân không
    • Tuyến New York–London có giới hạn vật lý khoảng 28 ms cho một chiều, và khứ hồi cần gấp đôi con số đó
  • Phát trực tuyến video chịu được độ trễ bằng cách đệm trước vài giây, nhưng cần nhiều băng thông
  • Gọi video dù yêu cầu băng thông tương đối nhỏ hơn vẫn cần độ trễ thấp
  • Trang web phải đi qua các vòng khứ hồi DNS, TCP và TLS trước khi nhận nội dung, nên ngay cả với kết nối gigabit việc bắt đầu vẫn có thể chậm
  • Băng thông phát sinh từ lịch truyền của bên gửi, còn độ trễ phát sinh từ chiều dài liên kết, nên hai đại lượng này không phải là thứ có thể đánh đổi cho nhau

Chuyển mạch kênh và modem

  • Sau năm 1876, mạng điện thoại sử dụng chuyển mạch kênh, tức dành riêng một đường điện đầu-cuối cho mỗi cuộc gọi
    • Ban đầu các tổng đài viên cắm dây nối, về sau rơ-le điện cơ tự động hóa công việc này
    • Vì giọng nói chảy liên tục trong suốt cuộc gọi, cấu trúc luôn sử dụng đường truyền đã được đặt trước là hợp lý
  • Trong thập niên 1950–60, máy tính buộc phải dùng mạng điện thoại sẵn có, nên modem (modulator-demodulator) chuyển bit số thành âm thanh tương tự
  • Các modem đời đầu 300-baud như Bell 103 sử dụng FSK
    • 1 được biểu diễn bằng âm liên tục ở tần số cao, 0 bằng âm ở tần số thấp
    • Modem bên kia xác định tần số nghe được để khôi phục bit
  • Trước khi truyền dữ liệu, hai bên thương lượng tốc độ liên lạc, sửa lỗi và đặc tính đường dây
    • Từ Hayes Smartmodem năm 1981 trở đi, loa được bật để con người có thể kiểm tra trạng thái kết nối, nên có thể nghe thấy âm quay số, chuông gọi, trao đổi tính năng, thương lượng điều chế và huấn luyện bộ cân bằng
    • Quá trình bắt tay thực tế diễn ra qua nhiều bước trong vòng chưa đến 30 giây
  • DSL và cáp tái sử dụng dây điện thoại và dây truyền hình hiện có thành các liên kết số luôn kết nối, còn cáp quang đến hộ gia đình thì hoàn toàn rời khỏi dây dẫn của mạng thoại
  • Lưu lượng máy tính có tính bùng phát, tức gửi yêu cầu rồi nghỉ trong lúc đọc hoặc tính toán
    • Nếu đặt trước một kênh, phần lớn thời gian năng lực đường truyền sẽ bị bỏ không và người dùng khác không thể sử dụng
    • Vì đường đi được cố định ngay khi bắt đầu cuộc gọi, chỉ cần một liên kết trung gian bị đứt là toàn bộ kết nối kết thúc
  • Đầu thập niên 1960, số lượng máy tính nghiên cứu gia tăng, tính bùng phát của điện toán tương tác và yêu cầu của quân đội Mỹ rằng mạng phải sống sót ngay cả khi mất một số đoạn đã bộc lộ giới hạn của chuyển mạch kênh

Chuyển mạch gói và truyền kiểu nỗ lực tối đa

  • Paul Baran nghĩ ra chuyển mạch gói một cách độc lập vì mục tiêu sống sót của mạng, còn Donald Davies vì mục tiêu chia sẻ đường truyền; Davies cũng đặt tên packet cho nó
  • Thông điệp được chia thành các đơn vị nhỏ; mỗi gói gồm header chứa thông tin điều khiển như nguồn và đích, cùng phần dữ liệu thực là payload
  • Router thực hiện lưu-trước-chuyển-sau (store-and-forward): nhận toàn bộ gói, đọc đích rồi gửi sang liên kết kế tiếp theo bảng của chính nó
    • Để duy trì khả năng mở rộng, bảng ghi các mạng, tức các dải địa chỉ, thay vì từng host riêng lẻ
  • Các gói cho nhiều cuộc trao đổi khác nhau cùng dùng chung một đường truyền và mỗi gói được định tuyến độc lập
    • Nếu router trung gian bị chết, các gói về sau có thể đi theo đường khác
    • Trước khi thông tin sự cố lan truyền xong, gói vẫn có thể bị gửi theo đường cũ và thất lạc; quá trình đường mới ổn định được gọi là hội tụ (convergence)
  • Thiết bị có địa chỉ được gọi là host; phía khởi đầu cuộc trao đổi là client, còn phía chờ yêu cầu tại một địa chỉ cố định đã biết là server
  • Khi tốc độ đầu vào nhanh hơn liên kết đầu ra, router xếp gói vào hàng đợi trong bộ nhớ; nếu hàng đợi đầy thì phần vượt quá sẽ bị loại bỏ
  • Mạng chỉ cung cấp truyền kiểu nỗ lực tối đa, chấp nhận mất gói, trùng lặp và thay đổi thứ tự gói
    • Quyết định đặt độ tin cậy ở các máy tính đầu cuối thay vì ở trung tâm mạng đã giữ Internet đơn giản và trở thành nền tảng để mở rộng tới quy mô toàn cầu

ARPANET và những router đầu tiên

  • Năm 1969, ARPA tài trợ ARPANET, mạng chuyển mạch gói thực tế đầu tiên, để kết nối các máy tính nghiên cứu ở đại học
  • Vì khó giao việc chuyển mạch gói cho các mainframe khác nhau về nhà sản xuất và hệ điều hành, BBN đã tạo ra IMP (Interface Message Processor)
    • IMP là một máy tính mini chuyên dụng để chia thông điệp thành gói, định tuyến và lắp ráp lại
    • Mainframe của mỗi địa điểm kết nối với IMP cục bộ, còn các IMP liên lạc với nhau qua đường dây điện thoại thuê riêng
    • Cách gọi phân biệt mainframe thực hiện tính toán là Host, còn hạ tầng truyền dẫn là IMP vẫn còn ảnh hưởng đến ngày nay
    • IMP là router đầu tiên, và router không dây gia đình ngày nay cũng theo cùng một mô hình: thiết bị chuyên dụng xử lý giao thức mạng thay cho máy khác
  • Ngày 29 tháng 10 năm 1969, Charley Kline ở UCLA nhập LOGIN tới Stanford Research Institute, nhưng hệ thống nhận đã hỏng ngay sau khi nhận được LO
  • Đến tháng 12 năm 1969, ARPANET có 4 nút, và đến năm 1973 đã mở rộng tới Na Uy và London

Ethernet và mạng cục bộ

  • Các mạng diện rộng như ARPANET là WAN, còn mạng kết nối nhiều thiết bị trong văn phòng là LAN
  • Robert Metcalfe đã thiết kế Ethernet tại Xerox PARC vào năm 1973
    • Ý tưởng được lấy từ cơ chế truyền không cấp phép và xử lý va chạm của ALOHAnet, mạng từng kết nối các đảo ở Hawaii
    • Ethernet thời kỳ đầu kết nối mọi máy tính vào một cáp đồng trục dùng chung, tất cả đều nhận mọi frame nhưng chỉ xử lý địa chỉ của chính mình
  • Cáp đồng trục gồm lõi đồng trung tâm, lớp cách điện, lớp chắn hình trụ và vỏ ngoài
    • Lớp chắn vừa là đường hồi tín hiệu vừa chặn nhiễu từ bên ngoài
  • Trên đường truyền dùng chung, nếu hai thiết bị truyền cùng lúc sẽ xảy ra va chạm
    • CSMA/CD sẽ lắng nghe môi trường trước khi truyền, nếu phát hiện va chạm trong lúc truyền thì dừng ngay và thử lại sau một khoảng thời gian ngẫu nhiên
    • Exponential backoff tăng gấp đôi khoảng trễ khi va chạm lặp lại để ngăn va chạm kéo dài vĩnh viễn
  • Văn phòng hiện đại dùng dây xoắn đôi chuyên dụng từ từng thiết bị đến switch cùng đầu nối RJ-45 thay vì cáp đồng trục dùng chung
    • Vì mỗi cổng là một đường truyền riêng và đường gửi/nhận được tách biệt theo kiểu full-duplex, về nguyên tắc sẽ không có va chạm
    • CSMA/CD đã không còn hữu dụng trên Ethernet có dây hiện đại, nhưng vấn đề tranh chấp lại xuất hiện ở Wi‑Fi, nơi dùng không khí làm môi trường chia sẻ
  • Switch và địa chỉ MAC

    • Tên gọi switch trong mạng có cùng dòng lịch sử với ghi đường ray xe lửa, khóa điện chuyển mạch và tổng đài điện thoại
    • Switch mạng hiện đại chuyển tiếp frame bằng ASIC được tạo từ hàng triệu transistor chuyển mạch
    • Router dùng địa chỉ mạng toàn cục, còn switch dùng địa chỉ MAC là địa chỉ phần cứng cục bộ
    • Đơn vị dữ liệu của Ethernet là frame
    • Địa chỉ MAC được ghi thành 6 cặp số thập lục phân như 00:1A:2B:3C:4D:5E, tổng cộng 48 bit
    • Một chữ số thập lục phân đúng bằng 4 bit, hai chữ số thẳng hàng với 1 byte nên rất phù hợp để biểu diễn bit thô một cách ngắn gọn
    • Trong địa chỉ MAC truyền thống, 3 cặp đầu là OUI của nhà sản xuất, 3 cặp sau là số sê-ri của giao diện đó
    • Điện thoại thông minh cũng có địa chỉ riêng cho chip Wi‑Fi và Bluetooth
    • Để ngăn việc theo dõi ở nơi công cộng bằng địa chỉ cố định, các hệ điều hành hiện đại tạo địa chỉ MAC ngẫu nhiên tạm thời khi dò tìm và kết nối
    • Switch tự động học bảng chuyển tiếp bằng cách quan sát MAC nguồn của frame và cổng mà frame đi vào
    • Nếu chưa biết đích, nó sẽ flood ra tất cả các cổng còn lại
    • Nếu biết đích, nó chỉ chuyển tiếp ra đúng một cổng tương ứng
    • Bảng của switch được suy ra thụ động từ lưu lượng cục bộ, còn bảng của router được điền bằng cấu hình thủ công hoặc giao thức định tuyến
    • Địa chỉ MAC chỉ có ý nghĩa trong phân đoạn cục bộ, còn địa chỉ IP được dùng để đi qua giữa các mạng

IP và mạng của các mạng

  • Trong thập niên 1970, các mạng gói khác nhau như SATNET, PRNET, Ethernet có định dạng, địa chỉ và kích thước tối đa khác nhau nên không thể giao tiếp trực tiếp
  • Năm 1973, Vint Cerf và Bob Kahn đã thiết kế internetwork để kết nối chúng mà không thống nhất cấu trúc nội bộ của từng mạng
  • IP là lớp chung mỏng mà mọi mạng tham gia đều phải đồng ý
    • Nó định nghĩa địa chỉ IP phổ quát và định dạng gói phổ quát
    • Mỗi mạng cục bộ sẽ mang gói IP bên trong frame riêng của nó
    • Router không ghi nhớ trạng thái của cuộc trao đổi và cũng không khôi phục mất mát
    • Vì là kiểu không kết nối với không có bước thiết lập và không có trạng thái chung giữa các gói, nó có thể được triển khai trên đồng, cáp quang, vô tuyến hay vệ tinh
  • Bên dưới là nhiều môi trường vật lý khác nhau, bên trên là nhiều ứng dụng khác nhau, còn IP ở giữa tạo thành cấu trúc đồng hồ cát như một điểm chung hẹp để tạo khả năng tương tác
  • Địa chỉ IPv4 và khớp tiền tố dài nhất

    • Địa chỉ IPv4 có 32 bit, tức 4 octet, được viết bằng số thập phân ngăn cách bởi dấu chấm như 91.198.174.192
    • /24 là tiền tố mạng với 24 bit đầu được cố định
    • Mặt nạ mạng 255.255.255.0 cũng biểu diễn cùng phần bit cố định đó theo cách khác
    • Router XOR địa chỉ đích với tuyến đường rồi mask phần sau tiền tố để kiểm tra xem phần cố định có khớp hay không
    • Nếu có nhiều tuyến khớp, nó sẽ chọn khớp tiền tố dài nhất với số bit cố định nhiều nhất
    • Khi không có tuyến cụ thể, nó dùng tuyến mặc định 0.0.0.0/0
    • Mỗi router không cần biết toàn bộ bản đồ Internet, chỉ cần biết láng giềng và hướng đi chung là đủ để tới đích nhờ quyết định tương tự ở router kế tiếp
  • Từ classful addressing sang CIDR

    • Classful addressing năm 1981 cố định kích thước mạng thành ba loại
    • Class A /8 cung cấp 16.777.216 địa chỉ, Class B /16 cung cấp 65.536 địa chỉ, Class C /24 cung cấp 256 địa chỉ
    • Một tổ chức cần khoảng 4.000 địa chỉ buộc phải nhận Class B và lãng phí khoảng 94%, hoặc nhận 16 Class C và tạo 16 tuyến trên mọi router lõi
    • Đến đầu thập niên 1990, không gian địa chỉ và bộ nhớ router đều nhanh chóng cạn kiệt
    • CIDR được đưa vào năm 1993 cho phép đặt độ dài tiền tố linh hoạt
    • Chỉ với một /20 có thể cấp 4.096 địa chỉ và gộp các khối liền kề thành một tuyến duy nhất
    • IANA quản lý toàn bộ không gian IPv4 và phân bổ các khối lớn cho 5 cơ quan đăng ký Internet khu vực
    • Các cơ quan đăng ký khu vực chia tiếp cho ISP, còn ISP chia các khối nhỏ hơn cho doanh nghiệp và hộ gia đình
    • Sự ủy quyền phân cấp, nơi mỗi tổ chức chỉ quản lý phần của mình, là nguyên lý mở rộng giống như DNS
  • TTL, ICMP, ping, traceroute

    • TTL trong tiêu đề IP biểu thị số hop còn lại thay vì thời gian, và bị giảm 1 ở mỗi router
    • Khi về 0, gói sẽ bị loại bỏ để ngăn các tuyến sai khiến gói chạy vòng vô hạn
    • Khi TTL hết hạn, router sẽ gửi ICMP Time Exceeded về nguồn
    • ping đo độ trễ đến một host cụ thể bằng thời gian khứ hồi của ICMP Echo RequestEcho Reply
    • traceroute tăng TTL lên 1, 2, 3 để thu thập phản hồi Time Exceeded phát sinh ở từng hop
    • Từ TTL vốn được tạo ra để chống loop, người ta đã phát triển thêm chức năng chẩn đoán đường đi
  • MTU và phân mảnh

    • Mỗi liên kết có MTU là kích thước tối đa có thể mang trong một lần, và Ethernet là 1.500 byte
    • Router IPv4 truyền thống sẽ phân mảnh gói lớn hơn liên kết kế tiếp thành nhiều mảnh rồi lắp ráp lại ở đích
    • Điều này làm tăng khối lượng công việc của router, và chỉ cần mất một mảnh cũng phải gửi lại toàn bộ gói gốc
    • Cách hiện đại là đặt don’t fragment, rồi dùng Path MTU Discovery để router không thể chuyển tiếp sẽ báo MTU cho phép qua ICMP
    • Nếu phía sau có liên kết hẹp hơn, bên gửi sẽ tiếp tục giảm kích thước để hội tụ về MTU nhỏ nhất trên đường thực tế
    • IPv6 loại bỏ phân mảnh ở router và chỉ cho phép PMTUD phía bên gửi
  • Unicast, broadcast, ARP, multicast

    • Unicast từ một bên gửi tới một bên nhận chiếm phần lớn lưu lượng Internet
    • Subnet là tập láng giềng vật lý và logic có thể đi tới trực tiếp bằng địa chỉ MAC trên cùng một dây hoặc kênh vô tuyến mà không cần router
    • Broadcast được gửi tới mọi host trong subnet và không vượt qua ranh giới router
    • DHCP phân phối cấu hình cho thiết bị chưa có địa chỉ
    • ARP broadcast câu hỏi “thiết bị nào có IP này”, rồi chỉ chủ sở hữu mới trả lời bằng unicast để tìm địa chỉ MAC tương ứng với địa chỉ IP cục bộ
    • Kết quả được cache trong vài phút
    • Với đích nằm ở subnet bên ngoài, hệ thống sẽ tra địa chỉ MAC của default gateway chứ không phải của máy chủ từ xa
    • Multicast chuyển một gói tới chỉ những nhóm đã đăng ký tham gia, được dùng cho IPTV và các giao thức định tuyến nội bộ
    • Khoảng 4,3 tỷ địa chỉ của IPv4 đã không còn đủ, và IPv6 dùng địa chỉ 128 bit đã được triển khai song song gần 20 năm, hiện mang gần một nửa lưu lượng

Độ tin cậy do TCP tạo ra

  • TCP triển khai độ tin cậy mà IP không cung cấp tại hai đầu cuối, còn các router trung gian không biết trạng thái TCP
  • Mọi byte đều được gắn số thứ tự và bên nhận thông báo byte tiếp theo mà mình kỳ vọng bằng ACK
    • Dữ liệu chưa được xác nhận sẽ được truyền lại
    • Dữ liệu đến sai thứ tự sẽ được sắp xếp lại theo số thứ tự rồi chuyển cho ứng dụng
  • Vì cả hai phía đều ghi nhớ trạng thái hội thoại nên TCP là hướng kết nối và có điểm bắt đầu, kết thúc rõ ràng
  • Đơn vị dữ liệu theo từng tầng lần lượt là Ethernet frame, IP packet, TCP segment và UDP datagram
  • 3-way handshake và checksum

    • 3-way handshake của TCP đồng bộ số thứ tự ban đầu của hai phía
      1. Client gửi SYN, seq=5000
      1. Server phản hồi SYN-ACK, seq=9000, ack=5001
      1. Client gửi ACK, ack=9001
    • Checksum gửi kèm một giá trị được tính từ các byte truyền đi, và bên nhận tính lại để phát hiện hư hỏng bit ngẫu nhiên
    • Packet không khớp sẽ bị loại bỏ, và vì không có ACK nên quy trình truyền lại sẵn có sẽ khôi phục
    • Ethernet dùng frame check sequence dựa trên CRC, còn IP·TCP·UDP dùng phép cộng bù 1
    • Nó không ngăn được việc chỉnh sửa cố ý bởi kẻ tấn công có thể tính lại checksum; vai trò đó do TLS đảm nhiệm
  • Điều khiển luồng và điều khiển tắc nghẽn

    • Bên gửi TCP duy trì một cửa sổ trượt để giới hạn dữ liệu chưa được xác nhận
    • Mỗi khi ACK đến, cửa sổ lại dịch về phía trước để bên gửi nhanh không lấn át bên nhận chậm
    • Mất gói được hiểu là tín hiệu hàng đợi của router trung gian đã đầy, và bên gửi sẽ giảm kích thước cửa sổ
    • Tháng 10 năm 1986, trên liên kết dài 400m giữa Lawrence Berkeley Lab và UC Berkeley, thông lượng đã sụp từ 32.000bps xuống 40bps khi các bên gửi phản ứng với mất gói bằng cách truyền lại nhiều hơn
    • Điều khiển tắc nghẽn của Van Jacobson giảm lưu lượng theo cấp số nhân khi có mất gói và chỉ tăng trở lại một cách thận trọng khi truyền thành công
    • Hàng chục tỷ kết nối áp dụng cùng các quy tắc cục bộ này mà không cần điều phối tập trung để ngăn hiện tượng sụp đổ do tắc nghẽn trên mạng dùng chung
    • Khi một packet ở giữa bị mất, bên nhận sẽ gửi duplicate ACK cho byte liên tục cuối cùng, và bên gửi có thể phát hiện mất gói trước khi timeout để truyền lại
  • Cổng, socket và UDP

    • Nếu địa chỉ IP định danh thiết bị thì cổng định danh chương trình bên trong thiết bị đó
    • Server HTTPS theo thông lệ dùng cổng 443
    • Tổ hợp địa chỉ IP, cổng và giao thức biểu thị điểm cuối socket của ứng dụng
    • Hệ điều hành phía client mượn một cổng tạm thời trong thời gian kết nối để phân biệt nơi phản hồi sẽ quay về
    • UDP chỉ thêm cổng vào IP và không cung cấp thiết lập kết nối, truyền lại hay khôi phục thứ tự
    • TCP phù hợp với dữ liệu cần tính toàn vẹn như trang web, email và tệp
    • UDP phù hợp với các trường hợp dữ liệu đến muộn còn tệ hơn mất dữ liệu, như gọi video, game nhiều người chơi và DNS
    • TCP/IP trở thành giao thức chính thức của ARPANET vào ngày 1 tháng 1 năm 1983, và mọi mạng đồng ý vận chuyển IP packet đều cấu thành Internet

Cách thông tin định tuyến được tạo ra

  • OSPF và RIP bên trong tổ chức

    • Trong một tổ chức, IGP trao đổi trạng thái liên kết và thông tin đường đi
    • Các giao thức trạng thái liên kết như OSPF để mỗi router flood thông tin về các kết nối của chính nó ra toàn mạng
    • Mọi router đều có cùng một bản đồ topo và tự tính đường đi ngắn nhất một cách độc lập
    • Các giao thức vector khoảng cách như RIP chỉ thông báo cho hàng xóm số hop tới đích
    • Lượng trao đổi nhỏ hơn, nhưng không có bản đồ toàn cục để kiểm chứng liệu con số từ hàng xóm còn đúng hay không
    • Quá trình các bảng phản ánh trạng thái mới sau sự cố được gọi là hội tụ
    • OSPF truyền thay đổi topo thực tế nên hội tụ nhanh
    • RIP có thể tạo vòng lặp khi hai hàng xóm cùng tin rằng đối phương là đường đi, và packet sẽ qua lại cho tới khi TTL hết
    • RIP coi 16 hop là không thể tới được, và dù có nhiều biện pháp giảm nhẹ thì vẫn hội tụ chậm hơn OSPF nên đã bị thay thế trong phần lớn mạng production
  • Hệ tự trị và BGP

    • NSFNET khởi đầu năm 1985 như một backbone kết nối nhiều mạng học thuật khu vực
    • Ban đầu nó cấm lưu lượng thương mại, rồi gỡ bỏ hạn chế này vào năm 1991
    • Sau khi đóng lại vào năm 1995, vai trò backbone được phân tán cho nhiều nhà mạng thương mại cạnh tranh, khiến Internet trở thành một cấu trúc không có chủ sở hữu duy nhất
    • Internet được cấu thành từ hàng chục nghìn hệ tự trị (AS) như ISP, trường đại học, nhà mạng và công ty cloud
    • BGP cho phép mỗi AS thông báo cho các hàng xóm về các khối địa chỉ mà mình có thể đi tới và đường AS đã đi qua
    • Việc chọn đường thực tế ưu tiên chính sách kinh doanh hơn là tốc độ
    • Độ dài đường AS là một điều kiện phân biệt được áp dụng sau các tiêu chí chính sách như local preference và weight
    • Doanh nghiệp nhỏ mua transit từ nhà cung cấp phía trên để trả chi phí kết nối tới toàn bộ Internet
    • Các mạng có quy mô tương tự thiết lập peering không thanh toán để giảm chi phí transit
    • Hàng trăm mạng kết nối trong cơ sở chuyển mạch chung của các điểm trao đổi Internet
    • DE-CIX và AMS-IX kết nối quy mô khoảng 1.000 mạng
    • Chính sách BGP thường ưu tiên theo thứ tự: tuyến của khách hàng trả tiền, tuyến của peer miễn phí, rồi tuyến của nhà cung cấp mà mình phải trả tiền
    • Các backbone tier-1 như Lumen, Arelion và NTT peering với nhau và không trả tiền cho nhà cung cấp phía trên

Cáp quang biển, Anycast, CDN

  • Khoảng 600 tuyến cáp quang biển vận chuyển trên thực tế gần như toàn bộ lưu lượng liên lục địa
  • Năm 1956, TAT-1 cung cấp 36 kênh thoại bằng dây đồng trục và bố trí bộ khuếch đại khoảng mỗi 70km
    • Khuếch đại tương tự làm tăng cả tín hiệu lẫn nhiễu
  • Năm 1988, TAT-8 là cáp quang xuyên Đại Tây Dương đầu tiên, cung cấp dung lượng tương đương hàng chục nghìn kênh thoại trên hai sợi thủy tinh
  • Sợi quang sử dụng phản xạ toàn phần tại ranh giới giữa lõi có chiết suất cao và lớp vỏ bọc xung quanh
    • Không giống gương thông thường, phản xạ ở ranh giới này không có tổn thất phản xạ đáng kể, nên ánh sáng có thể được dẫn đi khoảng 100km rồi mới cần khuếch đại
  • Ghép kênh phân chia theo bước sóng mang luồng bit của từng laser trên các bước sóng khác nhau rồi gộp vào một sợi
    • Các bước sóng cùng truyền qua môi trường tuyến tính rồi được tách ra bằng bộ lọc ở đầu bên kia
    • Hệ thống thực tế đặt khoảng 100 bước sóng trên một sợi, và thêm một bước sóng mới sẽ tăng thông lượng của sợi cáp biển hiện có thêm đúng một luồng
  • Anycast cho phép các server ở nhiều châu lục cùng dùng một địa chỉ IP và quảng bá cùng một tuyến bằng BGP tại từng vị trí
    • Client sẽ tới được server gần hơn về mặt topo mà không cần đổi cấu hình
  • CDN dùng Anycast hoặc DNS nhận biết vị trí để phục vụ nội dung từ server gần hơn
    • Cloudflare và Akamai đặt bản sao video, hình ảnh và website trên khắp thế giới
    • Cách để giảm mức trễ tối thiểu do tốc độ ánh sáng tạo ra là đưa dữ liệu đến gần người dùng trước khi họ gửi yêu cầu
  • BGP phần lớn tin vào quảng bá từ hàng xóm
    • Năm 2008, Pakistan Telecom quảng bá một tuyến cụ thể hơn để chặn YouTube trong nước, và thông tin này lan ra toàn cầu khiến nhiều lưu lượng đổ về Pakistan rồi biến mất
    • RPKI xác minh quyền quảng bá tuyến của một khối địa chỉ thông qua sổ đăng ký có chữ ký

Mạng riêng tại gia và NAT

  • Một router gia đình kết hợp Ethernet switch, thiết bị vô tuyến Wi-Fi, DHCP, default gateway và chức năng phân phối cấu hình DNS
  • Các khối IPv4 riêng không được định tuyến trên Internet có thể được tái sử dụng lặp đi lặp lại
    • 10.0.0.0/8 có 16.777.216 địa chỉ
    • 172.16.0.0/12 có 1.048.576 địa chỉ
    • 192.168.0.0/16 có 65.536 địa chỉ
  • NAT thay địa chỉ và cổng riêng bên trong bằng địa chỉ và cổng công khai của router, đồng thời duy trì bảng để đưa phản hồi trở lại đúng phiên trao đổi nội bộ ban đầu
    • 192.168.1.5 ở các ngôi nhà khác nhau không xung đột vì packet không rời khỏi từng mạng riêng tương ứng
  • NAT chỉ ghi lại các phiên trao đổi được khởi tạo từ bên trong, nên sẽ loại bỏ các kết nối ngoài vào không được yêu cầu
    • Muốn vận hành server tại nhà thì cần port forwarding để nối một cổng ngoài cụ thể vào thiết bị bên trong
    • Nếu ISP thay đổi địa chỉ công khai thì cần theo dõi riêng việc này
    • Gọi video P2P cần các kỹ thuật xuyên NAT, chẳng hạn như hai bên cùng lúc gửi packet
    • Giải pháp tạm thời cho tình trạng thiếu địa chỉ này đã khiến Internet bị chia thành server có thể nhận yêu cầu từ bên ngoài và thiết bị chỉ khởi tạo yêu cầu
  • 127.0.0.0/8 là dải địa chỉ loopback, không đi tới card mạng mà được hệ điều hành trả lại chính máy tính đó
    • 127.0.0.1 theo thông lệ là localhost
    • Server phát triển tại 127.0.0.1:3000 chỉ có thể truy cập từ chính máy tính đó
  • Thiết bị đồng thời có địa chỉ MAC biểu thị phần cứng cục bộ và địa chỉ IP được gán trên mạng

DNS: dùng tên thay cho số

  • Trong giai đoạn đầu của ARPANET, nhóm của Elizabeth Feinler tại Stanford Research Institute quản lý thủ công toàn bộ tên và địa chỉ trong một tệp HOSTS.TXT
    • Mỗi máy tính định kỳ tải tệp này xuống, và các thiết bị chưa được đăng ký về cơ bản sẽ không thể được tìm thấy
    • Khi mạng phát triển, năng lực biên tập của một văn phòng và một điểm tải xuống duy nhất trở thành nút thắt cổ chai
  • Paul Mockapetris đã thiết kế DNS dựa trên cơ chế ủy quyền vào năm 1983
    • en.wikipedia.org đi theo hệ phân cấp từ phải sang trái: root, org, wikipedia.org, en
    • Không gian tên được chia thành các zone, nơi mỗi tổ chức quản lý máy chủ có thẩm quyền của mình
  • Thiết bị giao việc tra cứu cho recursive resolver của ISP hoặc các dịch vụ như Cloudflare 1.1.1.1
    1. root cho biết nameserver của .org
    2. .org cho biết máy chủ có thẩm quyền của wikipedia.org
    3. Máy chủ có thẩm quyền của Wikipedia trả về 91.198.174.192 cùng TTL 3.600 giây
  • TTL của DNS là thời gian sống của bộ nhớ đệm tính bằng giây, khác với số hop của IP
    • Trình duyệt, hệ điều hành và recursive resolver đều cache phản hồi, nên các tên phổ biến được phân giải ngay tại nơi gần đó
    • Cache giúp giảm tải cho DNS cấp trên, nhưng sau khi địa chỉ thay đổi, giá trị cũ vẫn tồn tại trong suốt TTL, tạo ra độ trễ cố hữu
  • Khi mua domain, registrar sẽ ghi một NS record chỉ định nameserver có thẩm quyền vào zone của registry như .com
    • Zone file của domain chứa A record cho IPv4, AAAA record cho IPv6, v.v.
    • Cloudflare, Route 53, registrar hoặc máy chủ tự vận hành đều có thể đảm nhiệm DNS có thẩm quyền
    • DNS nhận biết vị trí có thể trả về địa chỉ của các trung tâm dữ liệu khác nhau tùy theo nơi phát sinh truy vấn
  • Bảo mật và quyền riêng tư của DNS

    • DNS ban đầu tin tưởng câu trả lời đến trước và khớp với truy vấn
    • Năm 2008, Dan Kaminsky đã công bố nguy cơ cache poisoning khai thác 65.536 khả năng của transaction ID 16 bit
    • Nếu kẻ tấn công gửi phản hồi giả mạo với ID trùng khớp và thông tin nameserver độc hại trước câu trả lời thật, resolver có thể cache thông tin giả trong thời gian TTL do kẻ tấn công chỉ định
    • DNSSEC cho phép mỗi zone gắn chữ ký mật mã vào các record, và resolver sẽ xác minh chuỗi tin cậy đến root key mà nó tin cậy
    • Chữ ký của câu trả lời giả mạo sẽ không được xác minh và bị loại bỏ
    • DNSSEC đảm bảo tính xác thực và toàn vẹn, nhưng không mã hóa chính truy vấn
    • DoT và DoH đặt truy vấn DNS lần lượt trong TLS hoặc HTTPS để người quan sát trên đường đi không thể đọc domain đang được tra cứu

Giao diện người dùng mà web bổ sung

  • Đến cuối thập niên 1980, IP, TCP, Ethernet và DNS đã hoàn chỉnh, nhưng để truy cập thông tin vẫn cần biết hệ thống đích và các công cụ dòng lệnh
  • Năm 1989, Tim Berners-Lee đề xuất một hệ thống chia sẻ tài liệu tại CERN và đưa World Wide Web vào hoạt động năm 1991
  • Web sử dụng ba thành phần đơn giản
    1. HTML liên kết các từ hoặc phần tử trong tài liệu tới tài liệu khác trên Internet
    2. URL biểu thị giao thức, máy chủ và đường dẫn như https, en.wikipedia.org, /wiki/Internet
      • Cổng mặc định của HTTPS là 443, còn HTTP là 80 nên có thể lược bỏ
    3. HTTP trao đổi yêu cầu và phản hồi như GET /page trên nền TCP
      • 200 OK là thành công, 404 Not Found là không có tài liệu, 500 Internal Server Error là lỗi nội bộ máy chủ
  • URL được xây trên DNS, HTTP được xây trên TCP, và TCP được xây trên IP, nên không cần thay đổi các router hiện có để có web mới
  • IP, TCP, DNS và HTTP được định nghĩa trong các RFC mà ai cũng có thể đọc và triển khai miễn phí
    • RFC bắt đầu từ các bản ghi nhớ năm 1969 khi các nhà phát triển ARPANET đi xin ý kiến
    • IETF đã chuẩn hóa các giao thức Internet từ năm 1986
    • Các cổng 80 và 443 cũng là quy ước do RFC đăng ký với IANA
  • Năm 1993, NCSA Mosaic đã đặt hình ảnh bên trong tài liệu, còn Netscape Navigator của cùng nhóm vào năm 1994 đã đưa web phổ biến tới các hộ gia đình

TLS để trao đổi bí mật trên đường truyền công khai

  • Các giao thức Internet ban đầu gửi byte ở dạng văn bản thuần, nên router, ISP và các mạng trung gian có thể đọc hoặc sửa nội dung
  • Mật mã khóa công khai tạo ra một cặp khóa công khai và khóa riêng dựa trên các phép toán dễ tính xuôi nhưng gần như không thể đảo ngược trong thực tế
    • Dữ liệu được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa riêng
    • Chữ ký tạo bằng khóa riêng có thể được xác minh bằng khóa công khai
    • Trong thực tế, chữ ký không áp dụng lên toàn bộ thông điệp mà ký lên giá trị băm tính từ toàn bộ byte, nhờ đó cũng gắn luôn việc phát hiện thay đổi
    • Ngoài RSA, ECDSA và Ed25519 cũng cung cấp cùng mô hình ký bằng khóa riêng và xác minh bằng khóa công khai
  • Vấn đề kẻ tấn công giả danh ngân hàng và đưa ra khóa công khai của riêng mình được giải quyết bằng chứng chỉ
    • Khóa công khai của các tổ chức chứng thực được tích hợp sẵn trong trình duyệt sẽ bảo đảm mối liên kết giữa danh tính máy chủ và khóa công khai
    • Trình duyệt xác minh chuỗi chữ ký từ chứng chỉ máy chủ qua tổ chức chứng thực trung gian đến trusted root
    • Nếu chuỗi không thể đi tới root, trình duyệt sẽ hiển thị cảnh báo bảo mật toàn màn hình
  • Netscape tạo ra SSL vào năm 1994, và sau đó nó được chuẩn hóa thành TLS
    • TLS nằm giữa TCP và HTTP
  • Diffie–Hellman và khóa phiên

    • Trong bắt tay TLS, trình duyệt gửi ClientHello, các bộ mật mã được hỗ trợ và public key share; máy chủ trả lời bằng bộ mật mã được chọn, chứng chỉ và key share đã ký
    • Trong ví dụ nhỏ dùng các hằng số công khai g=5, p=23:
    • Trình duyệt dùng giá trị bí mật a=6 để tính A=5⁶ mod 23=8
    • Máy chủ dùng giá trị bí mật b=15 để tính B=5¹⁵ mod 23=19
    • Trình duyệt tính 19⁶ mod 23=2, còn máy chủ tính 8¹⁵ mod 23=2, từ đó cùng nhận được một khóa phiên
    • Người nghe lén nhìn thấy g, p, A, B, nhưng ở kích thước thực tế rất khó giải bài toán logarit rời rạc để lấy được giá trị bí mật
    • Trình duyệt hiện đại sử dụng cơ chế trao đổi dựa trên đường cong elliptic, cho mức bảo mật tương đương với các số nhỏ hơn
    • Vì phép toán khóa công khai quá chậm nếu áp dụng cho mọi byte, nó chỉ được dùng để trao đổi khóa; sau đó hệ thống dùng khóa đối xứng nhanh hơn để mã hóa và giải mã bằng cùng một khóa
    • Biểu tượng ổ khóa của HTTPS có nghĩa là các thiết bị trung gian vẫn có thể thấy đối tượng giao tiếp, thời điểm và lượng dữ liệu, nhưng không thể đọc nội dung

Đóng gói và VPN

  • Mỗi tầng bọc dữ liệu của tầng trên bằng header của riêng mình
    • Yêu cầu HTTP nằm trong TLS record, trong TCP segment, trong IP packet, trong Ethernet hoặc Wi-Fi frame
    • Switch và router chỉ xử lý phần header ngoài cùng mà chúng cần
  • VPN không mã hóa luồng ứng dụng mà mã hóa toàn bộ IP packet rồi đặt nó làm payload của một packet mới mang địa chỉ máy chủ VPN
    • ISP chỉ nhìn thấy lưu lượng đã mã hóa trao đổi với máy chủ VPN
    • Website được truy cập sẽ thấy địa chỉ của máy chủ VPN thay vì địa chỉ của người dùng
    • Nhà vận hành VPN tiếp quản vị trí mà ISP trước đó có thể quan sát, nên nó không tuyệt đối tăng thêm bảo mật mà là chuyển điểm phải tin cậy sang nơi khác
  • Mục đích ban đầu của VPN là kết nối laptop ở xa vào mạng riêng của công ty để nó hoạt động như thể được cắm trực tiếp trong văn phòng

Điều gì thực sự xảy ra khi bạn nhấp vào một liên kết

  1. Trình duyệt trích xuất tên máy chủ từ https://en.wikipedia.org và tra địa chỉ bằng DNS
  2. Mở kết nối TCP tới cổng 443 của địa chỉ nhận được và thực hiện 3-way handshake
  3. Trong quá trình bắt tay TLS, xác minh chuỗi chứng chỉ và thỏa thuận khóa phiên
  4. Gửi yêu cầu GET /wiki/Internet đã được mã hóa
  5. TCP sắp xếp lại, truyền lại và lắp ráp lại HTML đến dưới dạng hàng chục gói IP, TLS giải mã, và trình duyệt phân tích rồi hiển thị lên màn hình
  • Chẩn đoán sự cố theo từng bước

    • Nếu không mở được bất kỳ trang nào, hãy kiểm tra đoạn trước DNS như Wi‑Fi, router hoặc liên kết ISP
    • Có thể gửi ping tới một địa chỉ đã biết như 1.1.1.1 để xác nhận có đi ra ngoài mạng cục bộ được hay không
    • Nếu các trang khác vẫn vào được nhưng một tên cụ thể không được phân giải, thì vấn đề nằm ở bộ nhớ đệm DNS hoặc bản ghi của trang đó
    • Nếu DNS thành công nhưng kết nối TCP bị hết thời gian chờ, thì đó là sự cố ở máy chủ hoặc mạng trung gian; hãy dùng traceroute để xem đã đi tới hop nào
    • Cảnh báo chứng chỉ chiếm toàn màn hình là do xác minh chuỗi chứng chỉ TLS thất bại
    • Nếu mọi giao tiếp đều thành công và nhận HTTP 500, thì yêu cầu đã đến máy chủ đầy đủ và lỗi xảy ra bên trong máy chủ
    • DNS, TCP và TLS mỗi cái đều cần độ trễ khứ hồi trước byte nội dung đầu tiên, nên ngay cả trên đường truyền nhanh thì phản hồi ban đầu vẫn có thể chậm
  • Header gói tin và khả năng quan sát theo từng tầng

    • Yêu cầu ví dụ có header IPv4 20 byte và header TCP 20 byte
    • Header IP chứa tổng độ dài, cờ phân mảnh, TTL, số hiệu giao thức 6 biểu thị TCP, checksum, và địa chỉ nguồn/đích
    • Header TCP chứa cổng nguồn tạm thời 54211, cổng đích 443, số thứ tự, số ACK, cờ, kích thước cửa sổ và checksum
    • Router trung gian chỉ đọc header IP và không mở thông tin TCP sau 20 byte cũng như payload đã mã hóa
    • TLS mã hóa payload, nhưng không mã hóa các header IP·TCP cần cho việc truyền dẫn, nên vẫn có thể quan sát được đối tượng giao tiếp và lượng dữ liệu

Cấu trúc phân tầng của Internet

  • Ethernet, Wi‑Fi và fiber ở tầng liên kết·vật lý di chuyển frame và bit trên một môi trường cục bộ
  • IP ở tầng mạng định tuyến gói tin theo từng hop qua các mạng độc lập
  • TCP và UDP ở tầng vận chuyển cung cấp việc truyền theo từng chương trình, cùng với độ tin cậy hoặc chi phí thấp
  • TLS ở tầng bảo mật mã hóa đường truyền và xác thực đối tác
  • HTTP và DNS ở tầng ứng dụng cung cấp ý nghĩa người dùng là yêu cầu tài liệu và tra cứu tên
  • Từ dưới lên trên, mỗi tầng che giấu các giới hạn của tầng ngay bên dưới
    • Tầng liên kết che giấu các vấn đề vật lý của cáp dùng chung và môi trường không dây
    • IP che giấu ranh giới mạng giữa các bên sở hữu khác nhau
    • TCP che giấu mất gói, trùng lặp và thay đổi thứ tự
    • TLS ngăn nghe lén và sửa đổi
    • HTTP đơn giản hóa toàn bộ quá trình thành yêu cầu và phản hồi
  • Mô hình OSI năm 1984 định nghĩa 7 tầng, tách riêng vật lý·liên kết dữ liệu và phân biệt phiên·trình bày·ứng dụng
    • Internet thực tế dùng kiến trúc TCP/IP được triển khai trước, nhưng các thuật ngữ OSI như chuyển mạch layer 2, định tuyến layer 3, và nhận biết ứng dụng layer 7 vẫn còn được dùng trong ngành

QUIC và Internet không ngừng tiến hóa

  • Các tầng chỉ phụ thuộc vào giao diện bên dưới, nên dù thay dây đồng bằng cáp quang hay Wi‑Fi thì cũng không cần thay đổi ứng dụng
  • HTTP/3 triển khai cả độ tin cậy lẫn mã hóa bằng QUIC trên UDP thay vì TCP
  • Trong luồng byte được sắp thứ tự đơn của TCP, nếu một gói bị mất trong các yêu cầu được ghép kênh thì cả các yêu cầu không liên quan cũng phải chờ phía sau
    • QUIC cung cấp các stream được ACK độc lập theo từng yêu cầu, nên mất gói chỉ làm dừng stream đó
  • Nếu thực hiện bắt tay TLS tuần tự sau bắt tay TCP, thì cần hai vòng khứ hồi trước khi có dữ liệu HTTP
    • QUIC gộp thiết lập truyền tải và mã hóa vào một lần bắt tay, và khi quay lại máy chủ đã ghi nhớ thì có thể bắt đầu mà không cần thêm vòng khứ hồi
  • Kết nối TCP bị ràng buộc với tổ hợp IP·cổng, nhưng QUIC vẫn giữ được kết nối ngay cả khi điện thoại chuyển từ Wi‑Fi sang mạng di động và địa chỉ thay đổi
  • IP chỉ chuyển payload theo cổng, chứ không giới hạn giao thức bên trong
    • SSH dùng cho shell từ xa, SMTP cho thư điện tử, MQTT cho publish-subscribe trên các thiết bị IoT hạn chế, WebRTC cho thoại·video trực tiếp giữa các trình duyệt, và các game engine dùng giao thức UDP tùy chỉnh để bỏ qua các bản cập nhật vị trí đã cũ
    • Google đã triển khai QUIC độc quyền giữa Chrome và máy chủ của mình, sau đó IETF chuẩn hóa nó thành HTTP/3, mà không cần thay đổi hạ tầng Internet hiện có
  • Ngay cả sau khi địa chỉ IPv4 cạn kiệt, việc chuyển sang IPv6 vẫn đang diễn ra do chi phí thay thế tầng nền tảng, còn video thời gian thực, cloud gaming và cộng tác từ xa tiếp tục gây áp lực lên giới hạn độ trễ
  • Vệ tinh quỹ đạo thấp đang cạnh tranh với cáp ngầm biển về độ trễ khứ hồi, và các giao thức trong tương lai cũng sẽ xuất hiện thông qua những sự đánh đổi mới khi các ứng dụng hiện tại va chạm với giới hạn của các tầng hiện có

1 bình luận

 
Ý kiến Hacker News
  • So ra thì bài này cũng có bố cục rất tốt: https://explained-from-first-principles.com/internet/

  • Theo quy tắc thì có thể chỉ để lại lời khen như thế này là hơi thất lễ, nhưng đây thực sự là một bài viết xuất sắc. Bài viết giải thích quá trình hình thành và nguyên lý hoạt động của mạng một cách hữu ích, chặt chẽ, đồng thời kết nối chúng thành một câu chuyện hấp dẫn
    Có phản hồi nói đây là bài do LLM viết, nhưng dù có vậy thì cũng không sao. Bài hay vẫn là bài hay

    • Trong phần hoạt họa đầu tiên nên có cả máy chủ lưu trữ nền tảng nhắn tin. Nếu không thì nên đổi ví dụ đó thành một ứng dụng P2P
    • Sáng nay vừa thức dậy chợt nghĩ ra nên tôi đã tự làm một thứ giống haiku
      “Đã từng có tiếng Klingon và tiếng Elvish. Giờ thì đã có cả tiếng LLM.”
  • Nội dung có thể hoàn toàn do tác giả tự viết, nhưng nếu so văn phong giữa bài chính và bình luận của tác giả thì tôi tin chắc nó đã được AI biên tập ở mức độ đáng kể
    Điều đó không nhất thiết là xấu, nhưng quy chụp những người nhận ra điều này là hoang tưởng cũng không công bằng

  • Đơn hàng lớn đầu tiên của Digital PDP-1 là để đưa vào công việc nhắn tin bằng băng giấy đục lỗ của ITT: https://www.eejournal.com/article/gordon-bell-1934-2024-gran...

  • Tôi muốn cân bằng lại các phản ứng tiêu cực. Tôi mới chỉ đọc vài phần đầu, nhưng bài đã giải thích rất tốt việc nhiều khái niệm phát triển như thế nào từ một điểm khởi đầu đơn giản
    nén vào một bài viết duy nhất rất nhiều khái niệm mà tôi đã học được khi làm kỹ sư phần mềm thông qua nghiên cứu và thử-sai. Tôi hy vọng Faza sẽ tiếp tục làm và chia sẻ những bài như thế này

    • Mục đích của các bài viết này là giải thích cách những thứ mà chúng ta xem là hiển nhiên đã phát triển ra sao. Trong lúc viết, chính tôi cũng học được rất nhiều điều mới và nhận ra cả những chỗ mình chưa hiểu đầy đủ
      Tôi cảm thấy các tài liệu hiện có либо chỉ tập trung vào chi tiết kỹ thuật, либо đơn giản hóa khái niệm quá mức để ai cũng dễ theo. Vì vậy tôi đã thử đưa ra một cách giải thích chi tiết nhưng không quá khó theo dõi
      Ban đầu tôi chỉ định dùng văn bản và sơ đồ, nhưng rồi nhận ra có thể giải thích tốt hơn nhiều nếu dùng mô phỏng
  • Bố cục và cách diễn đạt của bài rất hay, làm tôi nhớ đến công việc của Bartosz Ciechanowski: https://ciechanow.ski
    Tôi cũng tò mò stack công nghệ dùng cho các thành phần tương tác trong bài là gì, và nếu làm lại thì liệu tác giả có chọn công nghệ khác không

    • Ban đầu tôi tạo một trang tĩnh dựa trên Astro mà không hề định thêm thành phần tương tác, rồi viết nội dung trong các tệp Markdown
      Sau đó tôi biết Astro hỗ trợ MDX, cho phép chèn các JavaScript component tùy chỉnh. Những hoạt họa đầu tiên được làm bằng JavaScript thuần, SVG và hiệu ứng chuyển CSS, nhưng khi mô phỏng trở nên phức tạp hơn, tôi bắt đầu dùng React để quản lý trạng thái
  • Hai bình luận tương đối ôn hòa ở đây đã bị đánh dấu [dead]. Nếu đó là bình luận của bot thì tôi tò mò họ dựa vào điều gì để nhận biết

    • Tôi có cảm giác phần lớn các bài blog trên HN và khá nhiều bình luận ở đây chủ yếu được viết bằng AI. Dù vậy, trên internet ẩn danh thì từ trước đến nay vốn vẫn luôn có những yếu tố như thế
  • Sau khi tải trang xong mà bật chế độ máy bay thì các hoạt họa trước đó chưa xuất hiện trên màn hình sẽ không chạy nữa. Hành vi này hơi lạ

    • Tôi là tác giả. Trước đây tôi chỉ tải mô phỏng xuống khi người dùng cuộn tới vị trí chúng xuất hiện trên màn hình
      Giờ tôi đã sửa và triển khai để tải tất cả mô phỏng ngay khi trang được mở, rồi phát chúng khi đi vào vùng nhìn thấy
  • Phản ứng ở đây tiêu cực quá mức. Tôi đã xem lướt nhiều phần; hoạt họa đẹp mắt, bài viết dễ đọc, và nội dung không phải dạng sản phẩm sinh tự động chất lượng thấp
    Bối cảnh lịch sử của điện báo rất thú vị, và sự khác biệt giữa băng thông với độ trễ cũng được xử lý cẩn thận. Dù vậy bài quá dài nên có vẻ độc giả chưa biết nhiều về chủ đề này khó có khả năng đọc hết

    • Tôi thấy các tài liệu hiện có hoặc quá giống sách giáo khoa, hoặc quá khái quát, nên muốn giúp mọi người hiểu chi tiết các khái niệm. Vì thế tôi đã cố giải thích theo cách thú vị hơn
    • Việc gạt bỏ người khác khiến ta dễ cảm thấy mình giỏi hơn. Đặc biệt trên HN, để thực sự đọc một bài dài, đánh giá nó và đưa ra phê bình mang tính xây dựng thì cần thời gian, nên những phản ứng vội vàng thường có xu hướng tiêu cực hoặc lạc khỏi ngữ cảnh