My qt is w.r.t traceroute. I know it uses TTL to send packets. My question is When the first packet goes with TTL=1, the router decrements it, finds it can no more frwd the packet so it will send ICMP time exceeded msg back, but does this reply will have any TTL value or TTL value is only for the packets send?
First things first. The 'first' packet will have it's hop count set to 1, and it's because of this the very first host this packet encounters will drop it and send a response back to the originator with a round trip time.
The TTL value is a pure scalar which determines whether a packet should be forwarded if >1 , or should it be dropped if <1 i.e. zero. The response that goes back to the sender has the TTL set to the highest value e.g. for a Windows based system it will be 128, for anything else it will be 64/255. Now, the thing to bear in mind is that the TTL value of the ICMP response will be set by the last host/router encountered (i.e. the host/router which discards the packet as incoming TTL value has expired).
If you have any type of packet tracer program i.e wireshark/ethereal, you can check for yourself. Setup the packet sniffer to look out for ICMP response packets. Once you can capture some, look into the TTL section. You will find it's value set to 64/128/255 accordingly.
Picking pebbles on the shore of the networking ocean