网络层笔记1

由交换机互联的4台PC,分别处于2个不同的子网。(注:这四台PC的子网掩码都是255.255.255.0)

主机1.1去ping1.2是没有任何问题的。

主机1.1去ping2.1是会超时的,因为他们不是在同一网段中。作为笔者的小白就想问一句,为啥不同网段就不可以ping通呢?

于是要涉及到网关的概念(抄自百度):

【说明:由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP!】

那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。

来自于一个CSDN上看到的一个似乎比较正确的理解:

主机A在向另一台主机B发送数据时,首先A会检测,B的IP地址跟自己是不是同一网段的(根据掩码检测),如果是,则直接在三层和二层上分别封装B的三层IP地址和二层MAC地址,然后再从网卡发送出去,交换机收到后只解包到二层,检测目的MAC地址,如果存在,则从相应的接口发送出去,这是同网段的通信;

如果不是同网段,主机A会把数据发给网关,因为在网络层需要封装网关的IP地址,所以在二层也必然要封装网关的MAC地址,如果此时主机A上没有缓存到网关的MAC地址,则会发起一个ARP请求,去获取网关的MAC地址,所以有时候你ping的时候会发现第一个包超时了,是因为ARP请求的原因,在获得网关的MAC地址之后,主机A就在二层封装网关的MAC地址,然后从网卡把数据发出去,交换机收到了,也是解包到二层,然后转发给网关(路由器或三层交换机),网关(三层设备)收到后,解包到三层,查看目标IP地址,然后在自己的路由表中查找路由信息, 只有当目标网络(在三层通信中,不同网段就意味着不同网络)不可达时,才回给源IP主机,也就是主机A发送不可达的消息。

在模拟器上的结果(192.168.1.1 ping 192.168.2.1):

就是根本不会传给交换机。不过现在还是有一些模模糊糊地不太懂,后面的深入学习应该会解开疑惑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值