在构建数据包期间,您的计算机必须首先使用域名系统解析任何使用的主机名(例如 google.com) 。然后,您的计算机将拥有目标 IP 地址,并且您知道将数据包发送到哪里,但不知道路由。
为了确定此信息,每个路由器都维护路由表,然后使用一个或多个协议来确定数据包的路径。通常,对于小型办公室和家庭,使用的协议是RIPv2。对于最简单的设置,只有一个路由 -默认路由,它将通过防火墙/路由器的默认网关路由流量。此时,您将到达一个 ISP 路由器/电缆调制解调器。这些通常会通过类似的方法将您转发到使用BGP 协议的大型路由器。这是一种更复杂的路由方法,其中维护了大型路由表,这些路由指向 ARIN等公司分配的大型公共子网到指定的路由器。在 BGP 协议中,这些路由由对等体更新并过期并定期刷新。对于小规模和大规模之间的路由(例如,在大型办公室或校园或 ISP 内,可以使用EIGRP或OSPF等替代协议
当数据包离开您的路由器时,源地址将更改为您路由器的公共 IP 地址。因此,当数据包到达目的地时,接收服务器只需响应您的路由器地址。然后由您的路由器来跟踪和维护有状态的连接——即哪个源 IPaddress:port 和目标 IPaddress:port 组合相互通信。这些连接的创建、寿命和拆除由您的路由器根据其防火墙规则、NAT 策略和其他防火墙设置来维护。
在较低级别上,网络设备维护 ARP 表,其中哪些 IP 地址应发送到与维护该表的设备相连的哪个 MAC 地址。例如,对于家用路由器,它知道将数据包发送到您的工作站或笔记本电脑的 MAC 地址,而对于所有其他流量,它知道将数据包发送到您的电缆调制解调器或 ISP 路由器。要查找以前从未见过的地址,会广播ARP 探测并用于填充表。这只会告诉每个设备它是下一跳,并且 ARP 对下一个设备(通常)没有可见性。(例如,您的工作站不会知道您的电缆调制解调器/ISP 路由器的 MAC 地址。只有您的路由器/WAP 会知道。