详述IP数据包的转发流程
2009-11-19 17:52
881 查看
IP数据包的转发流程
1)IP数据包到达网络层之后,首先根据目的IP地址得到目的网络号,然后决定是直接交付还是转发数据包。如果网络号不匹配,需要转发数据包,则跳到3);
2)将数据包转发给目的主机;
3)首先根据目的IP地址在路由表(转发表)中查找下一跳IP地址;
4)然后在路由器的ARP高速缓存表中查找下一跳IP地址对应的MAC地址,如果找到下一跳路由器的MAC地址,则将查到的MAC地址填入数据帧的首部6
字节(即更新链路层的数据帧);如果ARP高速缓存表中不存在此IP地址,则通过向当前局域网内广播一个ARP分组来请求下一跳路由器的MAC地址。
ARP请求分组广播出去后,只有下一跳路由器会对此请求分组做出响应,所有其它的主机和路由器都将忽略此ARP广播分组。
5)根据得到的下一跳路由器MAC地址来更新数据链路层的数据帧,即帧头的目的MAC地址字段;
6)转发数据包;
注意:2)步骤中数据包的直接交付时,如果当前路由器的ARP高速缓存表中找不到相应的匹配项,则也需要向当前局域网广播ARP请求分组来获取相应主机的MAC地址。
1)IP数据包到达网络层之后,首先根据目的IP地址得到目的网络号,然后决定是直接交付还是转发数据包。如果网络号不匹配,需要转发数据包,则跳到3);
2)将数据包转发给目的主机;
3)首先根据目的IP地址在路由表(转发表)中查找下一跳IP地址;
4)然后在路由器的ARP高速缓存表中查找下一跳IP地址对应的MAC地址,如果找到下一跳路由器的MAC地址,则将查到的MAC地址填入数据帧的首部6
字节(即更新链路层的数据帧);如果ARP高速缓存表中不存在此IP地址,则通过向当前局域网内广播一个ARP分组来请求下一跳路由器的MAC地址。
ARP请求分组广播出去后,只有下一跳路由器会对此请求分组做出响应,所有其它的主机和路由器都将忽略此ARP广播分组。
5)根据得到的下一跳路由器MAC地址来更新数据链路层的数据帧,即帧头的目的MAC地址字段;
6)转发数据包;
注意:2)步骤中数据包的直接交付时,如果当前路由器的ARP高速缓存表中找不到相应的匹配项,则也需要向当前局域网广播ARP请求分组来获取相应主机的MAC地址。
相关文章推荐
- 详述IP数据包的转发流程
- 交换机和路由器的数据包转发流程简述
- suricata 3.2 源码分析(IP数据包分片重组流程)
- linux内核数据包转发流程(一):网络设备驱动
- 基于linux-2.6.31的IPV6的数据包发送及转发流程分析
- TCP/IP 之数据包发送封装流程
- ip数据包经由路由转发的时候源ip,目的ip是否改变
- Linux bridge 网桥模块内部数据包转发流程
- linux内核数据包转发流程(三):网卡帧接收分析
- 转:Linux2.4.0IP层转发(ip_forward)流程
- 数据包的转发流程
- 数据包转发处理流程
- 路由器对ip数据包的转发
- 交换机和路由器的数据包转发流程简述
- 数据包的转发流程
- TCP/IP学习(30)——L2数据链路层的数据包处理详细流程
- 交换机和路由器的数据包转发流程简述
- BCM芯片数据包转发基本流程
- linux内核数据包转发流程(三)网卡帧接收分析
- 网络层----------IP层转发分组的流程