lysysjw 2016-03-01 08:29 采纳率: 0%
浏览 3114

局域网内的详细通信过程

在下正在学习网络相关的知识,现在遇到一个问题。
假设有这样一种网络拓扑结构
PC1<-->B2,B3<-->PC2
其中PC1为1号PC,PC2为2号PC,它们连接到路由器B的端口2和端口3上,其中PC1的IP1为192.168.1.100,PC2的IP2为192.168.1.101,它们的网关(路由器的IP)为192.168.1.1,PC1的MAC地址为MAC1,PC2的MAC地址为MAC2,路由器的MAC地址为MAC3。

现在假如PC1要发一个数据包给PC2(子网内的数据传输),
首先是PC1的网络层将源IP(IP1)和目标IP(IP2)封装成数据包,然后PC1的链路层通过将目标地址IP2和自己的子网掩码进行与运算后,发现它们是一个子网,那么封装数据帧时源MAC为MAC1,目标MAC为MAC2(这里忽略ARP请求),封装成数据帧后传输到路由器B的端口B2上,
问题来了,因为我们封装的这个数据帧的目标MAC地址不是路由器的,它会接收吗?如果不会,那么传输过程是怎样的,难道PC1封装的数据帧的目标MAC是路由器的MAC吗?如果会,那么路由器的“网卡”应该是处于混杂模式?
如果会接收目标MAC不是路由器的情况,那么路由器B接收到这个数据帧以后,又是如何找到IP2对应的PC2所在的端口并传给它的?是不是PC2在连接路由器时,已经将这个MAC地址和对应的IP地址以及对应连接的端口B3在路由器内部进行了记录?当需要用到时直接将数据发送到这个端口上去?

本人现在处于小学生阶段,有些理解的和描述的不到位还请各位理解。

  • 写回答

4条回答

  • 云霏阳 2016-03-01 08:38
    关注

    1.路由器通常是三层转发,即pc1和pc2位于不通网段,如果需要使用路由器来链接pc1和pc2,那么你的ip地址配置不正确。
    2.如果pc1和pc2的ip地址在同一个网段,需要使用二层设备来链接他们,通常是交换机,将pc1和pc2划到一个vlan中即可。

    评论

报告相同问题?

悬赏问题

  • ¥50 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码