اگر از روترهای زیرشبکه یا اتصالهای دورکار در محیطهای شبکه ناپایدار استفاده میکنید، احتمالاً با گلوگاههای انتقال داده دستوپنجه نرم کردهاید. حالا Tailscale با بازطراحی لایهی داده، این محدودیتها را با توزیع ترافیک روی چندین هستهی پردازشی برطرف کرده است.
به گزارش وبسایت رسمی Tailscale در بهروزرسانی فنی ۲۳ سپتامبر ۲۰۲۶، این شرکت اکنون روی کاهش سربار حافظه برای بستههای کوچک تمرکز کرده تا سرعت استنتاج شبکه را باز کند. این بهینهسازیها باعث میشود Tailscale برای بارهای کاری حساس به عملکرد، از جمله محیطهای توسعهی دورکار، دستگاههای لبهی رباتیک و جریانهای کاری عاملمحور (Agentic) — شبیه به دستیارهای هوشمندی که بهطور مستقل مراحل یک پروژه را میبرند — کاربردی شود.
همانطور که در تحلیلهای پیشین ما دربارهی بهینهسازی پروتکلهای شبکه اشاره کردیم، مدیریت ترافیک در محیطهای نامساعد همواره یک چالش بوده است. این رویکرد بهینهسازی زیرساختی مشابه تلاشهای شرکتهای بزرگ برای کاهش تأخیر در سیستمهای پیچیده است؛ برای مثال، آنتروپیک با استفاده از متدولوژی Hill Climbing توانست تأخیر مدل کلود را تا ۳ برابر کاهش دهد. Tailscale سالهاست که روی عبور از NAT و بهبود عملکرد لایهی داده کار میکند و پیش از این توانسته بود نرخ توان عملیاتی (Throughput) — که مثل پهنای یک لولهی آب، مقدار دادهای است که در هر ثانیه منتقل میشود — را در لینوکس به بیش از ۱۰ گیگابیت بر ثانیه برساند.
حل گلوگاه بافر
بیشتر بستههای شبکه بسیار کوچک هستند (حدود ۱ کیبایت). اما برای استفاده از ابزارهای بهینهی لینوکس مثل GRO، Tailscale پیش از این مجبور بود برای هر بسته، ۶۴ کیبایت حافظه رزرو کند.
این وضعیت شبیه به حملونقل کانتینری است؛ بنادر و کشتیها برای یک اندازه خاص از کانتینر ساخته شدهاند، فارغ از اینکه داخل کانتینر چقدر بار باشد. در نتیجه، حتی برای یک بسته ۱ کیبایتی، یک فضای ۶۴ کیبایتی اشغال میشد که منجر به اتلاف شدید حافظه میشد.
اکنون در لینوکس و اندروید، Tailscale بستهها را در همان جایگاه اولیه نگه میدارد و بهجای کپی کردن آنها در بافرهای جدید، نقاط شروع و پایان هر بسته را در یک خوانش بزرگ شناسایی میکند. طبق اعلام تیم فنی، این روش باعث افزایش حدود ۵ درصدی سرعت در بسیاری از پیکربندیها شده است.

علاوه بر این، طول صفهای بسته — یعنی همان صفهای انتظاری که بستهها پیش از پردازش در آن میمانند — کوتاه شده است. تستها نشان داد که بخش زیادی از عمق این صفها بلااستفاده میماند و کوتاهتر کردن آنها باعث کاهش زمان انتظار و سربار حافظه شده است.
معماری چندصفی
Tailscale از حافظهی آزاد شده برای پیادهسازی یک سیستم چندصفی در روترهای زیرشبکه و گرههای خروجی استفاده میکند. پیش از این، تمام جریانهای داده در یک خط لولهی تکرشتهای (Single-thread) پردازش میشدند که باعث ایجاد گلوگاه میشد؛ زیرا یک برنامه دریافتکننده نباید بستهها را بهصورت نامنظم دریافت کند.
سیستم جدید، چندین مسیر موازی ایجاد میکند که بر اساس منابع سختافزاری دستگاه مقیاسبندی میشوند. هر جریان بسته در یک مسیر اختصاصی باقی میماند و این مسیرها بهطور موازی اجرا میشوند تا بار کاری بین هستههای CPU توزیع شود. این تغییر در مدیریت جریان دادهها، یادآور پروژه MetaRoCE است که در آن متا مدیریت ترافیک را از سوئیچها به کارتهای شبکه منتقل کرد تا کارایی خوشههای AI را افزایش دهد.

الکس والیوشکو، عضو تیم فنی Tailscale، اشاره میکند که این تغییر منجر به کاهش تأخیر (Latency) — یعنی همان فاصله زمانی بین ارسال و دریافت پیام — میشود. این موضوع بهویژه برای اتصالهای کوتاهمدت کاربران در گرههای خروجی حیاتی است.
بهینهسازیهای هسته و راهاندازی
این شرکت اکنون از قابلیت writev در لینوکس استفاده میکند. این ویژگی به کلاینت اجازه میدهد چندین تکه از دادههای بسته را در یک عملیات به هسته لینوکس بفرستد، بهجای آنکه ابتدا آنها را کپی و ترکیب کند.
برای مقابله با اتصالهای ضعیف، قابلیت کشینگ نقشهی شبکه (Netmap Caching) معرفی شده است. بهطور معمول، اتصال به Tailscale با یک درخواست به لایهی کنترل شروع میشود که حدود ۱۰۰ میلیثانیه زمان میبرد. در شبکههای ضعیف (مثل وایفای هواپیما)، این فرآیند کند یا شکست میخورد.
با کشینگ، هر دستگاه یک نسخهی محلی از نقشهی شبکه را روی دیسک ذخیره میکند. در هنگام راهاندازی سرد (Cold Start) — یعنی اولین باری که دستگاه روشن شده و هیچ اطلاعاتی در حافظه ندارد — دستگاه میتواند از این کش برای برقراری اتصال مستقیم با همتایان استفاده کند، پیش از آنکه حتی به لایهی کنترل متصل شود.
کلاوس لنسبول توضیح میدهد که این «راهاندازی گرم» در برخی موارد یک تا دو مرتبه سریعتر از حالت عادی است، بهخصوص برای دستگاههایی که از سرورهای DERP فاصله دارند.
محدودیتهای کشینگ نقشهی شبکه
این قابلیت با محدودیتهایی همراه است:
- اتصال قبلی: دستگاه باید حداقل یکبار متصل شده باشد تا نقشه اولیه را دریافت کند.
- فضای ذخیرهسازی: نیاز به فضای دیسک دائمی برای ذخیره کش است.
- ترافیک دیسک: در شبکههای بسیار بزرگ، بهروزرسانی کش ممکن است ترافیک دیسک را افزایش دهد.
- استهلاک سختافزار: در دستگاههایی با حافظههای حساس (مثل SD Card)، توصیه میشود این ویژگی غیرفعال باشد.
زمانبندی استقرار
- کاهش مصرف حافظه: در نسخه v1.104 برای لینوکس و اندروید.
- کشینگ نقشهی شبکه: هماکنون از طریق Feature Flag در دسترس و در v1.104 بهصورت پیشفرض فعال میشود.
- سیستم چندصفی: برنامهریزی شده برای نیمهی دوم سال ۲۰۲۶.
- بهبود توان عملیاتی (writev): پیادهسازی جزئی در بهار ۲۰۲۶ و تکمیل پس از v1.104.
شکاف نظارتی
Tailscale اعتراف میکند که تشخیص و تست عملکرد برای کاربران دشوار است. آنها در حال توسعه ابزاری برای نظارت بومی هستند، زیرا ابزارهای فعلی مشکلاتی دارند:
- مالیات توزیع: نیاز به نصب ابزار روی تکتک نقاط انتهایی.
- جریانهای کاری صلب: احتمال اجرای تستهای اشتباه و دنبال کردن مشکلات خیالی.
- پشتیبانی از پروتکلها: عدم پشتیبانی از QUIC و HTTP/3.
- عدم شناخت Tailscale: ابزارهای عمومی نمیتوانند تشخیص دهند اتصال مستقیم است یا از طریق DERP.
این چرخش به سمت پردازش چندهستهای، این فرض را که شبکههای Overlay باید گلوگاههای تکرشتهای باشند، تغییر میدهد. Tailscale با بهینهسازی لایهی داده، از یک ابزار برای «علاقهمندان به تکنولوژی» به یک زیرساخت صنعتی برای محیطهای توسعه تبدیل میشود.
گام بعدی شما
- اگر از لینوکس یا اندروید استفاده میکنید، منتظر نسخه v1.104 باشید تا کاهش مصرف حافظه را تجربه کنید.
- همین حالا Feature Flag مربوط به Netmap Caching را فعال کنید تا سرعت اتصال در شبکههای ناپایدار را بسنجید.
- در صورت استفاده از SD Card در دستگاههای لبه، وضعیت نوشتن روی دیسک را برای جلوگیری از استهلاک بررسی کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو