赞
踩
ping包发送过程分析:
1、安全路径查找和创建
ping_sendmsg ------> ip_route_output_flow----->xfrm_lookup这里面会查找安全路由,或者是根据源、目的IP地址找到SPD项,再找到SAD项后创建安全路由,安全路由最终会把数据包导到ah4_output\esp4_output做相应的填充ah\esp填充
2、执行安全路径
ping_sendmsg ------> ping_push_pending_frames ------->ip_push_pending_frames-------->ip_finish_skb-------->__ip_make_skb
|------------->ip_send_skb---------->ip_local_out------------>skb->dst->output(skb)dst_output()函数就是调用路由项的输出函数, 对于安全路由, 该函数是xfrm4_output()函数, 对于普通路由, 是ip_output()函数
xfrm4_output{x->outer_mode->afinfo->output_finish,这里执行的就是xfrm4_output_finish}----->xfrm4_output_finish----->xfrm_output------->xfrm_output2------>xfrm_output_resume------->xfrm_output_one,在这个函数里面执put行的x->outer_mode->output(x, skb)中output就是ah_output或者esp_output来填充ah\esp相关字段到sk
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。