هر بسته اطلاعاتی در يک شبکه کامپيوتری دارای مسيری مشخص از زمان ارسال توسط فرستنده تا زمان دريافت توسط گيرنده ( گيرندگان ) می باشد . در صورتی که مقصد يک بسته اطلاعاتی برای سيستمی خارج از شبکه محلی باشد ، وی در مسير خود از بين دستگاه ها و يا روترهای متعددی عبور می نمايد تا به مقصد نهائی خود برسد . مثلا" زمانی که آدرس يک وب سايت را در مرورگر خود تايپ می نمائيد ، درخواست شما از بين روترها و کامپيوترهای متعددی عبور می نمايد تا در نهايت به سرويس دهنده مقصد برسد .برای مشاهده مسير يک بسته اطلاعاتی، از دستور tracerout که در برخی از سيستم های عامل نظير ويندوز ( از ويندور 98 تا 2003 ) به آن tracert گفته می شود ، استفاده می گردد.در اکثر سيستم هائی که از يونيکس و لينوکس استفاده می نمايند ، می توان از دستور traceroute به منظور مشاهده مسير يک بسته اطلاعاتی استفاده نمود .
موارد استفاده از دستور tracert
* عدم امکان ping نمودن يک کامپيوتر موجود در خارج از Gateway پيش فرض . با استفاده از دستور فوق ، می توان کامپيوترها و روترهای موجود در مسير يک بسته اطلاعاتی تا رسيدن به مقصد نهائی را مشاهده نمود . بدين ترتيب امکان مشاهده محلی که از آن نقطه به بعد امکان حرکت بسته اطلاعاتی وجود ندارد ، فراهم می گردد .
* در صورتی که امکان حرکت بسته های اطلاعاتی از مبداء به مقصد وجود نداشته باشد و يا زمان پاسخ دستور ping زمانی نامعقول و طولانی باشد .
* آگاهی از محل توقف يک بسته اطلاعاتی در شبکه
نحوه عملکرد دستور tracert
دستور فوق از فيلد TTL مربوط به IP در ICMP Echo Request و پيام های ICMP Time Exceeded به منظور تعيين مسير مبداء تا مقصد يک بسته اطلاعاتی استفاده می نمايد . عملکرد اين دستور نيز مشابه ping است و وی نيز از پيام های مبتنی بر ICMP برای يافتن هر يک از دستگاه های موجود در مسير يک بسته اطلاعاتی ، استفاده می نمايد . برای تشخيص مسير حرکت ، به TTL موجود در بسته اطلاعاتی يک مقدار اوليه نسبت داده می شود . TTL ، يک عدد صحيح است که حداکثر تعداد hop ( گره و يا روتر ) را که يک بسته اطلاعاتی در مسير خود با آنان برخورد می نمايد را مشخص می نمايد ( قبل از اين که توسط IP دورانداخته شود ). مقدار TTL در ابتدا يک خواهد بود و هر روتر و دستگاه موجود در مسير بسته اطلاعاتی ، يک واحد به آن اضافه می نمايد .بدين ترتيب برنامه tracert قادر به دريافت پيام TIME_EXCEEDED ICMP از هر يک از روترها و يا ساير دستگاه های موجود در مسير يک بسته اطلاعاتی می باشد .شکل زير نحوه عملکرد دستور tracert را نشان می دهد .
کامپيوتر A يک مجموعه از پيام های ICMP ECHO REQUEST را توليد و آنان را برای کامپيوتر B ارسال می نمايد. زمانی که اولين بسته اطلاعاتی ارسال می شود ، مقدار TTL يک خواهد بود و در روتر شماره يک مقدار آن صفر شده و يک پيام TIME_EXCEEDED ICMP ، برای کامپيوتر A ارسال می گردد . کامپيوتر A مجددا" يک بسته اطلاعاتی ICMP ديگر را ارسال می نمايد . ولی اين مرتبه مقدار TTL آن دو در نظر گرفته می شود . در چنين حالتی روتر اول ، بسته اطلاعاتی را عبور داده و يک واحد از مقدار TTL کم می نمايد و آن را برای روتر دوم ارسال می نمايد . ( در اين مقطع مقدار TTL=1 شده است ) . روتر دوم مقدار TTL را بررسی نموده و از آن يک واحد کم خواهد کرد . با توجه به اين که مقدار TTL=0 صفر شده است ، مجددا" يک پيام TIME_EXCEEDED ICMP برای کامپيوتر A ارسال می گردد . زمانی که ICMP ECHO REQUEST به کامپيوتر B می رسد ، وی يک ICMP Echo Reply را برمی گرداند . بدين ترتيب ، کامپيوتر A قادر به تشخيص تعداد hop موجود در مسير خواهد بود.
توضيحات :
* در مواردی که در مسير يک بسته اطلاعاتی مشکل خاصی ايجاد شود و يا پيام ICMP Time Exceeded برگردانده نشود ، در خروجی علامت "ستاره" نشان داده خواهد شد ( در سه ستونی که معمولا" زمان round-trip را نمايش می دهند ) . در چنين مواردی يک پيام Request timed out در قسمت سمت راست نمايش داده می شود .
* در برنامه اوليه tracert مقدار پورت در هدر UDP ، يک پورت UNREACHABLE در نظر گرفته می شد . بنابراين زمانی که بسته اطلاعاتی ICMP به مقصد نهائی خود می رسد ، يک پيام ICMP DESTINATION UNREACHABLE توسط کامپيوتر مقصد برگردانده می شود .
* در صورتی که آخرين گره مشاهده شده در خروجی دستور tracert مقصد نهائی باشد ، تمامی گره ها و يا روترهای موجود در مسير نمايش داده شده اند .
منبع: دارد-نامشخص
موارد استفاده از دستور tracert
* عدم امکان ping نمودن يک کامپيوتر موجود در خارج از Gateway پيش فرض . با استفاده از دستور فوق ، می توان کامپيوترها و روترهای موجود در مسير يک بسته اطلاعاتی تا رسيدن به مقصد نهائی را مشاهده نمود . بدين ترتيب امکان مشاهده محلی که از آن نقطه به بعد امکان حرکت بسته اطلاعاتی وجود ندارد ، فراهم می گردد .
* در صورتی که امکان حرکت بسته های اطلاعاتی از مبداء به مقصد وجود نداشته باشد و يا زمان پاسخ دستور ping زمانی نامعقول و طولانی باشد .
* آگاهی از محل توقف يک بسته اطلاعاتی در شبکه
نحوه عملکرد دستور tracert
دستور فوق از فيلد TTL مربوط به IP در ICMP Echo Request و پيام های ICMP Time Exceeded به منظور تعيين مسير مبداء تا مقصد يک بسته اطلاعاتی استفاده می نمايد . عملکرد اين دستور نيز مشابه ping است و وی نيز از پيام های مبتنی بر ICMP برای يافتن هر يک از دستگاه های موجود در مسير يک بسته اطلاعاتی ، استفاده می نمايد . برای تشخيص مسير حرکت ، به TTL موجود در بسته اطلاعاتی يک مقدار اوليه نسبت داده می شود . TTL ، يک عدد صحيح است که حداکثر تعداد hop ( گره و يا روتر ) را که يک بسته اطلاعاتی در مسير خود با آنان برخورد می نمايد را مشخص می نمايد ( قبل از اين که توسط IP دورانداخته شود ). مقدار TTL در ابتدا يک خواهد بود و هر روتر و دستگاه موجود در مسير بسته اطلاعاتی ، يک واحد به آن اضافه می نمايد .بدين ترتيب برنامه tracert قادر به دريافت پيام TIME_EXCEEDED ICMP از هر يک از روترها و يا ساير دستگاه های موجود در مسير يک بسته اطلاعاتی می باشد .شکل زير نحوه عملکرد دستور tracert را نشان می دهد .
کامپيوتر A يک مجموعه از پيام های ICMP ECHO REQUEST را توليد و آنان را برای کامپيوتر B ارسال می نمايد. زمانی که اولين بسته اطلاعاتی ارسال می شود ، مقدار TTL يک خواهد بود و در روتر شماره يک مقدار آن صفر شده و يک پيام TIME_EXCEEDED ICMP ، برای کامپيوتر A ارسال می گردد . کامپيوتر A مجددا" يک بسته اطلاعاتی ICMP ديگر را ارسال می نمايد . ولی اين مرتبه مقدار TTL آن دو در نظر گرفته می شود . در چنين حالتی روتر اول ، بسته اطلاعاتی را عبور داده و يک واحد از مقدار TTL کم می نمايد و آن را برای روتر دوم ارسال می نمايد . ( در اين مقطع مقدار TTL=1 شده است ) . روتر دوم مقدار TTL را بررسی نموده و از آن يک واحد کم خواهد کرد . با توجه به اين که مقدار TTL=0 صفر شده است ، مجددا" يک پيام TIME_EXCEEDED ICMP برای کامپيوتر A ارسال می گردد . زمانی که ICMP ECHO REQUEST به کامپيوتر B می رسد ، وی يک ICMP Echo Reply را برمی گرداند . بدين ترتيب ، کامپيوتر A قادر به تشخيص تعداد hop موجود در مسير خواهد بود.
توضيحات :
* در مواردی که در مسير يک بسته اطلاعاتی مشکل خاصی ايجاد شود و يا پيام ICMP Time Exceeded برگردانده نشود ، در خروجی علامت "ستاره" نشان داده خواهد شد ( در سه ستونی که معمولا" زمان round-trip را نمايش می دهند ) . در چنين مواردی يک پيام Request timed out در قسمت سمت راست نمايش داده می شود .
* در برنامه اوليه tracert مقدار پورت در هدر UDP ، يک پورت UNREACHABLE در نظر گرفته می شد . بنابراين زمانی که بسته اطلاعاتی ICMP به مقصد نهائی خود می رسد ، يک پيام ICMP DESTINATION UNREACHABLE توسط کامپيوتر مقصد برگردانده می شود .
* در صورتی که آخرين گره مشاهده شده در خروجی دستور tracert مقصد نهائی باشد ، تمامی گره ها و يا روترهای موجود در مسير نمايش داده شده اند .
منبع: دارد-نامشخص