Tracerouter程序中TTL exceed 后返回ICMP报文,返回的报文中TTL值有何含义
TimeToLive,是说包在网络中可以存活的时间。最初设计的时候,网关设备处理完数据包之后,经过了多少秒,就将TTL减去多少,这样经过TTL秒之后,这个数据包就不能在网络中存活了,这样就防止网络成环之后数据包在其中来回传输永远不停止的情况出现。实际上设备处理一个数据包的时间远小于一秒,所以一般是经过一个设备的一次转发就减1,这样TTL实际代表的是最多可以经过的三层转发次数,每一跳TTL会减1,减到0,就会返回一个ICMP消息到源地址(如果设备允许的话)Traceroute利用的就是这个特性,发出TTL很小的包,这样在到达目的之前包的TTL就会减到0,减到0那一条的设备会返回ICMP消息,于是就知道了这一跳的地址。依次增加发送包最初的TTL,就可以扩展包的跳数,直到到达目的,于是就知道了到达目的中途经过的设备数量和相应的地址。
■网友
Traceroute Using an IP Option或者《TCP/IP Illustrated》卷一第八章。
推荐阅读
- 招聘都要学历,何来程序员不看学历
- 银行系统的研发岗(程序员)是不是很难进(校招)推广到国企的研发岗(程序员)呢
- 坐标合肥,请问在哪里能捕捉到程序员这种生物他们大都出现在哪里呢
- 程序猿和产品汪能愉快的一起谈恋爱嘛
- 怎样成为一名合格的Python程序员?
- 我是程序猿养了条狗,取啥名字好
- 送程序员男友苹果无线耳机还是专业品牌耳机
- 女程序媛怎样追求男程序员
- 阿里程序员网上招人的情况为何如此多见
- 朋友圈权限被破解,怎样反破解