zoukankan      html  css  js  c++  java
  • 为什么不同网段的ip 不能直接通信

    首先要明白一点,IOS一共七层, 发送数据的过程是从上到下,也就是从应用层一直到物理层,接受数据是从下至上.

    来看你的问题,环境如下,我们来用一个ping命令的过程来解释:
    一个交换机,连两个电脑A和B,A和B不在一个网段,他们的IP分别是192.168.1.2,255.255.255.0,B是 192.168.2.1,255.255.255.0,网关也可以设也可以不设,但其实你设了也是个假的网关,因为在你的环境里面只有一个交换机,并没有路由器,对吗?

    A ping B:
    1.Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同IP地址“192.168.2.1”一起交给IP层协议.
    2.IP协议会查看目的IP地址是否和源IP在同一网段,如果在同一网段就直接查找ARP缓存,查找目的MAC,如果目的IP地址是否和源IP不在同一网段,那么就将数据包发送到网关.
    3.按照前面的描述,在A电脑上有两种情况,1是没设网关 2是设了一个假的网关,那么如果没设的话,数据包到这一步就丢弃了,目的IP和源IP不在一个网段而且A没有网关,那么就无法发送.如果A设网关了的话,接着往走.
    4.假设A电脑设定的网关是192.168.1.1,那么IP协议知道了目的IP,但是不知道目的MAC,所以会查找A电脑的ARP缓存,看里面有没有目的MAC,很遗憾,肯定没有,因为环境里并没有这个网关设备存在.所以A会发一个ARP广播到192.168.1.X整个网段,来查找IP是192.168.1.1 的MAC,当然,物理上就不存在192.168.1.1这个设备,自然就没有设备来响应这个ARP广播,所以最终IP协议无法知道目的MAC,就无法将数据包往下一个层数据链路层传递.

    回到最开始,还是那句话:IOS一共七层, 发送数据的过程是从上到下,也就是从应用层一直到物理层,接收数据是从下至上.
    在此场景中数据包在三层就停住了,根本不会涉及到二层.
  • 相关阅读:
    【sqli-labs】 less23 Error based
    【sqli-labs】 less22 Cookie Injection- Error Based- Double Quotes
    【sqli-labs】 less21 Cookie Injection- Error Based- complex
    【sqli-labs】 less20 POST
    【sqli-labs】 less19 POST
    【sqli-labs】 less18 POST
    【sqli-labs】 less17 POST
    【sqli-labs】 less16 POST
    【sqli-labs】 less15 POST
    nginx.conf(centos7 1.14)主配置文件修改
  • 原文地址:https://www.cnblogs.com/S-volcano/p/5032065.html
Copyright © 2011-2022 走看看