主机A和主机B通讯报文的转发过程html
一、主机A和主机B在同一个二层网络中,直接走二层交换缓存
主机A查看本身的ARP缓存,检查是否有主机B的IP到MAC的映射,若是有映射,构造报文,目的IP为主机B的IP,源IP为主机A的IP,目的MAC为主机B的MAC,源MAC为主机A的MAC,将报文发送给交换机C,交换机C进行MAC地址表学习,将主机A的MAC和报文入端口号记录下来,而后交换机C查看本身的MAC转发表,检查是否有主机B的MAC到端口的映射,若是有映射,获取对应的端口,将报文今后端口转发出去,报文到达主机B。若是交换机C没有主机B的MAC转发表映射,采用洪泛的形式广播报文,主机B收到报文后向主机A回复,交换机C进行MAC表学习,将主机B的MAC和报文入端口号记录下来。网络
若是主机A没有主机B的ARP映射,主机A须要发送ARP请求,以获取主机B的MAC,将报文发往交换机C,交换机C采用洪泛的形式广播报文,主机B收到广播报文后,在本身的ARP缓存表中写入主机A的IP到MAC的映射,将本身的MAC封装到ARP回复报文中,单播给主机A,主机A获取到主机B的MAC后,在本身的ARP缓存表中写入主机B的IP到MAC的映射,构造报文发送给主机B,过程同上。学习
主机B向主机A回复报文的过程相似。htm
二、主机A和主机B不在同一个网络中,走三层路由blog
主机A查看本身的ARP缓存表,检查是否有路由器E的IP到MAC的映射,若是有映射,获取路由器E的MAC,构造报文,目的IP为主机B的IP,源IP为主机A的IP,目的MAC为路由器E的MAC,源MAC为主机A的MAC,将报文经过交换机C发往路由器E,过程同上。 若是主机A没有路由器E的IP到MAC的映射,须要发送ARP请求,获取路由器E的MAC,过程同上。路由器E收到主机A的报文后,剥离报文的MAC帧头,查询路由表,发现目标主机B所在的网络是直连的,查看本身的ARP缓存表,若是有主机B的IP到MAC的映射关系,获取主机B的MAC,封装报文MAC帧头,目的MAC为主机B的MAC,源MAC为路由器E的MAC,将报文经过交换机D发往主机B,若是路由器E没有主机B的IP到MAC的映射关系,须要发送ARP请求,获取主机B的MAC,过程同上。路由
主机B向主机A回复报文的过程相似。get
注:路由器上的路由表通常是配置静态路由或者经过路由协议自动学习的。it