(dpdk f-stack)-tcp方式访问server时本地源端口lport选择方法

Posted 阳光梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(dpdk f-stack)-tcp方式访问server时本地源端口lport选择方法相关的知识,希望对你有一定的参考价值。

nginx连接server时即执行connect函数,最终由FreeBSD中in_pcbconnect_setup选择一个本地未使用的lport与server端口通信。

in_pcbconnect_setup
{
    ...
    if (lport == 0)
    {
        struct ifaddr *ifa;
        struct ifnet *ifp;
        struct sockaddr_in ifp_sin;
        unsigned loop_count = 0;
        bzero(&ifp_sin, sizeof(ifp_sin));
        ifp_sin.sin_addr.s_addr = laddr.s_addr;
        ifp_sin.sin_family = AF_INET;
        ifp_sin.sin_len = sizeof(ifp_sin);
        ifa = ifa_ifwithnet((struct sockaddr *)&ifp_sin, 0, RT_ALL_FIBS);
        if (ifa == NULL) {
            ifp_sin.sin_addr.s_addr = faddr.s_addr;
            ifa = ifa_ifwithnet((struct sockaddr *)&ifp_sin, 0, RT_ALL_FIBS);
            if ( ifa == NULL )
                

以上是关于(dpdk f-stack)-tcp方式访问server时本地源端口lport选择方法的主要内容,如果未能解决你的问题,请参考以下文章

(dpdk f-stack)-实现L4代理功能

(dpdk f-stack)-实现L4代理功能

(dpdk f-stack)-dperf做压测

(dpdk f-stack) 为何使用巨页

基于dpdk的用户态协议栈f-stack

基于dpdk的用户态协议栈f-stack