Menu

端口共用时的包发送问题,求解答

2014-08-01
2014-08-01
  • xiaochi hong

    xiaochi hong - 2014-08-01

    看代码,4.11版本。当多个cudt共用同个复用器时,发送和接收的buffer也是共用的,即cudt的m_pSndQueue相同。
    见CUDTUnited::updateMux()
    if ((s->m_pUDT->m_bReuseAddr) && (NULL != addr))
    {
    int port = (AF_INET == s->m_pUDT->m_iIPversion) ? ntohs(((sockaddr_in)addr)->sin_port) : ntohs(((sockaddr_in6)addr)->sin6_port);

      // find a reusable address
      for (map<int, CMultiplexer>::iterator i = m_mMultiplexer.begin(); i != m_mMultiplexer.end(); ++ i)
      {
         if ((i->second.m_iIPversion == s->m_pUDT->m_iIPversion) && (i->second.m_iMSS == s->m_pUDT->m_iMSS) && i->second.m_bReusable)
         {
            if (i->second.m_iPort == port)
            {
               // reuse the existing multiplexer
               ++ i->second.m_iRefCount;
               s->m_pUDT->m_pSndQueue = i->second.m_pSndQueue;
               s->m_pUDT->m_pRcvQueue = i->second.m_pRcvQueue;
               s->m_iMuxID = i->second.m_iID;
               return;
            }
         }
      }
    

    }

    有个疑问.
    在发送线程CSndQueue::worker()中,是针对cudt进行包封装的(CUDT::packData())。取数据调用m_pSndBuffer->readData()。
    从m_pSndBuffer取出来的包不一定是属于当前cudt的包吧?但这时候使用的是cudt的拥塞窗口。

    简洁一点就是当多个cutd共用同个复用器时,发送线程在处理某个cudt的发送时发送了另外cudt的包了。

     
    • wang hui

      wang hui - 2014-08-01
      <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=gb2312"> </HEAD>

      <BODY>

      我最喜欢淘东西了,最近运气好,前几天看到这个活动,拍了两双,没想到发过来去专柜检验确实是正品~赚了~还有情侣款!http://dfhtdh.gxsl.net


      This is an automatic reply, confirming that your e-mail was received.Thank you



      邮箱使用小提示


      想让对方更及时看到你的邮件,可以试试发到"对方手机号@163.com"。



      无需事先开通,还有短信提醒。了解网易手机邮箱详情


      </body>
      </html>

       
      • wang hui

        wang hui - 2014-08-01
        <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=gb2312"> </HEAD>

        <BODY>

        我最喜欢淘东西了,最近运气好,前几天看到这个活动,拍了两双,没想到发过来去专柜检验确实是正品~赚了~还有情侣款!http://dfhtdh.gxsl.net


        This is an automatic reply, confirming that your e-mail was received.Thank you



        邮箱使用小提示


        想让对方更及时看到你的邮件,可以试试发到"对方手机号@163.com"。



        无需事先开通,还有短信提醒。了解网易手机邮箱详情


        </body>
        </html>

         
        • wang hui

          wang hui - 2014-08-01
          <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=gb2312"> </HEAD>

          <BODY>

          我最喜欢淘东西了,最近运气好,前几天看到这个活动,拍了两双,没想到发过来去专柜检验确实是正品~赚了~还有情侣款!http://dfhtdh.gxsl.net


          This is an automatic reply, confirming that your e-mail was received.Thank you



          邮箱使用小提示


          想让对方更及时看到你的邮件,可以试试发到"对方手机号@163.com"。



          无需事先开通,还有短信提醒。了解网易手机邮箱详情


          </body>
          </html>

           

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.