想象一下,一位用户坐在一台连接以太网的 PC 前。他打开了一个浏览器。他在地址栏中输入“www.google.com”并按回车键。
现在告诉我以太网上出现的第一个数据包是什么。
我在这里发现了这个问题:Interview Questions on Socket Programming and Multi-Threading
因为我不是网络专家,所以我想听听答案(我假设是“视情况而定”;))。
使用像 Wireshark 这样的工具,我显然可以检查我自己的计算机行为。我想知道我看到的数据包(例如 ARP、DNS、VRRP)在每个以太网配置中是否相同(它取决于操作系统吗?驱动程序?浏览器甚至:)?)以及哪些是条件他们出现了。在数据链路层,它甚至可能依赖于物理网络(连接到集线器/交换机/路由器)吗?
最佳答案
关于使用ARP寻找DNS服务器的答案一般都是错误的。
特别是,从不使用 ARP 完成网外 IP 地址的 IP 地址解析,并且路由器不负责回答此类 ARP 查询。
网外路由由客户端 机器完成,它知道哪些 IP 地址在它所连接的本地子网上。如果请求的 IP 地址不是本地的,则客户端计算机会引用其路由表以找出将数据包发送到哪个网关。
因此在大多数情况下,第一个发送的数据包将是一个 ARP 请求,用于查找默认网关的 MAC 地址,如果它不在 ARP 缓存中的话。
只有这样它才能通过网关发送 DNS 查询。在这种情况下,发送的数据包在 IP 目标字段中带有 DNS 服务器的 IP 地址,但在以太网数据包中带有网关的 MAC 地址。
关于browser - 开始浏览时发送的第一个数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/666864/