2 lysysjw lysysjw 于 2016.03.01 16:29 提问

局域网内的详细通信过程

在下正在学习网络相关的知识,现在遇到一个问题。
假设有这样一种网络拓扑结构
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个回答

chj4129
chj4129   2016.03.01 16:39

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

lysysjw
lysysjw 家庭中用的路由器一般是有几个口(一个对外网的端口,剩余的对内的端口),我们使用的时候都是把两台PC连接到这种路由器的对内端口上,查看两个PC的IP地址一般都是出于同一网段内,结合你的说法,是不是前面提到的那种路由器实现了交换机的功能?
接近 2 年之前 回复
chj4129
chj4129   2016.03.01 16:38

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

xingyuntiger
xingyuntiger   2016.03.01 17:33

路过,学习一下;正好也遇到这样的问题

lysysjw
lysysjw   2016.04.17 19:44

自问自答一下了,问题中的“路由器”不仅仅包括路由的功能,还有交换机的功能,路由器上的四个lan口相当与交换机的口

Csdn user default icon
上传中...
上传图片
插入图片