数据包在网络中进行数据包的转发时,有时会进行二层转发有时会进行三层转发。但这两种转发的原理是什么,有什么区别呢?

我们知道两台设备在进行数据通信之前必须有两个地址:IP地址和MAC地址。
IP地址用来做三层的封装,MAC地址用来做二层的封装。

假设PC1和PC2进行通信:

数据转发是由设备进行的,那么判断何时用二层转发,何时用三层转发也是由设备决定的。
这时IP地址就起作用了,设备会将两个IP地址分别和它们的掩码相与,如果网络号相同则在同一个网段。如果在同一个网段,PC1会发ARP广播报文请求PC2的MAC地址,请求到以后进行数据包的封装转发。(三层的源目IP分别为PC1和PC2的IP地址,二层的源目MAC分别为PC1和PC2的MAC地址)

如果不在同一网段,PC1配置了网关,则PC1会发送ARP广播报文请求网关的MAC地址,请求到以后进行数据包的封装。(三层的源目IP依旧为PC1和PC2的IP地址,但二层的源目MAC分别为PC1和网关的MAC地址)数据包交给网关后,网关在依据目的IP地址(PC2的IP地址)查找路由进行寻址转发。

有关三层交换机和路由器的区别?

在网上看到了一篇文章写的不错,见下方参考;

这里先总结一下吧:

三层交换技术的出现,解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。
其原理是:假设两个使用IP协议的站点A、B通过第三层交换机进行通信,发送站点A在开始发送时,把自己的IP地址与B站的IP地址比较,判断B站是否与自己在同一子网内。若目的站B与发送站A在同一子网内,则进行二层的转发。若两个站点不在同一子网内,如发送站A要与目的站B通信,发送站A要向“缺省网关”发出ARP(地址解析)封包,而“缺省网关”的IP地址其实是三层交换机的三层交换模块。当发送站A对“缺省网关”的IP地址广播出一个ARP请求时,如果三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址。否则三层交换模块根据路由信息向B站广播一个ARP请求,B站得到此ARP请求后向三层交换模块回复其MAC地址,*三层交换模块保存此地址并回复给发送站A,同时将B站的MAC地址发送到二层交换引擎的MAC地址表中。从这以后,当A向B发送的数据包便全部交给二层交换处理,信息得以高速交换。由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此三层交换机的速度很快,接近二层交换机的速度,同时比相同路由器的价格低很多。*

参考:http://blog.csdn.net/shmily_cml0603/article/details/9334795