شاخص TTL (همان Hop Limit) در شبکه چیست؟
TTL یکی از معیارهایی است که با آن میتوان نزدیکی مسیر مبدا تا مقصد را در حین انتقال دادهها تخمین زد و از حلقههای تمام نشدنی در مسیر انتقال داده جلوگیری کرد.
TTL چیست؟
TTL مخفف عبارت Time To Live (تایم تو لیو) معیاری است که برای مشخص کردن تعداد روترها یا Hopهای موجود در مسیر از آن استفاده میشود. TTL به شبکه یا در مقیاس بزرگتر، به اینترنت، این اجازه را میدهد تا بستههای داده یا به اصطلاح پکت (Packet) دادههایی که بیشتر از چندین مسیریاب (روتر) میگذرند را متوقف کرده و جلوی افتادن آنها به حلقههای تکراری را بگیرد.
اصطلاح TTL در پروتکل اینترنتی نسخه ۴ (IPv4) استفاده میشود. نام جدیدی که برای آن گذاشته اند Hop limit بوده و در پروتکل اینترنتی نسخه ۶ (IPv6) استفاده میشود. بنابراین فرقی بین Hop limit و TTL وجود ندارد.
در تصویر زیر میتوانید یک نمونه مقدار TTL را که با دستور Ping از آی پی لوپبک ۱۲۷.۰.۰.۱ دریافت شده، مشاهده کنید. چون این آی پی لوپ بک است (یعنی خود کامپیوتر، بدون وجود هیچ روتری) و مقدار اولیه TTL در ویندوز ۱۲۸ است (در بقیه پست توضیح داده خواهد شد)، همان مقدار ۱۲۸ بازگردانده میشود:
TTL چگونه کار میکند؟
نحوه کار تی تی ال بسیار ساده است. در ابتدا، هاستی به عنوان مبدا که یک بسته داده را به یک هاست دیگر به عنوان مقصد ارسال میکند، در سربرگ یا همان هدر (Header) بسته TCP/IP یک مقداری را مشخص میکند. این مقدار، یک رشته ۸ بیتی است بنابراین با محاسبه ۲ به توان ۸ خواهیم دید که ۲۵۶ حالت مختلف برای آن وجود خواهد داشت که از ۲۵۵ شروع شده و تا ۰ ادامه پیدا میکند.
وقتی که هاست مبدا بسته را با فیلد TTL پیشفرض خود ارسال کرد، با هر بار گذشتن بسته از یک روتر، مسیر یاب یا Hop، از مقدار آن یک واحد کم میشود. یعنی اگر مقدار اولیه برابر ۱۲۸ بود، با گذر از یک روتر مقدار آن ۱۲۷ خواهد شد و به این ترتیب از مقدار TTL یا همان Hop limit کاسته خواهد شد. در صورتی که مقدار TTL به اندازهای کم شده باشد که برابر ۰ باشد، روتر آن بسته را مسیر دهی نکرده و در همان روتر، بسته منقضی و منسوخ خواهد شد. با این کار، اگر بستهای در یک حلقه بینهایت بیفتد، پس از مدتی از شبکه خارج خواهد شد.
با این که حداکثر مقدار دسیمال (عددی) فیلد TTL میتواند ۲۵۵ باشد، مقدار اولیه آن چون در هیچ استانداردی مشخص نشده، توسط سیستم عامل تعیین میشود. در تصویر زیر میتوانید یک هاستی را ببینید که مقدار اولیه TTL را برابر مقدار حداکثر مجاز آن در نظر گرفته و با هر بار گذر از یک روتر، از مقدار آن کم میشود:
بنابراین میبینید که با مشخص بودن نوع سیستم عامل مبدا (چون مقدار اولیه TTL بستگی به سیستم عامل دارد) و با در دست داشتن مقدار TTL بدست آمده از بسته دریافتی از آن مبدا، در سیستم مقصد میتوان تعداد روترهای موجود در مسیر را فهمید.
مقادیر اولیه TTL در سیستم عاملهای مختلف
همانطور که گفته شد، برای TTL مقدار اولیهای در نظر گرفته نشده (با اینکه مقدار ۶۴ توصیه شده است) از این رو طراحان سیستم عامل از مقدار دلخواه برای آن استفاده کرده اند که عبارت اند از:
ویندوز:
در سیستم عامل ویندوز (Windows) مایکروسافت، مقدار پیشفرض TTL از نسخه XP به بعد (ویستا، سون، ۸ و ۸.۱ و ۱۰) برابر ۱۲۸ در نظر گرفته شده است. برای درک بهتر، به تصویر زیر دقت کنید:
لینوکس
در بسیاری از هستهها و توزیعهای سیستم عامل لینوکس (Linux)، مقدار اولیه برای TTL معادل ۶۴ در نظر گرفته شده است. مانند تصویر زیر:
سایر سیستم عاملها:
دستگاه یا سیستم عامل | نسخه | TTL اولیه |
AIX | ۶۰ | |
AIX | ۳۰ | |
AIX | ۳.۲, ۴.۱ | ۲۵۵ |
BSDI | BSD/OS 3.1 and 4.0 | ۲۵۵ |
Compa | Tru64 v5.0 | ۶۴ |
Cisco | ۲۵۴ | |
DEC Pathworks | V5 | ۳۰ |
Foundry | ۶۴ | |
FreeBSD | ۲.۱R | ۶۴ |
FreeBSD | ۳.۴, ۴.۰ | ۲۵۵ |
FreeBSD | ۵ | ۶۴ |
HP-UX | ۹.۰x | ۳۰ |
HP-UX | ۱۰.۰۱ | ۶۴ |
HP-UX | ۱۰.۲ | ۲۵۵ |
HP-UX | ۱۱ | ۲۵۵ |
HP-UX | ۱۱ | ۶۴ |
Irix | ۵.۳ | ۶۰ |
Irix | ۶.x | ۶۰ |
Irix | ۶.۵.۳, ۶.۵.۸ | ۲۵۵ |
juniper | ۶۴ | |
MPE/IX (HP) | ۲۰۰ | |
Linux | ۲.۰.x kernel | ۶۴ |
Linux | ۲.۲.۱۴ kernel | ۲۵۵ |
Linux | ۲.۴ kernel | ۲۵۵ |
Linux | Red Hat 9 | ۶۴ |
MacOS/MacTCP | ۲.۰.x | ۶۰ |
MacOS/MacTCP | X (10.5.6) | ۶۴ |
NetBSD | ۲۵۵ | |
Netgear FVG318 | ۶۴ | |
OpenBSD | ۲.۶ & 2.7 | ۲۵۵ |
OpenVMS | ۰۷.۰۱.۲۰۰۲ | ۲۵۵ |
OS/2 | TCP/IP 3.0 | ۶۴ |
OSF/1 | V3.2A | ۶۰ |
OSF/1 | V3.2A | ۳۰ |
Solaris | ۲.۵.۱, ۲.۶, ۲.۷, ۲.۸ | ۲۵۵ |
Solaris | ۲.۸ | ۶۴ |
Stratus | TCP_OS | ۲۵۵ |
Stratus | TCP_OS (14.2-) | ۳۰ |
Stratus | TCP_OS (14.3+) | ۶۴ |
Stratus | STCP | ۶۰ |
SunOS | ۴.۱.۳/۴.۱.۴ | ۶۰ |
SunOS | ۵.۷ | ۲۵۵ |
Ultrix | V4.1/V4.2A | ۶۰ |
Ultrix | V4.1/V4.2A | ۳۰ |
Ultrix | V4.2 – ۴.۵ | ۲۵۵ |
VMS/Multinet | ۶۴ | |
VMS/TCPware | ۶۰ | |
VMS/TCPware | ۶۴ | |
VMS/Wollongong | ۱.۱.۱.۱ | ۱۲۸ |
VMS/Wollongong | ۱.۱.۱.۱ | ۳۰ |
VMS/UCX | ۱۲۸ | |
Windows | for Workgroups | ۳۲ |
Windows | ۹۵ | ۳۲ |
Windows | ۹۸ | ۳۲ |
Windows | ۹۸, ۹۸ SE | ۱۲۸ |
Windows | ۹۸ | ۱۲۸ |
Windows | NT 3.51 | ۳۲ |
Windows | NT 4.0 | ۱۲۸ |
Windows | NT 4.0 SP5- | ۳۲ |
Windows | NT 4.0 SP6+ | ۱۲۸ |
Windows | NT 4 WRKS SP 3, SP 6a | ۱۲۸ |
Windows | NT 4 Server SP4 | ۱۲۸ |
Windows | ME | ۱۲۸ |
Windows | ۲۰۰۰ pro | ۱۲۸ |
Windows | ۲۰۰۰ family | ۱۲۸ |
Windows | Server 2003 | ۱۲۸ |
Windows | XP | ۱۲۸ |
Windows | Vista | ۱۲۸ |
Windows | ۷ | ۱۲۸ |
Windows | Server 2008 | ۱۲۸ |
اگر کمی دقت کنید، خواهید دید که در یک شبکه محلی (LAN) چون تعداد روترها مشخص است، با آنالیز کردن مقدار TTL، میتوان حدس زد که سیستم عامل مبدا چه چیزی است.