میزبان کلود
CDN ابری

Time to Live یا TTL‌در شبکه

میزبان کلود میزبان کلود
1098 بازدید 0 دیدگاه 31 اردیبهشت 1402 زمان مطالعه: 25 دقیقه
/storage/post-covers/1683116019_2023-05-03_18.png
Time to Live یا TTL‌در شبکه

TTL یا Time to Live یک مقدار است که به مدت زمان فعال بودن یک بسته یا یک داده، بر روی یک کامپیوتر یا شبکه اشاره دارد. معنای TTL، یا طول عمر یک بسته، به موضوع و حوزه فعالیت آن بسته بستگی دارد.

برای مثال، در بستر بسته های IP یا پروتکل اینترنت، TTL مقداری است که به یک روتر شبکه اطلاع می دهد که این بسته از چه مدت در شبکه بوده و تا چه زمانی می تواند عمر کند.

منظور از TTL در شبکه چیست؟

TTL به عنوان یک Timestamp یا شمارنده ای عمل می کند که به هر بسته ضمیمه می شود. زمانی که طول عمر از پیش تعریف شده یا شمارنده منقضی شود، یک بسته یا مجدداً اعتبار دهی می شود و یا به کلی نادیده گرفته می شود.

در شبکه، TTL از جا به جایی همیشگی بسته ها در سراسر شبکه جلوگیری می کند. در اپلیکیشن ها، TTL کشینگ داده ها را مدیریت کرده و عملکرد را بهبود می بخشد.  TTL در زمینه های دیگر نیز مورد استفاده قرار می گیرد، مثل سیستم کش CDN یا شبکه توزیع محتوا،  و سیستم کش DNS ها.

 

TTL چطور کار می کند؟

ادمین ها می توانند TTL را بر روی هر مقداری بین 1 تا 255 تنظیم کنند. البته هر سیستم عامل از یک سری مقادیر پیش فرض مشخصی پشتیبانی می کند.

زمانی که بسته ای از روتر خارج می شود، روتر از مقدار TTL یک شماره کم می کند؛ سپس بسته به سمت مقصد بعدی خود در شبکه حرکت می کند. زمانی که مقدار TTL صفر باشد، پس از آخرین کسری، بسته توسط روتر به دور انداخته می شود. در این لحظه یک پیام ICMP یا پروتکل پیام کنترل اینترنت، به سمت هاست یا میزبان اولیه ارسال می شود.

یک هدف دیگر TTL مشخص کردن حد پرش های یک بسته است که بسته های ارسال نشده که در چرخش های مسیردهی گیر کرده اند را از شمارش تکراری و گرفتگی شبکه دور می کند. این اتفاق ممکن است به علت جداول مسیر دهی نادرست رخ داده باشد.

ttl

در MPLS یا Multiprotocol Label Switching clouds،  زمانی که بسته IP وارد ابر می شود، TTL از IP TTL کپی می شود. و زمانی که ابر را ترک می کند، مقدار MPLS TTL درون فیلد IP TTL جای گذاری می شود. البته در صورتی که از مقدار درون فیلد کمتر باشد.

در کنار محدود سازی طول عمر یک بسته، TTL مشخص می کند که آن بسته چه مدت در چرخه بوده و تا چه زمانی درون شبکه در جریان خواهد بود. این اطلاعات به ارسال کننده جزئیاتی در مورد مسیر شبکه درون اینترنت ارائه می دهد.

ttl

شاید با تعریف فوق متوجه نحوه کاررکرد TTL نشده باشید، پس بگذارید به شیوه ای دیگر توضیح دهیم...

زمانی که یک بسته از اطلاعات ساخته شده و در سراسر اینترنت توزیع می شود، این ریسک وجود دارد که شاید این بسته تا ابد در اینترنت باقی مانده و از روتری به روتر دیگر جا به جا شود. برای حل این موضوع، بسته ها با یک مقدار انقضا یا TTL که گاهی آن را با حد پرش ( Hop limit ) نیز می شناسند، طراحی می شوند.

 

هر بسته ای دارای یک فضای مشخص برای نگهداری مقدارهای عددی است که نشان می دهند آن بسته تا چه مدت زمانی باید به حرکت خود در شبکه ادامه دهد. هر بار که یک روتر بسته ای را دریافت می کند، از این مقدار TTL یک نمره کم کرده و آن را به مقصد بعدی در شبکه هدایت می کند.

هر زمان که مقدار TTL یک بسته پس از آخرین کسری توسط روتر، به صفر برسد، روتر بسته را غیر فعال در نظر گرفته و یک پیغام به ارسال کننده اولیه آن ارسال می کند.

ttl

منظور از TTL در Pinging چیست؟

دستورهای استاندارد شبکه ای، مثل traceroute، برای دستیابی به یک هاست یا ردیابی یک مسیر به آن هاست، از TTL استفاده می کنند. PING در اصل قبل از Traceroute استفاده می شود تا مشخص کند که آیا یک هاست در شبکه موجود است یا نه؛ traceroute نیز مسیر هر پرش یا hop های اینترنت از یک کامپیوتر به یک مقصد مشخص را ضبط می کند.

در هر قدم، یا پرش، یکی از بسته ها، که دارای مقدار TTL است، در مسیر به آخرین نقطه توقف خود می رسد. در این موقعیت، واحد دستور دهنده ( Utility ) پس از دور انداختن بسته، یک پیام ICMP به سمت ارسال کننده می فرستد.

پس از اینکه حد زمانی برای اولین پرش مشخص می شود، Traceroute این مقدار را افزایش داده و بسته را به سمت مقصد دوم هدایت می کند. و همین جریان تا انتها ادامه می یابند.

در انتهای مسیر نیز، رکوردهای Traceroute برای هر پرش نمایش داده می شوند.

ttl

در IP Multicast، بازه یا گستره بسته های ارسالی با کنترل کننده های TTL مدیریت می شوند؛ به وسیله نرخ تبدیل:

  • 0 به همان هاست محدود می شود.
  • 1 به همان ساب نت ( Subnet ) محدود می شود.
  • 32 به همان سایت محدود می شود.
  • 64 به همان ناحیه ( region ) محدود می شود.
  • 128 به همان قاره محدود می شود.
  • 255 نامحدود است.

منظور از TTL در DNS چیست؟

عبارت Time to Live می تواند به زمانی تعبیر شود که یک رکورد DNS از کش باز می گردد. در این مفهوم، TTL یک مقدار عددی است که روی نیم سرور Authoritative در رکورد DNS برای دامنه مورد نظر تنظیم می شود.

معنای این مقدار این است که یک سرور کش تا چند ثانیه می تواند مقدار کش شده ی خود را برای رکورد مورد نظر فراهم کند. زمانی که پس از آخرین رفرش، مدت زمان تعیین شده به پایان می رسد، سرور کش مجدداً به سراغ سرور authoritative رفته و برای رکورد مورد نظر، یک مقدار جدید یا تغییر یافته دریافت می کند.

منظور از TTL در HTTP چیست؟

در HTTP طول عمر یا TTL به ثانیه هایی اشاره دارد که یک محتوای کش شده ی وب توسط وب سرور مجدداً چک می شود تا از بروز بودن محتوا اطمینان حاصل شود.

تنظیمات وب سرور یک مقدار پیش فرض تعریف می کنند؛ اما با این حال، تگ های کنترلی کش، که نوع سرورها را مشخص می کنند، می توانند داده ها را کش کنند که این داده ها نمایان گر یک تاریخ و یک زمان برای کهنه شدن محتوا هستند. شما می توانید این مقادیر را در هدرهای صفحات زبان HyperText Markup تغییر دهید.

خرید cdn

TTL در شبکه توزیع محتوا

TTL مدت زمانی است که یک Object یا فایل قبل از پاک شدن یا بازسازی، در سیستم کش ذخیره می شود. در زمینه CDN یا شبکه توزیع محتوا، اغلب TTL به کش محتوا اشاره دارد؛ که به معنای مدت زمان کش کردن یا ذخیره کردن یک نسخه کپی از محتوای وب سایت شما بر روی پروکسی های CDN است تا سرعت لود صفحات سایت شما را افزایش داده و مصرف پهنای باند سرور اصلی تان را کاهش دهد.

در این خصوص، TTL نرخ این کپی ها را اداره و کنترل می کند، تا در حالت ایده آل، از نمایش نسخه های قدیمی و کهنه سایت شما به بازدیدکنندگان جلوگیری کند.

ttl

بهترین راهکارهای تنظیم سیاست TTL

TTL از طریق هدرهای HTTP ، مثل هدر Cache-control ، و به ثانیه تنظیم و اندازه گیری می شود. برای مثال، مقدار  "Cache-Control: max-age=30" برای منبع مشخص یک دستورالعمل بوده که بیانگر این است که قبل از عبور از TTL باید هر 30 ثانیه رفرش انجام شود.

در طرف مقابل، دستورالعمل "max-age=0" بیانگر این است که منبع به هیج عنوان نباید کش شود.

TTL به طور مستقیم بر زمان لود شدن صفحات سایت شما و تازگی محتوای آنها تاثیر می گذارد. پس برای اینکه مطمئن شوید که تمام بازدیدکنندگان، آخرین نسخه محتوای سایت شما را مشاهده می کنند، باید TTL ها را به این روش تنظیم کنید:

  • نوع منابع

دو نوع محتوا وجود دارد که باید زمان تنظیم TTL کش آن را تعیین کنید: ایستا و پویا یا Static و Dynamic.

فایل های استاتیک، مثل تصاویر، pdf ها و غیره، به ندرت آپدیت می شوند؛ پس بهتر است یک مقدار TTL طولانی تر برای آنها تنظیم شود. برای مثال، یک سایت فروشگاهی پر از تصاویر محصولات، دارای حجم عظیمی از محتوای استاتیک است؛ از آنجایی که این فایل ها به ندرت تغییر می کنند، بهتر است آنها را در بازه های زمانی طولانی تری کش کنید؛ پس هنگام تنظیم TTL به این موضوع دقت کنید.

در طرف مقابل، فایل های پویا یا داینامیک، مثل فایل های HTML، دائماً بروز شده و به زمان های TTL پایین تری نیاز دارند. برای مثال، قسمت کامنت های زیر هر محصول، نوعی محتوای پویا محسوب می شوند، پس با توجه به اینکه نمی توانیم تغییرات آنها را از قبل پیش بینی کنیم، باید برای اینگونه محتواها یک TTL کوتاه تر برای بروز کردن کش تنظیم کنیم.

  • مصرف منابع

مدت زمان تعیین شده برای کش یک منبع، باید به این موضوع نیز اشاره کند که این منبع چند وقت یک بار مورد استفاده قرار می گیرد. برای مثال، ممکن است یک سایت فروشگاهی بخواهد هر روز محتوای فایل HTML صفحه قیمت محصولات را بروزرسانی کند. پس این صفحه باید دارای یک TTL مشخصی باشد که در انتهای هر روز منقضی می شود؛ به این ترتیب مشتریان هر روز جدیدترین اطلاعات قیمتی را مشاهده خواهند کرد (کش وارنیش).

CDNها چطور پیکربندی TTL را ساده می کنند؟

اثربخشی پیکربندی TTL شما به توانایی شما در پیش بینی دقیق نرخ بروزرسانی مطالب و فایل های سایت تان بستگی دارد.

مشخصاً، هر چه با محتوای متغیر بیشتری سر و کار داشته باشید، این وظیفه سخت تر و سخت تر می شود. به همین دلیل است که سایت هایی که با چندصد یا شاید چند هزار المان یا عنصر درگیر هستند، توانایی مشخص کردن یک سیاست TTL واحد برای تمام آنها را ندارند.

استفاده از CDN می تواند این فرآیند را با یک روش کاربر پسند آپدیت تنظیمات TTL از طریق یک داشبورد کنترلی تسهیل کند. این قابلیت به شما کمک می کند تا تنظیمات TTL هر یک از منابع را به تنهایی یا به صورت دسته ای بدون درگیر شدن در پیکربندی های دستی و هدرهای HTTP تغییر دهید.

برخی از CDNها نیز از تکنیک های یادگیری ماشینی نیز برای مدیریت سیاست کلی TTL سایت تان بهره می گیرند؛ مسلماً با خودکار سازی این فرآیند، اثربخشی نیز بالاتر خواهد رفت. بخصوص اگر بتوانید فایل های داینامیک سایت تان را به این روش کش کنید.

 

CDNها با رصد کردن تعاملات کاربران در سایت شما، می توانند تفاوت بین نسخه های محتوایی ارائه شده به کاربران مختلف را ردیابی کنند. بر مبنای این تفاوت ها، سرویس می تواند مشخص کند که آیا یک فایل مشخص واقعاً داینامیک است یا فقط با یک زبان داینامیک مثل PHP ساخته شده است.

با ارتقا سیاست های کشینگ فایل های داینامیک، می توانید تاثیرگذاری این فایل ها بر سرعت و عملکرد سایت تان را بهتر مدیریت کنید. اغلب این سیاست ها می توانند تا 20% سیستم کشینگ شما را بهینه تر کنند.

راهکار میزبان کلود

به کمک داشبورد حرفه ای میزبان کلود می توانید پس از اتصال دامنه سایت خود به CDN ابری میزبان کلود، از طریق منوی مربوط به سیاست های کشینگ، برای فایل های داینامیک و استاتیک سایت خود TTL های مشخصی اختصاص دهید. برای مثال می توانید کش صفحات مورد نظر خود را بر روی ثانیه، دقیقه، ساعت و حتی هفته تنظیم کنید.

جمع بندی

TTL یا Time to Live به مدت زمانی اشاره دارد که یک رکورد یا محتوای یک صفحه می تواند در کش باقی بماند؛ در صورت عبور از حد این مقدار مشخص، سیستم باید برای دریافت نسخه های جدید از سرور اصلی اقدام کرده و یا بسته قبلی را به دور اندازد؛ در این مطلب چیستی TTL و موارد استفاده آن به طور مفصل بررسی شد و در انتها راهکارهای بهینه سازی سیستم کشینگ نیز ارائه شد. امیدواریم این مطلب برای شما مفید واقع شده باشد.

پیشنهاد ویژه

CDN ابری میزبان کلود

میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

مشاهده پلانها
میزبان کلود میزبان کلود
میزبان کلود
برچسب‌ها :
میزبان کلود
نویسنده مطلب میزبان کلود

ارائه دهنده خدمات زیرساخت یکپارچه ابری

Time to Live یا TTL‌در شبکه 0 دیدگاه