Tối ưu hóa TCP/IP để giảm độ trễ trong game.

  • Độ trễ phụ thuộc vào các tham số TCP/IP như MTU, MSS, cửa sổ TCP và RTO, ngoài ra còn phụ thuộc vào đường dẫn vật lý và trạng thái mạng.
  • Tại nhà, các yếu tố ảnh hưởng lớn nhất đến độ trễ (ping) bao gồm WiFi, bộ định tuyến quá tải, tải xuống song song và việc sử dụng VPN hoặc proxy.
  • Việc điều chỉnh QoS, sử dụng cáp Ethernet, chọn DNS tốt và kiểm soát các chương trình chạy nền sẽ giúp giảm đáng kể độ trễ và hiện tượng giật hình.
  • Trên máy chủ và trong điện toán đám mây, việc tinh chỉnh ngăn xếp TCP, sử dụng MTU lớn hơn, HTTP/2/3 và bộ nhớ đệm trong bộ nhớ giúp giảm độ trễ và cải thiện hiệu suất.

Tối ưu hóa TCP/IP để giảm độ trễ

Nếu bạn cãi nhau với anh ấy mỗi ngày Hiện tượng giật lag, gián đoạn và ping cao.Bạn không phải là người duy nhất gặp phải vấn đề này. Đằng sau trải nghiệm tồi tệ khi chơi game trực tuyến, gọi video hoặc làm việc từ xa, có một nguyên nhân rất rõ ràng: sự kết hợp giữa mạng gia đình của bạn và cách cấu hình giao thức TCP/IP trên các thiết bị và máy chủ của bạn.

Tối ưu hóa TCP/IP cho giảm độ trễ Đây không chỉ đơn thuần là việc điều chỉnh một vài thiết lập "thần kỳ". Bạn cần hiểu cách các khái niệm như... hoạt động. MTU, MSS, cửa sổ TCP, độ trễ hoặc hiện tượng nghẽn bộ đệm.Sau đó, hãy áp dụng các thay đổi cụ thể cho máy tính, bộ định tuyến, mạng Wi-Fi, và thậm chí cả máy chủ đám mây hoặc máy ảo của bạn. Chúng ta hãy xem xét từng bước một, nhưng với tư duy thực tế: mỗi thứ là gì và bạn có thể làm gì để kết nối của mình phản hồi nhanh hơn.

Các khái niệm chính về TCP/IP ảnh hưởng đến độ trễ

Để tận dụng tối đa kết nối của bạn, việc hiểu một vài điều sau đây sẽ rất hữu ích. các tham số TCP/IP cơ bản Điều này ảnh hưởng trực tiếp đến độ trễ (ping), độ ổn định và hiệu năng trong các trò chơi, cuộc gọi video hoặc truy cập từ xa.

MTU, phân mảnh và LSO

La MTU (Đơn vị truyền tối đa) Đây là kích thước tối đa, tính bằng byte, của gói dữ liệu có thể rời khỏi giao diện mạng mà không bị phân mảnh. Trong phần lớn các mạng Ethernet (và trong các máy ảo trên Azure hoặc Google Cloud), giá trị mặc định là 1500 byte, bao gồm cả tiêu đề mạng và dữ liệu.

Khi một gói tin vượt quá MTU, lớp IP sẽ chia nó thành nhiều đoạn nhỏ hơn. Phân mảnh IP Điều này đòi hỏi nhiều tài nguyên CPU và bộ nhớ hơn, cả trên máy phân mảnh dữ liệu và máy lắp ráp lại các mảnh dữ liệu khi chúng đến. Điều này gây ra độ trễ và suy giảm hiệu năng, đặc biệt là khi lưu lượng truy cập cao.

Ngoài ra, còn có đoạn nổi tiếng này. “Đừng phân mảnh” (DF) trong tiêu đề IP. Nếu được bật và một bộ định tuyến trung gian nhận được một gói tin lớn hơn MTU của nó, thay vì phân mảnh, nó sẽ loại bỏ gói tin đó và gửi lại thông báo ICMP "Cần phân mảnh". Điều này được sử dụng trong Phát hiện tuyến đường MTU (PMTUD)Nhưng nếu tường lửa chặn các gói ICMP đó, người gửi sẽ tiếp tục cố gắng gửi các gói có kích thước quá lớn, gây ra sự chậm trễ và truyền lại.

Trong các môi trường như Azure hoặc Google Cloud, các gói phần mềm phân mảnh cũng có xu hướng mất đi những lợi thế của... mạng lưới tăng tốcSR-IOV và SmartNIC. Chúng được xử lý thông qua đường dẫn chậm của hypervisor, với nhiều hơn hốt hoảngĐộ trễ sẽ lớn hơn và số gói dữ liệu mỗi giây sẽ ít hơn. Do đó, khuyến nghị chung là: Tránh phân mảnh bằng cách điều chỉnh MTU và MSS một cách hợp lý. và không nên tăng MTU quá mức nếu có tường lửa hoặc VPN ở giữa.

Mặt khác, chức năng Tải trọng gửi lớn (LSO) Điều này cho phép ngăn xếp TCP/IP của hệ điều hành tạo ra các "siêu gói" lớn, sau đó được phân mảnh nội bộ bởi card mạng theo MTU. Điều này làm giảm đáng kể tải CPU, mặc dù trong các bản ghi lưu lượng, bạn có thể thấy các khung dữ liệu có vẻ rất lớn mà không cho thấy sự phân mảnh trên mạng, mà là sự phân mảnh đang xảy ra bên trong chính bộ điều hợp mạng.

MSS, PMTUD và VPN

El TCP MSS (Kích thước phân đoạn tối đa) Thông số này xác định số byte dữ liệu có thể sử dụng được chứa trong mỗi phân đoạn TCP, không bao gồm tiêu đề IP và TCP. Thông thường, các hệ thống tính toán MSS như sau:

MSS = MTU - (tamaño cabecera IP + tamaño cabecera TCP)

Với MTU là 1500 và tiêu đề IPv4+TCP có kích thước 20+20 byte, MSS điển hình là 1460 byteGiá trị này được thương lượng trong quá trình bắt tay ba bước TCP, và mỗi bên đề xuất giá trị riêng của mình. Kết nối sẽ sử dụng giá trị thấp hơn trong hai giá trị đó.

Tuy nhiên, có thể có các thiết bị cản trở trên đường đi (tường lửa, bộ định tuyến, Cổng VPNv.v.) với MTU nhỏ hơn, điều này thực chất buộc phải giảm MSS. Đây là lý do tại sao... Khám phá đường dẫn MTU (PMTUD)Khi bộ định tuyến không thể chuyển tiếp gói tin vì nó quá lớn và có bit DF được đặt, nó sẽ loại bỏ gói tin đó và gửi gói tin ICMP "Fragmentation Needed" cho biết MTU tối đa mà nó hỗ trợ, để nguồn giảm kích thước gói tin.

Nếu các gói ICMP đó bị chặn, kết nối sẽ rơi vào vòng lặp chuyển tiếp và mất gói, dẫn đến... Độ trễ, truyền lại dữ liệu và thời gian tải vô tậnDo đó, việc tăng MTU trên máy tính hoặc máy ảo một cách tùy tiện mà không kiểm tra toàn bộ đường dẫn hoặc chính sách tường lửa không phải lúc nào cũng là một ý kiến ​​hay.

Trên mạng xã hội với IPsecVPN Đối với các đường hầm khác, các tiêu đề bổ sung làm giảm không gian khả dụng cho dữ liệu, do đó nên sử dụng MTU và MSS nhỏ hơn (ví dụ: MTU 1400 và MSS ~1350 trong các đường hầm thông thường) để tránh phân mảnh đường hầm và độ trễ liên quan.

Độ trễ, RTT và cửa sổ TCP

Âm thanh "ping" nổi tiếng chẳng qua chính là... độ trễ khứ hồi (RTT) Khoảng cách giữa hai điểm. Về mặt vật lý, nó bị giới hạn bởi tốc độ truyền ánh sáng trong sợi quang (khoảng 200 km/mili giây) và bởi đường đi thực tế của dữ liệu. Nó hiếm khi là một đường thẳng.

Trong giao thức TCP, thông lượng lý thuyết tối đa của một kết nối được xác định bằng công thức cơ bản sau:

rendimiento máximo ≈ tamaño de ventana TCP / RTT

La Cửa sổ TCP Đây là lượng dữ liệu mà người gửi có thể "đang truyền" mà chưa nhận được xác nhận (ACK). Với cửa sổ 65.535 byte và MSS là 1460, chỉ có khoảng 45 gói tin có thể được gửi trước khi chờ ACK. Nếu RTT cao (ví dụ: 80-160 ms giữa các châu lục), cửa sổ không được điều chỉnh tỷ lệ sẽ không tận dụng được hết khả năng của các liên kết dung lượng cao.

Theo mặc định, trường cửa sổ trong tiêu đề TCP là 16 bit, giới hạn giá trị tối đa của nó ở mức 65.535 byte. Đối với các mạng hiện đại, điều này là không hợp lý, vì vậy nhiều năm trước [thông tin bị thiếu - có thể là một tính năng hoặc phương pháp cụ thể] đã được giới thiệu. Điều chỉnh kích thước cửa sổ TCP, phương pháp này áp dụng hệ số nhân 2^na cho giá trị đó và cho phép các cửa sổ có dung lượng hàng trăm MB hoặc thậm chí GB.

Trong các hệ thống như Windows hoặc Linux, việc điều chỉnh kích thước cửa sổ được thực hiện tự động với các thiết lập được xác định trước (tự động điều chỉnh), và có thể được xem hoặc sửa đổi bằng các lệnh như sau: Get-NetTCPSetting o sysctlCác mức độ can thiệp mạnh hơn (ví dụ: "thử nghiệm") cho phép tạo ra các cửa sổ thời gian lớn và có thể cải thiện đáng kể hiệu suất trên các mạng đường dài, miễn là không xảy ra quá nhiều mất gói dữ liệu.

Mạng lưới tăng tốc, RSS và GRO/TSO

Trên các nền tảng đám mây (Azure, Google Cloud, v.v.), các giao diện mạng truyền thống phụ thuộc rất nhiều vào CPU của máy chủ để xử lý từng gói dữ liệu, áp dụng các quy tắc, đóng gói và giải mã. Điều này dẫn đến... Tải trọng nặng nề lên hypervisor Khi lưu lượng truy cập lớn và tạo ra độ trễ không ổn định.

Đó là lý do tại sao cái gọi là mạng lưới tăng tốcCác giải pháp này dựa trên các công nghệ như SR-IOV và card SmartNIC sử dụng FPGA. Ý tưởng là một phần quan trọng của ngăn xếp mạng định nghĩa bằng phần mềm chạy trên phần cứng NIC, và lưu lượng dữ liệu có thể truyền trực tiếp từ máy ảo đến card, bỏ qua bộ chuyển mạch ảo của máy chủ.

Điều này mang lại một số thuận lợi:

  • Độ trễ thấp hơn, số PPS cao hơn.
  • Ít run rẩy hơn
  • Giảm mức tiêu thụ CPU trên máy chủ và trong máy ảo.

Tuy nhiên, có những chi tiết quan trọng cần lưu ý. Ví dụ, nhiều hệ thống mạng tăng tốc không xử lý các gói tin bị phân mảnh thông qua tuyến đường nhanh; nếu có hiện tượng phân mảnh IP, lưu lượng truy cập đó sẽ được định tuyến qua tuyến đường chậm, dẫn đến ảnh hưởng đến hiệu suất.

Về phía hệ điều hành khách, điều quan trọng là phải kích hoạt các công nghệ như vậy. Nhận tỷ lệ bên (RSS)Điều này phân phối việc xử lý các gói dữ liệu đến trên nhiều lõi CPU, cũng như phân đoạn và tổng hợp các bản tải xuống như... TSO (Transmit Segmentation Offload) và GRO/LRO (Generic Receive Offload)giúp giảm số lượng gói dữ liệu mà CPU phải xử lý trực tiếp.

TIME_WAIT và tái sử dụng socket

Một yếu tố hiệu năng TCP ít được biết đến hơn nhưng quan trọng khác là trạng thái. THỜI GIAN CHỜKhi một kết nối TCP được đóng bình thường, điểm cuối gửi gói ACK cuối cùng sẽ chuyển sang trạng thái TIME_WAIT trong hàng chục hoặc thậm chí hàng trăm giây. Trong thời gian này, hệ thống giữ cho socket được đặt trước để đảm bảo rằng các gói tin bị trì hoãn từ kết nối cũ không xuất hiện trở lại và bị nhầm lẫn với phiên mới.

Trên các máy chủ hoặc máy móc được sử dụng nhiều, việc tích tụ bụi bẩn là điều dễ xảy ra. hàng nghìn hoặc hàng chục nghìn socket trong TIME_WAITĐiều này có thể làm cạn kiệt phạm vi các cổng tạm thời và gây ra lỗi khi mở các kết nối mới. Do đó, nhiều hệ thống cho phép bạn điều chỉnh cả thời gian chờ (TIME_WAIT) và phạm vi cổng, cũng như một số chính sách tái sử dụng nhất định.

Một kỹ thuật mạnh mẽ hơn, được hỗ trợ bởi một số nhân hệ điều hành (ví dụ: Windows Server trên Azure), được gọi là ám sát TIME_WAITNếu một gói SYN mới đến với số thứ tự cao hơn đáng kể so với kết nối cũ, hệ thống có thể buộc socket đóng trong quá trình TIME_WAIT và chấp nhận kết nối mới ngay lập tức. Điều này giúp tăng khả năng mở rộng, nhưng nếu cấu hình sai, nó có thể gây ra lỗi. các vấn đề về khả năng tương tác với một số ngăn xếp TCP bảo thủ hơn.

ping

Tại sao ping lại quan trọng đến vậy trong cuộc sống hàng ngày của bạn?

Trên thực tế, độ trễ có tác động trực tiếp đến hầu hết mọi hoạt động trực tuyến của chúng ta ngày nay. Chỉ "có tốc độ 600 Mbps" thôi là chưa đủ; nếu tốc độ phản hồi chậm, trải nghiệm sẽ bị ảnh hưởng. Hãy cùng xem xét một số trường hợp mà độ trễ gây ra vấn đề này. Độ trễ mạng (ping) "tốt" tạo nên sự khác biệt lớn..

Trò chơi trực tuyến và mức độ ping "có thể chơi được".

Trong các trò chơi cạnh tranh, từng mili giây đều vô cùng quan trọng. Độ trễ (ping) dưới 20 ms Về mặt lý thuyết thì nó rất tuyệt vời: các thao tác được ghi nhận gần như ngay lập tức, và bạn hầu như sẽ không nhận thấy độ trễ nào. Ở mức độ trễ từ 20 đến 50 ms, trải nghiệm vẫn rất tốt. Khi độ trễ tăng lên 50-100 ms, bạn có thể nhận thấy sự mất đồng bộ nhẹ, đặc biệt nếu bạn đang chơi trên các máy chủ ở xa.

Từ ms 100-300 Các vấn đề nghiêm trọng bắt đầu xuất hiện: hình ảnh bị trễ, chuyển động bị chậm, xe "nảy" trong game đua xe, v.v. Trên 300 ms, trò chơi trở nên khó chịu hơn bất cứ điều gì khác, đặc biệt là trong các game bắn súng, game đua xe hoặc game thể thao.

Loại trò chơi cũng có ảnh hưởng rất lớn. Trò chơi FPS và đua xe Về cơ bản, việc có độ trễ dưới 50 ms là điều bắt buộc để cạnh tranh; trong các tựa game thể thao trực tuyến, độ trễ dưới 30-40 ms cũng rất được ưa chuộng. Tuy nhiên, trong Trò chơi trực tuyến nhiều người chơi (MMO) hoặc trò chơi chiến lược theo lượt.Bạn có thể "sống sót" với độ trễ mạng (ping) từ 150-200 ms mà không làm gián đoạn trải nghiệm chơi game, mặc dù trải nghiệm sẽ không bao giờ mượt mà như bình thường. Nếu bạn chơi trên Windows, bạn có thể muốn tìm hiểu cách làm điều này. Giảm độ trễ đầu vào trong Windows 11 nhằm cải thiện khả năng phản xạ trong các trò chơi cạnh tranh.

Cuộc gọi video, chia sẻ màn hình và cuộc gọi VoIP

Trong các cuộc gọi video với Zoom, Teams, Skype hoặc các nền tảng tương tự, ping cũng rất quan trọng. Lý tưởng nhất là ping nên dao động quanh mức... ms 20-40Trong đó cuộc hội thoại diễn ra tự nhiên, không bị chồng chéo. Hầu hết người dùng chấp nhận độ trễ lên đến khoảng 100 ms, mặc dù độ trễ nhỏ cũng đã có thể nhận thấy khi nói chuyện.

Khi ping vượt quá 100 msBạn bắt đầu vô tình ngắt lời người khác. Câu trả lời đến với một tiếng "vọng" tạm thời, và những khoảng lặng khó xử trở nên thường xuyên. Thêm vào đó, nếu kết nối có băng thông hạn chế hoặc Wi-Fi yếu, thì hiện tượng gián đoạn video và âm thanh sẽ càng trầm trọng hơn.

với chia sẻ màn hình hoặc điều khiển từ xa Hiệu ứng tương tự. Mỗi cú nhấp chuột và mỗi chuyển động chuột đều cần thời gian để được ghi nhận trên màn hình từ xa. Với độ trễ cao, máy tính hoạt động chậm chạp. Điều này vô cùng khó chịu đối với bất kỳ ai đang cố gắng làm việc hiệu quả.

Internet vạn vật, tự động hóa nhà cửa và làm việc từ xa

Trong hệ sinh thái của IoT và thiết bị thông minh (Loa, bóng đèn, camera, ổ cắm, robot, máy cho thú cưng ăn, v.v.), độ trễ cũng đóng vai trò quan trọng. Mặc dù việc bật đèn với độ trễ 500ms không quá đáng kể, nhưng khi bạn kết hợp nhiều thao tác hoặc tương tác bằng giọng nói (Alexa, Google Assistant), sự khác biệt sẽ trở nên rất rõ rệt.

Khi làm việc từ xa, việc truy cập vào máy tính để bàn, máy chủ hoặc ứng dụng đám mây từ xa với độ trễ liên tục khiến mọi công việc trở nên khó khăn. Nhiều người nghĩ đó là do "thiếu tốc độ", trong khi thực tế vấn đề là do... Độ trễ cao và/hoặc biến đổi liên tục (jitter) Nguyên nhân có thể là do WiFi bị quá tải, bộ định tuyến bị lỗi hoặc đường dẫn đến máy chủ không chính xác.

Độ trễ và bảo mật: tác động gián tiếp

Độ trễ cao tự nó không nhất thiết ngụ ý một điều gì đó không ổn. rủi ro an ninh trực tiếpTuy nhiên, điều này có thể gây ra tác dụng phụ. Nếu các hệ thống giám sát, IDS hoặc tường lửa nhận được thông tin quá muộn, chúng có thể phản ứng quá chậm trước một cuộc tấn công hoặc thậm chí bỏ sót các sự kiện quan trọng.

Ngoài ra, khi người dùng cảm thấy tuyệt vọng vì độ trễ, họ thường có xu hướng "vượt qua" các biện pháp kiểm soát bảo mật: Họ vô hiệu hóa tường lửa, gỡ cài đặt phần mềm diệt virus hoặc mở các cổng một cách tùy tiện. Trên bộ định tuyến, người dùng thường cố gắng điều chỉnh để làm cho nó "nhanh hơn". Đó là lý do tại sao trải nghiệm mạng kém có thể dẫn đến việc mở ra những cánh cửa không cần thiết cho các mối đe dọa thực sự.

Nguyên nhân chính gây ra độ trễ cao trong mạng gia đình

Độ trễ (ping) bạn thấy trong trò chơi hoặc khi kiểm tra tốc độ là tổng của nhiều yếu tố: nhà mạng, đường truyền internet, máy chủ đích… nhưng ở nhà, có khá nhiều vấn đề điển hình mà bạn có thể tự kiểm soát.

Vùng phủ sóng WiFi kém và bị nhiễu sóng.

Hầu hết chúng ta hiện nay kết nối gần như hoàn toàn qua Wi-Fi, và đó là nơi bắt đầu các vấn đề. Thứ nhất tín hiệu yếu hoặc bị nhiễu Nó không chỉ làm giảm tốc độ mà còn làm tăng độ trễ và độ rung vì các thiết bị cần phải truyền lại gói dữ liệu, giảm mức điều chế, chờ kênh trở nên rảnh rỗi, v.v.

Nếu bạn ở xa bộ định tuyến, phía sau nhiều bức tường, hoặc bị bao quanh bởi các mạng lân cận trên cùng một kênh, độ trễ (ping) của bạn sẽ bị ảnh hưởng. Hơn nữa, càng nhiều thiết bị kết nối với điểm truy cập, thời gian chờ đợi để mỗi thiết bị "đến lượt" giao tiếp càng lâu. Và các thiết bị có tốc độ chậm sẽ ảnh hưởng tiêu cực đến các thiết bị khác. Tìm hiểu xem có bao nhiêu thiết bị đang kết nối với mạng WiFi của bạn. Để xác định những khách hàng có vấn đề.

Các tính năng như thế này khá hữu ích ở đây. Công bằng về thời gian phát sóngChúng phân bổ thời gian phát sóng giữa các thiết bị để các thiết bị chậm hơn không độc chiếm sóng radio. Tuy nhiên, bất cứ khi nào có thể, đối với việc chơi game và làm việc từ điện thoại cố định, hãy sử dụng [phương án thay thế]. cáp ethernet Và hãy để WiFi dành cho những người khác.

Bộ định tuyến lỗi thời hoặc quá tải

Một bộ định tuyến cũ với phần mềm lỗi thời hoặc phần cứng rất cơ bản có thể trở thành điểm nghẽn đáng kể. Khi bộ xử lý của bộ định tuyến bị quá tải do phải quản lý lưu lượng NAT, tường lửa, QoS và P2P, thì… độ trễ hàng đợi và tắc nghẽn bộ đệmCác gói dữ liệu tích tụ trong một bộ đệm khổng lồ và được gửi đi với độ trễ đáng kể, làm hỏng độ trễ (ping).

Cập nhật phần mềm, tắt các tính năng không cần thiết và nếu cần, hãy yêu cầu nhà mạng thay thế thiết bị hoặc mua thiết bị mới. bộ định tuyến trung tính mạnh nhất Việc này thường đánh dấu một bước ngoặt. Thỉnh thoảng khởi động lại hệ thống cũng là một ý tưởng hay để xóa trạng thái bộ nhớ và khắc phục các lỗi rò rỉ tiềm ẩn.

Tải xuống và các thiết bị khác tiêu thụ băng thông

Nếu mạng của bạn có nhiều thiết bị đang tải xuống dữ liệu với dung lượng lớn (P2P, cập nhật, phát trực tuyến 4K, sao lưu đám mây), thì việc tốc độ tải xuống giảm là điều bình thường. độ trễ mạng của bạn tăng đột biếnVấn đề không nằm ở chỗ "hết dung lượng megabyte", mà là cách bộ định tuyến quản lý hàng đợi dữ liệu gửi đi.

Giải pháp bao gồm hai hướng:

  • Một mặt, giúp kiểm soát tốt hơn những gì đang được tải xuống trong nền (máy tính, điện thoại di động, máy chơi game, NAS…).
  • Mặt khác, hãy kích hoạt và điều chỉnh đúng cách Chất lượng dịch vụ (QoS) và chống tắc nghẽn bộ đệm Từ bộ định tuyến, lưu lượng truy cập tương tác (trò chơi, VoIP, cuộc gọi video) được ưu tiên hơn so với các lượt tải xuống lớn.

VPN, proxy, tường lửa và các chương trình chạy ngầm

các VPN Chúng rất hữu ích để mã hóa lưu lượng truy cập hoặc vượt qua các hạn chế về địa lý, nhưng hầu như luôn làm tăng độ trễ vì kết nối của bạn phải đi qua một máy chủ trung gian. Nếu VPN miễn phí hoặc chất lượng kém, nó có thể gây ảnh hưởng nghiêm trọng đến độ trễ (ping). Điều tương tự cũng áp dụng cho một số trường hợp khác. người ủy nhiệm.

Tường lửa, cả trên máy tính và bộ định tuyến, cũng làm tăng độ trễ bằng cách kiểm tra từng gói dữ liệu, và nếu cấu hình sai, chúng có thể làm chậm kết nối quá mức. Thêm vào đó... quy trình nền (Cập nhật Windows, ứng dụng đám mây, trò chơi tải xuống bản vá, v.v.) ngốn băng thông mà bạn thậm chí không nhận ra.

Phần mềm độc hại và thiết bị bị xâm nhập

Máy tính bị nhiễm phần mềm độc hại có thể tạo ra lưu lượng truy cập ẩn (thư rác, tấn công DDoS, khai thác tiền điện tử, tải xuống dữ liệu) hoặc tiêu tốn nhiều tài nguyên CPU và ổ đĩa, ảnh hưởng đến chất lượng kết nối. Nếu bạn nhận thấy điều đó Mọi thứ đều chậm và độ trễ mạng tăng đột biến không rõ lý do.Nên quét kỹ tất cả các thiết bị bằng một chương trình diệt virus đáng tin cậy. Ngoài ra, nên tuân thủ các biện pháp bảo mật tốt nhất. duy trì cơ sở hạ tầng mạng lành mạnh và tránh sử dụng thiết bị bị hư hỏng.

winmtr

Các công cụ để đo độ trễ và phát hiện sự cố

Trước khi thay đổi bất cứ điều gì, điều cần thiết là phải đo đạc chính xác. Đừng chỉ dựa vào công cụ kiểm tra tốc độ của trình duyệt: có những công cụ chuyên dụng có thể giúp bạn xác định chính xác vị trí ping tăng cao và liệu vấn đề nằm ở mạng cục bộ, nhà cung cấp dịch vụ internet hay máy chủ đích.

Các lệnh ping và traceroute cơ bản

Tiện ích pingCó mặt trong tất cả các hệ điều hành, đây là điểm khởi đầu. Với một thao tác đơn giản ping 8.8.8.8 (Ví dụ) bạn có thể xem độ trễ trung bình, tối thiểu và tối đa đến một đích cụ thể và liệu có mất gói dữ liệu hay không. Nếu bạn ping cổng mặc định của bộ định tuyến, bạn sẽ nhận được độ trễ của mạng cục bộ.

Nếu bạn thêm một -t trên Windows (ping 8.8.8.8 -tBạn có thể để nó chạy để xem có bất kỳ sự tăng đột biến, mất tín hiệu hoặc rung giật nào không. Và với traceroute/tracert Bạn kiểm tra xem các gói dữ liệu của mình đi qua những chặng nào và tại điểm nào độ trễ bắt đầu tăng lên một cách đáng ngờ.

Các công cụ nâng cao: WinMTR, PingPlotter và các công cụ khác.

Các chương trình như WinMTR Chúng kết hợp lệnh traceroute và ping liên tục, hiển thị phần trăm mất tín hiệu và thời gian phản hồi tối thiểu, trung bình và tối đa cho mỗi chặng. Chúng rất hữu ích để xác định xem vấn đề nằm ở chặng đầu tiên của nhà cung cấp dịch vụ Internet (ISP), đường trục trung gian hay chính máy chủ trò chơi.

Các tiện ích khác như Chế độ xem độ trễ mạng (NirSoft) đo độ trễ thực tế của các kết nối TCP được mở bởi máy tính của bạn. Cũng có các bộ phần mềm như... Công cụ NetScan Bao gồm ping đồ họa, quét cổng, traceroute và DNS. Tất cả trong một.

Đo độ trễ (ping) trên thiết bị di động: ứng dụng dành cho Android và iOS

Trên điện thoại thông minh và máy tính bảng, bạn cũng có thể đo độ trễ bằng các ứng dụng như... Fing, He.net Network Tools, NetX hoặc các công cụ ping chuyên dụng trên iOS. Chúng rất hữu ích để kiểm tra xem vấn đề nằm ở Wi-Fi của một phòng cụ thể, mạng di động hay chất lượng đường dây điện thoại cố định kém.

Tối ưu hóa TCP/IP nâng cao trên máy chủ và đám mây

Nếu bạn quản lý máy chủ, máy ảo đám mây hoặc các dự án web đòi hỏi cao, bạn có thể điều chỉnh thêm nhiều tham số TCP/IP và kernel khác. Giảm độ trễ và tăng hiệu suất. Đặc biệt là trên các mạng tốc độ cao.

Các thiết lập nhân hệ điều hành và ngăn xếp TCP trong Linux

Trên Linux, sử dụng sysctl và các công cụ như tc o ethtool Bạn có thể áp dụng các tối ưu hóa nâng cao như:

  • Giảm mức RTO tối thiểu (net.ipv4.tcp_rto_min_us) đến các giá trị an toàn như 5000 µs (5 ms) trên các mạng nội bộ có độ trễ thấp. Để phục hồi nhanh hơn khi bị mất gói dữ liệu.
  • Kích hoạt Xếp hàng công bằng (FQ) với tc qdisc replace dev <iface> root fq. Để phân bổ băng thông tốt hơn giữa các luồng dữ liệu và tránh tình trạng quá tải từ một kết nối duy nhất.
  • Vô hiệu hóa Khởi động chậm sau thời gian không hoạt động (net.ipv4.tcp_slow_start_after_idle=0) trên các máy chủ sử dụng kết nối liên tục. Để chúng không phải bắt đầu lại từ băng thông cực thấp mỗi khi thức dậy từ chế độ ngủ.
  • Vô hiệu hóa phần gây lỗi của HyStart (Phát hiện chuỗi ACK) trong Cubic TCP. Để ngăn chặn các cảnh báo sai về tắc nghẽn làm chậm quá trình tăng trưởng cửa sổ.
  • Tăng cường Bộ đệm TCP (tcp_rmem, tcp_wmem, rmem_max, wmem_max). để có thể duy trì thông lượng cao trên các liên kết có RTT cao, ngăn ngừa tình trạng thiếu bộ nhớ trong socket.
  • Giới hạn tcp_notsent_lowat Điều này giúp ngăn chặn việc tích tụ quá nhiều dữ liệu chưa được gửi trong nhân hệ điều hành, từ đó bảo vệ hệ thống khỏi việc tiêu thụ bộ nhớ quá mức.
  • Kích hoạt phần cứng GRO/LRO trên các card mạng tương thích (ethtool -K <iface> rx-gro-hw on) . Để nhóm các gói dữ liệu và giảm tải CPU cho mỗi lần ngắt.

MTU lớn và mạng hiệu năng cao

Trong các mạng đám mây nội bộ (ví dụ: Google Cloud VPC) nơi có cung cấp hỗ trợ. MTU jumbo lên đến ~8900 byteViệc tăng MTU (ví dụ: lên khoảng 4082 byte, tương thích với các trang bộ nhớ 4 KB) rất được khuyến khích để giảm số lượng gói tin được xử lý mỗi giây và cải thiện hiệu suất CPU.

Tuy nhiên, bạn cần cẩn thận với lưu lượng truy cập ra Internet hoặc đi qua VPN: trong trường hợp đó, tốt nhất là nên duy trì MTU tiêu chuẩn là 1500 hoặc điều chỉnh nó cho từng tuyến đường (ip route change với mtu y advmss) để các liên lạc bên ngoài không bị phân mảnh hoặc mất dữ liệu do các gói tin quá lớn.

Máy chủ web, HTTP/2/3 và bộ nhớ đệm

Trên các máy chủ web (Nginx, Apache, v.v.), ngoài việc tinh chỉnh TCP, bạn có thể giảm đáng kể độ trễ cảm nhận bằng cách bật tính năng này. HTTP/2 và HTTP/3 (QUIC)Điều này cho phép xử lý nhiều yêu cầu cùng lúc trên một kết nối duy nhất và giảm chi phí thiết lập kết nối.

Kích hoạt Nén GZIP hoặc Brotli, sử dụng bộ nhớ đệm trong bộ nhớ (Redis, Memcached), nén CSS/JS và phục vụ nội dung tĩnh thông qua một CDN với các điểm hiện diện gần đó Đối với người dùng, mỗi mili giây bạn tiết kiệm được trong TTFB (Thời gian đến byte đầu tiên) và RTT mạng sẽ giúp trang web phản hồi "nhanh hơn" trong mắt người truy cập.

Giám sát liên tục và các chỉ số độ trễ

Cuối cùng, nếu bạn thực sự quan tâm đến hiệu suất, bạn cần đo lường nó liên tục. Các công cụ như... ApacheBench, wrk, JMeter hoặc các bộ công cụ giám sát (Prometheus + Grafana, New Relic, Datadog…) cho phép bạn theo dõi. RTT, TTFB, phần trăm độ trễ, thông lượng và tỷ lệ lỗi xe bajo

Việc thiết lập cảnh báo khi TTFB vượt quá ngưỡng nhất định, khi độ trễ ping nội bộ giữa các dịch vụ tăng đột biến hoặc khi tỷ lệ mất gói tăng lên giúp chủ động phát hiện các sự cố mạng, tình trạng quá tải CPU, thay đổi tuyến đường hoặc tắc nghẽn trước khi độ trễ ảnh hưởng đến người dùng cuối.

Với tất cả các khái niệm và thiết lập được đưa ra, từ MTU và MSS đến QoS của bộ định tuyến, mạng đám mây tăng tốc và cấu hình máy chủ web, rõ ràng độ trễ không phải là kết quả của một yếu tố kỳ diệu duy nhất. Đó là tổng hợp của nhiều thành phần mạng và chính TCP/IP, khi được tinh chỉnh đúng cách, cho phép các trò chơi, cuộc gọi video, làm việc từ xa và các trang web phản hồi một cách nhanh chóng. cảm giác tức thời Đó là điều mà tất cả chúng ta đều tìm kiếm, và điều đó thường đạt được nhiều hơn bằng cách điều chỉnh và hiểu rõ mạng lưới hơn là chỉ đơn giản bằng cách tăng "thêm megabyte".

Cách thiết lập mạng Ethernet trong Windows từng bước
Bài viết liên quan:
Cách thiết lập mạng Ethernet trong Windows từng bước