دسترسی به دادههای سایتهای مختلف یکی از دغدغههای مدیران سرور و کاربران محسوب میشود؛ زیرا در صورتی که دادههای یک سایت زمان بیشتری برای بارگذاری نیاز داشته باشند، افرادی که به آنها نیاز دارند وبسایت را ترک میکنند. در نتیجه وبسایتها به خاطر این تاخیر کاربرانشان را به مرور از دست میدهند. برای اینکه کاربران بتوانند به دادههای وبسایتها در کمترین زمان دسترسی داشته باشند، لازم است که درباره TTL یا Time-to-Live که به معنی زمان حیات است اطلاعات به دست بیاورید. در این مطلب ماهان شبکهایرانیان درباره TTL هر آنچه باید بدانید نکات لازم را ارائه کردهایم. در صورتی که برای خرید سرور اچ پی و دریافت اطلاعات بیشتر نیاز به راهنمایی دارید میتوانید با تیم متخصص ماهان شبکه ایرانیان در ارتباط باشید.
TTL (زمان برای حیات) چیست؟
Time-to-live به معنی طول عمر بسته در شبکه است. TTL به عنوان یک شمارنده یا مهر زمانی تعبیه شده در هر بسته تنظیم میشود و با کمک آن، بازه زمانی از پیش تعریف شده برای طول عمر بستهها در شبکه اعتبارسنجی خواهد شد. در نتیجه بستههای داده به طور نامحدود در شبکه نمیچرخد. در برنامههای کاربردی، TTL ذخیره دادهها را مدیریت کرده و عملکرد سیستم را افزایش میدهد. همچنین زمان حیات در زمینههای دیگر مانند کش شبکه، تحویل محتوا و ذخیره سیستم نام دامنه (DNS) نیز کاربرد دارد.
زمان برای حیات (TTL) چگونه کار میکند؟
سیستم عاملهای مختلف تنظیمات پیشفرض خودشان را دارند. با این وجود، اغلب مدیران سایت میتوانند TTL را روی مقداری بین 1 تا 255 تنظیم کنند. وقتی که یک بسته توسط یک روتر دیده میشود، روتر 1 را از تعداد TTL آن کم میکند. سپس بسته به مقصد بعدی در شبکه حرکت میکند. زمانی که تعداد TTL به صفر رسید، بسته توسط روتر حذف میشود.
عملکرد این روش به صورت کلی به این شکل است:
- دستگاه مبدأ بستهای با مقدار TTL 255 تولید میکند.
- بسته از دستگاه مبدا (Host A) به سمت دستگاه مقصد (Host B) ارسال میشود.
- روتر 1 بسته را دریافت میکند و مقدار TTL را به 254 کاهش میدهد.
- روتر 2 بسته را دریافت میکند و مقدار TTL را به 253 کاهش میدهد.
- بسته به مسیریاب 3 ادامه میدهد که مقدار TTL را به 252 کاهش میدهد.
- در نهایت بسته به دستگاه مقصد میرسد و استفاده میشود.
عناصر کلیدی و مهم در TTL
عناصر کلیدی در نحوه عملکرد TTL که باید آنها را بشناسید عبارتاند از:
بسته IP در شبکه
بسته IP واحدی از داده بوده و فیلد TTL یک فیلد 8 بیتی در هدر IP است. این فیلد، تعداد پرشهایی را که بسته IP میتواند قبل از دور انداختن طی کند را مشخص میکند و برای جلوگیری از چرخش مداوم و بیهوده بستههای IP به طور نامحدود در شبکه استفاده میشود.
روتر
روتر یک تجهیز شبکهای است که وظیفه انتقال بستهها از یک شبکه به شبکه دیگر را بر عهده دارد. روترها برای تعیین مسیر مسیریابی مناسب برای بستهها به TTL متکی هستند.
مقدار Time To Live دستگاه مبدا
یک مقدار TTL اولیه را هنگام ایجاد یک بسته تنظیم خواهد کرد. این مقدار تعداد پرشهایی را که بسته میتواند طی کند را مشخص خواهد کرد. به طور معمول، TTL در ثانیه اندازهگیری میشود و مقدار پیشفرض TTL برای بستههای IP 64 ثانیه است.
در یک فیلد 8 بیتی، مقدار TTL میتواند از 0 تا 255 باشد. برای رکوردهای DNS، مقدار TTL آن 3600 ثانیه (یک ساعت) است. مقدار TTL بسته به نوع محتوا و ارائه دهنده CDN نیز میتواند مقدار متفاوتی بین 30 ثانیه تا 86400 ثانیه (24 ساعت) داشته باشد. با این وجود، مقدار TTL معمولی برای کش CDN 300 ثانیه (پنج دقیقه) است.
تعداد هاب
هر بار که بسته از طریق روتر عبور میکند، مقدار TTL یک واحد کاهش پیدا میکند. این فرآیند به عنوان شمارش هاب شناخته میشود. تعداد پرش نشان دهنده تعداد روترهایی است که بسته تاکنون از آنها عبور کرده، از گردش بستهها به طور نامحدود در یک شبکه پیشگیری میکند.
شبکه
شبکه مجموعهای از دستگاههایی است که به یکدیگر متصل شدهاند و کاربران برای دسترسی به دادهها و اطلاعات مد نظرشان به آن متصل میشود.
TTL در پینگ یا ping
دستورات شبکه استاندارد از ابزارهایی مانند traceroute و ping از TTL برای ردیابی مسیر یک میزبان استفاده میکنند. Ping برای تعیین اینکه آیا میزبان هنوز در شبکه است در نظر گرفته میشود و قبل از از traceroute از آن استفاده خواهد شد. Traceroute همان گزینهای است که مسیر را در هر پرش از طریق اینترنت بین یک کامپیوتر و یک مقصد مشخص ثبت میکند.
در طول مسیر و در هر مرحله، یکی از بستهها ه شامل یک مقدار TTL است به آخرین توقفگاه میرسد. در این موقعیت، پس از دور انداختن و حذف بسته، پیام ICMP برای فرستنده ارسال میشود. وقتی که مقدار محدودیت زمانی برای اولین پرش مشخص شد، traceroute محدودیت مقدار زمانی را افزایش میدهد و بسته را دوباره به مقصد دوم ارسال میکند و این کار ادامه دارد. در پرش نهایی، رکوردهای ردیاب هاب در پرش نمایش داده میشوند.
Time To Live در DNS
اصطلاح time-to-live میتواند برای توصیف زمانی که یک رکورد DNS از حافظه پنهان بازگردانده میشود نیز کاربرد دارد. در این شرایط، TTL یک مقدار عددی است که در یک رکورد DNS روی سرور نام دامنه معتبر برای دامنه تنظیم شده. این حالت، تعداد ثانیههایی را که یک سرور کش میتواند مقدار ذخیره شده را برای رکورد ارائه دهد تعیین میکند؛ بنابراین، وقتی که تعداد ثانیههای تعیین شده از آخرین به روزرسانی گذشته باشد، سرور کش دوباره به سرور معتبر دسترسی پیدا میکند و مقدار فعلی را برای رکورد دریافت خواهد کرد.
به عنوان مثال، کارکنان یک سازمان ممکن است در تمام روز، هر روز توضیحات محصول، تصاویر و ویدیوها و… را در وبسایت آپلود کنند. اگر TTL روی 3600 ثانیه باقی بماند، کاربران آنلاین باید حداقل یک ساعت منتظر بمانند تا آخرین محصولات موجود را ببینند. با این حال، اگر این سازمان زمان TTL خود را کاهش دهند، مشتریان وبسایت در زمان کمتری میتوانند امکانات سایت را استفاده کنند.
TTL در پایگاه داده
از TTL در پایگاه داده برای منقضی شدن خودکار رکوردهای پایگاه داده استفاده میشود. این موضوع درست شبیه تنظیم یک تاریخ انقضا است که اجازه نمیدهد دادههای غیرضروری در دیتابیس باقی بمانند؛ یعنی بعد از تاریخ تنظیم شده، دادهها دیگر قابل بازیابی نیستند و در گزارشهای پایگاه داده نمایش داده نمیشوند.
در این شرایط، اسناد ذخیره شده در پایگاه داده به طور پیشفرض فعال باقی میمانند؛ یا اینکه از طریق عملیات حذف دادهها را حذف کنند؛ اما حذف دستی دادهها همیشه ممکن نیست و معمولاً مدیران پایگاه داده ترجیح میدهند دادههای قدیمی حذف شده و فقط اسناد جدید جهت استفاده باقی بمانند.
Scylla، Cassandra، DynamoDB، MySQL، Oracle، PostgreSQL و SQL Server از TTL پشتیبانی میکنند و قابلیت حذف خودکار دادههای منقضی شده را بر اساس مقدار TTL دارند. TTL اغلب در حافظه پنهان و سیستمهای ذخیرهسازی مانند RocksDB، Redis و MyRocks هم مستقر میشود.
Time To Live در HTTP
TTL در پروتکل انتقال ابرمتن یا HTTP تعداد ثانیههایی را که طول میکشد تا محتوای وب ذخیرهشده در حافظه پنهان فراخوانی شود، قبل از اینکه سرور وب مجبور شود دادهها را جهت به روز و جدید بودن محتوای آنها دوباره بررسی کند. در این شرایط، زمان حیات تنظیمات روی وب سرور یک مقدار پیشفرض را تعیین میکرده و برچسبهای کنترل حافظه پنهان، که انواع سرورها را تعریف کرده و دادهها را ذخیره میکند. سپس تگها و دادههای منقضی شده لغو میشوند، تا دادههای جدید به جای آنها نمایش داده شوند.
مزایای TTL چیست؟
TTL مزایای متعددی دارد از جمله آنها میتوان به موارد زیر اشاره کرد.
- افزایش انعطافپذیری مدیریت محتوا
- تحویل سریعتر محتوا در شبکههای تحویل محتوا یا CDN و متعادل کردن بار دادههای سرور
- کاهش خطر دسترسی غیرمجاز یا نقض دادهها و افزایش امنیت و یکپارچگی دادهها و اطلاعات
- افزایش بهرهوری شبکه و مدیریت کارآمد منابع
معایب TTL چیست؟
TTL دارای برخی از معایب بالقوهای نیز هست که از جمله آنها میتوان به موارد زیر اشاره کرد.
- ناهماهنگیهای احتمالی در نمایش اطلاعات قدیمی و جدید
- افزایش خطرات امنیتی به دلیل تاخیر TTL
- اشتباهات رایج در پیکربندی TTL
- نکات کاربردی تکمیلی برای پیکربندی TTL
موارد مهمی که برای پیکربندی TTL لازم است مد نظر داشته باشید عبارتاند از:
- برای رکوردهایی که مرتباً تغییر میکنند از TTL کوتاهتر استفاده کنید، تا کاربران جدیدترین اطلاعات را ببینند.
- برای رکوردهایی که به ندرت تغییر میکنند از TTL طولانیتر استفاده کنید، تا فرکانس درخواستها به سرور مبدا کاهش پیدا کرده و کارایی وبسایت بهتر شود.
- از یک TTL متفاوت برای انواع مختلف محتوا و از TTL طولانیتر برای صفحات وب استفاده کنید.
سخن پایانی
زمان حیات اصطلاحی است که برای باقی ماندن بستهها در یک شبکه استفاده میشود. اگر میخواهید کاربرانتان همیشه به دادههای جدید و به روز وبسایتتان دسترسی داشته باشند و وبسایتتان سرعت بالایی داشته باشد، لازم است که پیکربندی TTL را یاد بگیرید و شبکه خودتان را به نحوی پیکربندی کنید که همیشه دادههای جدید در دسترس کاربران باشد.
با این روش میتوانید مدیریت اطلاعات پایگاه داده را نیز به بهترین نحو انجام دهید و همیشه وبسایتتان را به روز نگه دارید. در نتیجه دادههای قدیمی به آنها نیاز ندارید را میتوانید به راحتی حذف کنید و همیشه اطلاعات به روز را به کاربرانتان ارائه دهید. در صورتی که نیاز به دریافت اطلاعات بیشتر در زمینه خرید تجهیزات سرور یا نحوه تنظیم اطلاعات و پیکربندی سرورها دارید میتوانید با تیم ماهان شبکه ایرانیان در ارتباط باشید.