网络路径跟踪

部署运行你感兴趣的模型镜像

最近对网络数据的传输路径感兴趣,在Windows上用tracert命令进行了一次追踪,这个命令的工作方式是这样的:

当运行 tracert 命令时,你的电脑会发送第一个ICMP数据包到目标地址,这个数据包的 “Time to Live” (TTL)值被设置为1。TTL是一种防止数据包在网络中无限循环的机制。每当数据包经过一个路由器,ICMP数据包的TTL都会减1,如果TTL变为0,那么这个数据包就会被丢弃,同时这个路由器会发送一个ICMP消息回发送者,告诉它数据包已经被丢弃。

tracert利用ICMP的这个特性。将初始的TTL设置为1,意味着这个数据包在经过第一跳后就会被丢弃,然后第一跳的路由器会返回一个ICMP消息。接收到这个消息后,tracert就知道了第一跳的地址和经过的时间。然后,tracert再发送一个TTL为2的数据包,进而得知第二跳的信息,以此类推,直到到达目标。通过这种方法,tracert就能得知数据包经过的每一跳的信息。

就这样,tracert命令会逐步“探索”出从源到目的地的路由路径。所以,tracert展示的路由路径是在运行命令时数据包经过的路由。

但是网络是动态变化的,会不会在跟踪的时候,tracert前一次发送的ICMP数据包所走的路径和后一次完全不同呢?

这也是有可能的,不过我跟踪overleaf.com的时候这种状况并不多见,短时间内重复测试同一条tracert命令,返回结果基本相同,说明网络状况还挺稳定的。

但跟踪google.com的时候,网络状况变化复杂很多,短时间内重复执行tracert,解析出的Google服务器地址往往不同。因为Google有大量的服务器和数据中心分布在全世界各地。当你尝试访问google.com时,DNS服务器不会总是解析为同一个IP地址,而是可能会提供最佳的、基于你的地理位置和Google网络状况的IP地址。

tracert命令解析google.com得到对应的IP地址后,将在整个过程中使用这个IP。换句话说,即使在tracert命令运行期间,google.com被解析为不同的IP地址,也不会更改初始的目标,即第一次解析出的IP地址仍是tracert命令的目标。

下面是一次跟踪overleaf.com的结果:

PS C:\Users\Administrator> tracert overleaf.com

通过最多 30 个跃点跟踪
到 overleaf.com [34.120.52.64] 的路由:

  1     4 ms     2 ms     1 ms  10.100.0.1
  2     *        *        *     请求超时。
  3    24 ms     2 ms     2 ms  65.45.17.58.adsl-pool.jx.chinaunicom.com [58.17.45.65]
  4     2 ms     2 ms     1 ms  189.194.248.220.adsl-pool.jx.chinaunicom.com [220.248.194.189]
  5    16 ms    15 ms    16 ms  45.1.34.171.adsl-pool.jx.chinaunicom.com [171.34.1.45]
  6     *       23 ms    22 ms  219.158.106.169
  7    27 ms    31 ms    31 ms  219.158.18.70
  8    26 ms    31 ms    31 ms  219.158.16.82
  9   215 ms   215 ms   213 ms  219.158.117.2
 10   203 ms   202 ms   202 ms  12.246.229.121
 11     *        *        *     请求超时。
 12     *        *        *     请求超时。
 13     *        *        *     请求超时。
 14   196 ms   194 ms   196 ms  32.130.104.53
 15   280 ms   292 ms   295 ms  12.255.10.180
 16   283 ms   276 ms   298 ms  64.233.174.209
 17   291 ms   280 ms   264 ms  209.85.249.177
 18   296 ms   295 ms   282 ms  64.52.120.34.bc.googleusercontent.com [34.120.52.64]

跟踪完成。

直接看不太能提取出有用的信息,这个时候就需要交给GPT了:

我:可以针对这次跟踪结果,解读一些有用的信息吗?

GPT:当然可以,我们来逐步分析一下这个 tracert 的结果。

  1. 第1跳:IP地址 10.100.0.1,延迟时间很短,这通常是你的本地网络的网关,可能是你的路由器或者modem。
  2. 第2跳:请求超时,可能是由于这个节点忽略了我们的ICMP请求,或者节点过于繁忙无法及时回复。
  3. 第3-5跳:看起来像是中国联通的广域网络设备(chinaunicom.com),这可能提供了将你的数据包从你的本地网络连接到更广泛的Internet的服务。
  4. 第6-8跳:看起来像是互联网服务供应商(ISP)的核心网络设备,能看出数据包经过了ISP的内部网络。
  5. 第9跳:延迟时间大幅增加,这可能是你的数据包离开了中国,开始进入国际网络。
  6. 第10跳:IP地址变成了12开头,可能是进入了AT&T的网络(AT&T的网络IP通常以12开头),现在你的数据包在国际网络中传输。
  7. 第11-13跳:请求超时,可能是选择忽略或者阻止对我们ICMP请求的设备。
  8. 第14-17跳:延迟开始稳定,看起来你的数据包已经接近目标网络了。
  9. 第18跳:IP地址对应的域名为bc.googleusercontent.com,这表明数据包已经到达Google的网络,最终到达IP为 34.120.52.64 的目的地服务器。
    注意,这里所有的设备和网络分析都是基于IP地址的推测,最准确的设备和网络信息由各自的网络管理员和ISP持有。
    总的来说,这个 tracert 命令展示了数据包从你的电脑到达 overleaf.com 的逐步路径,并展示了在每个阶段可能导致延迟的设备或网络细节。这些信息可以帮助你更好地理解包括网络延迟、数据路径、网络瓶颈等概念。希望这些信息能对你有所帮助!

再贴一个google.com的跟踪结果和分析结果:

PS C:\Users\Administrator> tracert google.com

通过最多 30 个跃点跟踪
到 google.com [2404:6800:4012:2::200e] 的路由:

  1     4 ms     2 ms     3 ms  2001:250:6c04::2
  2     3 ms     3 ms     3 ms  2001:250:6c04::1
  3     2 ms     2 ms     1 ms  2001:250:6c01:fff2::1
  4    10 ms    10 ms    10 ms  2001:250:6c01:ffff::2e
  5    14 ms    13 ms    13 ms  2001:250:6c01:ffff::51
  6     *        *        *     请求超时。
  7    17 ms    16 ms    16 ms  2001:250:6c01:ffff::86
  8    16 ms    17 ms    17 ms  2001:250:6c01:ffff::2
  9    16 ms    16 ms    16 ms  cernet2.net [2001:da8:cb:11::1]
 10    18 ms    18 ms    18 ms  2001:da8:2:135::1
 11    28 ms    24 ms    30 ms  2001:da8:2:56::1
 12    31 ms    29 ms    29 ms  2001:da8:2:f::1
 13    38 ms    37 ms    37 ms  2001:da8:2:d::2
 14    47 ms    47 ms    47 ms  2001:da8:2:1::1
 15    48 ms    47 ms    47 ms  cernet2.net [2001:252:0:2::101]
 16    48 ms    47 ms    47 ms  cernet2.net [2001:252:0:10a::2]
 17    81 ms    82 ms    83 ms  google2-lacp-100g.hkix.net [2001:7fa:0:1::ca28:a10a]
 18    87 ms    81 ms    82 ms  2001:4860:0:e05::e
 19   104 ms   103 ms   103 ms  2001:4860::c:4001:2282
 20   103 ms   103 ms   214 ms  2001:4860::c:4003:2e3c
 21   104 ms   108 ms   103 ms  2001:4860::1:0:c726
 22   104 ms   103 ms   103 ms  2001:4860:0:1011::1
 23   102 ms   103 ms   104 ms  2001:4860:0:1::34c5
 24     *        *        *     请求超时。
 25     *        *        *     请求超时。
 26     *        *        *     请求超时。
 27     *        *        *     请求超时。
 28     *        *        *     请求超时。
 29     *        *        *     请求超时。
 30     *        *        *     请求超时。

跟踪完成。

GPT:这次我们进行的是IPv6地址的跟踪,原理与IPv4的跟踪是一致的,只是地址格式不同。以下是逐步分析:

  1. 第1-3跳:你正在使用的地方网络和路由器,这可从延迟的低度来看,几乎没有。
  2. 第4-5跳:看起来像是国内网络对你的数据包的处理,在这个过程中延迟有所增加,这可能是因为数据包正在经过更复杂的网络和设备。
  3. 第6跳:请求超时,原因可能多样,可能是对这种ICMP请求不回应,或者节点过于繁忙未能及时回应。
  4. 第7-9跳:数据包继续在国内网络中传输,可以看到跳数(路由器/设备数)增多,但延迟相对稳定。
  5. 第10-16跳:数据包仍在国内网络中,但延迟有所增加,可能是数据包在向境外移动的过程中。
  6. 第17-23跳:这是一个有趣的部分,数据包离开国内网络,进入了Google的网络环境,可以从IP地址的巨大变化中看出,也从延迟的显著增加中得出,此时数据包可能已经进入了海底光缆网络,方向可能是香港的数据中心。
  7. 第24-30跳:这些请求超时,可能是因为Google的内部网络设备选择不回应这些ICMP请求,或者数据包已经到达目标,traceroute 在尝试寻找不存在的下一跳。

总之,这次traceroute过程显示了你的数据包是如何从你的本地计算机一直到达google.com服务器的每一步,包括国内网络环境,海底光缆,以及Google的内部网络。值得注意的是,由于网络状况的动态性,结果可能在任何时间改变,以反映当前的网络状况。

如果你的网络开了TUN模式,那就是这样的了:

PS C:\Users\Administrator> tracert google.com

通过最多 30 个跃点跟踪
到 google.com [198.18.0.5] 的路由:

  1    <1 毫秒   <1 毫秒   <1 毫秒 198.18.0.5

跟踪完成。

无论你跟踪的是什么网站,都是类似的结果,仅用一跳。在TUN模式下,数据包被封装起来,并通过一个虚拟的网络隧道发送到目标服务器,而忽略了数据包原本会经过的所有网络节点。可以看到google.com的地址被解析成198.18.0.5,这是局域网的一个地址,它和我们的主机在同一个网络里。ICMP包并不会发送到google服务器,而是发送到198.18.0.5,所以一跳就完成了。其他所有域名的地址都会被解析为这类局域网地址,所以都仅需一跳。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### 卡尔曼滤波在无线传感器网络中实现路径跟踪的实验报告概述 卡尔曼滤波是一种递归的状态估计方法,广泛应用于目标跟踪、导航和控制等领域。在无线传感器网络(WSN)中,卡尔曼滤波可以用于路径跟踪问题,通过融合多个传感器节点的测量数据来估计目标的位置和轨迹[^1]。以下是对使用卡尔曼滤波在无线传感器网络中实现路径跟踪的实验报告或相关资料的详细分析。 #### 实验背景与目标 无线传感器网络中的路径跟踪问题旨在利用部署在网络中的传感器节点,实时监测并估计移动目标的位置和运动轨迹。卡尔曼滤波器因其高效的状态估计能力,在此类问题中具有显著优势。实验的目标是验证基于卡尔曼滤波的路径跟踪算法的有效性,并评估其性能。 #### 算法原理 卡尔曼滤波的核心思想是通过预测和更新两个步骤递归地估计系统的状态。在无线传感器网络中,每个传感器节点采集目标的位置信息,并将这些信息传输到中央处理节点进行融合。中央节点运行统一的卡尔曼滤波器,利用所有传感器的测量值对目标的位置和速度进行估计[^2]。 对于线性系统,标准卡尔曼滤波器可以直接应用;而对于非线性系统,则需要使用扩展卡尔曼滤波器(EKF)或无味卡尔曼滤波器(UKF)。具体选择取决于目标运动模型和传感器测量方程的特性[^3]。 #### 实验设计 实验通常包括以下几个方面: - **网络拓扑**:定义传感器节点的分布和通信范围。 - **目标运动模型**:假设目标遵循某种运动规律(如匀速直线运动或随机游走)。 - **传感器测量模型**:描述传感器如何获取目标的位置信息,以及测量误差的统计特性。 - **仿真工具**:常用Matlab或NS-2等工具进行仿真,验证算法性能[^5]。 #### 实验结果 实验结果表明,基于卡尔曼滤波的路径跟踪算法能够有效估计目标的运动轨迹,并准确确定目标的起始位置。此外,通过与集中式滤波架构的对比,可以进一步分析不同滤波方法的优劣。例如,集中式滤波虽然简单直观,但可能面临计算复杂度高和通信开销大的问题[^2]。 #### Matlab代码示例 以下是一个简单的Matlab代码示例,展示如何使用卡尔曼滤波进行目标位置估计: ```matlab % 初始化参数 dt = 0.1; % 时间步长 A = [1 dt; 0 1]; % 状态转移矩阵 H = [1 0]; % 观测矩阵 Q = eye(2) * 0.01; % 过程噪声协方差 R = 1; % 测量噪声协方差 x = [0; 0]; % 初始状态 P = eye(2); % 初始误差协方差 % 模拟目标运动 num_steps = 100; true_positions = zeros(num_steps, 1); measurements = zeros(num_steps, 1); for i = 1:num_steps true_positions(i) = i * dt; % 假设目标匀速运动 measurements(i) = true_positions(i) + randn() * sqrt(R); % 添加测量噪声 end % 卡尔曼滤波 estimates = zeros(num_steps, 1); for i = 1:num_steps % 预测步骤 x = A * x; P = A * P * A' + Q; % 更新步骤 K = P * H' / (H * P * H' + R); % 计算卡尔曼增益 x = x + K * (measurements(i) - H * x); P = (eye(2) - K * H) * P; estimates(i) = x(1); end % 绘制结果 figure; plot(1:num_steps, true_positions, 'b-', 'LineWidth', 2); hold on; plot(1:num_steps, measurements, 'g.', 'MarkerSize', 10); plot(1:num_steps, estimates, 'r--', 'LineWidth', 2); legend('真实位置', '测量值', '估计值'); xlabel('时间步'); ylabel('位置'); title('卡尔曼滤波路径跟踪结果'); ``` #### 结论 实验结果验证了卡尔曼滤波在无线传感器网络路径跟踪中的有效性。通过合理设计传感器网络拓扑和目标运动模型,可以显著提高路径跟踪的精度和鲁棒性[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值