• ping过程


    premise: 

    一个局域网内,网段为192.168.0.0 , 有两台主机A(192.168.0.3) 主机B(192.168.0.4)

    1. A 机器上执行: ping 192.168.0.4

    2. ping程序通知系统创建固定格式的ICMP数据包,然后连同源ip和目标ip交给ip层

    3. ip层将数据连同源ip和目标ip封装成ip数据包,然后连同源Mac和目标Mac交给链路层

      目标Mac是怎样获取的?

      1. 查询本机ARP缓存,如果以前与将要通讯的机器有过连接,则ARP缓存表中有目标主机的Mac地址,如果没有,则会向该网络中发送一条广播信息,目标主机收到广播消息会  回复一条消息,该消息中包括Mac地址。

    4. 交给物理层传输

    5. 目标主机网卡收到包后先检查Mac地址是否匹配,如果不匹配直接丢弃,如果匹配交上层,上层解包检查ip是否匹配,如果不匹配丢弃,如果匹配则在交由上层对数据进行操作

    如果目标主机在不同网段

    主要是目标Mac地址的获取

    源主机操作系统网络层会先检查目标ip是否在同一网段,如果不在同一网段,则通过上面相同的方式广播获取网关的物理地址,如果ARP缓存中已有网关Mac那么就不用获取了

    数据包到达网关是怎么到达目标主机的,现在不清楚,网关中是不是要保存目标主机的Mac地址或者网关需要通过广播的方式获取Mac地址? 明天问老师去~~~~~~

  • 相关阅读:
    hdu 1595(最短路变形好题)
    hdu 5253(最小生成树)
    hdu 2363(枚举+最短路好题)
    hdu 3440(差分约束好题)
    poj 3169&hdu3592(差分约束)
    hdu 3339(最短路+01背包)
    hdu 2145(迪杰斯特拉)
    CodeForces 581D Three Logos
    CodeForces 510E Fox And Dinner
    CodeForces 484D Kindergarten
  • 原文地址:https://www.cnblogs.com/caiyao/p/4539370.html
Copyright © 2020-2023  润新知