AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 128799
Accepted
dbasnett
dbasnett
Asked: 2010-04-03 05:43:28 +0800 CST2010-04-03 05:43:28 +0800 CST 2010-04-03 05:43:28 +0800 CST

ICMP - TTL - 跟踪路由

  • 772

我在 Stack Overflow 上问了这个问题,然后认为这可能是更好的提问地方。

鉴于以下情况:

PC --- |aa RTR1 bb| --- |aa RTR2 bb| --- |aa RTR3 bb| ETC

|aa rtr bb| 中的每一个 意味着是具有两个端口aa和bb的路由器。

我的问题是这个。当您从 PC 进行跟踪路由时,哪个路由器端口地址应该响应超过传输消息中的生存时间?

我似乎记得被教导将路由器视为与端口一样多的部分,因此在我的场景中,当 aa 将数据包转发到 bb 并将 ttl 递减为 0 时,它将是 aa 端口的地址失败消息。我正在努力寻找确定的答案。

谢谢。

networking icmp ttl
  • 4 4 个回答
  • 862 Views

4 个回答

  • Voted
  1. Best Answer
    Zypher
    2010-04-03T06:41:06+08:002010-04-03T06:41:06+08:00

    无需过多讨论路由的工作原理。您只会看到来自“面向”您机器的界面的响应。

    因此,在您的示例中,TTL Exceeded 消息将始终来自“aa”接口之一。基本上处理数据包的逻辑发生在两个接口之间,然后任何响应或转发都发送到正确的接口。在您的情况下,将从“aa”发送一条 TTL 超出消息,因为这是返回您的机器的唯一方法。

    • 3
  2. Dom
    2010-04-03T06:00:07+08:002010-04-03T06:00:07+08:00

    确定的反应,也许不是,但在我所做的所有测试中都是如此。我认为路由器无法路由,因为 TTL 为空,所以在路由之前,发送 ICMP 数据包。所以它是路径中找到的第一个 IP。

    • 1
  3. Blissex
    2010-04-05T08:35:17+08:002010-04-05T08:35:17+08:00

    «RTR1 将响应端口 aa 的地址还是端口 bb 的地址»

    这完全是武断的,而且是一个有点愚蠢的问题。

    考虑一下 ICMP 通过端口“aa”进入但它实际上是针对端口“bb”的地址的情况:哪个应该是 ICM 回复中的源地址?“啊”?'bb'?或路由器获得的任何其他地址?

    »将路由器想象成与端口一样多的部分»

    在 TCP 设计中,节点(路由器或计算机)没有地址,只有接口有地址,但 ICMP 是由节点而不是接口完成的。这带来了相当多的歧义。它们实际上是故意的。请注意,Linux TCP/IP 堆栈的设计有些不同,但它有偏差。

    • 0
  4. Prof. Moriarty
    2010-04-05T08:52:50+08:002010-04-05T08:52:50+08:00

    正如其他人指出的那样,大多数时候路由器会从“aa”接口回答。由于我还不能发表评论,我将在这里补充以前的答案。如果您想节省一些 IP 地址,并且您对单独 ping 接口不感兴趣,也可以在路由器之间的点对点链路上具有未编号的接口。在这种情况下,您可以通过分配给环回接口的 IP 地址访问路由器,该地址也是您在 traceroutes 中看到的地址。

    然而,这是一个例外情况,并不是一个特别好的操作实践。

    • 0

相关问题

  • 10 Gb 网络:在光纤和双绞线之间做出决定

  • 如何在 Windows Server PPTP VPN 中自动为客户端分配路由?

  • 为什么我的电脑休眠时 VPN 连接会中断?[关闭]

  • 有什么软件可以模拟局域网?

  • 带宽利用工具?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve