现象,使用tcpdump命令可以抓到进来的包,但是使用strace看程序,却没有在socket上收到数据。
通过 nstat/netstat/ip-s/ethtoo-S/看各种计数,发现没有错误的包。
也没看到iptables的设置;
也没有防火墙的设置;
根据这个现象,如果一开始不知道答案的话,只能通过一下步骤来分析问题。
https://mzhan017.blog.csdn.net/article/details/126438658 ;这里有记录一些分析的大体步骤。
2) | netif_receive_skb() {
2) | netif_receive_skb_internal() {
2) | skb_defer_rx_timestamp() {
2) 0.119 us | classify();
2) 0.623 us | }
2) | __netif_receive_skb() {
2) | __netif_receive_skb_core() {
2) | /* netif_receive_skb: dev=ens224 skbaddr=ffff8bdfee5a7c00 len=535 */
2) | ip_rcv() {
2) | ip_rcv_finish() {
2) 0.295 us | udp_v4_early_demux();
2) | ip_route_input_noref() {
2) | ip_route_input_slow() {
2) 0.466 us | fib_table_lookup();
2) | fib_validate_source() {
2) | __fib_validate_source.isra.13() {
2) 0.250 us | fib_table_lookup();
2) 0.738 us | }
2) 1.117 us | }
2) 0.050 us | ip_handle_martian_source.isra.37();
2) 2.788 us | }
2) 3.111 us | }
2) | kfree_skb() {
2) | skb_release_all() {
2) 0.048 us | skb_release_head_state();
2) | skb_release_data() {
2) 0.224 us | page_frag_free();
2) 0.574 us | }
2) 1.226 us | }
2) | kfree_skbmem() {
2) | kmem_cache_free() {
2) 0.071 us | __slab_free();
2) 0.447 us | }
2) 0.776 us | }
2) 2.633 us | }