知识储备:
①单播:
一对一,信息的接收和传递必须只在两个节点进行。(效率低)
②多播(组播):以“尽力而为”的形式发送信息到某个目标组,在有源主机向多点目标主机发送信息需求时,源主机只发送一份数据,数据的目标地址是组播组地址。
(解决单播情况下数据的重复拷贝及宽带的重复占用,也解决了广播情况下的宽带资源浪费)
③广播:
一个终端向多个计算机发送消息,但是计算机越多,广播的消息可能会延时或者消息不可到达!
一、二层交换基本原理
二层交换机属于数据链路层,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应端口记录在内部的一个地址表中。
工作流程:
①当交换机从某个端口收到一个数据包,先读取包头中的MAC地址,这样就可以知道源MAC地址的机器连在哪个端口上。
②读取包头中的目的MAC地址,并在地址表中查找对应端口。
③如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上。
④若表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习到目的MAC地址与哪个端口对应,在下次传送数据时就不需要对所有端口进行广播。
不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
特点:
①优点:只需要知道数据包的MAC地址,数据交换靠硬件来实现的,速度快。
②缺点:不能处理不同IP子网的数据交换。
总结:
二层交换机通过解析和学习以太网帧的源MAC来维护MAC地址与端口的对应关系,通过其目的MAC来查找MAC表决定向哪个端口转发。
二、三层交换(IP交换技术)基本原理
三层交换技术是:二层交换技术+三层转发技术
三层交换机是具有部分路由器功能的交换机,主要目的是加快大型局域网内部的数据交换。能做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。
(通过IP转发,来实现不同网络的互连)
工作流程:
当交换机从某个端口收到一个数据包,先读取包头中的MAC地址。此时发现目的MAC是自己的同时,判断IP地址是否为自己,若不是则需要转发。
当第一个包过来的时候,发现硬件转发表并没有什么表项,所以此时必须将数据包交由路由进程处理,一旦交由cpu处理,必然会消耗cpu资源,此时会查看路由表,然后发现此IP地址个自己是直连的,此时就去查看arp找出此地址对应的mac地址,就可以转发出去了
在决定转发出去过程中,交换机至少会做三件事情,一,修改IP包头的ttl值(路由器丢弃之前允许通过的最大网段数量);二,修改原mac地址,改成自己出接口mac地址;三,建立交换机硬件转发表,包括目的IP地址,目的IP地址(下一跳)对应的mac地址,mac地址对应的vlan,以及对应的端口(这个每个厂家有自己的理解)
这样当一下包过来的时候,交换机就会查看硬件转发表直接转发而不会在经过路由表的查询了,也即是交换机的一次路由,多次交换机原理。
不同网络的主机直接如何互访?
答:
①源主机在发起通信前,将自己的IP与目的主机的IP进行对比。若两者位于同一网段,哪个源主机直接项目的主机发送ARP请求,在收到目的主机的ARP应答后获得对方的MAC地址,然后用对方MAC作为报文的目的MAC进行报文发送。
②当源主机判断目的主机与自己位于不同网段时,它会通过网关(Gateway)来递交报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关的MAC作为报文的目的MAC进行发送。此时发送报文的源IP是源主机的IP,目标IP是目标主机的IP。