دلیل تغییر بار رله

Tor پهنای‌باند را در سراسر شبکه مدیریت می‌کند. برای بیشتر رله‌ها عملکرد معقولی دارد. اما اهداف Tor با پروتکل‌هایی مانند BitTorrent متفاوت است. Tor می‌خواهد صفحات وب کم‌تأخیر باشند که لازمهٔ آن اتصال‌های سریع و دارای سرماند است. BitTorrent بارگیری انبوه می‌خواهد که نیاز به استفاده از تمام پهنای‌باند دارد.

ما داریم روی یک پویشگر جدید پهنای‌باند کار می‌کنیم که فهم و نگهداری آن راحت‌تر است. برای رله‌هایی که اندازه‌گیری نمی‌شوند و رله‌هایی که سطح اندازه‌گیری پایینی دارند، امکانات عیب‌یابی خواهد داشت.

چرا Tor به اسکنرهای پهنای‌ باند نیاز دارد؟

بیشتر ارائه‌دهندگان، به شما سرعت بیشینهٔ اتصال محلی‌تان را می‌گویند. اما Tor در سراسر جهان کاربر دارد و کاربران ما به‌صورت تصادفی به یک یا دو رلهٔ نگهبان متصل می‌شوند. بنابراین ما باید بدانیم که هر رله با چه کیفیتی می‌تواند به کل جهان متصل شود.

So even if all relay operators set their advertised bandwidth to their local connection speed, we would still need bandwidth authorities to balance the load between different parts of the Internet.

بار رلهٔ معمولی چقدر است؟

طبیعی است که بیشتر رله‌ها بین ٪۸۰-٪۳۰ ظرفیت خود بارگذاری شوند. این برای کلاینت‌ها خوب است: یک رله با اضافه‌بار بالا تأخیر زیادی دارد. (ما به‌تعدادی رله می‌خواهیم که هر رله به‌میزان ٪۱۰ بارگذاری شود. در آن هنگام Tor تقریباً هم‌سرعت اینترنت گسترده‌تر خواهد بود).

گاهی اوقات، یک رله کند است زیرا پردازندهٔ آن کند است یا اتصالات آن محدود شده‌اند. در مواقع دیگر، شبکه کند است: رله همتاسازی بد یا فاصلهٔ زیادی با بیشتر رله‌های دیگر Tor دارد.

پیداکردن محدودکنندهٔ رله

عوامل زیادی می‌توانند سرعت رله را کاهش دهند. در اینجا نحوهٔ ردیابی آن‌ها آورده شده است.

محدودیت‌های سیستم

  • میزان استفاده از RAM، CPU و توصیفگر سوکت/فایل را در رلهٔ خود بررسی کنید

Tor هنگامی که آغاز می‌شود بعضی از این موارد را رویدادنگاری می‌کند. سایر موارد را می‌توان با استفاده از top یا ابزارهای مشابه مشاهده کرد.

محدودیت‌های ارائه‌دهنده

  • همتاسازی اینترنت (پهنای‌باند، تاخیر) از ارائه‌دهنده رله خود به رله‌های دیگر را بررسی کنید. انتقال رله‌ها از طریق Comcast گاهی کند بوده. رله‌های خارج از آمریکای شمالی و اروپای غربی معمولا کندتر هستند.

محدودیت‌های شبکهٔ Tor

پهنای‌باند رله را می‌توان با پهنای‌باند مشاهده شده یا پهنای‌باند اندازه‌گیری شده توسط مقامات دایرکتوری محدود کرد. در اینجا نحوه فهمیدن اینکه کدام اندازه‌گیری رله شما را محدود می‌کند آورده شده:

  • هر یک از آرا را برای رله خود در مورد اجماع سلامت (صفحه بزرگ) بررسی کنید و میانه را بررسی کنید. اگر رله شما توسط برخی از مقامات دایرکتوری در حال اجرا علامت‌گذاری نشده است:
    • آیا آدرس IPv4 یا IPv6 اشتباه دارد؟
    • آیا آدرس IPv4 یا IPv6 از برخی شبکه‌ها غیرقابل دسترسی است؟
    • آیا بیش از ۲ رله در آدرس IPv4 وجود دارد؟

در غیر این صورت، پهنای‌باند مشاهده شده رله و نرخ پهنای باند (محدود) را بررسی کنید. رلهٔ خود را در متریک‌ها جستجو کنید. سپس ماوس را روی عنوان پهنای‌باند قرار دهید تا پهنای‌باند مشاهده‌شده و نرخ پهنای‌باند رله را مشاهده کنید.

در اینجا جزئیات بیشتر و چند مثال آورده شده است: افت وزن اجماع و تسریع رلهٔ خروج.

نحوهٔ درست‌‌نمودن آن

کوچکترین این فرم محدود کردن پهنای‌باند تخصیص‌یافته به رله است.

  • اگر نرخ پهنای‌باند است، BandwidthRate/Burst یا RelayBandwidthRate/Burst را در torrc خود افزایش دهید.
  • اگر پهنای‌باند مشاهده شده باشد، رله شما پهنای‌باند بیشتری درخواست نخواهد کرد تا زمانی که خود را سریعتر ببیند. باید متوجه شوید که چرا کند است.
  • اگر پهنای‌باند اندازه‌گیری شده متوسط باشد، رله شما از نظر اکثر مقامات پهنای‌باند کند به نظر می‌رسد. باید متوجه شوید که چرا رلهٔ شما را آهسته اندازه‌گیری می‌کنند.

اندازه‌گیری‌های رلهٔ خود را انجام دهید

اگر رلهٔ شما کند است یا مراجع پهنای‌باند فکر می‌کنند که کند است، خودتان می‌توانید پهنای‌باند را آزمایش کنید:

  • Run a test using tor to see how fast tor can get on your network

    For this, you need to configure a tor client to use use your relay as entry. If your relay has only Guard flag, set EntryNodes with your relay fingerprint in torrc. If your relay doesn't have Guard flag or it has Guard and Exit flags, you can't set your relay as an entry node (see https://gitlab.torproject.org/tpo/core/tor/-/issues/22204), but you can set it as your bridge, even if it is not a bridge. To set your relay as a bridge, add to your torrc:

    Bridge <ip>:<port>
    UseBridge 1
    

    Then download a large file using your SocksPort as a socks proxy. For this, you can use curl, eg:

    curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>
    

    Using different user/password guarantees different circuits. You can use $RANDOM.

    That will give you some idea of how much traffic your relay can sustain.

    Alternatively, you can run relay_bw to test your relay using 2 hops circuits, in a similar way as sbws does.

  • Run a test using tor and chutney to find out how fast tor can get on your CPU. Keep increasing the data volume until the bandwidth stops increasing.