Networking 发送请求时,哪个数据包将首先到达

Networking 发送请求时,哪个数据包将首先到达,networking,tcp,udp,dns,Networking,Tcp,Udp,Dns,正如一些人在其他论坛中提到的,面试官问了下面给出的问题。 我不知道确切的答案,但我会说HTTP请求?有什么建议和解释吗 想象一个用户坐在一台连接以太网的PC前,他打开了一个浏览器。他在地址栏中键入“www.google.com”,然后按enter键 现在告诉我以太网上出现的第一个数据包是什么 谢谢很有意思:)我刚刚通过电话分享了它: Client sends a SYN Server replies with a SYN,ACK Client sends an ACK Client sends

正如一些人在其他论坛中提到的,面试官问了下面给出的问题。
我不知道确切的答案,但我会说HTTP请求?有什么建议和解释吗

想象一个用户坐在一台连接以太网的PC前,他打开了一个浏览器。他在地址栏中键入“www.google.com”,然后按enter键

现在告诉我以太网上出现的第一个数据包是什么

谢谢

很有意思:)我刚刚通过电话分享了它:

Client sends a SYN
Server replies with a SYN,ACK
Client sends an ACK
Client sends an HTTP GET
(正如您在评论中提到的,第一个显然是DNS查找)

有趣:)我刚刚通过无线共享了它:

Client sends a SYN
Server replies with a SYN,ACK
Client sends an ACK
Client sends an HTTP GET

(正如您在评论中提到的,第一个显然是DNS查找)

没有保证总是正确的答案,但是有一些可能的可能性

如果客户端配置为,则第一个数据包将是一个UDP数据报,其中包含解析
www.google.com
为IP地址的数据包

如果客户端配置为,而浏览器尚未建立到DNS服务器的TCP连接,则第一个数据包将是到DNS的连接握手的一部分,因此答案将是
SYN
数据包首先离开网关

如果对浏览器进行了编码以保持与DNS服务器的长期TCP连接,并且假设DNS服务器允许该连接保持活动状态,则第一个数据包将是一个DNS查询,通过现有连接发送到该DNS服务器

最后,如果浏览器最近访问过
www.google.com
,并且是为了对DNS查询结果进行智能本地缓存而构建的,那么第一个数据包将是一个SYN,用于建立与google web服务器的新连接


如果你想油嘴滑舌,但绝对准确,放下一层作为答案,说:“第一个包将是一个以太网帧,其中包含一个有效负载,它支持浏览器为www.google.com服务所需的任何更高级协议”。公平地说,问题是关于以太网层…

没有保证总是正确的答案,但有一些可能的可能性

如果客户端配置为,则第一个数据包将是一个UDP数据报,其中包含解析
www.google.com
为IP地址的数据包

如果客户端配置为,而浏览器尚未建立到DNS服务器的TCP连接,则第一个数据包将是到DNS的连接握手的一部分,因此答案将是
SYN
数据包首先离开网关

如果对浏览器进行了编码以保持与DNS服务器的长期TCP连接,并且假设DNS服务器允许该连接保持活动状态,则第一个数据包将是一个DNS查询,通过现有连接发送到该DNS服务器

最后,如果浏览器最近访问过
www.google.com
,并且是为了对DNS查询结果进行智能本地缓存而构建的,那么第一个数据包将是一个SYN,用于建立与google web服务器的新连接


如果你想油嘴滑舌,但绝对准确,放下一层作为答案,说:“第一个包将是一个以太网帧,其中包含一个有效负载,它支持浏览器为www.google.com服务所需的任何更高级协议”。公平地说,问题是关于以太网层…

严格地说,在完全空白的情况下,发送的第一个数据包将是来自客户端PC的ARP广播请求(“谁有?”),试图发现其默认网关(或DNS服务器,如果该服务器与客户端位于同一子网)的MAC地址.

严格地说,在完全空白的情况下,发送的第一个数据包将是来自客户端PC的ARP广播请求(“谁有?”),试图发现其默认网关(或其DNS服务器的MAC地址,如果该网关与客户端位于同一子网上)。

我猜是一个
ping
(ICMP)数据包。不过,我真的不知道。我想,首先它会将名称转换为ip地址,与我猜的
ping
(ICMP)数据包完全相同。但我真的不知道。我猜,首先它会将名称转换为ip地址,完全是@Jack-throuse的副本,完全是空白的。浏览器不会保持与DNS服务器的长期TCP连接。进入第二层并不是油嘴滑舌,而是正确的答案。在L2->L3映射建立之前,L3数据包无法交换。不过,我敢打赌,面试官并没有询问以太网层。我敢肯定他们是在测试TCP和/或UDP的知识。你怎么可能猜得到呢?FWIW,如果我问一个潜在的网络管理员或网络应用程序程序员这个问题,我希望他们能深入到L2。这是一个有根据的猜测,仅此而已,这是基于这样一个事实:有人问这个问题并提到浏览器,可能是想了解浏览器是如何构建的。由于浏览器代码只直接处理第3层及以上的层,这意味着问题可能与这些层有关。我同意你的观点,如果这是一次网络管理员访谈,受访者最好也了解他们的L2事实。浏览器不会保持与DNS服务器的长期TCP连接。进入第二层并不是油嘴滑舌,而是正确的答案。在L2->L3映射建立之前,L3数据包无法交换。不过,我敢打赌,面试官并没有询问以太网层。我敢肯定他们是在测试TCP和/或UDP的知识。你怎么可能猜得到呢?FWIW,如果我问一个潜在的网络管理员或网络应用程序程序员这个问题,我希望他们能深入到L2。这是一个有根据的猜测,仅此而已,它是基于这样一个事实,即有人问这个问题,并提到一个浏览器,可能是想了解