• ping的详细过程


    ping是我们在Linux中测试网络连接的常用指令。首先ping是应用程序,而不是协议,它利用ICMP【Internet control message protocol 因特网控制报文协议】报文检测网络连接。

    首先假设A ping B
    1.ping通知系统建立一个固定格式的ICMP请求数据包。
    2.ICMP协议打包这个数据包和B的IP地址转交给IP协议层
    3.IP层协议将机器B的IP地址为目的地址,本机的IP地址为源地址,加上一些头部必要的控制信息,构建一个IP数据包
    4.获取B的MAC地址,做这个操作首先机器A会判断B是否在同一网段内,若IP层协议通过B的IP地址和自己的子网掩码,发现它跟自己属于同一网络,就直接在本网络查找这台机器的MAC,否则则通过路由器进行类似查找。
    接下来是ARP协议根据IP地址查找MAC地址的过程:
    若两台机器之前有过通信,在机器A的ARP缓存表里应该存有B的IP与其MAC地址的映射关系。
    若没有,则通过发送ARP请求广播,得到回应的B机器MAC地址,并交给数据链路层

    5.数据链路层构建一个数据帧,目的地址是IP层传过来的MAC地址,源地址是本机的MAC地址,再附加一些必要的控制信息,依据以太网的介质访问规则将他们传送出去

    6.机器B收到这个数据帧后,先检查目的地址,和本机MAC地址对比:
    符合,接受。接收后检查该数据帧。将IP数据包从帧中提取出来,交给本机的的IP地址协议层协议,IP协议层检查之后,将有用的信息提取给ICMP协议,后者处理,马上构建一个ICMP应答包,发送给A,其过程和主机A发送ICMP请求包到B的过程类似,但不用ARP广播收取A的信息,因为请求包中已经有足够的信息用于B回应A。
    若不符合,丢弃。

    可以知道PING的过程即一段发送报文和接受确认报文的过程,在来回直接可以计算时延。其过程简单,但其中还包括了一步ARP协议请求,广播请求,单播回应的过程。其他都是正常IP数据包的发送和接受

    转自:https://www.cnblogs.com/cherishry/p/5717387.html

  • 相关阅读:
    【其它】 数学是什么?
    【其它】 MathJax
    FreeCodeCamp练习笔记
    Docker容器操作中常用命令集合
    【转载】Ubuntu 系列安装 Docker
    U盘操作系统,Kali Linux操作系统安装
    网络安全&信息安全&系统安全常用名词汇总
    【CISP笔记】安全漏洞与恶意代码(2)
    【CISP笔记】安全漏洞与恶意代码(1)
    【CISP笔记】数据库及应用安全
  • 原文地址:https://www.cnblogs.com/kuronekonano/p/11135666.html
Copyright © 2020-2023  润新知