我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 帧封装 >

网卡对于数据帧的封装二层交换机的数据包转发问题

归档日期:07-13       文本归类:帧封装      文章编辑:爱尚语录

  问题1:pc1和pc2假设在同一网段内,都为192.168.1.0/24,pc1和交换机不知道pc2的MAC地址,网卡如何封装目的MAC?为什么可以通信?

  问题2:PC1和PC2假设不在同一网段,PC1为192.168.1.0/24 pc2为192.168.2.0/24,网卡是否会检测PC1的数据包目的IP为不同网段,将目的MAC封装为网关MAC?如果PC1不配置网关,网卡将如何封装?如果将PC1和PC2的网关互指,网卡应当将目的MAC写为PC2的mac,为什么会仍然ping不通?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部1,PC1在不知道PC2 MAC的情况下,需要先广播一次ARP查询信息,询问网络中是否存在目标IP,并等待目标IP的应答。然后根据应答数据中的MAC来封装后面的数据包。交换机的工作原理类似,只是交换机是建立一个MAC地址表,记录物理端口和MAC地址的对应关系。

  2,如果不在同一网段,网卡会根据掩码直接检测出。但PC1仍不知道网关的MAC是什么,所以仍然需要ARP查询一次。如果无网关应答,或者不配置网关,则直接丢弃,就会显示time out。至于网关互指,你应该是说三层上的数据吧。只要不是通网段的通信,PC则统一将数据包交给自己的网关,不会将目标MAC定义为远端PC2的。

  3,你如果理解了第2个问题,就理解这个问题是为什么了。MAC地址只是用在二层网络中,也就是“同网段“,一旦网卡判定为不同网段,那PC只能把数据交到自己的网关上。这时目标IP是远端的,而目标MAC则是网关。而且在第一次通信的时候,PC1必须查找一次目标IP,即使你修改了PC1的掩码,是的PC1可以发送ARP查询。但PC的网关会自动判定这个arp不属于自己的网段,而不做应答,PC1永远拿不到PC2的MAC。但在你这个实验环境下,PC1因为之前和PC2有过通信,可能本地的ARP还未老化,可能可以看到PC2的MAC,也可能会把数据包发出去。此时由于PC2的掩码不匹配,当数据上升到IP层之后,还是会被PC2丢弃。

  另外对你问题3的实验结果有点疑问,我下载了一下pkt测试一下,192.168.1.0/16,192.168.2.0/24在没网关的情况下是不会通的,你是不是之前的实验数据没删干净?追问第2个问题,在PC1上的网关写PC的地址,PC1应当进行ARP查询,网络上存在网关地址的主机,即PC2,PC是否给予回复? 为什么PC1与PC2无法通信?

  第3个问题,我刚刚重新进行了测试,在配置不同掩码情况下,的确是不通,但是如果将两台PC的网关分别填写为对方PC的IP,两台PC可以通信。为什么?追答第2个问题,“在PC1上的网关写PC的地址”这是说填写自己的IP作为网关吗?如果以自己的IP作为自己的网关,那数据包在网卡这里要上升到3层协议,PC1会查找自己的路由表,来确认下一条的目的地。如果本地没有PC2的路由,则丢弃数据包。这里已经没有2层查询的步骤了,也就是ARP查询。

  第3个问题,这个如果通了,那一定是PC2的问题,也就是掩码比较小的那台。理论上PC2是不能配置PC1的IP做自己的网关,这个在你配置的时候一定会提示的。(模拟器确实不会,因为它只是模拟器)另外还要注意的就是,你测试的是2个PC,PC设备是可以自己做路由的。比如你的电脑可以在一张网卡上配N个地址,但网关还是同一个,这时候是这台PC自己跑了一个软件路由来打通IP和网关之间的通信。要说清楚这个问题,就很复杂了,但在交换机上是肯定不行的。

本文链接:http://cheffroque.com/zhengfengzhuang/233.html