路由器:

工作在网络层,主要用于连接互联网中各局域网、广域网之间连接的网络设备,是网络的枢纽;原理是根据IP地址为数据包找到合适的转发路径;

交换机:

工作在数据链路层,是基于MAC地址识别,能够完成数据包封装转发的网络设备;主要用于构建局域网;具有流量控制能力;

MAC地址寻址是,首先通过广播包获取足够的MAC地址表,然后维护这个MAC地址表(反映各端口与MAC地址之间的关系,便于后面的数据转发)

路由器IP寻址:维护一张路由表,里面存储了如何到达某个IP地址网段;

集线器Hub:

工作于物理层,它属于一层设备,既看不懂二层 MAC 地址,也看不懂三层 IP 地址,不存在寻址的问题,直接广播就是;

工作层次不同:
交换机主要工作在数据链路层(第二层)
路由器工作在网络层(第三层)。
转发依据不同:
交换机转发所依据的对象时:MAC地址。(物理地址)
路由转发所依据的对象是:IP地址。(网络地址)
主要功能不同:
交换机主要用于组建局域网,
而路由主要功能是将由交换机组好的局域网相互连接起来,或者接入Internet。
交换机能做的,路由都能做。
交换机不能分割广播域,路由可以。这个应该是分子网,使用路由器分割广播域的话,所能分割的个数完全取决于路由器的网络接口个数

路由还可以提供防火墙的功能。
路由配置比交换机复杂。


如何从PC-a传输数据给PC-b?

1、找到自己的网关的MAC地址作为数据帧的目标MAC地址,将数据发给网关;

1) 由于 B 的 IP 地址并没有和 A 在一个网段,所以当 A 向 B 发送数据时, A 并不会直接把数据给 B ,而是交给自己的网关,也就是 192.168.0.254 ,所以 A 首先会 ARP 广播请求 192.168.0.254 的 MAC 地址
2) A 得到网关的 MAC 地址后,以它为数据帧的目标 MAC 地址进行封装数据,并发送出去;

网关实质上是一个网络通向其他网络的IP地址,是一个IP地址!!;具有路由功能

2.网关收到数据之后对数据重新打包(为了适应目标主机),然后检查该帧的目标IP,然后根据自己的路由表找到下一站路由的端口,并把其MAC地址作为目标MAC地址,然后把数据帧发出去;
3) routerA 收到该帧后,检查该帧的目标 IP ,并到自己的路由表查找如何到达该网段(目的IP与各网络的掩码相与:直接较付->特定主机路由->间接交付->默认路由),找到下一跳地址是 routerB 的 s0 端口,于是将数据重新封装,将源地址改为 s0 端口 MAC 地址,目标 MAC 地址改为 routerB 的 s0 端口 MAC 址址,并发送给 routerB
4) 中间路由器传递过程同理

3.经过路由器不断转发直到到达目标IP,目标路由发现该目标IP就在自己的直连网段,于是找到该目标IP对应的MAC地址,并作为目标MAC地址将数据发出去。
5) 最后一个路由(此例为 routerC )收到该帧,发现目标 IP 就在自己的直连网段,于是查看 ARP 缓存,如果找到该 IP 的 MAC 地址,则以该 MAC 地址封装数据发送出去,如果在 ARP 缓存没找到,则发出 ARP 广播,请求该 IP 的 MAC 地址,得到对应的 MAC 地址后,再发送给主机 B

    在以上数据传递过程中,我们发现,数据帧的源 IP 和目标 IP 始终是不变的而经过每个路由进行重新封装数据时 MAC 地址则在不断的变化,总是以自己的地址作为源 MAC 地址,下一跳的地址作为目标 MAC 地址


出处:http://blog.sina.com.cn/s/blog_9cbb6a210102v556.html