%3ch2%3e%e4%b8%80%e3%80%81%e5%bc%95%e8%a8%80%3c%2fh2%3e%0a%3cp%3eLinux%e5%86%85%e6%a0%b8%e7%bd%91%e7%bb%9c%e6%a0%88%e6%98%af%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e6%a0%b8%e5%bf%83%e7%bb%84%e6%88%90%e9%83%a8%e5%88%86%ef%bc%8c%e8%b4%9f%e8%b4%a3%e5%a4%84%e7%90%86%e7%bd%91%e7%bb%9c%e6%95%b0%e6%8d%ae%e5%8c%85%e7%9a%84%e6%8e%a5%e6%94%b6%e3%80%81%e5%a4%84%e7%90%86%e5%92%8c%e5%8f%91%e9%80%81%e3%80%82%e6%9c%ac%e6%96%87%e5%b0%86%e4%bb%8e%e7%bd%91%e5%8d%a1%e7%a1%ac%e4%bb%b6%e4%b8%ad%e6%96%ad%e5%88%b0%e5%ba%94%e7%94%a8%e5%b1%82socket%e6%8e%a5%e5%8f%a3%e7%9a%84%e5%ae%8c%e6%95%b4%e6%95%b0%e6%8d%ae%e8%b7%af%e5%be%84%ef%bc%8c%e5%b9%b6%e9%92%88%e5%af%b9%e6%80%a7%e8%83%bd%e4%bc%98%e5%8c%96%e6%8f%90%e4%be%9b%e5%ae%9e%e6%88%98%e6%8a%80%e5%b7%a7%e3%80%82%3c%2fp%3e%0a%3cp%3e%e6%96%87%e7%ab%a0%e8%a6%86%e7%9b%96%e7%9a%84%e6%a0%b8%e5%bf%83%e4%b8%bb%e9%a2%98%e5%8c%85%e6%8b%ac%ef%bc%9a%e7%bd%91%e5%8d%a1%e9%a9%b1%e5%8a%a8%e4%b8%8e%e6%95%b0%e6%8d%ae%e5%8c%85%e6%8e%a5%e6%94%b6%e3%80%81NAPI%e8%bd%ae%e8%af%a2%e6%9c%ba%e5%88%b6%e3%80%81%e4%b8%89%e5%b1%82%e5%8d%8f%e8%ae%ae%e5%a4%84%e7%90%86%e3%80%81Netfilter%e6%a1%86%e6%9e%b6%e3%80%81eBPF%2fXDP%e9%ab%98%e6%80%a7%e8%83%bd%e5%8a%a0%e9%80%9f%e3%80%81%e5%86%85%e6%a0%b8%e5%8f%82%e6%95%b0%e8%b0%83%e4%bc%98%e7%ad%96%e7%95%a5%e7%ad%89%e3%80%82%3c%2fp%3e%0a%0a%3ch2%3e%e4%ba%8c%e3%80%81%e7%bd%91%e5%8d%a1%e9%a9%b1%e5%8a%a8%e4%b8%8e%e6%95%b0%e6%8d%ae%e5%8c%85%e6%8e%a5%e6%94%b6%3c%2fh2%3e%0a%3ch3%3e2.1+%e7%a1%ac%e4%bb%b6%e4%b8%ad%e6%96%ad%e4%b8%8eDMA%3c%2fh3%3e%0a%3cp%3e%e5%bd%93%e7%bd%91%e5%8d%a1%e6%8e%a5%e6%94%b6%e5%88%b0%e6%95%b0%e6%8d%ae%e5%8c%85%e6%97%b6%ef%bc%8c%e9%a6%96%e5%85%88%e9%80%9a%e8%bf%87DMA%ef%bc%88%e7%9b%b4%e6%8e%a5%e5%86%85%e5%ad%98%e8%ae%bf%e9%97%ae%ef%bc%89%e5%b0%86%e6%95%b0%e6%8d%ae%e5%86%99%e5%85%a5%e5%86%85%e5%ad%98%e4%b8%ad%e7%9a%84%e6%8e%a5%e6%94%b6%e7%8e%af%ef%bc%88Ring+Buffer%ef%bc%89%ef%bc%8c%e7%84%b6%e5%90%8e%e8%a7%a6%e5%8f%91%e4%b8%ad%e6%96%ad%e9%80%9a%e7%9f%a5CPU%e3%80%82%e7%8e%af%e7%bb%93%e6%9e%84%e7%9a%84%e8%ae%be%e8%ae%a1%e7%9b%ae%e6%a0%87%e6%98%af%e5%87%8f%e5%b0%91%e5%86%85%e5%ad%98%e5%a4%8d%e5%88%b6%e6%ac%a1%e6%95%b0%ef%bc%8c%e6%8f%90%e5%8d%87%e6%95%b0%e6%8d%ae%e4%bc%a0%e8%be%93%e6%95%88%e7%8e%87%e3%80%82%3c%2fp%3e%0a%3cp%3e%e5%86%85%e6%a0%b8%e4%b8%ad%e7%9a%84%e6%8e%a5%e6%94%b6%e7%8e%af%e9%80%9a%e5%b8%b8%e5%88%86%e4%b8%ba%e4%b8%8a%e5%8d%8a%e9%83%a8%ef%bc%88Half-Interrupt%ef%bc%89%e5%92%8c%e4%b8%8b%e5%8d%8a%e9%83%a8%ef%bc%9a%3c%2fp%3e%0a%3cul%3e%0a%3cli%3e%3cstrong%3e%e4%b8%8a%e5%8d%8a%e9%83%a8%3a%3c%2fstrong%3e+%e4%b8%ad%e6%96%ad%e5%a4%84%e7%90%86%e5%87%bd%e6%95%b0%ef%bc%8c%e7%a1%ac%e4%bb%b6%e6%b8%85%e9%99%a4%e4%b8%ad%e6%96%ad%e3%80%81%e5%90%af%e5%8a%a8NAPI%e8%bd%ae%e8%af%a2%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e4%b8%8b%e5%8d%8a%e9%83%a8%3a%3c%2fstrong%3e+%e5%9c%a8%e8%bd%af%e4%b8%ad%e6%96%ad%e4%b8%ad%e6%8f%90%e5%8f%96%e5%b9%b6%e5%a4%84%e7%90%86%e6%95%b0%e6%8d%ae%e5%8c%85%3c%2fli%3e%0a%3c%2ful%3e%0a%0a%3ch3%3e2.2+NAPI%e8%bd%ae%e8%af%a2%e6%9c%ba%e5%88%b6%3c%2fh3%3e%0a%3cp%3eNAPI%ef%bc%88New+API%ef%bc%89%e6%98%af%e7%8e%b0%e4%bb%a3%e6%a0%b8%e5%bf%83%e7%9a%84%e6%a0%b8%e5%bf%83%e4%bc%98%e5%8c%96%ef%bc%8c%e8%9e%8d%e5%90%88%e4%ba%86%e4%b8%ad%e6%96%ad%e5%92%8c%e8%bd%ae%e8%af%a2%e4%b8%a4%e7%a7%8d%e6%a8%a1%e5%bc%8f%ef%bc%9a%3c%2fp%3e%0a%3cpre%3e%3ccode%3e%2f*+%e5%90%af%e5%8a%a8NAPI%e8%bd%ae%e8%af%a2+*%2f%0aif+(napi_schedule_prep(%26adapter-%3enapi))+%7b%0a++++__napi_schedule(%26adapter-%3enapi)%3b%0a%7d%0a%0a%2f*+%e8%bd%ae%e8%af%a2%e5%87%bd%e6%95%b0+*%2f%0avoid+my_driver_poll(struct+napi_struct+*napi%2c+int+budget)+%7b%0a++++while+(work_done+%3c+budget)+%7b%0a++++++++process_packet()%3b%0a++++++++work_done%2b%2b%3b%0a++++%7d%0a++++if+(likely(work_done+%3c+budget))+%7b%0a++++++++napi_complete_done(napi%2c+work_done)%3b%0a++++%7d%0a%7d%3c%2fcode%3e%3c%2fpre%3e%0a%3cp%3e%e6%a0%b8%e5%bf%83%e5%8c%ba%e5%88%ab%e5%9c%a8%e4%ba%8e%e5%bd%93%e6%b5%81%e9%87%8f%e5%a4%a7%e6%97%b6%e4%bf%9d%e6%8c%81%e4%b8%ad%e6%96%ad%e7%8a%b6%e6%80%81%e6%8f%90%e5%8d%87%e5%a4%84%e7%90%86%e6%95%88%e7%8e%87%ef%bc%8c%e6%b5%81%e9%87%8f%e5%b0%8f%e6%97%b6%e8%87%aa%e5%8a%a8%e9%80%80%e5%9b%9e%e8%bd%ae%e8%af%a2%e6%a8%a1%e5%bc%8f%e3%80%82%e6%af%8f%e6%ac%a1%e8%bd%ae%e8%af%a2%e5%a4%84%e7%90%86%e7%9a%84%e6%9c%80%e5%a4%a7%e6%95%b0%e6%8d%ae%e5%8c%85%e6%95%b0%e7%94%b1netdev_budget%e6%8e%a7%e5%88%b6%ef%bc%8c%e9%bb%98%e8%ae%a4%e4%b8%ba300%e3%80%82%3c%2fp%3e%0a%0a%3ch2%3e%e4%b8%89%e3%80%81%e4%b8%89%e5%b1%82%e5%8d%8f%e8%ae%ae%e5%a4%84%e7%90%86%3c%2fh2%3e%0a%3ch3%3e3.1+%e6%95%b0%e6%8d%ae%e9%93%be%e8%b7%af%e5%b1%82%ef%bc%88L2%ef%bc%89%3c%2fh3%3e%0a%3cp%3e%e6%95%b0%e6%8d%ae%e9%93%be%e8%b7%af%e5%b1%82%e5%a4%84%e7%90%86%e4%bb%a5%e5%a4%aa%e7%bd%91%e5%b8%a7%e7%9a%84%e6%a0%bc%e5%bc%8f%e8%b7%af%e7%94%b1%e5%88%b0%e6%ad%a3%e7%a1%ae%e7%9a%84%e5%8d%8f%e8%ae%ae%e5%a4%84%e7%90%86%e5%99%a8%e3%80%82%e5%86%85%e6%a0%b8%e4%bd%bf%e7%94%a8%e4%ba%86%e5%85%85%e5%88%86%e7%9a%84%e5%88%86%e7%89%87%ef%bc%88sk_buff%ef%bc%89%e7%bb%93%e6%9e%84%e6%9d%a5%e8%bd%ac%e5%8f%91%e6%95%b0%e6%8d%ae%e5%b9%b6%e5%b0%81%e8%a3%85%e3%80%82%3c%2fp%3e%0a%3cp%3esk_buff%e6%98%af%e5%86%85%e6%a0%b8%e7%bd%91%e7%bb%9c%e6%a0%88%e4%b8%ad%e6%9c%80%e9%87%8d%e8%a6%81%e7%9a%84%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84%ef%bc%8c%e5%85%b6%e8%ae%be%e8%ae%a1%e7%89%b9%e7%82%b9%e5%8c%85%e6%8b%ac%ef%bc%9a%3c%2fp%3e%0a%3cul%3e%0a%3cli%3e%3cstrong%3e%e5%8f%8c%e5%90%91%e9%93%be%e8%a1%a8%3a%3c%2fstrong%3e+%e6%96%b9%e4%be%bf%e9%a2%84%e7%95%99%e9%98%9f%e5%88%97%e5%92%8c%e6%8e%a5%e6%94%b6%e9%98%9f%e5%88%97%e6%93%8d%e4%bd%9c%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e5%b1%82%e8%bf%81%e7%a7%bb%e8%83%bd%e5%8a%9b%3a%3c%2fstrong%3e+tci%e5%ad%97%e6%ae%b5%e6%a0%87%e8%ae%b0%e5%b1%82%e6%ac%a1%e4%bf%a1%e6%81%af%ef%bc%8c%e6%97%b6%e9%97%b4%e6%88%b3%e4%bf%9d%e7%95%99%e8%b7%af%e7%94%b1%e8%bf%87%e7%a8%8b%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e5%85%b1%e4%ba%ab%e5%86%85%e5%ad%98%3a%3c%2fstrong%3e+clone%ef%bc%88%ef%bc%89%e6%96%b9%e6%b3%95%e5%85%b1%e4%ba%ab%e6%95%b0%e6%8d%ae%e5%8c%ba%e5%9f%9f%ef%bc%8c%e9%81%bf%e5%85%8d%e6%95%b0%e6%8d%ae%e5%a4%8d%e5%88%b6%3c%2fli%3e%0a%3c%2ful%3e%0a%0a%3ch3%3e3.2+%e7%bd%91%e7%bb%9c%e5%b1%82%ef%bc%88L3%ef%bc%89IPv4%2fIPv6%3c%2fh3%3e%0a%3cp%3eIPv4%e5%9c%a8%e5%86%85%e6%a0%b8%e4%b8%ad%e7%9a%84%e5%a4%84%e7%90%86%e6%b5%81%e7%a8%8b%e5%8c%85%e6%8b%ac%e9%80%9a%e8%bf%87ip_rcv%ef%bc%88%ef%bc%89%e5%85%a5%e5%8f%97ip_local_deliver%ef%bc%88%ef%bc%89%e5%88%86%e5%8f%91%e6%9c%ac%e5%9c%b0%e4%b8%8e%e8%bd%ac%e5%8f%91%e3%80%82ip_forward%ef%bc%88%ef%bc%89%e5%ae%9e%e7%8e%b0%e8%b7%af%e7%94%b1%e8%bd%ac%e5%8f%91%ef%bc%8c%e5%8c%85%e5%90%abTTL%e5%87%8f%e4%b8%80%e3%80%81%e9%87%8d%e8%ae%a1%e6%a0%a1%e9%aa%8c%e5%92%8c%e3%80%81%e6%95%b0%e6%8d%ae%e5%8c%85%e5%88%86%e7%89%87%e7%ad%89%e6%93%8d%e4%bd%9c%e3%80%82%3c%2fp%3e%0a%3cp%3eip_local_deliver_finish%ef%bc%88%ef%bc%89%e6%a0%b9%e6%8d%ae%e5%8d%8f%e8%ae%ae%e5%ad%97%e6%ae%b5%e5%88%86%e5%8f%91%e5%88%b0%e4%b8%8a%e5%b1%82%e5%8d%8f%e8%ae%ae%e5%a4%84%e7%90%86%ef%bc%9a%3c%2fp%3e%0a%3cul%3e%0a%3cli%3ePROTO_TCP+%3d+6+%e2%86%92+%3cstrong%3eTCP%3c%2fstrong%3e%3c%2fli%3e%0a%3cli%3ePROTO_UDP+%3d+17+%e2%86%92+%3cstrong%3eUDP%3c%2fstrong%3e%3c%2fli%3e%0a%3cli%3ePROTO_ICMP+%3d+1+%e2%86%92+%3cstrong%3eICMP%3c%2fstrong%3e%3c%2fli%3e%0a%3c%2ful%3e%0a%0a%3ch3%3e3.3+%e4%bc%a0%e8%be%93%e5%b1%82%ef%bc%88L4%ef%bc%89TCP%2fUDP%3c%2fh3%3e%0a%3cp%3eTCP%e5%8d%8f%e8%ae%ae%e6%98%afLinux%e7%bd%91%e7%bb%9c%e6%a0%88%e4%b8%ad%e6%9c%80%e5%a4%8d%e6%9d%82%e7%9a%84%e9%83%a8%e5%88%86%e3%80%82%e5%85%b6%e6%a0%b8%e5%bf%83%e6%9c%ba%e5%88%b6%e5%8c%85%e6%8b%ac%ef%bc%9a%3c%2fp%3e%0a%3col%3e%0a%3cli%3e%3cstrong%3e%e6%8b%a5%e5%a1%9e%e6%8e%a7%e5%88%b6%3a%3c%2fstrong%3e+%e6%b5%81%e9%87%8f%e6%8e%a7%e5%88%b6%e7%aa%97%e5%8f%a3%e3%80%81%e6%85%a2%e5%90%af%e5%8a%a8%e3%80%81%e5%bf%ab%e9%87%8d%e4%bc%a0%e4%b8%8e%e6%8d%a2%e8%a1%8c%e7%ae%97%e6%b3%95%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e9%9d%99%e9%bb%98%e7%aa%97%e5%8f%a3%e6%a3%80%e6%b5%8b%3a%3c%2fstrong%3e+SACK%e9%80%89%e9%a1%b9%e4%b8%8e%e5%a4%a7%e5%b0%8f%e5%8f%91%e7%8e%b0%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e9%87%8d%e4%bc%a0%e6%9c%ba%e5%88%b6%3a%3c%2fstrong%3e+%e5%9f%ba%e4%ba%8eRTT%e5%8a%a8%e6%80%81%e8%ae%a1%e7%ae%97%e9%87%8d%e4%bc%a0%e8%b6%85%e6%97%b6%e6%97%b6%e9%97%b4%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e7%8a%b6%e6%80%81%e6%9c%ba%3a%3c%2fstrong%3e+%e4%bb%8eCLOSED%e5%88%b0ESTABLISHED%e7%9a%84%e7%8a%b6%e6%80%81%e8%bd%ac%e7%a7%bb%3c%2fli%3e%0a%3c%2fol%3e%0a%0a%3ch2%3e%e5%9b%9b%e3%80%81Netfilter%e6%a1%86%e6%9e%b6%3c%2fh2%3e%0a%3cp%3eNetfilter%e6%98%afLinux%e5%86%85%e6%a0%b8%e4%b8%ad%e7%9a%84%e9%ad%94%e6%b3%95%e6%a1%86%e6%9e%b6%ef%bc%8c%e5%ae%9e%e7%8e%b0%e4%ba%86%e9%9a%94%e7%a6%bb%e3%80%81%e7%bd%91%e7%bb%9c%e5%9c%b0%e5%9d%80%e8%bd%ac%e6%8d%a2%ef%bc%88NAT%ef%bc%89%e3%80%81%e9%98%b2%e7%81%ab%e5%a2%99%e7%ad%89%e5%8a%9f%e8%83%bd%e3%80%82%e5%ae%83%e5%9c%a8%e6%95%b0%e6%8d%ae%e5%8c%85%e7%9a%84%e8%b7%af%e7%bb%8f%e4%b8%8a%e5%85%88%e6%8f%92%e5%85%a55%e4%b8%aa%e9%92%a9%e5%ad%90%e7%82%b9%ef%bc%88HOOK%ef%bc%89%ef%bc%9a%3c%2fp%3e%0a%3cul%3e%0a%3cli%3e%3cstrong%3eNF_INET_PRE_ROUTING%3a%3c%2fstrong%3e+%e8%be%93%e5%85%a5%e6%95%b0%e6%8d%ae%e5%8c%85%e8%bf%9b%e5%85%a5%e8%b7%af%e7%94%b1%e5%88%a4%e6%96%ad%e4%b9%8b%e5%89%8d%3c%2fli%3e%0a%3cli%3e%3cstrong%3eNF_INET_LOCAL_IN%3a%3c%2fstrong%3e+%e7%9b%ae%e7%9a%84%e5%9c%b0%e5%9d%80%e4%b8%ba%e6%9c%ac%e6%9c%ba%e7%9a%84%e6%95%b0%e6%8d%ae%e5%8c%85%3c%2fli%3e%0a%3cli%3e%3cstrong%3eNF_INET_FORWARD%3a%3c%2fstrong%3e+%e9%9c%80%e8%a6%81%e8%bd%ac%e5%8f%91%e7%9a%84%e6%95%b0%e6%8d%ae%e5%8c%85%3c%2fli%3e%0a%3cli%3e%3cstrong%3eNF_INET_LOCAL_OUT%3a%3c%2fstrong%3e+%e6%9c%ac%e6%9c%ba%e5%8f%91%e5%87%ba%e7%9a%84%e6%95%b0%e6%8d%ae%e5%8c%85%3c%2fli%3e%0a%3cli%3e%3cstrong%3eNF_INET_POST_ROUTING%3a%3c%2fstrong%3e+%e6%95%b0%e6%8d%ae%e5%8c%85%e5%8d%b3%e5%b0%86%e7%a6%bb%e5%bc%80%e4%b8%bb%e6%9c%ba%3c%2fli%3e%0a%3c%2ful%3e%0a%3cp%3e%e9%80%9a%e8%bf%87%e8%ae%be%e7%bd%ae%e4%b8%8d%e5%90%8c%e4%bc%98%e5%85%88%e7%ba%a7%e7%9a%84%e8%a7%84%e5%88%99%ef%bc%8c%e5%8f%af%e5%9c%a8%e5%90%84%e4%b8%aaHOOK%e7%82%b9%e8%bf%9b%e8%a1%8c%e4%bf%ae%e6%94%b9%e6%88%96%e6%8a%9b%e5%bc%83%e6%95%b0%e6%8d%ae%e5%8c%85%e3%80%82iptables%e5%92%8cnftables%e6%98%af%e7%94%a8%e6%88%b7%e6%8e%a7%e5%88%b6Netfilter%e7%9a%84%e5%b7%a5%e5%85%b7%e3%80%82%3c%2fp%3e%0a%0a%3ch2%3e%e4%ba%94%e3%80%81%e9%ab%98%e6%80%a7%e8%83%bd%e7%bd%91%e7%bb%9c%e5%8a%a0%e9%80%9f%3c%2fh2%3e%0a%3ch3%3e5.1+eBPF+XDP%3c%2fh3%3e%0a%3cp%3eeBPF%ef%bc%88Extended+Berkeley+Packet+Filter%ef%bc%89%e6%98%af%e7%8e%b0%e4%bb%a3Linux%e5%86%85%e6%a0%b8%e7%9a%84%e5%ae%9d%e8%97%8f%e6%8a%80%e6%9c%af%ef%bc%8cXDP%ef%bc%88eXpress+Data+Path%ef%bc%89%e5%88%99%e6%98%af%e5%9c%a8%e9%a9%b1%e5%8a%a8%e4%b8%ad%e5%b1%82%e6%8c%82eBPF%e7%a8%8b%e5%ba%8f%e6%9d%a5%e5%ae%9e%e7%8e%b0%e6%9e%81%e9%ab%98%e5%a4%84%e7%9a%84%e5%a4%84%e7%90%86%ef%bc%8c%e4%bb%85%e5%9c%a8CPU%e5%a4%84%e7%90%86%e6%95%b0%e6%8d%ae%e5%b9%95%e5%90%8e%e5%85%b6%e4%b8%8a%e5%b1%82%e5%8d%8f%e8%ae%ae%e6%a0%88%e6%9c%aa%e6%8a%b5%e8%be%be%e3%80%82%3c%2fp%3e%0a%3cp%3eXDP%e7%9a%84%e6%a0%b8%e5%bf%83%e4%bc%98%e5%8a%bf%ef%bc%9a%3c%2fp%3e%0a%3cpre%3e%3ccode%3e%2f*+%e4%be%8b%e5%ad%90%ef%bc%9aXDP%e4%b8%8a%e7%9a%84%e7%ae%80%e5%8d%95%e4%bd%8d%e8%bf%87%e6%bb%a4+*%2f%0aSEC(%22xdp%22)%0avoid+xdp_pass(struct+xdp_md+*ctx)+%7b%0a++++void+*data_end+%3d+(void+*)(long)ctx-%3edata_end%3b%0a++++void+*data+++++%3d+(void+*)(long)ctx-%3edata%3b%0a%0a++++struct+ethhdr+*eth+%3d+data%3b%0a++++if+((void+*)(eth+%2b+1)+%3e+data_end)%0a++++++++return+XDP_DROP%3b%0a%0a++++if+(eth-%3eh_proto+%3d%3d+bpf_htons(ETH_P_IP))%0a++++++++return+XDP_PASS%3b%0a++++return+XDP_DROP%3b+%0a%7d%3c%2fcode%3e%3c%2fpre%3e%0a%3cp%3e%3cstrong%3e%e8%bf%94%e5%9b%9e%e7%a0%81%e5%90%ab%e4%b9%89%3a%3c%2fstrong%3e%3c%2fp%3e%0a%3cul%3e%0a%3cli%3e%3cstrong%3eXDP_PASS%3a%3c%2fstrong%3e+%e6%a0%88%e7%bb%a7%e7%bb%ad%e7%94%a8%e5%8d%8f%e8%ae%ae%e5%a4%84%e7%90%86%3c%2fli%3e%0a%3cli%3e%3cstrong%3eXDP_DROP%3a%3c%2fstrong%3e+%e7%9b%b4%e6%8e%a5%e4%b8%a2%e5%bc%83%3c%2fli%3e%0a%3cli%3e%3cstrong%3eXDP_TX%3a%3c%2fstrong%3e+%e4%bb%8e%e6%8e%a5%e6%94%b6%e7%9a%84%e7%bd%91%e5%8d%a1%e5%8f%91%e5%9b%9e%3c%2fli%3e%0a%3cli%3e%3cstrong%3eXDP_REDIRECT%3a%3c%2fstrong%3e+%e9%87%8d%e5%ae%9a%e5%90%91%e5%88%b0%e5%8f%a6%e4%b8%80%e7%bd%91%e5%8d%a1%3c%2fli%3e%0a%3c%2ful%3e%0a%0a%3ch3%3e5.2+AF_XDP%3c%2fh3%3e%0a%3cp%3eAF_XDP%ef%bc%88Address+Family+eXpress+Data+Path%ef%bc%89%e6%98%af%e5%8f%a6%e4%b8%80%e7%a7%8deBPF%e5%8a%a0%e9%80%9f%e6%96%b9%e6%a1%88%ef%bc%8c%e5%ae%83%e9%80%9a%e8%bf%87%e4%ba%86%ef%bc%88%e7%94%a8%ef%bc%9fUMEM%ef%bc%89%e5%86%85%e5%ad%98%e7%9a%84%e6%a1%86%e6%9e%b6%ef%bc%8c%e5%9c%a8%e7%94%a8%e6%88%b7%e7%a9%ba%e9%97%b4%e4%b8%8e%e9%a9%b1%e5%8a%a8%e4%b9%8b%e9%97%b4%e6%96%b9%e4%be%bf%e6%95%b0%e6%8d%ae%e5%8c%85%ef%bc%8c%e5%ae%9e%e7%8e%b0%e8%b6%85%e4%bd%8e%e5%bb%b6%e8%bf%9f%e7%9a%84%e6%95%b0%e6%8d%ae%e4%bc%a0%e8%be%93%e3%80%82%3c%2fp%3e%0a%0a%3ch2%3e%e5%85%ad%e3%80%81%e6%80%a7%e8%83%bd%e4%bc%98%e5%8c%96%e7%9a%84%e6%9c%80%e4%bd%b3%e5%ae%9e%e8%b7%b5%3c%2fh2%3e%0a%3ch3%3e6.1+%e4%b8%ad%e6%96%ad%e8%b0%83%e5%ba%a6%ef%bc%88IRQ+Affinity%ef%bc%89%3c%2fh3%3e%0a%3cp%3e%e5%b0%86%e4%b8%8d%e5%90%8c%e7%bd%91%e5%8d%a1%e7%9a%84%e4%b8%ad%e6%96%ad%e7%bb%91%e5%ae%9a%e5%88%b0%e7%8b%ac%e7%ab%8b%e7%9a%84CPU%e6%a0%b8%e5%bf%83%ef%bc%8c%e5%8f%af%e6%98%be%e8%91%97%e5%87%8f%e5%b0%91%e7%bc%93%e5%ad%98%e5%a4%b1%e6%95%88%e5%b9%b6%e6%8f%90%e5%8d%87%e5%a4%84%e7%90%86%e6%95%88%e7%8e%87%ef%bc%9a%3c%2fp%3e%0a%3cpre%3e%3ccode%3e%23+%e6%9f%a5%e7%9c%8b%e7%bd%91%e5%8d%a1%e4%b8%ad%e6%96%ad%e5%88%86%e9%85%8d%0acat+%2fproc%2firq%2f%24IRQ_NUM%2fsmp_affinity_list%0a%0a%23+%e5%b0%86eth0%e7%9a%84%e4%b8%ad%e6%96%ad%e7%bb%91%e5%ae%9a%e5%88%b0CPU0%0aecho+1+%3e+%2fproc%2firq%2f123%2fsmp_affinity_list%0a%0a%23+%e4%bf%ae%e6%94%b9%e6%8e%a5%e6%94%b6%e9%98%9f%e5%88%97%e7%9a%84len%e5%8f%8a+Fill%0asudo+ethtool+-G+eth0+rx+4096+tx+4096%3c%2fcode%3e%3c%2fpre%3e%0a%0a%3ch3%3e6.2+%e6%a0%88%e7%aa%81%e7%a0%b4%e7%a9%bf%ef%bc%88Stack+Bypass%ef%bc%89%3c%2fh3%3e%0a%3cp%3e%e5%af%b9%e4%ba%8e%e9%ab%98%e5%8f%af%e5%8a%a0%e9%80%9f%e5%9c%ba%e6%99%af%ef%bc%8c%e5%8f%af%e4%bd%bf%e7%94%a8DPDK%e6%88%96XDP%e5%b0%86%e6%95%b0%e6%8d%ae%e5%8c%85%e7%9b%b4%e6%8e%a5%e6%92%ad%e6%94%be%e5%88%b0%e7%94%a8%e6%88%b7%e7%a9%ba%e9%97%b4%ef%bc%8c%e7%aa%81%e7%a0%b4%e7%a9%bf%e5%86%85%e6%a0%b8%e5%8d%8f%e8%ae%ae%e6%a0%88%e3%80%82DPDK%e9%80%82%e7%94%a8%e4%ba%8e%e4%ba%a7%e5%9c%b0%e4%ba%a4%e6%8d%a2%e6%9c%ba%e3%80%81%e8%b6%85%e7%ba%a7%e8%ae%a1%e7%ae%97%e6%9c%ba%e7%ad%89%e5%9c%ba%e6%99%af%ef%bc%8c%e4%bd%86%e6%8f%90%e9%ab%98%e4%ba%86%e5%bc%80%e5%8f%91%e5%a4%8d%e6%9d%82%e5%ba%a6%3c%2fp%3e%0a%0a%3ch3%3e6.3+%e5%86%85%e6%a0%b8%e5%8f%82%e6%95%b0%e8%b0%83%e4%bc%98%3c%2fh3%3e%0a%3cpre%3e%3ccode%3e%23+%e6%8f%90%e5%8d%87Socket%e7%bc%93%e5%86%b2%e5%8c%ba%e5%a4%a7%e5%b0%8f%0asysctl+-w+net.core.rmem_max%3d8388608%0asysctl+-w+net.core.wmem_max%3d8388608%0asysctl+-w+net.core.rmem_default%3d1048576%0asysctl+-w+net.core.wmem_default%3d1048576%0a%0a%23+%e6%8f%90%e5%8d%87Backlog%e9%98%9f%e5%88%97%0asysctl+-w+net.core.netdev_max_backlog%3d5000%0a%0a%23+%e5%bc%80%e5%90%afTCP%e5%90%84%e7%a7%8d%e4%bc%98%e5%8c%96%0asysctl+-w+net.ipv4.tcp_timestamps%3d1%0asysctl+-w+net.ipv4.tcp_window_scaling%3d1%0asysctl+-w+net.ipv4.tcp_sack%3d1%0asysctl+-w+net.ipv4.tcp_no_metrics_save%3d1%3c%2fcode%3e%3c%2fpre%3e%0a%0a%3ch3%3e6.4+RSS+%e4%b8%8e+RPS+%e5%a4%9a%e9%98%9f%e5%88%97%e6%8a%80%e6%9c%af%3c%2fh3%3e%0a%3cp%3e%3cstrong%3eRSS%3c%2fstrong%3e%ef%bc%88Receive+Side+Scaling%ef%bc%89%e9%80%9a%e8%bf%87%e7%a1%ac%e4%bb%b6%e5%ae%9e%e7%8e%b0%e5%a4%9a%e9%98%9f%e5%88%97%e6%95%b0%e6%8d%ae%e5%88%86%e5%8f%91%3c%2fp%3e%0a%3cp%3e%3cstrong%3eRPS%3c%2fstrong%3e%ef%bc%88Receive+Packet+Steering%ef%bc%89%e4%bb%85%e4%be%9d%e8%b5%96%e8%bd%af%e4%bb%b6%e5%ae%9e%e7%8e%b0%e7%b1%bb%e4%bc%bc%e6%95%88%e6%9e%9c%ef%bc%8c%e9%80%9a%e7%94%a8%e4%ba%8e%e4%b8%8d%e6%94%af%e6%8c%81RSS%e7%9a%84%e7%bd%91%e5%8d%a1%ef%bc%9a%3c%2fp%3e%0a%3cpre%3e%3ccode%3e%23+%e4%b8%baeth0%e5%90%af%e7%94%a8RPS%2c+%e5%88%86%e9%85%8d%e5%88%b00-3%e5%8f%b7CPU%0aecho+f+%3e+%2fsys%2fclass%2fnet%2feth0%2fqueues%2frx-0%2frps_cpus%3c%2fcode%3e%3c%2fpre%3e%0a%0a%3ch2%3e%e4%b8%83%e3%80%81%e6%95%b0%e6%8d%ae%e5%8c%85%e8%b7%af%e5%be%84%e7%9a%84%e5%8f%a3%e4%bb%a4%3c%2fh2%3e%0a%3cp%3e%e4%b8%80%e4%b8%aa%e5%9c%a8%e7%bd%91%e7%9a%84%e7%bd%91%e7%bb%9c%e6%95%b0%e6%8d%ae%e5%8c%85%e7%9a%84%e5%a4%84%e7%90%86%e6%b5%81%e7%a8%8b%e5%8f%af%e6%8f%90%e7%bb%83%e4%b8%ba%e4%bb%a5%e4%b8%8b%22%e4%ba%94%e6%ad%a5%e5%90%91%e5%af%bc%22%ef%bc%9a%3c%2fp%3e%0a%3col%3e%0a%3cli%3e%3cstrong%3e%e5%b0%81%e8%a3%85%3a%3c%2fstrong%3e+%e5%ba%94%e7%94%a8%e5%b1%82+%e2%86%92+socket+%e2%86%92+TCP%2fUDP+%e2%86%92+IP+%e2%86%92+%e4%bb%a5%e5%a4%aa%e7%bd%91%e5%b8%a7%e5%a4%b4%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e4%bc%a0%e8%be%93%3a%3c%2fstrong%3e+DMA%e5%86%99%e5%85%a5Ring+Buffer%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e8%a7%a6%e5%8f%91%3a%3c%2fstrong%3e+%e7%a1%ac%e4%bb%b6%e4%b8%ad%e6%96%ad%e4%b8%8eNAPI%e5%90%af%e5%8a%a8%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e5%a4%84%e7%90%86%3a%3c%2fstrong%3e+%e8%bd%af%e4%b8%ad%e6%96%ad%e4%b8%ad%e7%9a%84%e5%8d%8f%e8%ae%ae%e6%a0%88%e5%a4%84%e7%90%86%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e4%ba%a4%e4%bb%98%3a%3c%2fstrong%3e+%e6%9c%ac%e5%9c%b0%e7%bc%93%e5%ad%98%e5%90%8e%e5%86%99%e5%85%a5%e9%98%9f%e5%88%97%2fCQ%e4%b8%ad+%3c%2fli%3e%0a%3c%2fol%3e%0a%0a%3ch2%3e%e5%85%ab%e3%80%81%e5%b8%b8%e8%a7%81%e7%96%91%e9%9a%be%e6%9d%82%e7%97%87%e5%88%86%e6%9e%90%3c%2fh2%3e%0a%3ch3%3e8.1+%e6%8e%a5%e6%94%b6%e6%96%b9%e5%90%91%e6%8e%89%e5%8c%85%3c%2fh3%3e%0a%3cp%3e%e5%bd%93%e4%bd%a0%e5%8f%91%e7%8e%b0%e7%94%a8%e6%88%b7%e6%8e%a5%e6%94%b6%e6%97%b6%e6%8e%89%e6%b5%81%e9%87%8f%e7%96%91%e4%bc%bc%e6%8e%89%e5%8c%85%e6%97%b6%ef%bc%8c%e5%8f%af%e4%bb%a5%e9%80%9a%e8%bf%87%e6%9f%a5%e7%9c%8b+%2fproc%2fnet%2fdev+%e5%92%8c+netstat+-i+%e5%88%86%e6%9e%90%e5%8e%9f%e5%9b%a0%e3%80%82%e5%85%b8%e5%9e%8b%e5%8e%9f%e5%9b%a0%e5%8c%85%e6%8b%ac%ef%bc%9a%3c%2fp%3e%0a%3cul%3e%0a%3cli%3e%3cstrong%3e%e7%bd%91%e5%8d%a1%e8%a2%ab%e5%8e%8b%e7%88%86%3a%3c%2fstrong%3e+%e8%bd%ae%e8%af%a2%e9%a2%91%e7%8e%87%e4%b8%8d%e8%b6%b3%ef%bc%8cRing+Buffer%e6%bb%a1%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e6%95%b0%e6%8d%ae%e6%a0%87%e8%ae%b0%e5%90%8c%e6%ad%a5%e9%97%ae%e9%a2%98%3a%3c%2fstrong%3e+%e4%bb%a5%e5%a4%aa%e7%bd%91%e5%b8%a7%e6%a0%a1%e9%aa%8c%e9%94%99%e8%af%af%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e5%a4%9a%e8%b7%af%e5%be%84%e7%9a%84%e7%81%b5%e6%95%8f%e5%ba%a6%e4%b8%8d%e8%b6%b3%3a%3c%2fstrong%3e+%e8%b7%af%e7%94%b1%e9%99%8d%e7%ba%a7%e8%ae%be%e7%bd%ae%3c%2fli%3e%0a%3c%2ful%3e%0a%0a%3ch3%3e8.2+%e5%85%83%e7%b4%a0%e5%8d%93%e8%81%9a%e8%83%8c%e5%8e%9f%e5%88%99%3c%2fh3%3e%0a%3cp%3e%e4%bb%a5%e4%b8%8b%e5%8e%9f%e5%88%99%e6%9c%89%e5%8a%a9%e4%ba%8e%e6%8f%90%e5%8d%87%e5%86%85%e6%a0%b8%e7%bd%91%e7%bb%9c%e6%a0%88%e7%9a%84%e6%80%a7%e8%83%bd%ef%bc%9a%3c%2fp%3e%0a%3cul%3e%0a%3cli%3e%3cstrong%3e%e6%9c%80%e5%b0%91%e7%89%88%e6%9f%a5%3a%3c%2fstrong%3e+%e4%b8%8e%e5%85%b6%e7%81%ab%e5%b1%82%e4%ba%a4%e4%ba%92%ef%bc%8c%e5%85%88%e6%9f%a5%e7%9c%8b%e6%98%af%e5%90%a6%e4%bf%9d%e7%95%99%e5%86%85%e6%a0%b8%e6%9f%a5%e4%bb%b6%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e7%8e%a9%e5%88%ba%e6%81%a9%e4%bb%b6%e6%88%96%e6%ad%a3%e5%88%99%3a%3c%2fstrong%3e+%e8%a6%81%e7%a1%ae%e4%bf%9dNetfilter%e8%a7%84%e5%88%99%e6%b2%a1%e6%9c%89%e5%8f%a0%e9%94%99%3c%2fli%3e%0a%3cli%3e%3cstrong%3e%e7%8e%a9%e5%88%86%e4%ba%8c%e4%b8%89%e6%8b%8d%3a%3c%2fstrong%3e+%e5%b0%86%e6%b5%8b%e8%af%95%e6%96%b9%e6%b3%95%e5%88%86%e6%88%90%e5%a4%9a%e6%ac%a1%ef%bc%8c%e6%9c%89%e5%88%a9%e4%ba%8e%e5%ae%9a%e4%bd%8d%e6%88%b3%e5%87%bb%3c%2fli%3e%0a%3c%2ful%3e%0a%0a%3ch2%3e%e4%b9%9d%e3%80%81%e6%80%bb%e7%bb%93%3c%2fh2%3e%0a%3cp%3eLinux%e5%86%85%e6%a0%b8%e7%bd%91%e7%bb%9c%e6%a0%88%e6%98%af%e4%b8%80%e4%b8%aa%e7%bb%8f%e8%bf%87%e5%a4%9a%e5%b9%b4%e4%bc%98%e5%8c%96%e7%9a%84%e9%ab%98%e6%80%a7%e8%83%bd%e6%9e%b6%e6%9e%84%ef%bc%8c%e4%bb%8e%e7%a1%ac%e4%bb%b6%e4%b8%ad%e6%96%ad%e5%88%b0%e7%94%a8%e6%88%b7%e6%8e%a5%e5%8f%a3%e7%9a%84%e6%af%8f%e4%b8%80%e4%b8%aa%e7%8e%af%e8%8a%82%e9%83%bd%e6%9c%89%e5%b7%a7%e5%a6%99%e7%9a%84%e8%ae%be%e8%ae%a1%e3%80%82%e7%90%86%e8%a7%a3NAPI%e3%80%81eBPF%2fXDP%e3%80%81Netfilter%e7%ad%89%e6%a0%b8%e5%bf%83%e6%9c%ba%e5%88%b6%ef%bc%8c%e5%b9%b6%e7%8e%b0%e5%ae%9e%e8%b7%b5%e6%9d%a5%e7%90%86%e8%a7%a3%e4%bc%98%e5%8c%96%e7%bd%91%e7%bb%9c%e5%ba%94%e7%94%a8%e6%97%b6%e7%9a%84%e5%85%b3%e9%94%ae%e6%95%85%e9%9a%be%e3%80%82%3c%2fp%3e%0a%3cp%3e%3cstrong%3e%e5%85%b3%e9%94%ae%e8%a6%81%e7%82%b9%3a%3c%2fstrong%3e%3c%2fp%3e%0a%3cul%3e%0a%3cli%3e%e7%a1%ac%e4%bb%b6%e4%b8%ad%e6%96%ad%e4%b8%8eDMA%e6%98%af%e6%95%b0%e6%8d%ae%e5%8c%85%e6%8e%a5%e6%94%b6%e7%9a%84%e7%ac%ac%e4%b8%80%e6%ad%a5%ef%bc%8cNAPI%e5%ae%9e%e7%8e%b0%e4%ba%86%e4%b8%ad%e6%96%ad%e4%b8%8e%e8%bd%ae%e8%af%a2%e7%9a%84%e5%8d%8f%e8%b0%83%3c%2fli%3e%0a%3cli%3esk_buff%e6%98%af%e6%95%b0%e6%8d%ae%e5%8c%85%e5%9c%a8%e5%86%85%e6%a0%b8%e4%b8%ad%e7%9a%84%e5%85%b1%e4%ba%ab%e5%bd%a2%e5%bc%8f%ef%bc%8c%e6%97%a0%e8%ae%ba%e5%90%84%e4%b8%aa%e5%b1%82%e6%ac%a1%e9%83%bd%e4%b9%9f%e4%ba%a4%e4%ba%92%3c%2fli%3e%0a%3cli%3eNetfilter%e9%80%9a%e8%bf%87%e4%b9%9d%e4%b8%aaHOOK%e7%82%b9%e5%ae%9e%e7%8e%b0%e7%bd%91%e7%bb%9c%e5%8a%9f%e8%83%bd%e7%9a%84%e7%81%b5%e6%8b%ac%e7%89%b9%e8%87%b4%2c+iptables%2fnftables%e6%98%af%e7%94%a8%e6%88%b7%e6%8e%a7%e5%88%b6%e5%b7%a5%e5%85%b7%3c%2fli%3e%0a%3cli%3eeBPF%2fXDP%e6%8f%90%e4%be%9b%e4%ba%86%e5%9c%a8%e5%86%85%e6%a0%b8%e6%8f%92%e4%b8%8b%e7%a8%8b%e5%ba%8f%e7%9a%84%e6%9c%ba%e4%b9%a0%ef%bc%8c%e5%ae%9e%e7%8e%b0%e5%bf%ab%e9%80%9f%e4%b8%8e%e5%8a%a0%e5%bc%ba%e6%80%a7%e8%83%bd%3c%2fli%3e%0a%3cli%3e%e4%b8%ad%e6%96%ad%e8%b0%83%e5%ba%a6%e3%80%81RSS%2fRPS%e3%80%81%e6%a0%88%e7%aa%81%e7%a0%b4%e7%a9%bf%e6%98%af%e6%8f%90%e5%8d%87%e5%a4%84%e7%90%86%e6%95%88%e7%8e%87%e7%9a%84%e6%9c%89%e6%95%88%e6%89%8b%e6%ae%b5%3c%2fli%3e%0a%3cli%3e%e6%8e%8c%e6%8f%a1%e5%86%85%e6%a0%b8%e5%8f%82%e6%95%b0%e8%b0%83%e4%bc%98%e5%b0%86%e5%b8%ae%e5%8a%a9%e7%bd%91%e7%bb%9c%e5%be%97%e5%88%b0%e6%9c%80%e4%bd%b3%e6%80%a7%e8%83%bd%3c%2fli%3e%0a%3c%2ful%3e%0a
点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部