【问题标题】:Static and Dynamic Ip address problems静态和动态IP地址问题
【发布时间】:2016-07-25 15:27:22
【问题描述】:

假设我们在个人计算机上托管,而服务器程序是用 Java 编写的。

1.如果我们使用静态IP地址托管服务器,那么这是否意味着我们可以更换机器并将其替换为其他机器,重新启动机器多次,并且我们的客户端在系统完成后仍然能够与我们通信背部? 2.如果我们使用动态IP地址托管服务器,那么只需重新启动一次机器,我们就必须告诉那里的每个客户端新的IP地址是这个吗? 3.不重启机器,动态IP地址会改变吗?

【问题讨论】:

    标签: java networking server ip static-ip-address


    【解决方案1】:

    1:是的,如果服务器有一个静态 IP,客户端将始终能够依靠该 IP 地址的服务器。

    2:很可能,是的。在许多网络中,DHCP 服务器会将相同的 IP 返回给已重新启动的计算机,但您当然不应该指望它。

    3:是的 - 动态分配的 IP 地址有一个“TTL” - 一个生存时间。这可能是很长一段时间(几周或更长时间),但它们仍然可能过期和改变。大多数情况下,机器会获得相同的 IP,但同样,您不应该指望它。

    【讨论】:

      【解决方案2】:
      1. 是的,静态IP地址意味着它是固定的。当然,整个系统还有更多内容,因为 IP 可以解析为 MAC 地址。尽管如此,静态 IP(假设它只在网络上一次)意味着任何具有该 IP 的机器都会响应。因此客户端始终可以连接到该 IP 地址。

      注意:这不是一个非常友好的方式。

      1. 仅仅因为某物具有“动态”IP 地址并不一定意味着它每次都会改变。使用 DHCP,每次都可以将相同的 IP 地址分配给相同的 MAC 地址。这比将 IP 地址硬编码到机器上要好得多。

        此外,您确实不应该让您的客户使用 IP 地址进行连接。他们应该通过 DNS 中的名称查找机器。您可以将 DNS 查找协调到 DHCP,因此机器除了解析主机名之外不需要做任何事情。

        但是,就您的问题而言,如果一台机器使用 DHCP 并且每次都没有收到相同的 IP 地址,并且您的客户端通过 IP 地址连接,那么在每次新分配时,客户端都需要新的 IP 地址。

      2. 即使机器没有重新启动,它的 IP 地址是否更新是由 DHCP 服务器控制的策略。通常,IP 地址有更新时间。不用多说,在 DHCP 会话期间客户端可能会请求相同的 IP 地址,但是否分发相同的 IP 地址取决于服务器。相反,只要 DHCP 缓存是最新的,大多数服务器配置为将相同的 IP 地址分发给给定的 MAC 地址。这完全是一个政策决定。

      不过,归根结底,您似乎正试图将客户端与服务器的 IP 地址联系起来,这不是一个好的策略。使用 DNS 并让客户端解析主机名是一种更好的策略。如果我错误地推断出您的意图,我深表歉意。

      注意:我使用 DHCP 作为分配动态 IP 地址的方式。您可能会使用其他策略,但我认为这个概念是相同的。

      【讨论】:

      • 1.为智能手机或平板电脑分配或更新动态 IP 地址时是否遵循相同的程序?2. 3G/4G 网络中的 IP 地址分配与此有何不同?
      • 1.是的——每个 tcp/ip 设备都根据其 MAC 获得一个 IP 地址。有一些服务器分发 IP 地址,并且 IP 地址与 MAC 相关联。无论是移动设备、IPv6 设备、汽车还是电话,都有一些背景分配。我不是蜂窝通信人员,所以我不知道实际是如何处理的,但从概念上来说并没有什么不同。但这些通常是客户端,而不是服务器。
      猜你喜欢
      • 2016-08-27
      • 2020-04-26
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 2021-06-15
      相关资源
      最近更新 更多