یک اتصال اینترنت با پهنای باند یک گیگابیت بر ثانیه نیز می تواند در هنگام بارگذاری همزمان داده ها دچار افت شدید پاسخگویی شود. در حالی که یک آزمایش پینگ ساده در زمان عدم مصرف ترافیک تاخیر رفت و برگشت (RTT) را 15 میلی ثانیه نشان می دهد، آغاز بارگیری یک فایل پرحجم یا پشتیبان گیری خودکار ابری می تواند این تاخیر را به بیش از 600 میلی ثانیه برساند. این وضعیت موجب قطع و وصل مکالمات صوتی، تاخیر شدید در نشست های ترمینال SSH و ناپایداری ارتباطات می شود.

این چالش فنی به عنوان بافربلوت (Bufferbloat) شناخته می شود: تاخیر ناشی از بافر بیش از حد و مدیریت نشده در تجهیزات ارتباطی. هنگام عبور ترافیک از تونل های رمزنگاری شده، پیچیدگی این معضل دوچندان می شود. یک شبکه خصوصی مجازی (VPN) انواع ترافیک برنامه ها را درون یک جریان UDP بیرونی یکپارچه می کند و ساختار داخلی جریان را از دید روترهای میانی مخفی می سازد. برطرف کردن این چالش مستلزم پیاده سازی الگوریتم های مدرن مدیریت فعال صف (AQM) مانند FQ-CoDel (استاندارد RFC 8290) و CAKE بر روی رابط های فیزیکی و کارت های شبکه مجازی است.

+--------------------------------------------------------------------------+
|                     گلوگاه بافربلوت در تونل های شبکه                     |
|                                                                          |
| [ بسته صوتی (64 بایت)  ] \                                               |
| [ بسته متنی SSH (96 بایت) ] ---> [ رابط مجازی شبکه TUN ]                 |
| [ جریان پرحجم ویدیو 4K  ] /              |                               |
|                                          v                               |
|                     [ جریان UDP یکپارچه و رمزگذاری شده ]                 |
|                                          |                               |
|                                          v                               |
|                  +-----------------------------------+                   |
|                  |       بافر بزرگ و حجیم FIFO       |                   |
|                  | [داده][داده][داده][داده][بسته صوتی|                   |
|                  +-----------------------------------+                   |
|                                          |                               |
|             افزایش تاخیر توقف بسته از 15 به 650 میلی ثانیه               |
|             بسته های تعاملی پشت بار ترافیکی متوقف می شوند                |
+--------------------------------------------------------------------------+

ریشه های ساختاری بافربلوت در شبکه های انتقال

برای سال های متوالی، سازندگان تجهیزات شبکه از دست رفتن بسته ها را به عنوان یک نقص فنی تلقی می کردند. به منظور جلوگیری از دور ریختن فریم ها در هنگام هجوم ناگهانی ترافیک، طراحان حافظه های بافر موقت رم بزرگی را درون مودم های کابل، روترهای خانگی و پایانه های فیبر نوری (ONT) تعبیه کردند.

بسیاری از این بافرها بر اساس ساختار سنتی خروج به ترتیب ورود (FIFO) و حذف از انتها (tail-drop) کار می کنند. در ترافیک سبک، داده ها فورا هدایت می شوند. با این حال الگوریتم های مرسوم کنترل ازدحام TCP (مانند Reno و CUBIC قدیمی) برای تخمین حداکثر پهنای باند، پنجره ارسال خود را به طور مرتب افزایش می دهند تا جایی که یک بسته گم شود.

هنگامی که مسیر شبکه دارای بافرهای چند مگابایتی است، پروتکل TCP به موقع متوجه محدودیت فیزیکی کابل نمی شود، بلکه حافظه واسط را تا انتها پر می کند. هزاران بسته صدها میلی ثانیه در نوبت قرار می گیرند تا اجازه ارسال پیدا کنند. در این وضعیت اگرچه پهنای باند کاملا اشغال است، اما زمان درنگ بسته (sojourn time) به شکلی چشمگیر صعود می کند.

چالش کپسوله سازی و ادغام جریان در تونل های شبکه

راه اندازی تونل های ارتباطی به دلیل دو محدودیت فنی ساختار تاخیر را تشدید می کند:

1. پارادوکس کپسوله سازی لایه خارجی

روترهای متداول دارای سازوکارهای سنجش کیفیت خدمات (QoS) سربرگ های لایه 3 (IP) و لایه 4 (TCP/UDP) را پایش می کنند. این تجهیزات با بررسی برچسب DSCP، شماره درگاه و پروتکل، بسته های صوتی را از دریافت فایل های حجیم تفکیک می نمایند.

هنگامی که داده ها از درون تونل WireGuard (پورت UDP 51820) یا IPsec عبور می کنند، سربرگ بیرونی فقط حاوی نشانی IP محلی دستگاه و IP سرور مقصد است. تمام جریان های درونی شامل پرس و جوهای DNS، دستورات ترمینال، داده های وب و صدا درون یک بسته رمز شده قرار می گیرند.

از دید روترهای خانگی یا شبکه محلی، تمام داده ها صرفا یک جریان منفرد UDP به نظر می رسد. تجهیزات شبکه نمی توانند یک بسته 80 بایتی DNS را از قطعه داده 8 مگابایتی ویدیو تمیز دهند. در صف های سنتی FIFO، بسته های سبک در انتهای صف های طویل قرار گرفته و دچار پدیده انسداد ابتدای خط (Head-of-Line blocking) می شوند.

2. تاخیر صف در لایه های داخلی هسته سیستم عامل

سیستم های عامل داده های شبکه را از طریق لایه های انتزاعی منتقل می کنند. زمانی که برنامه ای داده ای ارسال می کند، بسته از سوکت برنامه به کارت شبکه مجازی (مانند tun0 یا wg0) می رود، مراحل پردازش را طی می کند و پس از رمزگذاری به کارت شبکه فیزیکی (مانند eth0 یا wlan0) تحویل داده می شود.

اگر تنظیمات الگوریتم صف بر روی رابط مجازی یا کارت فیزیکی به درستی انجام نشده باشد، پدیده بافربلوت درون هسته خود دستگاه و قبل از خروج فیزیکی داده ها رخ می دهد.

CoDel: پایش تاخیر بر مبنای زمان درنگ بسته

برای رهایی از مشکل بافربلوت بدون دور ریختن بی دلیل بسته ها، دو پژوهشگر شبکه به نام های کاتلین نیکولز و ون یاکوبسون الگوریتم CoDel (تاخیر کنترل شده، استاندارد RFC 8289) را تدوین کردند.

روش های قدیمی تر مانند RED سعی داشتند با اندازه گیری میانگین طول صف مشکل را حل کنند. این رویکرد نیازمند تنظیم دستی پارامترها متناسب با سرعت خط بود و اغلب موجب افت زودهنگام سرعت در شبکه های پهن باند می شد.

+-------------------------------------------------------------------------+
|                  پویایی زمان درنگ بسته در الگوریتم CODEL                |
|                                                                         |
|  ورود بسته به صف ----> [ ثبت زمان دقیق ورود: t_enq ]                    |
|                                   |                                     |
|                                   v                                     |
|                              [ صف انتظار ]                              |
|                                   |                                     |
|                                   v                                     |
|  خروج بسته از صف ----> [ محاسبه زمان درنگ = t_deq - t_enq ]             |
|                                   |                                     |
|           +-----------------------+-----------------------+             |
|           |                                               |             |
|  درنگ < حد مجاز (5ms)                            درنگ > حد مجاز         |
|           |                                               |             |
|     [ عبور بسته ]                        بررسی تداوم وضعیت بیش از مدت   |
|                                          بازه ارزیابی Interval          |
|                                                           |             |
|                                                           v             |
|                                                 [ ورود به حالت Dropping]|
|                                                 حذف بسته با ضریب:       |
|                                                 1 / sqrt(count)         |
+-------------------------------------------------------------------------+

الگوریتم CoDel به جای شمارش بسته ها، مدت زمان معطلی هر بسته در صف را معیار سنجش قرار می دهد:

  1. صف مفید در برابر صف مضر: افزایش لحظه ای ترافیک که به سرعت خالی می شود به عنوان صف مفید تلقی شده و محدودیتی نمی بیند. صفی که به طور مداوم پر می ماند صف مضر است و تاخیر ناخواسته تولید می کند.
  2. شاخص های Target و Interval: دو متغیر اصلی عبارتند از تاخیر هدف (target به میزان 5 میلی ثانیه) و بازه ارزیابی (interval به میزان 100 میلی ثانیه معادل یک چرخه رفت و برگشت عمومی).
  3. مکانیزم حذف بسته: در هنگام خروج بسته از صف، زمان درنگ آن محاسبه می شود. اگر کمترین زمان درنگ مشاهده شده در طول 100 میلی ثانیه بالاتر از 5 میلی ثانیه باقی بماند، سامانه وارد فاز حذف بسته می شود و بسته ها را بر اساس فرمول معکوس جذر حذف می کند:

$$\Delta t = \frac{\text{interval}}{\sqrt{\text{count}}}$$

این الگو فرستنده TCP را وادار می سازد پنجره تبادل داده را به آرامی کوچک کند تا تاخیر به زیر 5 میلی ثانیه بازگردد. پس از خلوت شدن بافر، CoDel بلافاصله از حالت حذف خارج می شود.

مقایسه FQ-CoDel و CAKE: تفکیک هوشمند جریان ها

اجرای CoDel بر روی یک صف منفرد همچنان به داده های حجیم امکان ایجاد مزاحمت برای ترافیک کوچک را می دهد. تلفیق این الگوریتم با صف بندی مبتنی بر جریان (Flow Queuing) یک تحول اساسی ایجاد کرد.

FQ-CoDel (استاندارد RFC 8290)

این الگوریتم با هش کردن اطلاعات مشخصه بسته شامل IP مبدا، IP مقصد، پروتکل، درگاه مبدا و درگاه مقصد، داده ها را میان 1024 زیرصف مجزا تقسیم می کند.

سیستم زمان بندی DRR++ دو قابلیت کلیدی را محقق می سازد:

  • اولویت جریان های سبک: صف های با حجم کم مانند دستورات ترمینال، مکالمه صوتی و داده های بازی های آنلاین بلافاصله منتقل می شوند و معطل دانلودهای سنگین نمی مانند.
  • ایزوله سازی بار سنگین: اگر یک جریان دانلود کل ظرفیت زیرصف خود را پر کند، حذف بسته ها فقط در همان زیرصف رخ می دهد و جریان های مجاور بدون وقفه به کار خود ادامه می دهند.

CAKE (سیستم پیشرفته مدیریت صف)

این معماری به عنوان نسل جدید FQ-CoDel، بخش های کنترل پهنای باند، مقاومت در برابر تداخل هش و جبران سربار قاب بندی لایه های ارتباطی را در هسته لینوکس ادغام کرده است.

ویژگی FQ-CoDel (RFC 8290) CAKE (نسل نوین AQM)
تداخل هش جدول هش ساده جدول هش اشتراکی 8 جهته
کنترل پهنای باند نیازمند ابزار خارجی htb تنظیم کننده داخلی دقیق پهنای باند
سربار فریم ها نیازمند محاسبه دستی پشتیبانی خودکار از اترنت و PPPoE
تفکیک دستگاه ها فقط بر اساس جریان تفکیک دوگانه بر اساس دستگاه و جریان
طبقه بندی ترافیک یک ساختار صف متمرکز 4 رده اولویت بندی ترافیک

ویژگی تفکیک دوگانه در CAKE برای شبکه های شلوغ بسیار کارآمد است: حتی اگر یک دستگاه در شبکه محلی ده ها اتصال همزمان ایجاد کند، پهنای باند ابتدا میان سیستم ها تقسیم شده و مانع انحصار شبکه توسط یک رایانه می شود.

انتقال پیام های هشدار ECN از میان تونل ها

حذف بسته موجب ارسال مجدد داده در پروتکل TCP و اشغال دوباره خط می شود. روش اعلان صریح ازدحام (ECN استاندارد RFC 3168 و RFC 6040) هشدار پر شدن صف را بدون دور انداختن بسته به فرستنده می رساند.

در استاندارد ECN از 2 بیت در سربرگ IP استفاده می شود: مقادیر 00 (عدم پشتیبانی)، 10 (آماده دریافت ECN)، 01 (پشتیبانی فعال) و 11 (وقوع ازدحام یا CE).

اگر صف در حال پر شدن باشد و بسته دارای شناسه ECT باشد، روتر به جای حذف فیزیکی، کد آن را به 11 تغییر می دهد. گیرنده با مشاهده این کد، از طریق بسته های تایید TCP ACK به فرستنده پیام می دهد تا سرعت ارسال را متعادل کند.

مطابق استاندارد RFC 6040، سرورهای واسط موظفند این علامت را منعکس کنند:

  • در مرحله بسته بندی، بیت ECN از سربرگ داخلی به لایه خارجی کپی می شود.
  • در مرحله بازگشایی، اگر لایه خارجی دارای کد 11 باشد، روتر پیش از تحویل بسته به نرم افزار، لایه درونی را نیز به کد 11 مجهز می کند.

پیکربندی عملیاتی مدیریت صف برای اتصالات تونل

برای تنظیم الگوریتم های مدیریت صف در توزیع های لینوکس می توان مراحل زیر را به کار بست.

گام اول: سنجش تغییرات تاخیر در شبکه

میزان ناپایداری پینگ در زمان بارگذاری کامل خط را ارزیابی نمایید:

# آزمایش تاخیر در زمان بی باری شبکه
ping -c 20 10.8.0.1

# پایش پینگ همزمان با اجرای تست حداکثر سرعت
ping 10.8.0.1 | while read pong; do echo "$(date +%T.%N) $pong"; done

گام دوم: پیاده سازی CAKE بر روی رابط مجازی

این سیستم را به کارت شبکه رابط WireGuard متصل کنید:

# بررسی وضعیت فعلی صف رابط wg0
tc qdisc show dev wg0

# فعال سازی الگوریتم CAKE به همراه فیلتر بسته های تاییدیه
sudo tc qdisc replace dev wg0 root cake bandwidth 150mbit diffserv4 ack-filter

گزینه ack-filter بسته های تاییدیه غیرضروری را در مسیر آپلود کم می کند و مسیر رفت را خلوت نگه می دارد.

گام سوم: تنظیم بافرهای سیستم عامل

تنظیمات زیر را در فایل etc/sysctl.conf ثبت نمایید:

# تعیین FQ-CoDel به عنوان الگوریتم پیش فرض سیستم
net.core.default_qdisc = fq_codel

# استفاده از الگوریتم مدرن کنترل ازدحام BBR
net.ipv4.tcp_congestion_control = bbr

# جلوگیری از رشد بی رویه بافرهای TCP
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 65536 6291456
net.core.netdev_max_backlog = 5000

برای اعمال بدون نیاز به راه اندازی مجدد دستور زیر را اجرا کنید:

sudo sysctl -p

رویکرد بهینه سازی تاخیر در VPNRice

زیرساخت VPNRice مفاهیم نوین مدیریت صف را به صورت یکپارچه در هسته پروتکل RiceGuard پیاده کرده است.

با جداسازی هوشمند جریان داده ها در لایه 3 پیش از آغاز رمزگذاری، فریم های با اولویت بالا (نظیر پرسش های DNS، ترافیک صوتی و بازی های برخط) در خطوط سریع تری نسبت به دانلودهای طولانی پردازش می شوند. همراه با انتقال استاندارد پیام های ECN بر اساس RFC 6040 و شتاب دهی سخت افزاری رمزنگاری ChaCha20-Poly1305، تاخیر پایدار زیر 20 میلی ثانیه حتی در شلوغ ترین خطوط ارتباطی حفظ می شود.

مدیریت فعال صف با جایگزین کردن بافرهای سنتی با روش های هوشمند تفکیک جریان، پدیده بافربلوت را به کلی برطرف می کند. بهره گیری از راهکارهای FQ-CoDel و CAKE تجربه ای سریع، پایدار و امن از ارتباطات داده ای فراهم می سازد. ارتباط خود را پایدار نگه دارید و تاخیر شبکه را با دانلود VPNRice.