Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#12 LowSpeed at DCC-Send

closed-fixed
SHiZNO
Engine (43)
5
2005-06-14
2005-05-16
Anonymous
No

Maybe not a bug, but if i send a file to an irc-user the
Max Speed is 52Kb/sec. I send with 100mbit and the irc-
user can recive with 360kb/sec. Why does the Max
Speed is only 52KB/sec.

Discussion

  • Zack
    Zack
    2005-05-16

    Logged In: YES
    user_id=1279730

    sry my eng is bad and i forgot to say that znc is one of the
    nicest "bouncer". =)
    best greets
    Zack

     
  • SHiZNO
    SHiZNO
    2005-05-17

    Logged In: YES
    user_id=1093455

    Are you sending from client to client or from znc to client?

    ---------
    If it is client to client here are some issues:
    1. The DCC protocol is slow by design. You have to send an
    acknowledgement packet back for every chunk of data you receive.
    2. znc captures your DCC handshakes and proxies the
    connection to keep your IP hidden and this will slow things
    down a little more.
    3. Because znc is acting as a DCC proxy, you are also
    limited to the upstream and downstream speeds on your shell.

    If this is your problem and you don't mind the other side
    seeing your IP then I can easily make an option to make znc
    not filter your transfers and/or chats.
    ---------

    If it is directly from znc to a user on irc (/msg *status
    send someguy /tmp/file) then there is probably some coding I
    can do to speed things up a bit. I implemented the DCC
    protocol as described by the RFC which is to wait for an
    acknowledgement before sending the next packet. I've
    noticed that mIRC will deviate from this and send the data
    much faster than the other side can acknowledge it. I could
    implement something like this for direct transfers from znc.

    Thanks for using znc.

    -prozac

     
  • Zack
    Zack
    2005-05-18

    Logged In: YES
    user_id=1279730

    I think prozac said this already.

     
  • SHiZNO
    SHiZNO
    2005-06-13

    Logged In: YES
    user_id=1093455

    I added a 64K buffer where znc will still send another
    packet before requiring the acknowledgement. This increased
    my speed over 10x from 40K/s to 490K/s. Please let me know
    if this helps your problems. The fix is committed to the
    CVS tree.

    I am going to leave this bug open to add support for turning
    off the automatic dcc bouncing.

     
  • SHiZNO
    SHiZNO
    2005-06-14

    • status: open --> closed-fixed
     
  • SHiZNO
    SHiZNO
    2005-06-14

    Logged In: YES
    user_id=1093455

    I have added the config option "BounceDCCs" which can be set
    to false to make znc ignore incoming and outgoing dcc
    requests. This will expose your IP but could potentially
    allow for faster transfers.

    This fix is in cvs.

     
  • Zack
    Zack
    2005-06-17

    Logged In: YES
    user_id=1279730

    hi,
    i dont know what to do. I have add all updated files from cvs
    tree and re -cofigure, -make and -make install the znc. But if
    is send File from server to client nothing is changed. Speed
    is same as before like 30-50kb/sec. i used ( /msg *status
    send Client_nick /home/user/folder/file.dat ).
    greets Zack

     
  • SHiZNO
    SHiZNO
    2005-06-17

    Logged In: YES
    user_id=1093455

    Can you check line 18 of file DCCSock.cpp and make sure it
    looks like this:

    if ((iRemoteSoFar + 65536) >= m_uBytesSoFar) {

    That was the fix that I implemented. If your file looks
    like that and you are still getting slow speeds we should
    look into this further.

    Feel free to drop by #znc on efnet if you'd like to do some
    real-time debugging.