zoukankan      html  css  js  c++  java
  • 第一次做面试官

    当了两年的求职者,终于身份转变,我也成为了面试官。

    成为面试官之后第一个直观感受就是当年的自己太嫩了,现在求职者比当时的我优秀太多了,他们面试的时候侃侃而谈,游刃有余,想想当时的自己真的弱呀!我只是考查技术问题,通常会问一些看起来比较简单,但是非常考验基本功的小案例,这类小案例却极少有人能回答上来,胡说八道反而很多!

    A服务器的IP为192.168.80.129/24,网关为192.168.80.1/24

    B服务器的IP为192.168.80.3/27,网关为192.168.80.1/24

    A和B服务器放在同一个vlan下,用B去ping A主机,能通吗?

    我们来分析B与A通信过程。

    1. B拿着自己的掩码对自己的IP做“与运算”,得到网络网络位为192.168.80.0;然后用自己的掩码对A主机的IP地址做“与运算”,得出的网络位为192.168.80.128;B判定A与自己不在同一个网段;
    2. B广播询问网关的mac地址,得到网关回复的mac地址后开始封装报文,目标IP是A的地址,目标MAC是网关的MAC。
    3. 网关收到之后,先看缓存,缓存中没有就广播去寻找A的MAC,然后将数据包交给A。
    4. A收到数据包之后解封装,发现目标MAC和目标IP的确是自己,然后进行回复,发现B与A是一个网段的:192.168.80.0,于是直接arp广播询问A的MAC地址。
    5. B收到A广播ARP广播报文之后,就直接回复了,注意,B第一次给A通信时要通过网关,而现在B有了A的MAC地址,因为A的arp广播当中携带有A的MAC,所以B直接就回复了。
    6. A收到B的MAC地址之后,直接封装进报文。

    这个问题其实很简单,但是很多考了CCIE或HCIE的同学却很少能回答上来,我觉得这至少证明了一件事,学习的人很多,但思考的人很少,抓不住问题的本质。

    上面我们是说的是B主机ping A主机是可以通的,那么反过来呢?当然也是可以通的,我们来看过程。

    1. A判定B和自己是一个网段的,所以直接就arp广播了
    2. B收到A的广播,并不会进行与运算,而是直接通过arp广播当中携带的A的MAC地址,直接回复了。

    好,我们再升级一下问题,假如说两台主机都不设置网关,只有IP地址,还能相互通信吗?

    A主机ping B主机没问题,因为不需要网关的参与。

    而B主机ping A主机的话,就不行了,因为B判断不在一个网段,要交给网关,然而没有网关。

  • 相关阅读:
    剑指21.栈的压入、弹出序列
    剑指20.包含min函数的栈
    剑指19.顺时针打印矩阵
    Java--使用反编译工具,打开jar包,查看源码
    没想到 Unicode 字符还能这样玩?
    angularjs中响应回车事件
    两个很好的angular调试工具-——batarang(stable)和ng-inspector
    基于 ThinkPHP5 的 cltphp 被搜索劫持,篡改首页的解决过程记录
    国内外CDN服务商CNAME特征串调研
    开源中国/码云 README.md上传图片的爬坑记录
  • 原文地址:https://www.cnblogs.com/yizhangheka/p/12418961.html
Copyright © 2011-2022 走看看