热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

同个网段和不同网段的ping过程

转载自:ping命令整个过程详解略有增删改。在这里讲ping的两情况:一种是同一网段内,一种是跨网段的ping。一、同一网段内首先,如果主机A,要去ping主机B,那么主机A,就要

转载自:ping命令整个过程详解

略有增删改。

在这里讲ping的两情况:一种是同一网段内,一种是跨网段的ping


一、同一网段内


首先,如果主机A,要去ping主机B,那么主机A,就要封装二层报文,他会先查自己的ARP缓存表(IP-MAC的映射),如果没有B的MAC地址,A就会向外发送一个ARP广播包,如图: 

《同个网段和不同网段的ping过程》

其中ARP报文格式如下:

《同个网段和不同网段的ping过程》

其中OP 

1:表示ARP请求 

2:表示ARP应答 

3:表示RARP请求 

4:表示RARP应答 


首先,交换机收到这个报文后,它会学习到A的MAC和入端口号并保存在MAC地址表中(MAC-port映射)(或者更新A的MAC-port生存期),接着,它会向所有端口发送这个ARP广播包,其它主机收到后,发现不是在找自己,就纷纷丢弃了该报文,不去理会(路由器可以隔绝广播域,一般情况下会丢弃广播包,除非开了代理ARP功能)。主机B收到报文后,就立即响应,我的MAC地址是多少,并回复一个ARP响应报文格式给主机A。如图:

《同个网段和不同网段的ping过程》

ARP报文格式为:

《同个网段和不同网段的ping过程》


交换机收到ARP响应包之后,先学习B的MAC-port并记录在MAC地址表中(或者更新B的MAC-port的生存期),接着它根据目的MAC查找MAC地址表,发现这个目的MAC跟port有映射,所以直接把这个ARP响应包从该端口发出去给A了。


而主机A根据ARP响应包,学到了主机B的MAC地址,就把这个MAC地址封装到ICMP协议的二层报文中向主机B发送,报文格式如下: 

《同个网段和不同网段的ping过程》


交换机这个时候已经知道目的MAC为B的数据包要从哪个端口发出去了,所以它会把ICMP包直接从该端口单播出去。


当主机B收到了这个报文后,发现是主机A 的ICPM回显请求,就按同样的格式,返回一个值给主机A,这样就完成了同一网段内的ping过程。

《同个网段和不同网段的ping过程》


在这里,讲了这么久的局域网内的PING,实际过程的发生不到1毫秒。


二、不同网段内


如果主机A要ping主机C,那么主机A发现主机C的IP和自己不是同一网段,他就去找网关转发,但是他也不知道网关的MAC地址情况下呢?他就会向之前那个步骤一样先发送一个ARP广播,学到网关的MAC地址,再发封装ICMP报文给网关路由器.。ICMP报文格式如下(目的MAC是路由器的网卡地址,目的IP还是主机C的ip。这也进一步反应了链路层只管一跳,而网络层管host-to-host):

《同个网段和不同网段的ping过程》


当路由器收到主机A发过来的ICMP报文,发现其目的地址是本身MAC地址,根据目的的IP2.1.1.1,查路由表,发现2.1.1.1/24的路由表项,得到一个出端口,去掉原来的MAC头部,加上自己的MAC地址向主机C转发。(如果网关也没有主机C的MAC地址,还是要向前面一个步骤一样,ARP广播一下即可相互学到。路由器2端口能学到主机D的MAC地址,主机D也能学到路由器2端口的MAC地址。)报文格式如下(源MAC是路由器网卡地址,目的MAC是主机C的地址):

《同个网段和不同网段的ping过程》


最后,在主机C已学到路由器2端口MAC地址,路由器2端口转发给路由器1端口,路由1端口学到主机A的MAC地址的情况下,他们就不需要再做ARP解析,就将ICMP的回显请求回复过来。报文格式大致如下: 

《同个网段和不同网段的ping过程》


路由器收到ICMP响应后,修改ICMP包的目的MAC为00-50-56-C0-00-01,源MAC为00-50-56-C0-00-02,源IP和目的IP保持不变。



推荐阅读
  • 考前准备方面,我的考试时间安排在上午11点至12点,只需提前20分钟到达考场的接待休息区即可。由于我居住在福田区,交通便利,可以选择多种方式前往考场。为了确保顺利通过考试,我建议考生提前熟悉考试流程和环境,并合理规划出行时间,以保持良好的心态和状态。此外,考前复习应注重理论与实践相结合,多做模拟题,加强对重点知识点的理解和掌握。 ... [详细]
  • 西北工业大学作为陕西省三所985和211高校之一,虽然在农业和林业领域不如某些顶尖院校,但在航空航天领域的实力尤为突出。该校的计算机科学专业在科研和教学方面也具有显著优势,是考研的理想选择。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 在交换机链路聚合中,负载均衡算法通过哈希表实现。每当创建一个新的聚合组时,交换机的底层硬件会生成一个对应的哈希表,该表存储在交换芯片上。哈希表的结构包括索引(Index)和相应的条目,这些索引由硬件支持,用于确定数据包的传输路径。通过这种方式,负载均衡算法能够高效地分配网络流量,提高链路利用率和系统性能。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文详细解析了神州数码DCRS5980交换机的基础配置流程和技术要点。首先,通过进入配置模式(`enable`),设置主机名(`hostname 5980`),并创建VLAN,逐步介绍了设备的初始设置步骤。此外,还涵盖了端口配置、IP地址分配及安全设置等关键环节,为用户提供了全面的配置指导。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • DHCP三层交换机设置方式全局模式和接口模式设置方式和命令resetsave回车输入yreboot输入n输入y重启后就恢复默认设置了默认用户名密码adminAdmin@huawei ... [详细]
  • 本文提供了 RabbitMQ 3.7 的快速上手指南,详细介绍了环境搭建、生产者和消费者的配置与使用。通过官方教程的指引,读者可以轻松完成初步测试和实践,快速掌握 RabbitMQ 的核心功能和基本操作。 ... [详细]
author-avatar
哲玲旭辉9
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有