tracert路由跟踪

首先来看TCP是如何确定网络进入了拥塞状态的,TCP认为网络拥塞的主要依据是它重传了一个报文段。上面提到过,TCP对每一个报文段都有一个定时器,称为重传定时器(RTO),当RTO超时且还没有得到数据确认,那么TCP就会对该报文段进行重传,当发生超时时,那么出现拥塞的可能性就很大,某个报文段可能在网络中某处丢失,并且后续的报文段也没有了消息,在这种情况下,TCP反应比较“强烈”:

语法

rtt往返时间 往返时延计算公式rtt往返时间 往返时延计算公式


rtt往返时间 往返时延计算公式


rtt往返时间 往返时延计算公式


Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 该诊断实用程序将包含不同生存时间 (TTL) 值的 Internet 控制消息协议(ICMP) 回显数据包发送到目标,以决定到达目标采用的路由。要在转发数据包上的 TTL 之前至少递减 1,必需路径上的每个路由器,所以 TTL 是有效的跃点计数。数据包上的 TTL 到达 0 时,路由器应该将“ICMP 已超时”的消息发送回源系统。Tracert 先发送 TTL 为 1 的回显数据包,并在随后的每次发送过程将 TTL递增 1,直到目标响应或 TTL 达到值,从而确定路由。路由通过检查中级路由器发送回的“ICMP 已超时”的消息来确定路由。不过,有些路由器悄悄地下传包含过期 TTL 值的数据包,而 tracert 看不到。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。

tracert [-d] [-h MaximumHops] [-j HostList] [-w Timeout] [TargetName]

参数

/d 防止 tracert 试图将中间路由器的 IP 地址解析为它们的名称。这样可加速显示 tracert 的结果。

-h MaximumHops 在搜索目标(目的)的路径中指定跃点的数。默认值为 30 个跃点。

-j HostList 指定“回响请求”消息对于在主机列表中指定的中间目标集使用 IP 报头中的“松散源路由”选项。可以由一个或多个具有松散源路由的路由器分隔连续中间的目的地。主机列表中的地址或名称的数为 9。主机列表是一系列由空格分开的 IP 地址(用带点的十进制符号表示)。

TargetName 指定目标,可以是 IP 地址或主机名。

注释

该诊断工具通过更改“生存时间 (TTL)”的值向目标发送“ICMP 回响请求”消息来确定到达目标的路径。要求路径上的每个路由器在转发数据包之前至少将 IP 数据包中的 TTL 递减 1。这样,TTL 就成为链路计数器。数据包上的 TTL 到达 0 时,路由器应该将“ICMP 已超时”的消息发送回源计算机。Tracert 发送 TTL 为 1 的条“回响请求”消息,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或跃点达到值,从而确定路径。默认情况下跃点值是 30,可使用 -h 参数指定。检查中间路由器返回的“ICMP 超时”消息与目标返回的“回响答复”消息可确定路径。但是,某些路由器不会为使用到期 TTL 值的数据包返回“已超时”消息,而且有些路由器对于 tracert 命令不可见。在这种情况下,将为该跃点显示一行星号 ()。

要跟踪路径并为路径中的每个路由器和链路提供网络延迟和数据包丢失信息,请使用 pathping 命令。

范例

要跟踪名为 corp7.microsoft 的主机的路径,请键入: tracert corp7.microsoft

要跟踪名为 corp7.microsoft 的主机的路径并防止将每个 IP 地址解析为它的名称,请键入:tracert -d corp7.microsoft

要跟踪名为 corp7.microsoft 的主机的路径并使用松散源路由 10.12.0.1-10.29.3.1-10.1.44.1,请键入:tracert -j如果要使用选项确认SACK,那么在建立TCP连接时,就要在TCP首部的选项中加上“允许SACK”的选项,而双方必须都事先商定好。如果使用选择确认, 10.12.0.1 10.29.3.1 10.1.44.1 corp7.microsoft

注意

要打开命令提示符,请单击“开始”,依次指向“程序”和“附件”,然后单击“命令提示符”。

tracert 命令通过发送 Internet 控制消息协议 (ICMP) 回响请求和回响答复消息(类似于 ping 命令),产生关于经过的每个路由器的命令行报告输出以及每个跃点的往返时间 (RTT),从而跟踪路径。路由器、防火墙或其他类型安全性上的数据包筛选策略可能会阻止该通信的转发。

如果 tracert 失败,可以使用命令输出来帮助确定哪个中介路由器转发失败或耗时太多。

有关经过路径中每个路由器和链接时数据包转发和数据包丢失的详细信息,请使用“pathping”命令。

用ping测试。在一天的不同时间里测量到某些你所知道的RTT值的异是什么

加1

Ping命令返回的TTL值详解Time To Live (TTL) 域的信息很有趣。每一个被发送出的IP信息包都有一个TTL域,该域被设置为一个较高的数值(在本例中ping信息包的TTL值为255)。当信息包在网络中被传输时,TTL的域值通过一个路由器时递减1;当TTL 递减到0时,信息包被路由器抛弃。IP规范规定:TTL应该被设置为60 (尽管ping 信息包的TTL是255)。这样做主要是为了让一个信息包永远在为了中存在。担该信息对我们来说有特殊的含义。我们可以使用TTL大致确定该信息包经过了多少个路由器过渡段。在本例中,用255减去N,N是返回的回送答复的TTL。如果TTL值在连续几个ping中发生变化,这说明返回的信息包经过了不同的路由器。time显示了信息包到达远程主机后返回的时间。计算定位为毫秒。通常网卡下,来回时间在200毫秒以下。信息包抵达目的地的时间叫做latency(等待时间),如果你看到来回时间变化很大(叫做"jitter(抖动)),这说明同主机之间的联接状况。但是如果在较大抽样范围(50到100)内出现几个这样的情况也不必担心。要退出ping, 则键入control-c。这激昂中止该程序并打印总结:有多少信息包被传输,有多少信息包被接收到,丢失的信息包的比例,以及信息包来回时间的、和平均值。ping是测试为了联接状况以及信息包发送和接收状况非常有用的工具。对应的TTL值有什么特别的含意呢?ttl每经过一个ip子层就减少1UNIX 及类 UNIX 作系统 ICMP 回显应答的 TTL 字段值为 255Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64微软 Windows NT/2K作系统 ICMP 回显应答的 TTL 字段值为 128微软 Windows 95 作系统 ICMP 回显应答的 TTL 字段值为 32当然,返回的TTL值是相同的但有些情况下有所特殊LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64FreeBSD 4.1, 4.0, 3.4;

Sun Solaris 2.5.1, 2.6, 2.7, 2.8;

OpenBSD 2.6, 2RST:这个标志表示连接复位请求。用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包;.7,

NetBSD

HP UX 10.20

ICMP 回前面说过,每一个数据包都带有下一个数据包的编号。如果下一个数据包没有收到,那么 ACK 的编号就不会发生变化。显应答的 TTL 字段值为 255Windows 95/98/98SE

Windows ME

ICMP 回显应答的 TTL 字段值为 32Windows NT4 WRKS

Windows 2000

ICMP 回显应答的 TTL 字段值为 128这样,我们就可以通过这种方法来辨别作系统 TTL

WIN2K/NT 128

WINDOWS 系列 32

tracert是什么协议?

2.先是服务端主动某个端口,处于LISTEN状态(比如服务端启动,开始)。

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

Tracert 工作原理

通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。

Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。

Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。

在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机 172.16.0.99。主机的默认是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地址是 192.168.0.1。

C:>tracert 172.16.0.99 -d

Tracing route to 172.16.0.99 over a maximum of 30 hops

1 2s 3s 2s 10,0.0,1

3 73 ms 79 ms 93 ms 172.16.0.99

Trace complete.

用 tracert 解决问题

C:>tracert 192.168.10.99

Tracing route to 192.168.10.99 over a maximum of 30 hops

Trace complete.

Tracert 实用程序对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。

Tracert 命令行选项

Tracert 命令支持多种选项,如下表所示。

选项

描述

-d

指定不将 IP 地址解析到主机名称。

-h maximum_hops

指定跃点数以跟踪到称为 target_name 的主机的路由。

-j host-list

指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。

-w timeackout

等待 timeout 为每次回复所指定的毫秒数。

tar各字段含义:get_name

目标主机的名称或 IP 地址。

它直接使用IP层的ICMP协议,tracert本身是一个应用工具,不是协议!供参考

Packet Tracer系列文章之一:距离-向量路由协议的一些特征

距离向量协议主要有RIP、IGRP、EIGRP,以RIP为例,通过实验观察其加速收敛、避免环路的一些特征。文字主要摘自参考资料。

拓扑,从左至右,5个segment依次是192.168.10.0/24到192.168.50.0/24

RTT是什么,如何计算RTT?

1、在时间t=100ms到t=120ms之间传送了10个数据段,并且没有超时。根据给4.服务端收到发起的连接,返回SYN,并且ACK客户端的SYN,之后处于SYN-RCVD状态(第二次握手,发送 SYN = 1 ACK = 1 seq = y ack = x + 1)。定的RTT=20ms,可以计算出在这个时间段内每个数据段的传输时间为20ms。

在时间t=140ms和t=160ms之间,共有20ms的时间。由于每个数据段的传输时间为20ms,所以预计可以传输1个数据段。

2、如果在传送完10个数据段时出现超时,并且采用慢开始算法,我们需要根据慢开始算法的规则来计算。

设在超时时,拥塞窗口大小为W,根据慢开始算法,拥塞窗口大小将5.若B已经没有向A发送的数据,B发出连接释放信号,这时B进入LAST-ACK(确认)状态等待A的确认。被设置为1(因为超时表示网络出现拥塞)。

在时间t=140ms和t=160ms开始 ---> cwnd = 1之间,共有20ms的时间。根据慢开始算法,在每个轮次中,拥塞窗口的大小将翻倍。因此,在这个时间段内,预计的报文段数量将取决于拥塞窗口的大小。

计算机网络 设计一个类似于TCP的滑动窗口协议,

2.A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。

这个问题最关键是在于窗口大小的计算和每帧长度的确定。至于具体的过程活动窗口协议很多百度一下就有,把下面计算出来的参数套一下就完事~~。

设每帧传输1Kb,

则传输一个帧所需时间为: 发送时间 + 信息信道延迟 + 确认信道延迟(确认帧很短,忽略发送时间)= 1kb / 100Mbps + RTT/2+ RTT/2= 100ms+ 0.01ms 信道利用率 = 0.01/ 100.001=0.01%.

要使信道利用率达到更高,可一次发送的帧数量为10具体计算需要知道在超时发生时拥塞窗口的大小(即W),才能确定预期的报文段数量。如果提供了拥塞窗口的大小,我可以帮你进一步计算。0/0.01=10000,上面的K=1000,为了计算方便。

也就是说,当帧长度1kb时,发送窗口可以达到10000.

协议头部的窗口字段和序号字段最少应该有多少比特?

应该有16bit,因为8bi第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接释放。t的值才512。

我也是在网上找的,不知道准确不准确。

集训流川枫大招冷却时间

-? 在命令提示符显示帮助。

满天赋后20秒的大招冷却时间。

TCP协议图文详解

瞬突进攻

在流川枫基础技能中1.把ssthresh设置为cwnd的一半瞬突之后可以选择的进攻总共分为三种:高抛、扣篮、投篮。

1、下面我们来分析一下各种进攻的强度。先做一个科普,2004年统计的人类男性平均反应时间为253ms,女性为261ms,而最快反应时间也大于100ms。

3、在这样的基准下可以得出结论,如果帽点在0.2s内的进攻出手动作根本无法通过肉眼观察盖帽(可根据自身网络情况对时间加减)。

计算机网络有哪些常用的性能指标?

active

传输速当然是可以建立的率和误码率

速率 宽带 吞吐量 时延 利用率

速率,带宽,吞吐量,时延,时延带宽积,往返时间RTT,利用率

速率 带宽 吞吐量 应用程序收到组装好的原始数据,以浏览器为例,就会根据 HTTP 协议的Content-Length字段正确读出一段段的数据。这也意味着,一次 TCP 通信可以包括多个 HTTP 通信。时延 时延带宽积 往返时间RTT 利用率

速率,安全性,稳定性等

计算机网络,传输层拥塞控制小问题。谢谢。 设在没有发生拥塞的情况下,在一条往返时延RTT为10m

2、手机上的延迟显示也称RTT即往返传播时延,暂时以50ms计算,除了这些还有手指按下到手机接收,手机接收到发送数据的传输时延,以及接收的时延。

拥塞窗口初始值=1个TCP报文= 2 K B < 24 K B =2KB<24KB=2KB<24KB,发送窗口=min{拥塞窗口,接收窗口},采用慢启动算法:

T=0,第1次发送,发送窗口=拥塞窗口=2KB;

t=10m后续测量中,RTTd(i)=(1-Beta) RTTd(i-1)+Beta{ RTTs- RTT(i)};s,得到确认,拥塞窗口=4KB

T=10ms,第2次发送,发送窗口=4KB;

t=20ms,得到确认,拥塞窗口=8KB

T=20ms,第3次发送,发送窗口=8KB;

t=30ms,得到确认,拥塞窗口=16KB

T=30ms,第4次发送,发送窗口=16KB;

t=40ms,得到确认,拥塞窗口=32KB

T=40ms,第5次发送,发送窗口=min{拥塞窗口,接收窗口}=24KB;

因此,需要40ms才Windows NT4 能发送个完全窗口。

tcp的慢启动怎么触发的

发送的时候,TCP 协议为每个包编号(sequence number,简称 SEQ),以便接收的一方按照顺序还原。万一发生丢包,也可以知道丢失的是哪一个包。

为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion oidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retranit)”、“快速恢复(Fast Recovery)”算法,再后来在TCP NewReno中又对“快速恢复”算法进行了改进,近些年又出现了选择性应答( selective acknowledgement,SACK)算法,还有其他方面的大大小小的改进,成为网络研究的一个热点。

TCP的拥塞控制主要原理依赖于一个拥塞窗口(cwnd)来控制,在之前我们还讨论过TCP还有一个对端通告的接收窗口(rwnd)用于流量控制。窗口值的大小就代表能够发送出去的但还没有收到ACK的数据报文段,显然窗口越大那么数据发送的速度也就越快,但是也有越可能使得网络出现拥塞,如果窗口值为1,那么就简化为一个停等协议,每发送一个数据,都要等到对方的确认才能发送第二个数据包,显然数据传输效率低下。TCP的拥塞控制算法就是要在这两者之间权衡,选取的cwnd值,从而使得网络吞吐量化且不产生拥塞。

由于需要考虑拥塞控制和流量控制两个方面的内容,因此TCP的真正的发送窗口=min(rwnd, cwnd)。但是rwnd是由对端确定的,网络环境对其没有影响,所以在考虑拥塞的时候我们一般不考虑rwnd的值,我们暂时只讨论如何确定cwnd值的大小。关于cwnd的单位,在TCP中是以字节来做单位的,我们设TCP每次传输都是按照MSS大小来发送数据的,因此你可以认为cwnd按照数据包个数来做单位也可以理解,所以有时我们说cwnd增加1也就是相当于字节数增加1个MSS大小。

慢启动:最初的TCP在连接建立成功后会向网络中发送大量的数据包,这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞。因此新建立的连接不能够一开始就大量发送数据包,而只能根据网络情况逐步增加每次发送的数一个包1400字节,那么一次性发送大量数据,就必须分成多个包。比如,一个 10MB 的文件,需要发送7100多个包。据量,以避免上述现象的发生。具体来说,当新建连接时,cwnd初始化为1个报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,每当有一个报文段被确认,cwnd就增加1个MSS大小。这样cwnd的值就随着网络往返时间(Round Trip Time,RTT)呈指数级增长,事实上,慢启动的速度一点也不慢,只是它的起点比较低一点而已。我们可以简单计算下:

经过1个RTT后 ---> cwnd = 21 = 2

经过2个RTT后 ---> cwnd = 22= 4

经过3个RTT后 ---> cwnd = 42 = 8

如果带宽为W,那么经过RTTlog2W时间就可以占满带宽。

拥塞避免:从慢启动可以看到,cwnd可以很快的增长上来,从而程度利用网络带宽资源,但是cwnd不能一直这样无限增长下去,一定需要某个限制。TCP使用了一个叫慢启动门限(ssthresh)的变量,当cwnd超过该值后,慢启动过程结束,进入拥塞避免阶段。对于大多数TCP实现来说,ssthresh的值是65536(同样以字节计算)。拥塞避免的主要思想是加法增大,也就是cwnd的值不再指数级往上升,开始加法增加。此时当窗口中所有的报文段都被确认时,cwnd的大小加1,cwnd的值就随着RTT开始线性增加,这样就可以避免增长过快导致网络拥塞,慢慢的增加调整到网络的值。

上面讨论的两个机制都是没有检测到拥塞的情况下的syn行为,那么当发现拥塞了cwnd又该怎样去调整呢?

1.把ssthresh降低为cwnd值的一半

2.把cwnd重新设置为1

3.重新进入慢启动过程。

从整体上来讲,TCP拥塞控制窗口变化的原则是AIMD原则,即加法增大、乘法减小。可以看出TCP的该原则可以较好地保证流之间的公平性,因为一旦出现丢包,那么立即减半退避,可以给其他新建的流留有足够的空间,从而保证整个的公平性。

其实TCP还有一种情况会进行重传:那就是收到3个相同的ACK。TCP在收到乱序到达包时就会立即发送ACK,TCP利用3个相同的ACK来判定数据包的丢失,此时进行快速重传,快速重传做的事情有:

2.把cwnd再设置为ssthresh的值(具体实现有些为ssthresh+3)

3.重新进入拥塞避免阶段。

后来的“快速恢复”算法是在上述的“快速重传”算法后添加的,当收到3个重复ACK时,TCP进入的不是拥塞避免阶段,而是快速恢复阶段。快速重传和快速恢复算法一般同时使用。快速恢复的思想是“数据包守恒”原则,即同一个时刻在网络中的数据包数量是恒定的,只有当“老”数据包离开了网络后,才能向网络中发送一个“新”的数据包,如果发送方收到一个重复的ACK,那么根据TCP的ACK机制就表明有一个数据包离开了网络,于是cwnd加1。如果能够严格按照该原则那么网络中很少会发生拥塞,事实上拥塞控制的目的也就在修正违反该原则的地方。

具体来说快速恢复的主要步骤是:

1.当收到3个重复ACK时,把ssthresh设置为cwnd的一半,把cwnd设置为ssthresh的值加3,然后重传丢失的报文段,加3的原因是因为收到3个重复的ACK,表明有3个“老”的数据包离开了网络。

3.当收到新的数据包的ACK时,把cwnd设置为步中的ssthresh的值。原因是因为该ACK确认了新的数据,说明从重复ACK时的数据都已收到,该恢复过程已经结束,可以回到恢复之前的状态了,也即再次进入拥塞避免状态。

快速重传算法首次出现在4.3BSD的Tahoe版本,快速恢复首次出现在4.3BSD的Reno版本,也称之为Reno版的TCP拥塞控制算法。

可以看出Reno的快速重传算法是针对一个包的重传情况的,然而在实际中,一个重传超时可能导致许多的数据包的重传,因此当多个数据包从一个数据窗口中丢失时并且触发快速重传和快速恢复算法时,问题就产生了。因此NewReno出现了,它在Reno快速恢复的基础上稍加了修改,可以恢复一个窗口内多个包丢失的情况。具体来讲就是:Reno在收到一个新的数据的ACK时就退出了快速恢复状态了,而NewReno需要收到该窗口内所有数据包的确认后才会退出快速恢复状态,从而更一步提高吞吐量。

SACK就是改变TCP的确认机制,最初的TCP只确认当前已连续收到的数据,SACK则把乱序等信息会全部告诉对方,从而减少数据发送方重传的盲目性。比如说序号1,2,3,5,7的数据收到了,那么普通的ACK只会确认序列号4,而SACK会把当前的5,7已经收到的信息在SACK选项里面告知对端,从而提高性能,当使用SACK的时候,NewReno算法可以不使用,因为SACK本身携带的信息就可以使得发送方有足够的信息来知道需要重传哪些包,而不需要重传哪些包。

你也可以参考下<计算机网络>和都有介绍

怎么计算网址的rtt

因此,一条1500字节的信息需要两个 TCP 数据包。HTTP/2 协议的一大改进, 就是压缩 HTTP 协议的头信息,使得一个 HTTP 请求可以放在一个 TCP 数据包里面,而不是分成多个,这样就提高了速度。

计算网址的rtt的方法是:

LINUX 64

1、首先,先采样RTT,记下最近好几次的RTT值。

-w Timeout 指定等待“ICMP 已超时”或“回响答复”消息(对应于要接收的给定“回响请求”消息)的时间(以毫秒为单位)。如果超时时间内未收到消息,则显示一个星号 ()。默认的超时时间为 4000(4 秒 )。

2、然后做平滑计算SRTT( Smoothed RTT),公式为:(其中的 α 取值在0.8 到 0.9之间,这个算法英文叫Exponential weighted moving erage,中文叫:加权移动平均)SRTT = ( α SRTT ) + ((1- α) RTT)。

3、开始计算rtt。公式如下:rtt= min [ UBOUND, max [ LBOUND, (β SRTT) ] ]。

其中:UBOUND是的timeout时间,上限值、LBOUND是最小的timeout时间,下限值、β 值一般在1.3到2.0之间。

RTT往返时间是:

RTT(Round-Trip Time)往返时间在计算机网络中它是一个重要的性能指标。表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认,不包含数据传输时间)总共经历的时间。

RTT由三个部分决定:链路的传播时间、末端系统的处理时间、路由器的缓存中的排队和处理时间。其中前两个部分的值作为一个TCP连接相对固定。