✅ به زودی یه آپدیت کوچولو برای Rathole میدم که بشه TCP No_Delay رو خاموش کرد. درباره TCP NoDelay و کاربردش در شبکه و الگوریتم Nagle هم یه توضیح کوتاه میدم.
⁉️ این که در عمل چقدر تفاوت ایجاد کنه رو هم دوستان زحمت تستش رو می کشند. یه بنچمارک هایی هم البته در سطح نت براش هست. اگر کاربر بالا دارید به نظر خاموش کردنش بهتر باشه.
#rathole #TCP_NODELAY
👁@Gozar_Xray
⁉️ این که در عمل چقدر تفاوت ایجاد کنه رو هم دوستان زحمت تستش رو می کشند. یه بنچمارک هایی هم البته در سطح نت براش هست. اگر کاربر بالا دارید به نظر خاموش کردنش بهتر باشه.
#rathole #TCP_NODELAY
👁@Gozar_Xray
🔥20❤12
⁉️بخش اول: الگوریتم Nagle چیست؟
یک تکنیک بهینهسازی برای کاهش تعداد بستههای کوچک دادهای در شبکههای TCP/IP است. این الگوریتم توسط جان ناگل در سال ۱۹۸۴ ابداع شد و هدف اصلی آن بهبود کارایی انتقال دادهها در شبکههای کند یا شبکههایی با پهنای باند محدود است.
❓ نحوه کار الگوریتم Nagle
الگوریتم Nagle به این صورت عمل میکند که زمانی که دادههای کوچکی برای ارسال وجود دارند، فرستنده این دادهها را تا زمانی که تاییدیه (ACK) از دادههای قبلی دریافت نکرده باشد، جمعآوری و ادغام میکند. به عبارت دیگر، اگر فرستنده دادههای کوچکی داشته باشد که باید ارسال شوند، منتظر میماند تا یا:
تاییدیه بستههای قبلی دریافت شود: در این صورت، فرستنده تمام دادههای جمعآوری شده را به یک بسته بزرگتر ترکیب کرده و ارسال میکند.
دادههای کافی برای پر کردن یک بسته کامل دریافت کند: در این صورت، بدون توجه به دریافت یا عدم دریافت تاییدیه، بسته را ارسال میکند.
این روش باعث میشود که تعداد بستههای کوچک ارسال شده در شبکه کاهش یابد، و در نتیجه، کارایی انتقال دادهها بهبود پیدا کند.
❓ مزایا و معایب الگوریتم Nagle
مزایا:
کاهش تعداد بستههای کوچک: این امر منجر به کاهش سربار پروتکل TCP و بهبود کارایی کلی شبکه میشود.
بهینهسازی استفاده از پهنای باند: با ترکیب بستههای کوچک به یک بسته بزرگتر، استفاده بهینهتری از پهنای باند موجود حاصل میشود.
معایب:
افزایش تأخیر در برخی کاربردها: برای برنامههایی که نیاز به تأخیر کم دارند (مانند برنامههای تعاملی بلادرنگ)، الگوریتم Nagle ممکن است باعث تأخیرهای غیرقابل قبول شود.
مشکل در ترکیب با تأییدیه تأخیری (Delayed ACK): در برخی موارد، ترکیب الگوریتم Nagle با مکانیزم تأییدیه تأخیری ممکن است باعث تأخیرهای بیشتر شود.
✅ برای غیرفعال کردن الگوریتم Nagle در برنامهنویسی، معمولاً از گزینه TCP_NODELAY استفاده میشود که میتوان آن را روی سوکت TCP تنظیم کرد.
#TCP_NODELAY
👁@Gozar_Xray
یک تکنیک بهینهسازی برای کاهش تعداد بستههای کوچک دادهای در شبکههای TCP/IP است. این الگوریتم توسط جان ناگل در سال ۱۹۸۴ ابداع شد و هدف اصلی آن بهبود کارایی انتقال دادهها در شبکههای کند یا شبکههایی با پهنای باند محدود است.
❓ نحوه کار الگوریتم Nagle
الگوریتم Nagle به این صورت عمل میکند که زمانی که دادههای کوچکی برای ارسال وجود دارند، فرستنده این دادهها را تا زمانی که تاییدیه (ACK) از دادههای قبلی دریافت نکرده باشد، جمعآوری و ادغام میکند. به عبارت دیگر، اگر فرستنده دادههای کوچکی داشته باشد که باید ارسال شوند، منتظر میماند تا یا:
تاییدیه بستههای قبلی دریافت شود: در این صورت، فرستنده تمام دادههای جمعآوری شده را به یک بسته بزرگتر ترکیب کرده و ارسال میکند.
دادههای کافی برای پر کردن یک بسته کامل دریافت کند: در این صورت، بدون توجه به دریافت یا عدم دریافت تاییدیه، بسته را ارسال میکند.
این روش باعث میشود که تعداد بستههای کوچک ارسال شده در شبکه کاهش یابد، و در نتیجه، کارایی انتقال دادهها بهبود پیدا کند.
❓ مزایا و معایب الگوریتم Nagle
مزایا:
کاهش تعداد بستههای کوچک: این امر منجر به کاهش سربار پروتکل TCP و بهبود کارایی کلی شبکه میشود.
بهینهسازی استفاده از پهنای باند: با ترکیب بستههای کوچک به یک بسته بزرگتر، استفاده بهینهتری از پهنای باند موجود حاصل میشود.
معایب:
افزایش تأخیر در برخی کاربردها: برای برنامههایی که نیاز به تأخیر کم دارند (مانند برنامههای تعاملی بلادرنگ)، الگوریتم Nagle ممکن است باعث تأخیرهای غیرقابل قبول شود.
مشکل در ترکیب با تأییدیه تأخیری (Delayed ACK): در برخی موارد، ترکیب الگوریتم Nagle با مکانیزم تأییدیه تأخیری ممکن است باعث تأخیرهای بیشتر شود.
✅ برای غیرفعال کردن الگوریتم Nagle در برنامهنویسی، معمولاً از گزینه TCP_NODELAY استفاده میشود که میتوان آن را روی سوکت TCP تنظیم کرد.
#TCP_NODELAY
👁@Gozar_Xray
👏12❤4👍2
⁉️ گزینه TCP_NODELAY چیست؟
یک تنظیم در پروتکل TCP است که به شما اجازه میدهد الگوریتم Nagle را غیرفعال کنید. با فعال کردن این گزینه، دادهها به محض آماده شدن ارسال میشوند و دیگر منتظر ترکیب شدن با دادههای دیگر یا دریافت تاییدیه از بستههای قبلی نخواهند بود.
❓ تأثیر فعال کردن TCP_NODELAY
- ارسال فوری دادهها: دادهها بلافاصله پس از آماده شدن برای ارسال به شبکه فرستاده میشوند.
- کاهش تأخیر: در برنامههای بلادرنگ یا تعاملی که نیاز به حداقل تأخیر دارند، فعال کردن TCP_NODELAY میتواند باعث کاهش تأخیر شود.
- افزایش تعداد بستههای کوچک: با فعال کردن این گزینه، تعداد بستههای کوچکی که در شبکه ارسال میشوند، افزایش مییابد که میتواند سربار پروتکل TCP و استفاده از پهنای باند را افزایش دهد.
تجارت الکترونیک و تراکنشهای مالی: برای کاهش تأخیر در تراکنشها و بهبود تجربه کاربر.
❓تأثیر بر مصرف پردازنده
بستههای بیشتر برای پردازش: با ارسال هر داده به محض آماده شدن، تعداد بستههایی که پردازنده باید مدیریت کند، افزایش مییابد. این باعث میشود پردازنده مجبور باشد تعداد بیشتری بسته را مدیریت کند، که میتواند منجر به افزایش بار کاری و مصرف پردازنده شود.
افزایش فراخوانیهای سیستمی: هر بار که دادهای ارسال میشود، یک فراخوانی سیستمی به سیستمعامل انجام میشود. افزایش تعداد این فراخوانیها باعث افزایش سربار پردازنده میشود.
❓ تأثیر بر مصرف پهنای باند
سربار بستههای بیشتر: هر بسته TCP شامل سرباری (header) است که شامل اطلاعات کنترلی میباشد. وقتی بستههای کوچکتر ارسال میشوند، نسبت سربار به دادهها بیشتر میشود و در نتیجه، پهنای باند بیشتری مصرف میشود.
کارایی کمتر: ارسال بستههای کوچکتر به جای بستههای ترکیب شده، منجر به استفاده ناکارآمد از پهنای باند موجود میشود.
❓ موارد کاربرد:
- بازیهای آنلاین: برای اطمینان از اینکه حرکات و اقدامات بازیکنان بدون تأخیر به سرور بازی میرسد.
- برنامههای صوتی و تصویری بلادرنگ: برای اطمینان از انتقال بدون تأخیر دادههای صوتی و تصویری.
- تجارت الکترونیک و تراکنشهای مالی: برای کاهش تأخیر در تراکنشها و بهبود تجربه کاربر.
#TCP_NODELAY
👁@Gozar_Xray
یک تنظیم در پروتکل TCP است که به شما اجازه میدهد الگوریتم Nagle را غیرفعال کنید. با فعال کردن این گزینه، دادهها به محض آماده شدن ارسال میشوند و دیگر منتظر ترکیب شدن با دادههای دیگر یا دریافت تاییدیه از بستههای قبلی نخواهند بود.
❓ تأثیر فعال کردن TCP_NODELAY
- ارسال فوری دادهها: دادهها بلافاصله پس از آماده شدن برای ارسال به شبکه فرستاده میشوند.
- کاهش تأخیر: در برنامههای بلادرنگ یا تعاملی که نیاز به حداقل تأخیر دارند، فعال کردن TCP_NODELAY میتواند باعث کاهش تأخیر شود.
- افزایش تعداد بستههای کوچک: با فعال کردن این گزینه، تعداد بستههای کوچکی که در شبکه ارسال میشوند، افزایش مییابد که میتواند سربار پروتکل TCP و استفاده از پهنای باند را افزایش دهد.
تجارت الکترونیک و تراکنشهای مالی: برای کاهش تأخیر در تراکنشها و بهبود تجربه کاربر.
❓تأثیر بر مصرف پردازنده
بستههای بیشتر برای پردازش: با ارسال هر داده به محض آماده شدن، تعداد بستههایی که پردازنده باید مدیریت کند، افزایش مییابد. این باعث میشود پردازنده مجبور باشد تعداد بیشتری بسته را مدیریت کند، که میتواند منجر به افزایش بار کاری و مصرف پردازنده شود.
افزایش فراخوانیهای سیستمی: هر بار که دادهای ارسال میشود، یک فراخوانی سیستمی به سیستمعامل انجام میشود. افزایش تعداد این فراخوانیها باعث افزایش سربار پردازنده میشود.
❓ تأثیر بر مصرف پهنای باند
سربار بستههای بیشتر: هر بسته TCP شامل سرباری (header) است که شامل اطلاعات کنترلی میباشد. وقتی بستههای کوچکتر ارسال میشوند، نسبت سربار به دادهها بیشتر میشود و در نتیجه، پهنای باند بیشتری مصرف میشود.
کارایی کمتر: ارسال بستههای کوچکتر به جای بستههای ترکیب شده، منجر به استفاده ناکارآمد از پهنای باند موجود میشود.
❓ موارد کاربرد:
- بازیهای آنلاین: برای اطمینان از اینکه حرکات و اقدامات بازیکنان بدون تأخیر به سرور بازی میرسد.
- برنامههای صوتی و تصویری بلادرنگ: برای اطمینان از انتقال بدون تأخیر دادههای صوتی و تصویری.
- تجارت الکترونیک و تراکنشهای مالی: برای کاهش تأخیر در تراکنشها و بهبود تجربه کاربر.
#TCP_NODELAY
👁@Gozar_Xray
🔥11👍2❤1
گزینه ی تنظیم TCP_NODELAY در رتهول فعال شد. طبق نیازی که دارید میتونید فعال یا غیرفعال کنید. برای استفاده شخصی به نظرم true و در صورت تعداد کاربر بالا false رو امتحان کنید.
مقدار این گزینه در سرور ایران و خارج باید یکسان باشند. مجددا باید کانفیگ کنید که گزینه نمایش داده باشه.
برای غیرفعال کردن باید مجدد کانفیگ کنید.
https://github.com/Musixal/rathole-tunnel/tree/main
#TCP_NODELAY
👁@Gozar_Xray
مقدار این گزینه در سرور ایران و خارج باید یکسان باشند. مجددا باید کانفیگ کنید که گزینه نمایش داده باشه.
برای غیرفعال کردن باید مجدد کانفیگ کنید.
https://github.com/Musixal/rathole-tunnel/tree/main
#TCP_NODELAY
👁@Gozar_Xray
👍16❤8🔥5
✅ پروژه ماتریکس رو که من استارت زدم، طبق تست های اولیه که در سیستم خودم داشتم پرفورمنس قابل قبولی داشت. از همون ابتدا هم میدونستم هسته ی Tinc که استفاده شده Single Thread هست و بهینه سازی های کافی روش انجام نشده و برنامه زمان زیادی رو در کرنل تلف میکنه اما پهناباند حدود ۳۰۰ مگابیت قابل قبول بود. مخصوصا این که تینک نسبت به رتهول بهتر از فایروال عبور میکنه.
احتمالا دلیل این که تینک در بعضی سیستم ها بسیار کند هست هم همینه و مربوط به کرنل هست اما این که چه ورژن هایی بهتره رو هنوز اطلاع ندارم و نیازمند تحقیق بیشتره. فعلا یه آپدیت کوچیک دادم و امکان حذف Encryption در گزینه های Expert رو فراهم کردم این کار کمی پهناباند رو بیش تر و مصرف پردازنده رو پایین تر میاره.
⁉️ همین الان هم میتونم جایگزین بهتر و قابل قبول تری برای هسته ی ماتریکس استفاده کنم اما مشغله ی کاری زیاد متاسفانه اجازه این کار و بازنویسی کدها رو نمیده. ممکنه در قالب پروژه دیگری ارائه بدم یا به یک آموزش ویدئویی بسنده کنم. قطعا آموزش ویدئویی با توجه به این که وقت گیر نیست برای من هم بهتره.
#matrix
👁@Gozar_Xray
احتمالا دلیل این که تینک در بعضی سیستم ها بسیار کند هست هم همینه و مربوط به کرنل هست اما این که چه ورژن هایی بهتره رو هنوز اطلاع ندارم و نیازمند تحقیق بیشتره. فعلا یه آپدیت کوچیک دادم و امکان حذف Encryption در گزینه های Expert رو فراهم کردم این کار کمی پهناباند رو بیش تر و مصرف پردازنده رو پایین تر میاره.
⁉️ همین الان هم میتونم جایگزین بهتر و قابل قبول تری برای هسته ی ماتریکس استفاده کنم اما مشغله ی کاری زیاد متاسفانه اجازه این کار و بازنویسی کدها رو نمیده. ممکنه در قالب پروژه دیگری ارائه بدم یا به یک آموزش ویدئویی بسنده کنم. قطعا آموزش ویدئویی با توجه به این که وقت گیر نیست برای من هم بهتره.
#matrix
👁@Gozar_Xray
❤32👍7👏4😍1
✅ به زودی جایگزین اسکریپت ماتریکس رو معرفی می کنم. پروتکل های بیشتر، ساده تر، استیبل تر و سریع تر...
#easymesh
👁@Gozar_Xray
#easymesh
👁@Gozar_Xray
❤35👍9🔥3🤩1
⁉️ ویژگی ها:
👾 پهناباند بالای ۴۰۰ مگابیت
👾 مالتی ترد
👾 پشتیبانی از udp, tcp, ws, wss
👾 استیبل تا اینجای کار
👾 فول مش
👾 انکریپشن دیتا
👾 عبور بهتر از فایروال نسبت به رتهول
👾 ارتباط بای دایرکشنال
🚀 فعلا کرنل Xanmod + BBRv3 رو نصب کنید. ممکنه باعث اختلال در سرورتون بشه. پس روی سرور اصلیتون تست نکنید.
😤 حوصله doc نوشتن ندارم، اگر موافق هستید تو گروه بگید به صورت ویدئویی توضیح بدم.
#easymesh
👁@Gozar_Xray
👾 پهناباند بالای ۴۰۰ مگابیت
👾 مالتی ترد
👾 پشتیبانی از udp, tcp, ws, wss
👾 استیبل تا اینجای کار
👾 فول مش
👾 انکریپشن دیتا
👾 عبور بهتر از فایروال نسبت به رتهول
👾 ارتباط بای دایرکشنال
🚀 فعلا کرنل Xanmod + BBRv3 رو نصب کنید. ممکنه باعث اختلال در سرورتون بشه. پس روی سرور اصلیتون تست نکنید.
😤 حوصله doc نوشتن ندارم، اگر موافق هستید تو گروه بگید به صورت ویدئویی توضیح بدم.
#easymesh
👁@Gozar_Xray
👍85❤17👏2😍2🔥1🦄1
🌀 توضیحاتی چند درباره تانل ها
۱) در مورد رتهول اون هایی که مشکل قطعی داشتند هیچ اطلاعات بیشتری ندادند که من بتونم مشکل رو reproduce کنم. بنابراین میذارم به حساب مشکلات دیتاسنتر و کانفیگ کردن اشتباه و اوپتیمایز نبودن OS. بارها هم گفتم رتهول در کانکشن های بالا معمولا ۲۰ هزار (بسته به سخت افزار سرورتون) دچار افزایش Latency میشه و نیاز به کرون جاب داره. پس بهتره کانفیگ هاتون رو با Mux به مشتری بدید. نصب اوپتیمایزر هم تاثیر داره.
- این که کرون جاب روی چه ساعتی تنظیم باشه رو با نصب Uptime Kuma میتونید متوجه بشید.
- قسمت Port Monitor هم باعث سردرگمی شده و به نظرم آپدیت بعدی حذفش میکنم.
- پیشنهاد این که پورت تانل و کانفیگ ها رو توی اسکریپت نشون بده جالب بود و ممکنه اضافه ش کنم.
- به نظرم وب سوکت مشکلات خودش رو داره و نیاز نیست به تانل اضافه بشه.
- مشکلات اتصال چند سرور خارج به یک سرور ایران اگر خیلی ریپورت شه اصلاحش میکنم.
۲) اسکریپت ماتریکس برای فروش نیست و برای استفاده شخصی کاربرد داره. اگر سرعت خوبی بهتون میده کاملا استیبل هست. هسته ی تینک آپدیت نمیشه و خیلی نمیشه روش حساب کرد که در آینده تغییر بزرگی کنه.
۳) اسکریپت ایزی مش خیلی آینده بهتری داره. از لایبرری قدرتمند Tokio استفاده میکنه و همین لایبرری در رتهول استفاده شده. دولوپر فعالی داره و من مشکلاتی که بود رو در گیت هاب در این لینک issue کردم و پاسخ دادند. برای استفاده شخصی تا این جای کار برای من اوکی بوده ولی برای کاربر زیاد فعلا توصیه نمیکنم مگر این که طبق تست خودتون نتیجه ی خوبی گرفته باشید.
#tunnel
👁@Gozar_Xray
۱) در مورد رتهول اون هایی که مشکل قطعی داشتند هیچ اطلاعات بیشتری ندادند که من بتونم مشکل رو reproduce کنم. بنابراین میذارم به حساب مشکلات دیتاسنتر و کانفیگ کردن اشتباه و اوپتیمایز نبودن OS. بارها هم گفتم رتهول در کانکشن های بالا معمولا ۲۰ هزار (بسته به سخت افزار سرورتون) دچار افزایش Latency میشه و نیاز به کرون جاب داره. پس بهتره کانفیگ هاتون رو با Mux به مشتری بدید. نصب اوپتیمایزر هم تاثیر داره.
- این که کرون جاب روی چه ساعتی تنظیم باشه رو با نصب Uptime Kuma میتونید متوجه بشید.
- قسمت Port Monitor هم باعث سردرگمی شده و به نظرم آپدیت بعدی حذفش میکنم.
- پیشنهاد این که پورت تانل و کانفیگ ها رو توی اسکریپت نشون بده جالب بود و ممکنه اضافه ش کنم.
- به نظرم وب سوکت مشکلات خودش رو داره و نیاز نیست به تانل اضافه بشه.
- مشکلات اتصال چند سرور خارج به یک سرور ایران اگر خیلی ریپورت شه اصلاحش میکنم.
۲) اسکریپت ماتریکس برای فروش نیست و برای استفاده شخصی کاربرد داره. اگر سرعت خوبی بهتون میده کاملا استیبل هست. هسته ی تینک آپدیت نمیشه و خیلی نمیشه روش حساب کرد که در آینده تغییر بزرگی کنه.
۳) اسکریپت ایزی مش خیلی آینده بهتری داره. از لایبرری قدرتمند Tokio استفاده میکنه و همین لایبرری در رتهول استفاده شده. دولوپر فعالی داره و من مشکلاتی که بود رو در گیت هاب در این لینک issue کردم و پاسخ دادند. برای استفاده شخصی تا این جای کار برای من اوکی بوده ولی برای کاربر زیاد فعلا توصیه نمیکنم مگر این که طبق تست خودتون نتیجه ی خوبی گرفته باشید.
#tunnel
👁@Gozar_Xray
GitHub
My test results · Issue #139 · EasyTier/EasyTier
I recently used this project. Unfortunately, there are problems that I will explain in the future. The first problem is the low bandwidth it provides. In the best case, the speed cannot be more tha...
❤50
⁉️ چرا تانل TCP over TCP خوب نیست و TCP meltdown چیست؟ و توضیح این که چرا تانل هایی مثل رتهول در کانکشن های بالا مشکل پیدا میکنند.
تو شبکههای کامپیوتری ارتباطات TCP رو داریم، این ارتباطات طوری طراحی شدن که مطمئن بشن دادهها به درستی و بدون خطا به مقصد میرسن. حالا فرض کنید که یه تانل TCP in TCP مثل رتهول داریم، یعنی یه اتصال TCP درون یه اتصال TCP دیگه قرار داره. در حالت معمولی، TCP مکانیزمهایی داره که اگر دادهها با مشکل مواجه بشن یا از دست برن، خودش رو تنظیم کنه. این مکانیزمها شامل موارد زیر هستن:
اول Congestion Control رو داریم: TCP از روشهایی مثل Slow Start، Congestion Avoidance و Fast Recovery استفاده میکنه تا ترافیک رو مدیریت کنه و از شلوغ شدن بیش از حد شبکه جلوگیری کنه.
دوم Error Detection and Retransmission (تشخیص خطا و ارسال مجدد) رو داریم: اگر یه بسته داده گم بشه یا خراب بشه، TCP دوباره اون بسته رو میفرسته.
حالا تصور کنید که این مکانیزمها دارن همزمان در دو لایه TCP (یه TCP داخل یه TCP دیگه) اجرا میشن. این یعنی هر بار که یه خطا یا مشکل Congestion رخ میده، هر دو لایه TCP باید اقدامات خودشون رو انجام بدن و به طور موازی تلاش کنن که مشکل رو حل کنن، که این خودش منجر به پیچیدگی بیشتر و مصرف بیشتر منابع میشه.
وقتی ترافیک شبکه خیلی زیاد بشه (congestion)، هر دو لایه TCP سعی میکنن با کاهش سرعت ارسال داده و تنظیم خودشون به ترافیک زیادی که هست پاسخ بدن. این مسئله باعث موارد زیر میشه:
افزایش تأخیر (Latency): چون هر لایه TCP باید منتظر بمونه تا لایهی دیگه کار خودش رو انجام بده.
افزایش بار پردازشی (Processing Overhead): چون پردازنده باید دو بار مکانیزمهای TCP رو اجرا کنه.
بیشتر شدن احتمال خطا و ارسال مجدد (Increased Retransmissions): چون هر خطا ممکنه دو بار توسط هر دو لایه تشخیص داده بشه و دوباره ارسال بشه.
همچنین، پدیدهی جبران (Compensation) هم تو این وضعیت مطرحه. TCP سعی میکنه که با کاهش سرعت ارسال و تنظیم مجدد Congestion رو مدیریت کنه. این فرآیندها در لایههای متعدد میتونن باعث بشن که سرعت کلی ارتباط در کانکشن های بالا به شدت کاهش پیدا کنه، چون هر لایه به تنهایی سعی میکنه که خودش رو تنظیم کنه.
این لایهلایه شدن بستهها باعث میشه که پردازش هر بسته خیلی زمانبر و پیچیده بشه و این همون مشکل TCP Meltdown هست که تو شبکه ایجاد میشه.
برای جلوگیری از این مشکل، بهتره که از پروتکلهای غیر TCP مثل UDP برای تانلزنی استفاده بشه یا به طور کلی طراحی شبکه رو طوری انجام بدیم که از لایهلایه شدن ارتباطات TCP جلوگیری کنیم.
#tcp
👁@Gozar_Xray
تو شبکههای کامپیوتری ارتباطات TCP رو داریم، این ارتباطات طوری طراحی شدن که مطمئن بشن دادهها به درستی و بدون خطا به مقصد میرسن. حالا فرض کنید که یه تانل TCP in TCP مثل رتهول داریم، یعنی یه اتصال TCP درون یه اتصال TCP دیگه قرار داره. در حالت معمولی، TCP مکانیزمهایی داره که اگر دادهها با مشکل مواجه بشن یا از دست برن، خودش رو تنظیم کنه. این مکانیزمها شامل موارد زیر هستن:
اول Congestion Control رو داریم: TCP از روشهایی مثل Slow Start، Congestion Avoidance و Fast Recovery استفاده میکنه تا ترافیک رو مدیریت کنه و از شلوغ شدن بیش از حد شبکه جلوگیری کنه.
دوم Error Detection and Retransmission (تشخیص خطا و ارسال مجدد) رو داریم: اگر یه بسته داده گم بشه یا خراب بشه، TCP دوباره اون بسته رو میفرسته.
حالا تصور کنید که این مکانیزمها دارن همزمان در دو لایه TCP (یه TCP داخل یه TCP دیگه) اجرا میشن. این یعنی هر بار که یه خطا یا مشکل Congestion رخ میده، هر دو لایه TCP باید اقدامات خودشون رو انجام بدن و به طور موازی تلاش کنن که مشکل رو حل کنن، که این خودش منجر به پیچیدگی بیشتر و مصرف بیشتر منابع میشه.
وقتی ترافیک شبکه خیلی زیاد بشه (congestion)، هر دو لایه TCP سعی میکنن با کاهش سرعت ارسال داده و تنظیم خودشون به ترافیک زیادی که هست پاسخ بدن. این مسئله باعث موارد زیر میشه:
افزایش تأخیر (Latency): چون هر لایه TCP باید منتظر بمونه تا لایهی دیگه کار خودش رو انجام بده.
افزایش بار پردازشی (Processing Overhead): چون پردازنده باید دو بار مکانیزمهای TCP رو اجرا کنه.
بیشتر شدن احتمال خطا و ارسال مجدد (Increased Retransmissions): چون هر خطا ممکنه دو بار توسط هر دو لایه تشخیص داده بشه و دوباره ارسال بشه.
همچنین، پدیدهی جبران (Compensation) هم تو این وضعیت مطرحه. TCP سعی میکنه که با کاهش سرعت ارسال و تنظیم مجدد Congestion رو مدیریت کنه. این فرآیندها در لایههای متعدد میتونن باعث بشن که سرعت کلی ارتباط در کانکشن های بالا به شدت کاهش پیدا کنه، چون هر لایه به تنهایی سعی میکنه که خودش رو تنظیم کنه.
این لایهلایه شدن بستهها باعث میشه که پردازش هر بسته خیلی زمانبر و پیچیده بشه و این همون مشکل TCP Meltdown هست که تو شبکه ایجاد میشه.
برای جلوگیری از این مشکل، بهتره که از پروتکلهای غیر TCP مثل UDP برای تانلزنی استفاده بشه یا به طور کلی طراحی شبکه رو طوری انجام بدیم که از لایهلایه شدن ارتباطات TCP جلوگیری کنیم.
#tcp
👁@Gozar_Xray
❤55
🤖 اضافه کردن Watchdog به اسکریپت EasyMesh
با وجود این که اسکریپت EasyMesh در مرحله ی بتاست و در حال صحبت با دولوپرش برای رفع باگ هاش هستم، اما بعضی دوستان علاقه داشتند از این اسکریپت بدون مشکل قطعی استفاده کنند. بنابراین یه گزینه به اسم Watchdog یا نگهبان سرویس به اسکریپت اضافه کردم.
✅ به این صورت عمل کنید. اسکریپت رو اجرا کنید (فقط سرور خارج) و گزینه ۷ رو انتخاب کنید. بعد گزینه اول یعنی Start watchdog رو بزنید. حالا آدرس Local IP ایران رو وارد کنید. بعد مقدار Latency رو مشخص کنید. چیزی حدود ۲۰۰ تا ۳۰۰ میلی ثانیه خوبه. بعد هم فاصله بین هر پینگ رو به ثانیه بزنید. مثلا ۵ یا ۱۰ خوبه. این یعنی هر ۵ ثانیه آدرس لوکال ایران چک میشه و اگر پینگش از عددی که تعیین کردید بالاتر بود، سرویس ریستارت میشه.
می تونید لاگ ها رو هم ببینید. گزینه ۷ و بعد گزینه ۳ برای مشاهده ی لاگ هست.
فعلا در همین حد میشه به این دوستان که قطعی دوره ای دارند کمک کرد. نصب XanMod Kernel رو هم قبلا توصیه کرده بودم. سوالی بود در گروه مطرح کنید.
#easymesh
👁@Gozar_Xray
با وجود این که اسکریپت EasyMesh در مرحله ی بتاست و در حال صحبت با دولوپرش برای رفع باگ هاش هستم، اما بعضی دوستان علاقه داشتند از این اسکریپت بدون مشکل قطعی استفاده کنند. بنابراین یه گزینه به اسم Watchdog یا نگهبان سرویس به اسکریپت اضافه کردم.
✅ به این صورت عمل کنید. اسکریپت رو اجرا کنید (فقط سرور خارج) و گزینه ۷ رو انتخاب کنید. بعد گزینه اول یعنی Start watchdog رو بزنید. حالا آدرس Local IP ایران رو وارد کنید. بعد مقدار Latency رو مشخص کنید. چیزی حدود ۲۰۰ تا ۳۰۰ میلی ثانیه خوبه. بعد هم فاصله بین هر پینگ رو به ثانیه بزنید. مثلا ۵ یا ۱۰ خوبه. این یعنی هر ۵ ثانیه آدرس لوکال ایران چک میشه و اگر پینگش از عددی که تعیین کردید بالاتر بود، سرویس ریستارت میشه.
می تونید لاگ ها رو هم ببینید. گزینه ۷ و بعد گزینه ۳ برای مشاهده ی لاگ هست.
فعلا در همین حد میشه به این دوستان که قطعی دوره ای دارند کمک کرد. نصب XanMod Kernel رو هم قبلا توصیه کرده بودم. سوالی بود در گروه مطرح کنید.
#easymesh
👁@Gozar_Xray
❤30
✅ ترنسپورت جدید splithttp برای Xray Core
قراره در آینده یه ترنسپورت جدید به اسم splithttp به Xray Core اضافه بشه. به واسطه این ترنسپورت جدید میشه از همه CDN ها حتی اون هایی که وب سوکت ندارند هم برای پروکسی استفاده کرد. البته ایده ش از قبل بوده ولی این بار بهتر و کاردبردی تر پیاده سازی شده. در حالت عادی CDN ها درخواست های HTTP رو کش میکنند و مجبور بودیم برای یک ارتباط real-time از وب سوکت استفاد کنیم. در ترنسپورت splithttp با تکه تکه کردن درخواست های http جلوی بافرینگ CDN گرفته میشه و درخواست به سرور مقصد انتقال پیدا میکنه.
این ترنسپورت جدید کمک میکنه که نه تنها کلادفلر بلکه بقیه CDN ها رو هم بتونیم به راحتی استفاده کنیم.
اطلاعات بیشتر در گیت هاب
#splithttp #xray
👁@Gozar_Xray
قراره در آینده یه ترنسپورت جدید به اسم splithttp به Xray Core اضافه بشه. به واسطه این ترنسپورت جدید میشه از همه CDN ها حتی اون هایی که وب سوکت ندارند هم برای پروکسی استفاده کرد. البته ایده ش از قبل بوده ولی این بار بهتر و کاردبردی تر پیاده سازی شده. در حالت عادی CDN ها درخواست های HTTP رو کش میکنند و مجبور بودیم برای یک ارتباط real-time از وب سوکت استفاد کنیم. در ترنسپورت splithttp با تکه تکه کردن درخواست های http جلوی بافرینگ CDN گرفته میشه و درخواست به سرور مقصد انتقال پیدا میکنه.
این ترنسپورت جدید کمک میکنه که نه تنها کلادفلر بلکه بقیه CDN ها رو هم بتونیم به راحتی استفاده کنیم.
اطلاعات بیشتر در گیت هاب
#splithttp #xray
👁@Gozar_Xray
❤74
با منتشر شدن Xray Core 1.8.15 برای iOS برنامه Streisand اولین آپدیت رو داد و از الان ترنسپورت SplitHTTP قابل استفاده است.
❌ از نظر Performance انتظار میره از وبسوکت پایین تر باشه ولی cdn های زیادی رو میشه استفاده کرد.
⁉️ چرا وبسوکت کمتر در cdn ها پشتیبانی میشه؟ چون منابع و پردازش بیشتری نیاز داره.
⁉️ چرا ترنسپورت جدید پرفورمنس کمتری داره؟ چون دیتا رو به صورت بستههای کوچکتر میفرسته. ممکنه در آینده بهینهسازی های بیشتری روش انجام شه.
⁉️ پنل های ایرانی x-ui هم برای هسته جدید آپدیت دادند.
✅ نتایج تستش رو در اسرع وقت میذارم.
#splithttp #xray
👁 @Gozar_Xray
❌ از نظر Performance انتظار میره از وبسوکت پایین تر باشه ولی cdn های زیادی رو میشه استفاده کرد.
⁉️ چرا وبسوکت کمتر در cdn ها پشتیبانی میشه؟ چون منابع و پردازش بیشتری نیاز داره.
⁉️ چرا ترنسپورت جدید پرفورمنس کمتری داره؟ چون دیتا رو به صورت بستههای کوچکتر میفرسته. ممکنه در آینده بهینهسازی های بیشتری روش انجام شه.
⁉️ پنل های ایرانی x-ui هم برای هسته جدید آپدیت دادند.
✅ نتایج تستش رو در اسرع وقت میذارم.
#splithttp #xray
👁 @Gozar_Xray
❤38
✅ SplitHTTP SpeedTest
اگر بخوام مختصر و مفید بگم، دانلود در حد وبسوکت و قابل قبول هست ولی آپلود بسیار ضعیف تره. نتایج تست آپلود روی وب سوکت خیلی بهتره و این انتظار هم میرفت. نکاتی که باید در نظر داشت اول CDN کلادفلر هست. شاید تست روی CDN دیگه نتایج بهتری بده. دوم IP تمیز کلادفلر ممکنه آپلود رو بهتر کنه. سوم اینکه امکان بهبود ترنسپورت در آینده وجود داره. اگر تونستم نتایج بهتری به دست بیارم Share میکنم.
❌ متاسفانه آپلود خیلی نوسان (fluctuation) داره، در حال حاضر همین آپلود کم رو هم نمیتونم بگیرم در صورتی که با تنظیمات یکسان وب سوکت Ok هست.
✅ دوستانی که دامنه ندارند میتونند از CDN هایی مثل Fastly با دامنه Fake استفاده کنند. این CDN برای استفاده نیاز به ست کردن Nameserver نداره. 😐
#splithttp #xray
👁@Gozar_Xray
اگر بخوام مختصر و مفید بگم، دانلود در حد وبسوکت و قابل قبول هست ولی آپلود بسیار ضعیف تره. نتایج تست آپلود روی وب سوکت خیلی بهتره و این انتظار هم میرفت. نکاتی که باید در نظر داشت اول CDN کلادفلر هست. شاید تست روی CDN دیگه نتایج بهتری بده. دوم IP تمیز کلادفلر ممکنه آپلود رو بهتر کنه. سوم اینکه امکان بهبود ترنسپورت در آینده وجود داره. اگر تونستم نتایج بهتری به دست بیارم Share میکنم.
❌ متاسفانه آپلود خیلی نوسان (fluctuation) داره، در حال حاضر همین آپلود کم رو هم نمیتونم بگیرم در صورتی که با تنظیمات یکسان وب سوکت Ok هست.
✅ دوستانی که دامنه ندارند میتونند از CDN هایی مثل Fastly با دامنه Fake استفاده کنند. این CDN برای استفاده نیاز به ست کردن Nameserver نداره. 😐
#splithttp #xray
👁@Gozar_Xray
❤32
✅ آموزش راه اندازی مش نتورک با VPNCloud
- سرعت فوق العاده بالا
- امنیت عالی
- مناسب برای تانلینگ
- امکان تانل سرور فیلتر شده
- بستر UDP
🎥 لینک آموزش در یوتیوب
🌐 لینک گروه
#vpncloud
👁@Gozar_Xray
- سرعت فوق العاده بالا
- امنیت عالی
- مناسب برای تانلینگ
- امکان تانل سرور فیلتر شده
- بستر UDP
🎥 لینک آموزش در یوتیوب
🌐 لینک گروه
#vpncloud
👁@Gozar_Xray
YouTube
VPN-Cloud | Mesh Network
Telegram Channel: t.me/Gozar_Xray | My Github Page: github.com/Musixal
آموزش راه اندازی مش نتورک با
VPN-Cloud
آموزش راه اندازی مش نتورک با
VPN-Cloud
❤31
🌐 از طریق سایتی که در ادامه معرفی میکنم، می تونید با دادن IP مورد نظرتون اطلاعات مربوط به سرور و هم چنین Connectivity و آپ لینک ها رو دریافت کنید.
🌀 برای دیدن نقشه بالا بعد از وارد کردن IP به سربرگ Connectivity برید.
🌀 با سرچ ASN در گوگل مثلا AS206065 هم میتونید اطلاعات بیشتری کسب کنید.
❌ مثلا دیتاسنتر میزبان آپ لینک از آسیاتک گرفته که بیشتر از بقیه اکسس میکنه.
آدرس سایت bgp.tools
👁@Gozar_Xray
🌀 برای دیدن نقشه بالا بعد از وارد کردن IP به سربرگ Connectivity برید.
🌀 با سرچ ASN در گوگل مثلا AS206065 هم میتونید اطلاعات بیشتری کسب کنید.
❌ مثلا دیتاسنتر میزبان آپ لینک از آسیاتک گرفته که بیشتر از بقیه اکسس میکنه.
آدرس سایت bgp.tools
👁@Gozar_Xray
❤30 1
✅ آموزش تانلینگ با Waterwall و پروتکل Bgp4
خیلی سریع و خلاصه این روش رو توضیح دادم. فرضم بر این بوده که مقدمات رو می دونید. اگر سوالی داشتید توی گروه بپرسید و doc رو هم مطالعه کنید.
این تانل خیلی سبک و پرسرعت هست. مصرف پردازنده و ram هم بهینه و عالی هست.
🎥 لینک آموزش در یوتیوب
👾 لینک کانفیگ های مربوط به تانل
👾 لینک فایل core.json
👾 لینک هسته waterwall
برای این که هسته رو در پس زمینه اجرا کنید میتونید سرویس بسازید یا از nohup به این شکل استفاده کنید:
#waterwall
👁@Gozar_Xray
خیلی سریع و خلاصه این روش رو توضیح دادم. فرضم بر این بوده که مقدمات رو می دونید. اگر سوالی داشتید توی گروه بپرسید و doc رو هم مطالعه کنید.
این تانل خیلی سبک و پرسرعت هست. مصرف پردازنده و ram هم بهینه و عالی هست.
🎥 لینک آموزش در یوتیوب
👾 لینک کانفیگ های مربوط به تانل
👾 لینک فایل core.json
👾 لینک هسته waterwall
برای این که هسته رو در پس زمینه اجرا کنید میتونید سرویس بسازید یا از nohup به این شکل استفاده کنید:
nohup ./Waterwall &
#waterwall
👁@Gozar_Xray
❤43
سلام
دوستان سوالات طرح شده در issues رتهول رو جواب دادم. فکر میکنم دیگه همه این تانل رو آموزش دادن! مجددا میگم برای کانکشن بالا روش ریورس خوب نیست. باید برید سمت روش هایی که ماژول کرنل دارند مثل همین تانل های لوکال که وجود داره: GRE, IPIP, SIT و ... . تانل هایی که در userspace کار میکنند مصرف پردازنده بالاتر و پهناباند کمتری بهتون میده.
در قسمت کرون جاب هر نیم ساعت اضافه کردم، برای اون هایی که قطعی مکرر دارند.
#rathole
👁@Gozar_Xray
دوستان سوالات طرح شده در issues رتهول رو جواب دادم. فکر میکنم دیگه همه این تانل رو آموزش دادن! مجددا میگم برای کانکشن بالا روش ریورس خوب نیست. باید برید سمت روش هایی که ماژول کرنل دارند مثل همین تانل های لوکال که وجود داره: GRE, IPIP, SIT و ... . تانل هایی که در userspace کار میکنند مصرف پردازنده بالاتر و پهناباند کمتری بهتون میده.
در قسمت کرون جاب هر نیم ساعت اضافه کردم، برای اون هایی که قطعی مکرر دارند.
#rathole
👁@Gozar_Xray
❤32
✅ آموزش تانلینگ با Waterwall به صورت Half-Duplex
قابلیت Half-Duplex به این معنی است که ما هر کانکشن رو به ۲ کانکشن تبدیل کنیم. یکی برای ارسال فقط استفاده بشه و یکی دیگه برای دریافت. انجام این عمل باعث میشه که دست فایروال کاملا برای تحلیل ترافیک بسته بشه چون دیتا روی هر کانکشن به صورت یک طرفه است و همین احتمال فیلترینگ رو کاهش میده.
🎥 لینک آموزش در یوتیوب
👾 لینک پروژه در گیت هاب
#waterwall
👁@Gozar_Xray
قابلیت Half-Duplex به این معنی است که ما هر کانکشن رو به ۲ کانکشن تبدیل کنیم. یکی برای ارسال فقط استفاده بشه و یکی دیگه برای دریافت. انجام این عمل باعث میشه که دست فایروال کاملا برای تحلیل ترافیک بسته بشه چون دیتا روی هر کانکشن به صورت یک طرفه است و همین احتمال فیلترینگ رو کاهش میده.
🎥 لینک آموزش در یوتیوب
👾 لینک پروژه در گیت هاب
#waterwall
👁@Gozar_Xray
❤46
✅ از این بعد در اسکریپت Rathole برای راحتی کار میتونید از طریق گزینه ۹ بهینه سازی های مهم مربوط به Network و System Limits رو انجام بدید.
🟢 فعلا فقط برای Ubuntu اضافه شده. اگه OS دیگه مدنظرتون هست تو گروه بگید.
🟢 از اسکریپت Hawshemi استفاده کردم و از سازندهش تشکر میکنم.
لینک گیت هاب اسکریپت Hawshemi
#rathole
👁@Gozar_Xray
🟢 فعلا فقط برای Ubuntu اضافه شده. اگه OS دیگه مدنظرتون هست تو گروه بگید.
🟢 از اسکریپت Hawshemi استفاده کردم و از سازندهش تشکر میکنم.
لینک گیت هاب اسکریپت Hawshemi
#rathole
👁@Gozar_Xray
❤31