traceroute

traceroute

霸气de小男生 提交于 2019-11-27 01:13:50
Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,检查是不是目标地址,不是,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢? Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上)

TraceRoute and Ping in C#

空扰寡人 提交于 2019-11-26 19:56:33
Does anyone have C# code handy for doing a ping and traceroute to a target computer? I am looking for a pure code solution, not what I'm doing now, which is invoking the ping.exe and tracert.exe program and parsing the output. I would like something more robust. Although the Base Class Library includes Ping , the BCL does not include any tracert functionality. However, a quick search reveals two open-source attempts, the first in C# the second in C++: http://www.codeproject.com/KB/IP/tracert.aspx http://www.codeguru.com/Cpp/I-N/network/basicnetworkoperations/article.php/c5457/ Scott Given that

网络相关的命令工具研究报告-traceroute

你离开我真会死。 提交于 2019-11-26 12:55:04
一、基本概念   traceroute (Windows系统下是tracert) 命令利用ICMP 协议定位您的计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。 二、基本流程   首先给目的主机发送一个TTL=1的IP数据包(其实,每次送出的为3个40字节的包,包括源地址,目的地址以及包发出的时间),而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报便知道这个路由器存在于这个路径上,接着再发一个TTL=2的IP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。 三、命令格式   traceroute [参数] [主机] (在windows的命令是tracert)        参数的内容:   -d 使用Socket层级的排错功能。   -f 设置第一个检测数据包的存活数值TTL的大小。   -F 设置勿离断位。   -g 设置来源路由网关,最多可设置8个。   -i 使用指定的网络界面送出数据包。   

TraceRoute and Ping in C#

大兔子大兔子 提交于 2019-11-26 07:28:33
问题 Does anyone have C# code handy for doing a ping and traceroute to a target computer? I am looking for a pure code solution, not what I\'m doing now, which is invoking the ping.exe and tracert.exe program and parsing the output. I would like something more robust. 回答1: Although the Base Class Library includes Ping, the BCL does not include any tracert functionality. However, a quick search reveals two open-source attempts, the first in C# the second in C++: http://www.codeproject.com/KB/IP