در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

hooman7

مفهوم TTL چیست و چه کاربردی در شبکه دارد؟

با سلام ، دوستان یک سوال داشتم و اونم اینه که زمانی که از یک سرور یا یک سایت پینگ میگیرم واژه TTL متفاوت است به عنوان مثال وقتی از لینک زیر پینگ میگیرم TTL 107 نشون میده ولی وقتی از 4.2.2.4 پینگ میگیرم TTL 50 را نشان میدهد خواستم بپرسم تغییر این اعداد بخاطر چیه چون از جایی شنیدم بخاطر نوع سیستم عامل و فایروالهای سخت افزاری و نرم افزاریشونه آیا درسته و اگر درسته لیست این اعداد را از کجا میشه پیدا کرد؟

این سوال 2 پاسخ دارد.
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
Amirrezanezhad

روش شناسایی با TTL:هرچند این روش اطلاعات دقیقی درباره سیستم عامل کامپیوتر مورد نظر نمی دهد ولی حداقل می توانید تفاوتهای بین سیستم عامل های مختلف مثل Windows یا Unix را متوجه شوید.

ارزش TTL چیست؟

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

توسط فرمان زیر می توانید ارزش TTL یک بسته اطلاعاتی که از کامپیوتر مقصد دریافت می شود را ببینید:

C:\Windows>ping 203.197.102.1

(فرض شده است که IP کامپیوتر مورد نظر 203.197.102.1 می باشد)

خروجی چیزی ، شبیه به عبارت زیر است:

Reply from 203.197.102.1:bytes=32 time<1ms TTL=128

Reply from 203.197.102.1:bytes=32 time<1ms TTL=128

Reply from 203.197.102.1:bytes=32 time<1ms TTL=128

Reply from 203.197.102.1:bytes=32 time<1ms TTL=128

ping statistics for 127.0.0.1

packets:sent=4,Received=4,Lost=0(0%loss

Approximate round trip times in milli-seconds

Minimum=5ms,Maximum=12ms,Average=6ms

بنابراین مشخص می شود که TTL بسته های دریافتی از آن سیستم 128 می باشد.حالا می توانیم بگوییم که سیستم عامل کامپیوتر مورد نظر ویندوز می باشد.در زیر ارزش TTL سیستم عامل های مختلف به طور خلاصه انتخاب شده است:

Windows 9x/NT Intel 32

Windows 2000 Intel 128

Linux 2.2x Intel 64

AIX 4.3.x IBM/R6000 60

Cisco 12.0 2514 255

IRIX 6.x SGI 60

Netware 4.11 Intel 128

نکته:مقدار TTL در هر Router به میزان یک واحد کم می شود.به طور مثال اگر ده Router بین شما و سیستم مورد نظر باشد و TTL اصلی تولید شده توسط سیستم مقصد 255 باشد شما عدد (1*10)-255 یعنی 245 را دریافت می کنید.جهت فهمیدن این که چند Router بین شما و سیستم هدف وجود دارد از فرمان tracert در DOS استفاده کنید.این دستور IP Address یا اسم Router بین شما و کامپیوتر مقصد را مشخص می کند.

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

  • انتخاب شده به عنوان جواب توسط 1 نفر

TTL مکانیزمی برای جلوگیری از ایجاد loop در لایه ۳ هست

وقتی سیستمی بسته ای به یک سیستم دیگه ارسال می کنه در ip header بسته مقدار ttl ای واسش تعیین می کنه

نسبت به نوع سیستم عامل ها این عدد متفاوته مثلا در ویندوز ۱۰ بخواهید بسته icmp echo-request به یه سیستم در اینترنت بفرستید مقدار ttl بسته رو ۶۴ قرار میده

حالا این بسته از هر روتری که تو زیرساخت اینترنت عبور کنه از مقدار ttl اون ۱ واحد کم میشه

اگه ttl بسته به صفر برسه و به مقصد نرسه اون بسته توسط روتر مربوطه drop میشه

بسته icmp می تونه size متفاوتی داشته باشه حالا چه ۴۰ بایت چه ۱۵۰۰ یا حتی ۱۸۰۰۰ بایت که صرفا مقدار data موجود در بسته icmp رو نشون میده که این بسته نسبت به mtu اینترفیس های موجود در مسیر fragment یا تکه تکه میشن که جریان شماره fragmentation و ترتیب داده خارج از موضوع این سوال شما هست و هیچ ربطی به ttl نداره

TTL صرفا برای جلوگیری از ایجاد loop در لایه سه استفاده میشه و باعث میشه بسته تا بی نهایت تو اینترنت سرگردان نشه و نهایتا ۲۵۵ تا hop رو بتونه زنده بمونه!

یکی از استفاده هایی که از این ttl میشه کرد مشخص کردن مسیر عبوری بسته هست که واسه اینکار از دستور traceroute یا تو ویندوز tracert استفاده میشه

در این دستور هم میشه از icmp echo request استفاده کرد و هم بسته UDP با پورت های متفاوت

ولی روش کار به این صورته:

مقدار ttl بسته رو برابر با ۱ قرار میده و میفرسته به مقصد، در اولین روتر چون مقدار این ttl به صفر کاهش پیدا می کنه بسته drop میشه و روتر بسته icmp ttl exceeded رو به فرستنده برمی گردونه

دفعه دیگه مقدار ttl رو ۲ قرار میده بسته در روتر دوم drop میشه

به همین ترتیب این ttl افزایش داده میشه تا بسته به مقصد برسه

این روش ممکنه در مواردی مثل غیر فعال بودن یا فیلتر بودن بسته های icmp یا پاسخ icmp با IP جعلی (مثلا آدرس یکی از اینترفیس های دیگه روتر مثل اینترفیس loopback 0) کارساز نباشه

حتی ممکنه بسته از زیرساخت mpls رد بشه و ttl رو کاری کنن ثابت بمونه و چندین روتر از نظر فرستنده پنهان بمونه

رمز یادگیری یک مهارت و تسلط یافتن به آن فقط تمرین و تکرار آن به تعداد بسیار بسیار زیاد است! راه میانبری وجود ندارد!
  • انتخاب شده به عنوان جواب توسط 1 نفر
محمد نصیری

ماشالا به امیر و نوید عزیز اینقدر کامل جواب میدید آدم روش نمیشه جواب بده ، من جثارتا یه مطلبی نوشتم قبلا دوست داشتید نگاه کنید :

توسینسو دنیا رو متحول میکنه اگر تو هم عضو گروهش باشی ... برای همکاری به من پیام بده ....
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....