ping通www.baidu.com的完整过程。

ping通www.baidu.com的完整过程。

用tcpdump抓包和wireshark软件分析抓到的包,通过抓到的包、自己的知识储备,结合网络知识分析ping程序的网络完整过程。

1、主机查找本地系统Hosts文件的DNS缓存,如果存在www.baidu.com对应的IP,则获取IP;

2、若本地系统没有对应IP,主机操作系统生成一个DNS查询报文,将字符串www.baidu.com放入DNS报文段中。该DNS报文段被放置于53号(DNS服务器)目的端口的UDP报文段。该UDP报文则被放入具有IP目的地址(在网络初始化阶段DHCP ACK返回的DNS服务器地址)和源IP地址的IP数据报中;

3、主机将包含DNS请求报文的数据报放入一个以太网帧中。该帧将发送(在链路层寻址)到虚拟机网络中的网关路由器。网络初始化时知道了虚拟机局域网的网关路由器的IP地址,但是仍不知道该网关路由器的MAC地址,主机将使用ARP协议;

4、主机生成一个具有目的IP地址的ARP查询报文,将该ARP报文放置在一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中并向交换机发送该以太网帧,交换机将该帧交付给所有连接的设备,包括网关路由器;

4、网关路由器接收到包含该ARP查询报文的帧,发现在ARP查询报文中目标IP地址匹配接口的IP地址,网关路由器将准备一个ARP回答,指示该接口的MAC地址对应目标IP地址。它将ARP回答放在一个以太网帧中,目的地址为主机MAC地址,并向交换机发送该帧,交换机向主机发送该帧;

5、主机接收包含ARP回答的帧,并从ARP回答报文中抽取网关路由器的MAC地址;

6、主机向交换机发送2中包含DNS查询报文的帧,交换机将该帧发送给网关路由器

7、网关路由器接受该帧并抽取包含DNS查询的数据报。路由器查找该数据报的目的地址,并根据其转发表(根据自身域内协议和英特网域间协议BGP填写)决定该数据报最佳转发链路,经过数个路由器重复网关路由器的过程,最终到达DNS服务器。DNS服务器抽取出DNS查询报文,在数据库中查找www.baisu.com及其IP地址的DNS源记录。该DNS服务器形成一个包含这种主机名到IP地址映射的DNS回答报文,并将该报文放到UDP报文段中,报文段放入寻址到主机的IP数据报中,反向转发到主机。

8、若DNS服务器不存在www.baidu.com的记录与其对应的IP地址,则本地DNS服务器将主机报文发送到根DNS服务器,根服务器匹配com后缀并向本地DNS服务器返回负责com的TLD的IP地址列表。本地服务器再次向列表的TLD DNS服务器之一发送请求,该TLD服务器利用权威DNS服务器的Ip地址进行响应,最后本地DNS服务器直接向权威服务器发起请求,权威DNS服务器将返回响应报文,逐层返回给本地主机。至此,主机获得www.baidu.com对应的IP地址。

9、主机通过www.baidu.com的IP地址的子网掩码判断出该地址跨网段并将ICMP类型8编码0的请求回显查询报文封装成IP数据报,源地址为主机的IP地址,目的地址时域名对应的IP地址。主机再将该IP数据报封装成MAC帧,源地址是主机的MAC地址,目的地址是网关路由器的MAC地址

10、主机发送MAC帧,经过交换机发送到网关路由器,路由器解封装该帧,发现MAC目的地址是自己,而IP目的地址不是自己,将帧的MAC源地址改为自己的MAC地址,根据路由协议计算出最短路径的下一个网关路由器的MAC地址(若不知道MAC地址,则如同3、4那样经由ARP协议获取下一个网关的MAC地址),作为该帧的目的地址,直至最后一个网关路由器接收到该帧,找到子网内IP地址符合目的IP地址的主机www.baidu.com,将该IP数据包转发给该主机。主机接受ICMP请求报文后,生成一个ICMP类型0编码0的回显应答报文,经过多层封装,由ARP协议的相互学习性获得的MAC地址,经由多个网关路由器,转送到本地主机,本地主机接受到该ICMP报文后,证明两个主机ping通。

ICMP协议:ICMP是TCP/IP协议族的一个子协议,工作在网络互联层(网络层)。ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

利用nslookup能够查询URL对应的IP地址,并能查看DNS服务器的地址

用tcpdump抓包和wireshark软件分析抓到的包

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 不好意思,我不能实际执行 "ping" 指令,但是如果你在命令行中输入 "ping www.baidu.com" ,它会试图对 "www.baidu.com" 的 IP 地址进行网络测试,以确定它是否可以到达该主机并测量从您的计算机到该主机的网络延迟。 ### 回答2: ping命令是计算机网络中常用的用于测试到目标主机之间的网络连接的命令。当执行ping www.baidu.com时,电脑会发送一个ICMP包到百度服务器。 百度服务器会接收到这个包,并返回一个响应消息给我们的电脑。ping命令执行后,我们可以得到很多有关网络连接的信息,如目标主机的IP地址、包的来回时间、丢包率等信息。 执行ping www.baidu.com命令可以测试我们是否能够成功与百度服务器进行信。如果成功,我们可以得到ping的结果,其中包括目标主机的IP地址和各个ICMP包的往返时间。如果ping不成功,则可能表示目标主机无法与我们的电脑进行正常的信,这可能是由于网络故障、服务器故障或防火墙的设置等原因造成的。 过执行ping命令,我们可以快速检测网络是否正常工作,并根据结果判断网络连接的质量和稳定性。在网络故障排除过程中,ping命令是常用的工具,可以帮助我们找到问题所在,并采取相应的解决措施。 总之,ping www.baidu.com命令是用于测试与百度服务器的网络连接的命令,过执行ping命令可以得到网络连接的相关信息,帮助我们检测网络连接和排除故障。 ### 回答3: ping www.baidu.com 是一种用于测试网络连接是否畅的命令。当我们执行这个命令时,计算机会向百度的服务器发送一个小的数据包,并等待服务器返回一个响应。这个过程可以帮助我们判断我们与百度服务器之间的网络连接质量。 首先,计算机会将一个小的数据包发送给百度服务器。这个数据包中包含了一些有关计算机的信息,以及一个时间戳,用于计算来回传输数据包所需的时间。百度服务器接收到数据包后,会验证数据包中的信息,并将一个相同大小的数据包发送回计算机。计算机在收到数据包后,会计算往返传输该数据包所需的时间,并将该时间显示在命令行界面上。 常情况下,我们希望看到不多于几十毫秒的ping值。如果我们看到的ping值较高,比如几百毫秒或者更高,那可能意味着我们与百度服务器之间的网络连接存在问题。这可能是由于网络拥塞、路由器故障或者其他网络问题引起的。我们可以ping不同的服务器来判断是我们自己的网络问题还是百度服务器的问题。 总之,ping www.baidu.com 命令可以帮助我们测试我们与百度服务器之间的网络连接质量。过观察ping值,我们可以判断网络连接是否正常,并对网络问题进行排查和诊断。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值