天天看点

udp->ip & tcp->ip 发送数据包的目的地址的源地址是什么时候确定的?

udp->ip & tcp->ip

udp到ip层是:ip_send_skb

tcp到ip层是: ip_queue_xmit

拿tcp为例,在使用【ip_queue_xmit, ip_local_out】在这个函数区间之内,数据包的IP数据包就已经确定下了:

ip_queue_xmit From Skb:

 S 61.0.0.0   D: 8.1.103.0

ip_local_out From Skb:

 S 192.168.1.1   D: 192.168.1.110

ip_queue_xmit From Skb:

 S 174.0.0.0   D: 8.1.103.0

ip_local_out From Skb:

 S 192.168.1.1   D: 192.168.1.110

函数 ip_queue_xmit到底是在哪里:

在ip_queue_xmit函数中会计算路由,得到源地址和目的地址:

  ip_copy_addrs(iph, fl4);

所以数据包在OUTPUT之前就填充好了!

转载于:https://www.cnblogs.com/honpey/p/9066603.html

继续阅读