ttl چیست و بررسی کامل کارکرد آن
مکانیزم TTL برای دادههای روی شبکه طول عمر در نظر میگیرد تا فضایی مثل اینترنت که بزرگترین شبکه جهانی است، مملو از درخواستهای قدیمی نباشد و مدام با آخرین و بهروزترین اطلاعات ممکن به درخواست کاربران پاسخ دهد. در واقع ttl تاریخ انقضای اطلاعاتی است که روی شبکه ارسال میشوند و با محدودکردن طول عمر پیامها از گردش نامحدود آنها در شبکه جلوگیری میکند. نهایتا زمانی که ttl دادهها به صفر برسد، داده موردنظر حذف و از شبکه بیرون انداخته خواهد شد. در این مقاله مفصل درباره این مفهوم صحبت میکنیم. میبینیم ttl چیست و کارکرد آن در شبکه به چه صورت است. همراه ما باشید.
ttl چیست؟
ttl مخفف «Time to live» به معنای « مدتزمان زنده ماندن» یا «اعتبار داشتن» است و برای معرفی طول عمر دادهها روی شبکه استفاده میشود. به محض آنکه ttl معینشده سپری میشود، تمام دادهها دور ریخته میشوند تا از گردش نامحدود بستههای داده روی شبکه جلوگیری شود. این حداکثر زمانی است که بسته میتواند روی شبکه باقی بماند، قبل از آنکه توسط روتر دور ریخته شود.
نحوه کارکرد ttl به چه صورت است؟
اکنون بیایید ببینیم نحوه عملکرد ttl چیست. همانطور که گفتیم عدد ttl تعیین میکند یک بسته داده قبل از آنکه توسط روتر دور ریخته شود، چقدر زمان دارد. با این حال، نحوه عملکرد آن کمی پیچیدهتر از چیزی است که تصور ميکنید.
زمانی که بهعنوان فرستنده یک عدد ttl به بستههای داده اختصاص میدهید، بسته هر بار یک از روتری عبور میکند، یک عدد از این مقدار کم میکند و به مرحله بعد فرستاده میشود. حال اگر بسته داده از روترهای بیشتری عبور کند (تعداد دفعات ارسال زیاد شود) مقدار عددی آن به صفر میرسد. اگر این اتفاق بیفتد، اتصال برقرار نمیشود و روتر آن را دور میاندازد.
سپس یک پروتکل کنترل پیام اینترنت (ICMP) برای شما ارسال میشود که نوعی پیغام خطاست. برای مثال اگر عدد ttl معادل ۳۰۰ باشد، میتواند حداکثر 300 بار از روترهای مختلف عبور کند.
TTL در DNS چیست؟
سرورهای DNS به عنوان پلی بین سرورهای وب و نام دامنه عمل میکنند. وقتی نام یک دامنه را در مرورگر تایپ میکنید، سرورها نمیتوانند این اطلاعات را تفسیر کنند و دادهها را با اعدادی میخوانند که به آدرس IP معروف هستند. DNS تبدیل بین نام دامنه و آدرس IP را تسهیل میکند تا کاربران بتوانند به وبسایت دسترسی داشته باشند.
هر بار که کاربر می خواهد به وب سایت شما دسترسی پیدا کند، باید نام دامنه در حافظه کش (Cashe) به آدرس IP تبدیل شود. اما اگر این تبدیل در قالب یک رکورد DNS در حافظه کش بماند، دسترسی به سایت سریعتر اتفاق میافتد.
اینجا ttl تعیین میکند که سرور DNS این رکورد را چه مدت نگه دارد و بعد مجددا بهروز کند.
TTL در پینگ چیست؟
پینگ زمان واکنش اتصال شما است و مشخص میکند هر درخواستی که ارسال میکنید، چقدر طول میکشد تا بازگردد. معمولا برای اندازهگیری تاخیر شبکه، پینگ آن را اندازهگیری میکنند. گزارش تست پینگ میتواند حاوی ttl باشد و این ttl اطلاعات بیشتری در مورد مدت زمان تکمیل اتصال به شما بدهد.
در طول تست، پینگ نتایج پاسخ شبکه را به ازای چهار بسته مجزا اندازهگیری میکند که در نهایت مقدار زمان سپریشده و ttl را نشان میدهد.
مفهوم ttl روی HTTP چیست؟
مفهوم TTL در پروتکل انتقال ابرمتن (HTTP) همانی است که تا اینجای مقاله با آن آشنا شدیم. با این تفاوت که این بار به مدتزمانی اشاره میکند که محتوای وب ذخیرهشده در کش وبسایت بازیابی شود، پیش از آنکه سرور وب دوباره محتوا را بهروزرسانی کند. در این میان نقش ttl چیست؟ ttl در تنظیمات وبسرور یک مقدار پیش فرض به عنوان مدتزمان نگهداری محتوا تعیین میکند.
البته تگهای کنترل کش که نوع سرور را تعریف میکنند نیز میتوانند دادههایی که یک بار بارگیری شده را در خود نگه دارند. یا تگهای انقضا با نمایش تاریخ و زمان محتوا، نشان میدهند که محتوا قدیمی است و آن را در هدر httm باطل میکنند.
«ttl Exceeded» یعنی چه؟؟
این پیغام خطا نشان میدهد که بسته IP تعداد زیادی پرش روتر را پشتسر گذاشته است. همانطور که گفتیم زمانی که عدد ttl به صفر برسد، روتر بسته را رها کرده و با یک پیغام خطای ICMP به فرستنده اطلاع میدهد. این همان کد خطایی است که کاربر دریافت میکند.
یک نمونه کاربرد ttl در فضای اینترنت
ttl کاربردهای مختلفی دارد. اگر صاحب وبسایتی هستید، بیشک یکی از نگرانیهای اصلیتان سرعت بارگذاری سایت است. بارگذاری کند محتوای سایت همان و از دست دادن بازدیدکنندگان و مشتریان بالقوه همان. علاوه بر این، دیر باز شدن صفحات روی سئو سایت نیز تاثیر منفی میگذارد.
وبسایت شما شامل مجموعهای از صفحات، کدها، تصاویر و انواع دیگر محتواست که بارگذاری آنها زمان زیادی طول میکشد. اگر قرار باشد کل این محتوا برای هر کاربر مجددا بارگیری شود، سرعت سایت سقوط میکند. راه چاره چیست؟
مزیت استفاده از ttl طولانی
میتوان از یک TTL طولانیتر استفاده کرد تا اطلاعات ذخیرهشده مدت زمان طولانیتری باقی بمانند و بعد بهروز شوند. با این کار وبسایت به مراتب سریعتر بارگذاری میشود و فشار کمتری به سرور وارد میکند.
مزیت استفاده از ttl کوتاه
TTL های کوتاه نیز گاهی مفید واقع میشوند. برای مثال وبسایتهایی که هر لحظه بهروز میشوند، مثل سایتهای صرافی ارز و طلا میتوانند ttl های کوتاهتری استفاده کنند تا دادههای اضافی بیدلیل روی شبکه باقی نمانند. به علاوه ttl کوتاه از وبسایت در برابر حملات DDoS محافظت میکند.
برای مطالعه بیشتر مقاله حملات Dos و DDOS چیست را از دست ندهید.
چطور یک مقدار ttl انتخاب کنیم؟
انتخاب مقدار ttl با توجه به نیازهای هرکس کمی چالشانگیز است. البته دستورالعملهای کلی برای انتخاب آن وجود دارد که میتوان با پیروی از آنها به مقدار مناسبی رسید. در حالت کلی هرچه این عدد طولانیتر انتخاب شود، مزیت آن بیشتر است؛ البته نباید از فواید ttl کوتاه که قبلتر اشاره کردیم چشمپوشی کرد.
بیایید ببینیم بهترین توصیههای انتخاب ttl چیست:
- در مورد وبسایتها معمولا ttl بین ۱ تا ۲۴ ساعت توصیه میشود. البته به یاد داشته باشید که مقادیر این معیار به ثانیه اندازهگیری میشوند؛ بنابراین مقدار توصیهشده معادل ۳۶۰۰ تا ۸۶۴۰۰ خواهد بود. این مقدار TTL میتواند با کاهش زمان بارگذاری، تجربه کاربری بازدیدکنندگان را بهبود ببخشد و نرخ پرش را کمتر کند.
- اگر صاحب یک وبسایت رجیستری هستید، TTL را حدود یک ساعت (3600 ثانیه) انتخاب کنید. این سایتها دامنههای سطح بالایی هستند که ممکن است به «org.» یا «com.» ختم شوند.
- قبل از اعمال هرگونه تغییر عملیاتی در وبسایت، TTL را به حدود 300 ثانیه (پنج دقیقه) تغییر دهید. در غیر این صورت، ممکن است بهروزرسانیها به موقع اجرا نشوند.
- برای وبسایتهایی که در برابر حملات DDoS آسیب پذیر هستند، توصیه میشود ttl روی ۳۰۰ تنظیم شود.
- در نهایت برای تکنیک تعادل بار DNS، ttl ۳۳۰ ثانیهای پیشنهاد میشود. این مربوط به زمانی است که چندین سرور با آدرسهای IP مختلف ترافیک را به اشتراک میگذارند. با انجام این کار فشار روی سرور کاهش مییابد.
معادل ttl روی IPv6 چیست؟
IPv6 و IPv4 دو نوع IP مختلف هستند که بستههای داده را با یک سری قوانین (یا پروتکلها) هدایت میکنند. این IP ها همه اطلاعاتی که بسته داده برای رسیدن به مقصد نیاز دارد را در خود میگنجانند. هدرهای IP اطلاعات ابتدای یک بسته داده را در خود نگه میدارند و حاوی جزئیات آدرس IP مبدا و مقصد و سایر نکات مهم هستند. اما فرق این دو در زمینه ttl چیست؟
IPv4 ، IP اصلی است که از سال ۱۹۸۴ در دسترس است. این IP از یک آدرس ۳۲ بیتی شامل عدد و نقطه تشکیل میشود. اما IPv6 یک IP جدیدتر است که از قالب آدرس ۱۲۸ بیتی ترکیبی از حروف و اعداد استفاده میکند.
وقتی از سرآیند IPv4 استفاده میکنیم، فیلد مجزایی برای ttl وجود دارد؛ اما IPv6 مستقیما فیلد ttl ندارد. در عوض محلی برای انتخاب Hop Limit در نظر گرفته شده که مشابه TTL عمل میکند.
TTL و مراقبت در برابر حملات DDoS
شاید خواندن این تیتر متعجبتان کند که مفهوم ttl چه ارتباطی به حملات DDoS در DNS دارد. حقیقت ماجرا این است که حالا که صفحات وب کل دنیا را فرا گرفتهاند، TTL راهی برای متوقفسازی درخواستهای نام وبسایت است که بیوقفه روی شبکههای سرور پرش میکنند. اجازهدادن به کوئریهای نامتناهی شبیه زدن کلید «روشن» یک دستگاه برقی و بعد خاموش نکردن آن است. این کوئریها که اصطلاحا لوپ یا حلقه نامیده میشوند، سرور را مشغول نگه میدارند، باعث اورلود (overload) سیستم میشوند و آن را در برابر هک اطلاعات آسیبپذیر میکنند.
اینجاست که ttl وارد عمل میشود و جلوی این اتفاق را میگیرد. به این صورت که با تعیین مدت زمان مجاز درخواست و ارسال مجدد آن یا پرشهای مجاز درخواست سرور DNS، از زمان کاری شبکه محافظت میکنند. حملات پرس و جوی DNS که به عنوان انکار سرویس توزیع شده (DDoS) شناخته میشوند، سرور را مشغول درخواست نام وبسایت نگه میدارند.
تاثیر TTL بر شبکه تولید محتوا CDN چیست؟
شبکه تولید محتوا (Content Delivery Network یا CDN) برای آزادسازی نودهای شلوغ و اطمینان از تحویل محتوا معرفی شد. این فناوری ۲ نوآوری بزرگ ارائه میکند.
- اول اینکه کل وبسایت روی سرورهای جهانی Anycast ذخیره میشود. این یعنی هر زمان کاربری درخواست وبسایت را ارسال کند، عملا فقط محتوای بهروزشده رفرش میکند و اینجاست که از TTL برای بهروزرسانی نسخههای وبسایت استفاده میشود. CDN به دنبال بهروزترین نسخه وبسایت میگردد؛ چون محتوا در چند موقعیت جغرافیایی ذخیره میشود و این امر از تراکم گرههای بین المللی جلوگیری میکند.
- نوآوری دوم زمانی رخ داد که مخترعان CDN به این فکر افتادند که هر بار فقط بیتهای جدید محتوا را روی نسخههای وبسایت سرورها تحویل دهند. به جای آنکه از ابتدا همهچیز را دوباره بسازند. اینطوری گرههای شلوغ کمتر گذرگاه را مسدود میکنند، بستههای کوچک به راحتی از آن عبور کرده و بازدیدکنندگان کل محتوای وبسایت را خیلی زود دریافت میکنند.
تنظیمات TTL برای این بستههای کوچک (یا بهروزرسانی محتوا) بخشی از فرایند کش کردن محتواست. دیگر نیاز نیست کل نرم افزارها، تصاویر، متنها، ویدئوها و سایر چیزهایی که روی وبسایت قرار میدهید را روی تمام سرورها بهطور ثابت ذخیره نگه دارید. با قابلیت حافظه پنهان در زمان تحویل بستههای داده صرفهجویی میکنید و وبسایت شما به کاربران نزدیکتر خواهد بود.
استفاده از TTL در پایگاه داده
از مفهوم TTL در پایگاه داده برای منقضی شدن خودکار رکوردهای پایگاه داده استفاده میشود. چیزی شبیه تنظیم یک تاریخ انقضا که اجازه نمیدهد دادههای غیرضروری بیش از حد در دیتابیس باقی بمانند. بعد از این تاریخ دادهها دیگر قابل بازیابی نیستند و در آمارهای پایگاه داده نمایش داده نمیشوند.
چرا پایگاه داده به TTL نیاز دارد؟
اسناد ذخیره شده در پایگاه داده به طور پیش فرض فعال باقی میمانند؛ مگر اینکه عملیات حذف به صراحت آنها را حذف کند. این رفتار برای اکثر سناریوها خوب عمل میکند؛ اما حذف دستی دادهها همیشه مطلوب نیست و معمولا مدیران پایگاه داده ترجیح میدهند دادههای قدیمی بهطور خودکار دور ریخته شوند و فقط اسناد جدید باقی بمانند.
TTL روی دیتابیس چطور به کار برده میشود؟
TTL یک مکانیسم و مقدار در بسته پروتکل اینترنت (IP) است که به روتر دستور می دهد زمانی که بستهای بیش از حد در پایگاه داده باقی ماند، آن را دور بریزد. به عبارتی همان بازهای که یک رکورد فرصت دارد روی دیتابیس بماند. اما این طول عمر چطور مشخص میشود؟ به وسیله ایندکس TTL که اطلاعات تاریخ و زمان استاندارد هر سند را مشخص میکند. به این ترتیب با گذشت زمان از این تاریخ، سند موردنظر منقضی در نظر گرفته و حذف میشود.
البته ممکن است ttl روی دیتابیس در قالب جدول هم پیادهسازی شود که چرخه عمر داده را بهطور خودکار مدیریت کند. در این حالت هم دادهها بهمحض پایان عمر خود بهطور خودکار منقضی میشوند و در مصرف منابع صرفهجویی میشود.
کدام دیتابیسها از ttl پشتیبانی میکنند؟
Scylla، Cassandra، DynamoDB، MySQL، Oracle، PostgreSQL و SQL Serve همه پلتفرمهای مهمی هستند که خوشبختانه با پشتیبانی از TTL، قابلیت حذف خودکار دادههای منقضی شده را بر اساس مقدار TTL فراهم میکنند. TTL اغلب در حافظه پنهان و سیستمهای ذخیره سازی مانند RocksDB، Redis و MyRocks نیز مستقر میشود.
TTL در الکترونیک چیست؟
در بحث الکترونیک TTL (منطق ترانزیستور-ترانزیستور یا transistor–transistor logic) یکی از کلاسهای مدار منطقی دیجیتال است که هم عمل منطقی و هم عمل تقویتکردن توسط ترانزیستورهای دوقطبی پیوندی و مقاومتها انجام میشود. اینجا ترانزیستورها با مقاومتهای الکتریکی به هم وصل میشوند و برای تایمین سرعت و محافظت در برابر نویز، کاربرد دارد. همانطور که میبینید صرفا یک تشابه اسمی است و منطق ترانزیستور – ترانزیستور که به اختصار TTL هم نامیده میشود، ربطی به مفهوم TTL در شبکه ندارد.
مطالعه مقاله همه پروتکل های شبکه از دست ندهید.
کلام آخر
در این مقاله آموختیم ttl چیست و چه کمکی به شبکه میکند.
اکنون میدانیم ttl در قالب یک مقدار عددی روی تمام بستههای پروتکل اینترنت تنظیم میشود تا عمر نگهداری بسته در شبکه را کنترل کند. با تنظیم همین فاکتور ساده میتوان مدتزمانی که سرور اطلاعات اضافه را نگه میدارد، محدود کرد. دست مدیر شبکه برای انتخاب عدد ttl کاملا باز است و میتواند برحسب نیاز شبکه مثل کاهش زمان بارگذاری صفحه، بهروز نگه داشتن دادهها یا جلوگیری از حملات DDoS، آن را طولانی یا کوتاه انتخاب کند.
در پایان اگر این مطلب برای شما مفید بود یا اطلاعات بیشتری درباره این مفهوم شبکه دارید، منتظر شنیدن نظرات شما عزیزان در بخش دیدگاهها هستیم.
دیدگاهتان را بنویسید