راه حل مربوط به time-out در کرنل 2.6.17 و بالاتر

به دلیل به وجود آمدن یک تغییر جدید در تنظیمات اندازهبندی پنجره TCP در کرنل 2.6.17 و بالاتر لینوکس، این احتمال وجود دارد که در اتصال به وب سایتهای خاص با مشکلاتی مواجه شوید. در این مقاله کوتاه من راهبردی را برای مشکل time-out به شما ارائه خواهم داد اما ابتدا اجازه دهید اندکی در مورد این مشکل توضیح دهم.
یک پکت نوعی TCP دارای یک فیلد پنجره است که حداکثر اندازه پنجره برابر با 64 کیلوبایت را امکانپذیر میسازد. این میزان هنگامی که اینترنت نوپا بود کفایت میکرد و اغلب سیستمها توان اداره چیز بزرگتری را نداشتند، اما این اندازه برای برنامههای خاص باند پهن امروزی کاملا کم است.
در نتیجه، یک راهکار به نام window scaling (اندازهبندی پنجره) در سال 1992 تدوین گردید؛ این یک گزینه TCP اضافی را فراهم میکند که حاوی یک فاکتور اندازه هشت بیتی میباشد. مقدار این فیلد مشخص میکند که اندازه پنجره باید چه میزان بزرگتر باشد، این کار با شیفت دادن مقدار اندازه پنجرهها به تعداد معینی از بیتها صورت میپذیرد. برای نمونه، اگر فاکتور اندازه 5 باشد، اندازه پنجره به میزان 5 بیت شیفت داده میشود یا در 32 ضرب میشود.
مسئله این است که در 2.6.16 و قبل از آن، فاکتور اندازه پیشفرض صفر بود، از این رو هیچ افزایشی در اندازه پنجره TCP وجود نداشت. در کرنل 2.6.17، این به مقدار 7 تغییر داده شد. در یک دنیای ایدهآل، این مشکلی محسوب نمیشود. در عمل، اما، برخی روترهای شکسته شده گزینه TCP اندازه پنجره را بازنویسی میکنند تبدیل فاکتور اندازه به صفر اما باقی گذاشتن گزینه فعال کننده واقعی.
اساسا، همه این حرفها بدان معنی است که وب سایتهایی وجود دارد که نمیتوان از یک سیستم با استفاده از کرنل 2.6.17 و بالاتر به آنها متصل شد. عقیده توسعه دهندگان کرنل این است که روترهای مذکور شکسته شدهاند و باید جایگزین گردند. در دنیای واقعی، ممکن است این روترها قبل از اصلاح یا جایگزینی سالها کار کنند.
یک راهکار، reset کردن گزینه اندازهبندی پنجره کرنل لینوکس است. این کار باعث اصلاح روترهای شکسته شده نمیشود، اما این امکان را برای سیستم شما فراهم میسازد که اگر احساس کردید با مشکل اندازهبندی پنجره روبرو هستید به یک سایت دور متصل شود. اگر شما اطمینان دارید که این مشکلی است که با آن مواجه هستید، میتوانید آن را با اجرای این دستور تست نمایید: