当前位置:  开发笔记 > 编程语言 > 正文

开始浏览时要发送的第一个数据包

如何解决《开始浏览时要发送的第一个数据包》经验,为你挑选了2个好方法。

想象一下,用户坐在以太网连接的PC上.他打开了一个浏览器.他在地址栏中输入"www.google.com"并点击进入.

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

我在这里找到了这个问题:关于套接字编程和多线程的访谈问题

由于我不是网络专家,我想听听答案(我认为这是"它取决于";)).

使用像Wireshark这样的工具,我显然可以检查自己的计算机行为.我想知道我看到的数据包(例如ARP,DNS,VRRP)在每个以太网配置中是否相同(它依赖于操作系统?驱动程序?浏览器甚至:)?)以及哪些条件它们出现了.在数据链路层,它是否可能依赖于物理网络(连接到集线器/交换机/路由器)?



1> Alnitak..:

谈论使用ARP查找DNS服务器的答案通常是错误的.

特别是,使用ARP 永远不会对网外IP地址进行IP地址解析,并且路由器不负责回答这样的ARP查询.

离线路由由客户端机器完成,知道哪些IP地址在它所连接的本地子网上.如果请求的IP地址不是本地的,则客户端机器参考其路由表以找出将数据包发送到哪个网关.

因此,在大多数情况下,发出的第一个数据包将是一个ARP请求,用于查找默认网关的MAC地址(如果它尚未在ARP缓存中).

只有这样才能通过网关发送DNS查询.在这种情况下,数据包与IP目标字段中的DNS服务器的IP地址一起发送,但是在以太网数据包上使用网关的MAC地址.



2> Aaron Maenpa..:

你总是可以下载wireshark并看一看.


虽然破坏了乐趣.

假设没有缓存主机的IP地址,并且没有缓存DNS服务器的MAC地址,首先要发送的是广播ARP消息,试图找出DNS服务器的MAC地址(路由器将响应自己的地址).

接下来,将使用DNS解析主机名.然后使用ARP解析返回的IP地址(路由器将再次使用自己的地址进行响应),最后,实际将发送HTTP消息.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有