بهینه سازی تاخیر شبکه
خلاصه ای کوتاه
Latency = مجموع تاخیرهای کوچک در طول زنجیره. بهبود سیستماتیک به دست می آید: کاهش «هاپ» (Anycast/CDN)، کاهش RTT (مسیرها/QoS)، کاهش «پیچ» (DNS/TLS/TCP)، کوتاه نگه داشتن صف (AQM/ECN)، به حداقل رساندن بایت ها (فشرده سازی/کش) و به طور مداوم اندازه گیری p95/p99. هر گونه بهینه سازی بدون اندازه گیری، پیشگویی است.
بودجه تأخیر: آنچه تأخیر شامل می شود
بیایید تجزیه TTFB (زمان برای اولین بایت) را ساده کنیم:
TTFB ≈ t_DNS + t_connect + t_TLS + t_queue + t_routing + t_app + t_first_byte
یوبی:
- t_DNS - وضوح نام.
- t_connect - L4 (TCP/QUIC).
- t_TLS - TLS دست دادن.
- t_queue/t_routing - صف/انتقال (بافر، اضافه بار، NAT).
- t_app - پردازش سرور تا اولین بایت.
هدف این است که SLO را برای هر دوره تنظیم کنید و به طور منظم بررسی کنید.
SLO/متریک
DNS p95: به صورت محلی ≤ 20-30 میلی ثانیه، در سطح جهانی ≤ 80-120 میلی ثانیه.
TCP اتصال p95: ≤ 80-120 میلی ثانیه منطقه ای، ≤ 200-250 میلی ثانیه بین منطقه ای.
TLS دست دادن p95: ≤ 80-120 мс (с OCSP منگنه، از سرگیری).
TTFB p95 (استاتیک): ≤ 120-150 میلی ثانیه به صورت منطقه ای.
TTFB p95 (API): ≤ 200-300 میلی ثانیه.
Jitter p95 (UDP/RT): ≤ 15-30 мс ؛ از دست دادن ≤ 0 1–0. 3%.
هشدارها: افزایش p95/p99، افزایش «SYN»، «از سرگیری» سقوط، «ECN CE» یا «از دست دادن بسته» افزایش می یابد.
DNS شروع سریع
مقاماتِ هر بازیگر + بازگشتهای بسته (در صورت لزوم DoH/DoT).
TTL کوتاه (60-300 ثانیه) برای نام های پویا ؛ منفی TTL تحت کنترل است.
حافظه نهان DNS در کنار برنامه ؛ پیش ضبط سوابق داغ.
حرکت CNAME → CNAME → A/AAAA غیر ضروری را حذف کنید.
TLS/HTTP: دست دادن کمتر، جلسات سریعتر
TLS 1 را روشن کنید. 3، OCSP منگنه، زنجیره های کوتاه CA.
از سرگیری جلسه (بلیط/شناسه) и ALPN («h2»، «h3»).
HTTP/2: چندگانه، اتصالات کمتر → پایین تر از p95.
HTTP/3 (QUIC): 0-RTT (فقط idempotent)، مقاومت بهتر در برابر از دست دادن/لرزش.
Preconnect/Prewarm (لبه/مشتری): اتصالات باز برای دامنه های داغ در پیشبرد.
حمل و نقل: TCP در مقابل QUIC و پشته هسته
TCP
کنترل تراکم مدرن: BBR v2 (یا CUBIC اگر محافظه کار).
RACK/TLP برای ارسال مجدد سریع ؛ SACK را فعال کنید.
ECN + AQM (CoDel/FQ_CoDel): بلوک بافر و لرزش را کاهش می دهد.
TCP Fast Open - اجتناب از درخواست های تغییر حالت ؛ سود بحث برانگیز است.
قفل سر کمتر در مقایسه با TCP + TLS + HTTP/2.
مقاوم در برابر مرتب سازی مجدد/زیان ؛ به روز رسانی پیاده سازی (به عنوان مثال، Envoy/HAProxy با H3).
نظارت بر UDP/443 و MTU/تکه تکه شدن.
MTU/PMTUD و تکه تکه شدن
MTU تک پایان ؛ برای تونل ها (IPsec/WireGuard/VXLAN)، سربار را در نظر بگیرید.
فعال کردن PMTUD و ICMP «قطعه قطعه مورد نیاز».
برای QUIC - حداکثر دیتاگرام مانیتور و ICMP را در محیط قطع نکنید.
مسیریابی و فیزیک مسیر
Anycast برای API عمومی/جبهه لبه.
مسیریابی جغرافیایی/تاخیر (GSLB) + چک های بهداشتی.
ECMP و BFD در کارخانه (برگ ستون فقرات) برای از بین بردن مسیرهای بد در <1 ثانیه.
تراز aplinks/جشن (IX) در مناطق غلظت کاربر.
صف و QoS: بافرها را کوتاه نگه دارید
کلاس ها: زمان واقعی (RT/VoIP)، تعاملی (API)، فله (پشتیبان گیری/ETL).
LLQ/WRR، اولویت بندی API/پرداخت بیش از فله.
ECN (مارک CE) + AQM (CoDel/FQ_CoDel) در صف های لبه.
برش/انتقال پشتیبان گیری و کبودی های بزرگ از «دقیقه اوج».
NAT، پروکسی و middleboxes
به حداقل رساندن NAT/فیلتر آبشار.
Middlebox Stateful از عدم تقارن مسیر بسیار مهم است: تعادل بیش از موضوعات 5 تایی، پین نینگ.
پشتیبانی Keepalive و زمان بیکاری معقول برای اتصالات طولانی مدت (gRPC/WebSocket).
کش و قرار دادن داده ها
CDN/origin-shield/tiered-cache - سفرهای کمتر به مبدا.
دارایی های نسخه (تغییر ناپذیر، 1 سال).
کوتاه TTL + 'stale-while-revalidate' برای نیمه دینامیک.
موقعیت جغرافیایی: داده های داغ به کاربر نزدیک تر است (read-replica/edge-KV) و نوشتن به «منبع حقیقت».
بهینه سازی سطح برنامه
تعداد درخواستها را کاهش دهید (bundling/HTTP/2 push دیگر رواج ندارند - prefetch/preconnect بهتر است).
کاهش payload: فشرده سازی (Brotli)، فرمت های تصویری وب، پروتکل های باینری (gRPC).
درخواست idempotence → بازخوانیهای امن و زمانهای تهاجمی.
Async/streaming (جریان SSE/gRPC) برای کاهش TTFB.
قابلیت مشاهده: چه چیزی را اندازه گیری کنیم
تله متری مشتری (RUM): DNS/connect/TLS/TTFB، Geo/ASN، دستگاه.
شبکه: RTT، از دست دادن، لرزش، ECN CE/ECT (0/1)، صف رابط، خطاها/سرریز.
Транспорт: ارسال مجدد، خارج از ترتیب، دولت CWND/BBR، آمار دست دادن، از سرگیری.
L7: p50/p95/p99، میزان خطا، اندازه بار، هیستوگرام مسیر/PoP.
معیارهای بخش بر اساس منطقه/ASN/حامل - این جایی است که نقاط مهم پنهان می شوند.
کتاب های مینی
1) حسابرسی سریع p95
1. بودجه تأخیر (DNS/TLS/connect/TTFB) را از RUM ایجاد کنید.
2. نقشه به معیارهای شبکه (RTT/loss/ECN) توسط PoP/ASN.
3. If 'connect' and 'TLS' dominance → فعال کردن preconnect/resumption/HTTP/3
4. اگر «TTFB» زیاد باشد → cache/edge/replica و بهینه سازی برنامه.
2) از دست دادن/جرقه سنبله
1. بررسی اتصال بالایی/رابط (قطره/صف).
2. فعال کردن/نیشگون گرفتن و کشیدن AQM (FQ_CoDel)، کاهش کلاس فله.
3. مسیر BFD/ECMP را بررسی کنید، لینک فلپ را حذف کنید.
4. برای مشتریان، به طور موقت افزایش بازپرداخت و کاهش زمان در میان.
3) تخریب منطقه ای
1. تغییر GSLB به PoP همسایه ؛ عقب نشینی Anycast/32 بر روی تنزل.
2. TTL را کاهش دهید، «stale-while-revalidate» را فعال کنید.
3. وضعیت را به صفحه وضعیت ارسال کنید، RCA را شروع کنید.
۴) مهاجرت به HTTP/3
1. UDP/443 را باز کنید، H3/ALPN «h3» را فعال کنید.
2. A/B: مقایسه TTFB p95 و میزان خطا.
3. مشاهده از دست دادن/مشتریان فعال/نوسانات cwnd.
پیکربندی گهواره
Nginx (HTTP/2، OCSP، TLS 1. 3، بروتلی)
nginx server {
listen 443 ssl http2 reuseport;
ssl_protocols TLSv1. 2 TLSv1. 3;
ssl_stapling on; ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000" always;
Compression brotli on; brotli_comp_level 5; gzip on;
Cache static location/static/{
add_header Cache-Control "public, max-age=31536000, immutable" always;
try_files $uri =404;
}
Proxy to API location/api/{
proxy_set_header Connection "";
proxy_http_version 1. 1;
proxy_read_timeout 5s;
proxy_connect_timeout 1s;
proxy_pass https://backend;
}
}
sysctl (شبکه لینوکس: زیر سیستم هسته ECN/SACK/RACK - پارامترهای تقریبی)
bash
SACK/RACK/TLP are typically included in modern cores; specify sysctl -w net for your distribution. ipv4. tcp_sack=1 sysctl -w net. ipv4. tcp_ecn=1 sysctl -w net. ipv4. tcp_fastopen=0 # carefully with TFO sysctl -w net. core. default_qdisc=fq_codel sysctl -w net. ipv4. tcp_congestion_control=bbr
QoS (سبک سیسکو، مفهوم)
class-map match-any REALTIME match dscp ef class-map match-any INTERACTIVE match dscp af31 af21 class-map match-any BULK match dscp cs1 policy-map WAN-QOS class REALTIME priority percent 10 class INTERACTIVE bandwidth percent 50 class BULK bandwidth percent 20 random-detect ecn
فرآیندها و شیوه های عملیاتی
برنامه ریزی ظرفیت: حاشیه ظرفیت ≥ 30٪ در ساعات اوج.
Change-control: تغییرات قناری مسیرها/PoR/دروازه ها.
آزمایش منظم PMTUD و کنترل ICMP.
مستندات مسیر: جایی که NAT/پروکسی/AQM/QoS، که MTUs، که مالک است.
قرارداد اتمام وقت بین L7 و ردگیری شبکه.
iGaming/fintech خاص
زمان رویداد (مسابقات/مسابقات): گرم شدن CDN/PoP، پیش فرض دامنه های بحرانی، افزایش موقت در استخر از سرگیری، مسیرهای «خاکستری» برای رباتها.
مراحل پرداخت: کلاس QoS اختصاصی، نقاط پایانی Anycast، زنجیره های TLS کوتاه و نسخه های سخت/رمزنگاری ؛ عقب نشینی تنها idemotent است.
محدودیت های منطقه ای/PSP: جغرافیایی + لیست های سفید ASN/IP ؛ استخرهای خروجی ثابت.
شبکه های تلفن همراه: اولویت برای ChaCha20-Poly1305 (با AES-NI ضعیف در مشتریان)، فشرده سازی تهاجمی و HTTP/3.
چک لیست پیاده سازی
- بودجه تاخیر (DNS/TLS/connect/TTFB) و SLO در هر لینک.
- Anycast/Geo-routing برای API های عمومی/لبه، PoPs پشتیبان گیری.
- TLS 1. 3، OCSP stapling، از سرگیری ≥ 70٪، HTTP/2/3 گنجانده شده است.
- BBR + FQ_CoDel، ECN، SACK ؛ PMTUD کار می کند، ICMP مسدود نشده است.
- MTU تنها در امتداد زنجیره، حسابداری برای سربار از تونل.
- QoS: زمان واقعی/تعاملی/فله، کلاس های AQM در رابط های اضافه بار.
- CDN/لایه کش/منبع سپر ؛ دارایی های نسخه و SWR.
- معیارهای شبکه RUM + Geo/ASN ؛ هشدار به p95/p99/ECN/losses
- Playbooks: تخریب منطقه، افزایش تلفات، انتقال ترافیک.
خطاهای رایج
مسدود کردن ICMP/PMTUD → تکه تکه شدن/فروش مجدد و p95 بالا.
بافر «ضخیم» بدون AQM → بلوک بافر و جرقه.
زنجیرهای طولانی CA و بدون مهر و موم OCSP → TLS گران قیمت.
مراحل NAT و عدم تقارن برای فیلترهای stateful → retrays/timeouts.
دارایی های بیش از حد 'Vary '/non-versioning → نسبت ضربه کم CDN.
بدون تقسیم بندی QoS → API با پشتیبان گیری در اوج خود رقابت می کند.
مجموع
بهینه سازی تاخیر ترکیبی از مهندسی شبکه، حمل و نقل مناسب و صرفه جویی در «پیچ» در DNS/TLS/cache است. پیاده سازی Anycast/Geo-routing، TLS 1. 3 + از سرگیری، HTTP/3، BBR + FQ_CoDel/ECN، مذاکره MTU، مجموعه QoS و SLO، اندازه گیری p95/p99 و به صورت خودکار playbooks. سپس کاربران یک پاسخ سریع حتی در «سوختن» دقیقه، و پلت فرم - پیش بینی و حاشیه ایمنی دریافت خواهید کرد.