(dpdk f-stack)-tcp代理访问rser时本地lport选择方法

Posted ygmdream

tags:

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

rser:后端真实服务器;

lport:代理访问rser时,选择的本地端口;

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

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 s

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

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

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

(dpdk f-stack)-ipvs实现L3/L4层代理

(dpdk f-stack)-ipvs实现L3/L4层代理

(dpdk f-stack)-ipvs实现L3/L4层代理

(dpdk f-stack) VMware跑 f-stack