大家好,我对动态和静态 IP 概念有点困惑。什么是 dhcp 以及 DHCP 实际上做什么。请给我提供一些关于 IP、端口和 DHCP 的想法。
答案1
以下是用外行人能理解的解释(我希望你能理解这些概念):
计算机需要 IP 地址来区分彼此并相互通信。这些地址可以在每台 PC 上手动配置(这在大型网络上是一项烦人的任务)或自动分配。
后者是通过使用所谓的 DHCP 服务器来实现的(见Andrey 的维基百科链接)。通俗地说:每台需要分配号码的 PC 都会向网络“喊话”:“你好,我在这里。请给我一个地址!”(谷歌搜索:广播)。DHCP 服务器会注意到这一点,并向喊话的 PC 发送一个可以分配给自己的 IP 地址。
端口与 DHCP 无关。想象一下一台想要与另一台 PC(服务器)通信的 PC。您有一个可用于连接的 IP(手动分配或通过 DHCP 分配)。如果您想与该服务器上的两个不同服务/程序通信怎么办?您需要有不同的端点(= 端口)供每个服务监听。您需要多个地址!
想象一下端口是某种 IP 的端点/IP 多路复用器。每台 PC 可以有多个应用程序监听不同的端口。
当您连接到服务器时,您需要选择要连接的端口(例如,对于 Web 服务器,通常是端口 80,用于发送电子邮件的端口 25 等)。
Andrew S. Tanenbaum 写了一本名为《计算机网络》的好书,书中详细且通俗易懂地解释了这一切。但请注意:这些都是相当大的话题!所以这本书也很厚。但恕我直言,这本书值得一读。
答案2
将其转化为现实世界的例子,我们假设我们是计算机。
在成长过程中,您可能有一个静态地址 - 您父母家的地址。如果您是网络中的计算机,则该地址将被称为“互联网协议地址”或“IP 地址”。
上大学后,您可能会搬到宿舍。如果您到了那里,其中一位负责人会为您分配一个房间。因此,您的(本地)地址是动态配置的,甚至可能每年都会更改。如果您在学校待的时间更长,有一天您甚至可能要负责分配房间。如果您是一台计算机,整个过程将遵循“动态主机配置协议”。分配房间(或本地 IP 地址)的工作将由“DHCP”程序(在这种情况下为 = 服务器 = 守护进程)完成。此外,可能有一些地址(宿舍中的房间)以静态方式分配(长期住户、厨房的位置......)。通常,您的房间号将提交给某种信息台/邮件服务。用计算机术语来说,这将是(本地)域名服务 (DNS)。如果有人想知道您的房间号,可以向此人询问。
一旦他们知道了你的 (IP) 地址,你就需要知道如何进行通信。你可以交谈、写信、耳语、在门下塞纸条……这基本上就是“应用程序”,而彼此通信的方式就是计算机术语中的“套接字”。
从逻辑上讲,将这种翻译应用到现实世界中可能会出现一些小错误。但你应该明白了……
除此之外,Andrew Tanenbaums 计算机网络(亚马逊链接) 从介绍章节到非常详细的信息 - 如果您有空闲几周来学习网络,那就从这一章开始吧......
答案3
DHCP 服务器在端口 67 上侦听请求。它将侦听一个或多个主机地址和广播地址 255.255.255.255。客户端将侦听端口 68,如果没有租用的 IP 地址,则使用广播地址,否则使用广播地址。
DHCP 服务器将配置一系列可发送给客户端的参数。它还将具有一系列可分配给客户端的地址。这些地址可能是固定地址、一系列动态(可变)地址或两者的混合。固定地址将根据客户端提供的标识(通常是 MAC 地址)进行分配。客户端将在一段时间内获得该地址的租约。服务器和客户端都将跟踪有效租约。
如果客户端没有租约,它将在广播地址上发出 Discover 请求。然后,一个或多个服务器将提供服务。客户端将向服务器请求地址,通常还会请求多个选项(如果有租约,则使用最后一个选项)。此服务器通常会提供地址、请求的选项以及可能的一些附加选项。如果服务器没有地址,它将提供适当的拒绝。如果客户端接受地址,它将发送一条 Inform 消息,询问本地选项。
当租约到期时,客户端将直接向服务器请求续订。它还可以通过发送适当的消息来释放其地址。
这些选项可以包括服务器地址、协议选项和名称。最重要的是,名称服务器和路由器地址允许客户端访问互联网。
详细信息由以下机构提供RFC2131。这本书读起来相当容易。