Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

From what I gathered so far, Tracert works by sending 3 ICMP echo messages. Starting with a TTL value of 1. For each router the packet encounters, the TTL value will be decremented. For the 1st router, 1-1 = 0, so an ICMP "time exceeded" message will be sent back to the sender machine. Next, the TTL value will be incremented to 2 by the sender machine and the cycle repeats for the 2nd router (2-->1-->0) and so on.

Please correct me if my undestanding is flawed.

I am curious as to why the ICMP "time exceeded" message isn't displayed by Tracert in Command Prompt since it is in fact an error message ? The cycle simply proceeds on.

Thanks.

share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

The "time exceeded" "error" message, as you put it, is displayed by tracert as the # of ms it took to get that error back. That error is proof that the 1st, 2nd, 3rd, etc router received the packet, and has the address of that router on it so tracert knows the path the packets are taking. It's when they don't come back you get the * printed and Request timed out as the address of that router.

share|improve this answer
add comment

The "error message" (which really isn't an error so much as courtesy information) isn't displayed because it's not sent to the stderr by tracert. I don't see what possibly value could be gleaned by the program sending extraneous error messages when it expects and handles the data properly.

The rest of your explanation is correct.

share|improve this answer
    
Thanks for the clarification, couldn't upvote your answer as of yet =) –  iridescent Dec 17 '12 at 2:48
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.