TTL یا Time To Live به مدت زمانی اشاره دارد که یک پکت داده قبل از این که توسط روتر کنار گذاشته شود، در داخل شبکه حضور دارد. معنای TTL یا طول عمر بسته، به شرایط بستگی دارد. به عنوان مثال، TTL مقداری در بسته پروتکل اینترنت (IP) است که وقتی بسته به مدت طولانی در شبکه بوده و باید دور انداخته شود، به روتر شبکه اطلاع میدهد.
TTL به عنوان یک شمارنده یا مهر زمانی تعبیه شده در هر پکت داده قرار داده میشود. هنگامی که بازه زمانی از پیش تعریف شده یا تعداد رویداد منقضی میشود، بسته دور انداخته میشود یا دوباره اعتبارسنجی میشود. TTL از حرکت بستههای داده به طور نامحدود در شبکه جلوگیری میکند.
TTL مربوط به پکتها میتواند در زمینه تشخیص و تعیین مدت زمانی که پکتها در شبکه در گردش بودهاند نیز مفید واقع شود. در ضمن به فرستنده پکتها این امکان داده میشود که اطلاعاتی دربارهی مسیر طی شده در اینترنت کسب کند.
در برنامههای کاربردی، TTL ذخیره دادهها را مدیریت کرده و عملکرد را افزایش میدهد. TTL در زمینههای دیگری مانند caching شبکه تحویل محتوا و ذخیره سیستم نام دامنه (DNS) نیز استفاده میشود.
نحوه عملکرد TTL چگونه است؟
مدیران شبکه میتوانند مقدار TTL را بین 1 تا 255 تنظیم کنند. با این حال، سیستمعاملهای مختلف از مقادیر پیشفرض مختلفی پشتیبانی میکنند.
هر پکت داده حاوی یک مقدار و ارزش عددی میباشد که تعیین میکند پکت داده باید چه مدت دیگر در شبکه حرکت کند. هنگامی که یک بسته در اختیار یک روتر است، روتر 1 واحد از تعداد TTL کم میکند. سپس بسته به مقصد بعدی در شبکه حرکت میکند. پس از تفریق نهایی، هنگامی که تعداد TTL به 0 رسید، بسته توسط روتر دور انداخته میشود. این یک پیام (ICMP) را تولید میکند که به میزبان اصلی ارسال میشود.
هدف TTL که به آن محدودیت گام نیز میگویند، این است که جریان بستههای غیر قابل تحویلی را که در حلقههای مسیریابی گیر کردهاند ( احتمالا به دلیل جدولهای مسیریابی نادرست ) از گردش دائمی و مسدود کردن شبکهها حفظ کند.
در ابرهای Multiprotocol Label Switching، زمانی که بسته IP وارد فضای ابری میشود MPLS TTL از IP TTL کپی میشود. وقتی خارج شد، مقدار MPLS TTL در قسمت IP TTL کپی شده است. ( اگر کمتر از مقدار فیلد باشد)
علاوه بر محدود کردن طول عمر یک بسته داده، TTL به تعیین مدت زمان گردش یک بسته و مدت زمان ادامه حرکت آن در شبکه کمک میکند. این اطلاعات جزئیات فرستنده را در مورد مسیر بسته از طریق اینترنت ارائه میدهد.
TTL در pinging چیست؟
دستورات شبکه استاندارد یا ابزارهای کمکی مانند traceroute و ping از TTL برای رسیدن به میزبان یا ردیابی مسیری به آن میزبان استفاده میکنند. ping قبل از استفاده از traceroute برای تعیین اینکه آیا میزبان در شبکه است یا خیر استفاده میشود. Traceroute مسیر را در هر گام از طریق اینترنت بین یک کامپیوتر و یک مقصد مشخص ثبت میکند.
در هر مرحله یا گام، در طول مسیر، یکی از بستهها که شامل یک مقدار TTL است به آخرین توقف خود میرسد. در آن مکان، ابزار کمکی پس از دور انداختن بسته، پیام ICMP را برای فرستنده ارسال میکند. هنگامی که مقدار محدودیت زمانی برای اولین گام مشخص شد، traceroute محدودیت مقدار زمانی را افزایش میدهد و بسته را دوباره به مقصد دوم ارسال میکند و به همین ترتیب ادامه میدهد.
اینجا بخوانید: پینگ (Ping) چیست و چگونه از آن در عیب یابی شبکه استفاده کنیم؟
در گام نهایی، رکوردهای traceroute گام به گام نمایش داده میشوند.
در چندپخشی (Multicast) IP، محدوده یا محدوده بستههای ارسالشده با کنترلهای TTL مدیریت میشوند.
- 0 به همان میزبان محدود شده است.
- 1 به همان زیرشبکه محدود شده است.
- 32 به همان سایت محدود شده است.
- 64 به همان منطقه محدود شده است.
- 128 محدود به همان قاره است.
- 255 نامحدود است.
TTL در DNS چیست؟
اصطلاح time-to-live میتواند زمانی را توصیف کند که یک رکورد DNS از Cache بازگردانده میشود. در این زمینه، TTL یک مقدار عددی است که در یک رکورد DNS روی سرور نام دامنه معتبر برای دامنه تنظیم شده است.
TTL تعداد ثانیههایی را که یک سرور cache میتواند مقدار ذخیره شده خود را برای رکورد ارائه دهد، تعیین میکند. هنگامی که تعداد ثانیههای تعیینشده از آخرین بهروزرسانی گذشته باشد، سرور Cache دوباره به سرور معتبر دسترسی پیدا میکند و مقدار فعلی (و احتمالاً تغییر یافته) را برای رکورد دریافت میکند.
TTL در HTTP چیست؟
در پروتکل HTTP، طول عمر تعداد ثانیههایی را که طول میکشد تا محتوای وب ذخیره شده در cache بازگردد، قبل از اینکه وب سرور مجبور شود دوباره بررسی کند که محتوا «fresh» است، را توصیف میکند.
تنظیمات روی وب سرور یک مقدار پیش فرض را تعیین میکند. با این حال، برچسبهای کنترل cache، که انواع سرورها را تعریف میکنند، در صورت وجود، میتوانند دادهها را ذخیره کنند، یا برچسبهای منقضی شده، که تاریخ و زمانی را نشان میدهند که محتوا قدیمی است، میتوانند آن را در هدرهای صفحه زبان نشانهگذاری HyperText لغو کنند.
TTL exceeded چیست؟
TTL exceeded یا TTL بیش از حد، به بستههای IP اشاره دارد که ترافیک HTTP وب را از طریق پروتکل کنترل انتقال حمل میکنند و از تعداد زیادی گام روتر عبور کردهاند.
در این سناریو، هر روتر، فیلد TTL بستههای IP ارسال شده در سراسر شبکه را کاهش میدهد تا به صفر برسد. سپس، روتر بسته IP را رها میکند و با یک بسته ICMP و کد خطای TTL بیش از حد به فرستنده پاسخ میدهد.
طول عمر در DynamoDB چیست؟
در آمازون DynamoDB (یک سرویس پایگاه داده اسناد NoSQL) TTL به کاربران اجازه میدهد تا برای هر آیتم مهر زمانی تعریف کنند تا مشخص کنند چه زمانی دیگر به یک آیتم نیاز نیست.
هنگامی که مهر زمانی مشخص شده سپری شد، DynamoDB بدون صرف هیچ توان عملیاتی برای نوشتن، آیتم را از جدول حذف میکند.
از TTL چه استفادههای دیگری میشود؟
به جز موضوع ردیابی پکتهای داده در اینترنت، از TTL به منظور کش (cache) نمودن اطلاعات برای یک دوره زمانی استفاده میشود. به جای اندازهگیری مدت زمان هاپهای بین روترها، هر یک از آنها مدت زمان متغیری را به خود اختصاص میدهد.
به طور معمول CDNها، از یک TTL استفاده میکنند تا مدت زمان ارائه محتوای کش شده (cached) از یک سرور لبه CDN را قبل از این که محتوای جدید از سرور مبدا در اختیار قرار گیرد، را مشخص و تعیین کنند.
با انجام تنظیم صحیح و مناسب میتوان CDN را قادر ساخت تا محتوای بهروز شده را قبل از این که درخواستهای متوالی به مبدا ارسال شود، ارائه دهد. این بهینهسازی به CDN کمک میکند ضمن کاهش پهنای باند مورد نیاز از مبدا، محتوا را از لوکیشنی نزدیک به کاربر ارائه دهد.