欢迎来到天天文库
浏览记录
ID:9813323
大小:37.00 KB
页数:4页
时间:2018-05-10
《路由器转发数据包过程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、主机PC1向主机PC2发个数据包,中间经过B路由器,请问源地址和源MAC是怎么变化的?答:就假设拓扑图是这个样子吧:PC1-----(B1-B2)-------PC2 B1和B2是路由器B上的两个接口,PC1和PC2是PC,由主机PC1向主机PC2发送数据包,那么在主机PC1形成的数据包的目的IP就是PC2的IP,源IP就是主机PC1的IP地址,目标MAC地址就是B1的MAC地址,源MAC地址就是PC1的MAC地址。转发过程:假如是第一次通信PC1没有PC2的ARP映射表PC1在本网段广播一个数据帧(
2、目的MAC地址为:FFFF:FFFF:FFFF:FFFF)帧格式为:源MAC地址(PC1)源IP地址(PC1)FFFF:FFFF:FFFF:FFFF目的IP地址(PC2)由于PC2和PC1不在同一网段,路由器不转发广播帧。假设路由器B、C配置了到达PC2网段的路由。此时路由器给PC1回复一个应答数据包,告诉PC1自己的MAC地址就是PC1要通信的PC2主机的MAC地址。而此时PC1建立ARP映射表,将该MAC地址(即路由器的B1接口)与PC2的IP地址建立映射关系。实际上是路由器对其进行了“欺骗”。其应
3、答数据帧格式为:源MAC地址(路由器B1)源IP地址(PC2)目的MAC地址(PC1)目的IP地址(PC1)而数据包在B1接口的时候其数据包的帧格式为:源MAC地址(PC1)源IP地址(PC1)FFFF:FFFF:FFFF:FFFF目的IP地址(PC2) 对于路由器B同样建立了自己的ARP映射表:将PC1的MAC地址与PC1的IP地址映射。数据包在流出B2接口的时候其数据包的帧格式为:源MAC地址(路由器B2)源IP地址(PC1)FFFF:FFFF:FFFF:FFFF目的IP地址(PC2) PC2所在的
4、网段各主机将自己的IP地址与数据包中的目的IP地址比对。若符合则将自己的MAC地址替换上广播MAC地址,并回复该数据帧:源MAC地址(PC2)源IP地址(PC2)目的MAC地址(路由器B2)目的IP地址(PC1)路由器收到该数据包的时候,由于已经建立了ARP映射表,一方面路由器将储存在映射表中的对应关系调出来。将PC1的MAC地址覆盖路由器B2接口的MAC地址。另一方面路由器更新ARP映射表,将PC2的MAC地址与PC2的IP地址映射。此时流出路由器B1接口的数据包的帧格式为:源MAC地址(PC2)源I
5、P地址(PC2)目的MAC地址(PC1)目的IP地址(PC1)之后PC1收到该数据帧。通信建立。同时更新ARP映射表,将PC2的MAC地址与PC2的IP地址建立对应关系。此后每次通信时由于PC1要与PC2通信时。由于PC1已经建立了到PC2IP地址的ARP映射,所以下次要通信时直接从本地ARP调用。在路由器接收到数据包之后,路由器将去掉数据链路帧的报头,以便找到第三层目的地址。一旦读到目的地址,路由器将察看路由表,以找到去往目的地址的路由。一般数据包转发到目的地的整个过程分为五步:1:随着帧的报头到达路
6、由器入站接口,MAC过程就根据接口烧录的MAC地址,广播地址和接口所监听的任意组播地址来检查硬件目的地址。如果MAC过程发现硬件目的地址可用,就对帧执行循环冗余检验以确信帧没有被破坏。如果帧通过了这些CRC,就从帧中取出数据包。然后丢弃帧,将数据包存储在路由器的主存储器中。2:路由器搜索路由表,找出数据包报头中所发现的目的地址最长的匹配,如果路由器未找到匹配,且没有默认网关,路由器就丢弃数据包,并给源设备发送一项ICMP目的不可达消息。如果路由器找到匹配项,路由器将为此路由找到下一跳地址或直连接口,如果
7、路由指向一个直连接口,就无需执行递归查找,可以跳过下一步。3:一旦知道了下一跳地址,路由器就执行递归查找。这是为了在路由器上地位直连的接口,以将数据包转发出去,找到带有流出接口的表项前可能要进行多次迭代。如果所有递归接口查找都指向路由表没有表项的IP地址,并且未设置默认网关,那么路由器将丢失该数据包并通过ICMP通知数据包源。4:数据包被交换到出站口缓冲器。假设出站接口使用第二层寻址,路由器试图学习下一跳接口的MAC地址或第二层标识,从而将第三层地址映射到第二层地址。路由器查找像ARP高速缓存这样适当的
8、本地表。在使用ARP的情况下,如果未找到第三层映射,路由器将通过出站接口向本地连接的网段广播一个ARP请求,以请求与下一跳设备的本地网段相关的接口的MAC地址,该设备可能是另一台路由器或最终目的地。正常情况下,下一跳设备发送一个带有其MAC地址的ARP应答。所有听到这个广播的其他设备都会根据ARP报头中的第三层地址信息意识到该ARP请求不是给它们的,它们不会回答这个请求,而是悄悄丢弃该ARP请求数据包。许多点到点媒体不需要第二层信息。因为预
此文档下载收益归作者所有