路由器是否总是广播“我在这里”(例如,每个时间段)并且计算机侦听或路由器侦听并且一旦计算机广播“这里有路由器吗?” 它有反应吗?这听起来像一个愚蠢的问题,但我找不到答案。虽然我知道当计算机已经知道路由器的存在时,它会首先请求 IP 地址。
电脑如何检测路由器?
看看您的问题,您似乎混淆了 DHCP 和路由。
需要明确的是,它们都完成不同的任务,实际上彼此没有任何关系。DHCP 是一种为客户端动态分配 IP 的方法。路由允许您从一个网络到达另一个网络。
回答您的问题。您的计算机可以通过两种方式知道网络上有路由器。要么是因为您手动分配了具有默认网关(默认网关是路由器)的 IP 地址/子网掩码,要么是因为计算机已设置为通过 DHCP 请求 IP,并且在它从服务器收到的 DHCP 报价中,它包含一个客户端使用的默认网关。
客户端不会尝试与路由器进行任何通信,直到它配置了 IP 地址和默认网关(再次手动或通过 dhcp)。然后,计算机将查看自己的 IP 地址和子网掩码,以确定它尝试与之通信的 IP 地址是否在其本地网络上。如果是,它将尝试将数据直接发送到设备,如果不是,则它将查看其配置的默认网关(路由器)并将其发送到那里。然后路由器会将流量发送到目的地,因为它有一条路由,或者发送到另一个可能知道目的地网络所在位置的路由器。
使用 IPv4,计算机并不真正了解路由器。主机将有一个已配置的网关,它将向该网关发送以不同网络为目的地的任何流量。网关可能是路由器,但不一定。网关可以手动配置,也可以通过 DHCP 分配。在手动或动态分配网关之前,主机没有配置的网关。这意味着在分配一个网络之前,它无法与不同的网络通信。
另一方面,IPv6增加了ND(Neighbor Discovery),ND的一部分包括RA(Router Advertisements)。路由器可以配置为通告它们的存在和本地网络前缀。这允许 IPv6 主机在没有 DHCP 的情况下自行配置,尽管有一个适用于 IPv6 的 DHCP 版本。
现代以太网控制器具有链路状态检测功能。他们可以检测何时建立到其以太网端口的链接。
IPv4 和 IPv6 的情况略有不同。首先是 IPv4 方案。
当以太网电缆插入时,操作系统通过链路状态检测来检测到这一点。如果接口配置为 DHCP,则客户端将发出 DHCP 请求。在典型的家庭/小型企业网络中,路由器将运行 DHCP 服务器,该服务器将为客户端分配一个 IP 地址,并告诉客户端要使用的子网掩码、默认网关和 DNS 服务器。在较大的网络中,路由器和 DHCP 服务器可能位于不同的设备上。
如果没有找到 DHCP 服务器,客户端可能会继续尝试和/或它可能会使用“自动私有 IP 寻址”分配本地 IP。
IPv6 稍微复杂一些。与 IPv4 节点不同,IPv6 节点总是有一个它们自己分配的链接本地地址。对于 Internet 访问,他们需要全局范围地址和相关设置。IPv6 自动配置有三种主要的可能性。
- 仅 RA。路由器发出通告,告诉客户端链路上的前缀是什么以及路由器向哪些网络提供路由(如果适用,包括默认网关)。广告被发送到链路上的所有 IPv6 节点(这在技术上被归类为多播,但实际上它是 IPv6 最接近广播的东西)并通知客户端他们应该使用的前缀和路由器的地址。客户端可以发出一个请求,以提示 RA 比路由器发送的时间早。客户端根据前缀构建自己的 IPv6 地址。较旧的系统使用基于其 MAC 地址的单个地址,具有隐私扩展的更现代系统将使用多个短期地址。不幸的是 RA 不提供 DNS 服务器配置,
- 具有无状态 DHCPv6 的 RA。此处的寻址由 RA 处理,如上所述,但 DNS 服务器详细信息(以及可能的其他不太重要的配置)由 DHCP 服务器分发以响应客户端请求。
- 有状态的 DHCPv6,这很像 IPv4 的 DHCP。