-
主机A和主机B在同一个二层网络,直接走二层交换

主机A查看arp表,检查是否有主机B的IP到MAC的映射.如果有映射,构造报文,目的IP为主机B的IP,源IP为主机A的IP,目的MAC为主机B的MAC,源MAC为主机A的MAC(这个过程是构造了一个网帧,交换机的数据包传输是基于网帧的),将数据包传给交换机,交换机进行MAC表学习,将主机A的MAC和报文端口号记录下来,然后交换机查看自己的MAC表,检查是否有主机B的MAC到端口的映射,如果有,获取对应的端口,将数据包从端口转发出去,数据包到达主机B;如果没有,主机A在局域网内进行广播找B的MAC地址,主机B收到后向A回复,交换机进行MAC表学习,将主机B的MAC和端口号记录下来
如果主机A没有主机B的arp映射,主机A需要发送ARP请求,以获取主机B的MAC,将报文发往交换机,交换机进行广播,主机B收到广播报文,在自己的ARP缓存表写入主机A的IP到MAC的映射,将自己的MAC封装到ARP回复报文中,,主机A收到B的MAC,在自己的ARP缓存表写入主机B的IP到MAC的映射,构造报文给主机B,过程同上 -
主机A和主机B不在同一个网络中,走三层路由

主机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收到报文,剥离报文的MAC头,查询路由表,路由器内部构造报文,目的IP为主机B的IP,源IP为主机A的IP,目的MAC为路由器E右端的MAC,源MAC为路由器左端的MAC(左端MAC和右端MAC是两个网卡),右端收到报文后,剥离报文的MAC头,查询路由表,路由器内部构造报文,目的IP为主机B的IP,源IP为主机A的IP,右端查看自己的arp缓存表,如果有B的IP到MAC的映射关系,获取B的MAC,封报文MAC枕头,目的MAC为主机B的MAC,源MAC为路由器E右端的MAC,将报文通过交换机D发往主机B
整个传输过程中,源ip与目的ip均没有变化,变化的是MAC地址
参考链接:https://www.cnblogs.com/lolau/p/8137541.html
4508

被折叠的 条评论
为什么被折叠?



