Re: tcp send bigger data faster then small data

From: Stephan Absmeier (me_at_privacy.net)
Date: 10/13/03

  • Next message: Geoff Lane: "Re: Wireless Fall Back"
    Date: Mon, 13 Oct 2003 14:00:18 +0200
    
    

    >>
    >>> data fastest average slowest
    >>> ================================================
    >>> 1000 0.031766 0.0323698 0.037186
    >>> 2500 0.031419 0.0315112 0.031607
    >>> 5000 0.031157 0.0312168 0.031319
    >>> 8000 0.040823 0.0409172 0.041005
    >>> 10000 0.040437 0.0405977 0.040693
    >>> 10240 0.040190 0.0402849 0.040364
    >>> 15000 0.039587 0.0399397 0.040098
    >>> 20000 0.039550 0.0396485 0.039733
    >>> 25000 0.039024 0.0393186 0.039426
    >>> 30000 0.038928 0.0390251 0.0391
    >>> 31000 0.037754 0.0386034 0.038794
    >>> 31854 0.038263 0.0383824 0.03847
    >>> 31855 0.038017 0.0380871 0.038178
    >>> 31856 0.003377 0.003417 0.003431
    >>> 31857 0.003370 0.0067964 0.03724
    >>> 32000 0.003378 0.0034376 0.003461
    >>> 33000 0.003410 0.0067806 0.036802
    >>> 34000 0.003437 0.0034616 0.003476
    >>> 35000 0.003419 0.0034721 0.003499
    >>> 40000 0.004366 0.0107605 0.036063
    >>> 45000 0.004483 0.0045104 0.00455
    >>> 50000 0.035283 0.0353607 0.03545
    >>> 55000 0.005510 0.005675 0.005775
    >>> 60000 0.005591 0.0057249 0.005954
    >>> 65000 0.005879 0.0100547 0.044415
    >>> 70000 0.006354 0.0067697 0.006989
    >>> 75000 0.006704 0.0105618 0.043935
    >>> 80000 0.007581 0.0149989 0.043544
    >>> 85000 0.007643 0.0078219 0.008091
    >>> 90000 0.008611 0.0124246 0.042909
    >>> 95000 0.008654 0.0087931 0.009042
    >>> 100000 0.008868 0.0091854 0.009645
    >>> 150000 0.013124 0.0176344 0.052137
    >>> 200000 0.017541 0.0179289 0.018181
    >>> 250000 0.021830 0.026077 0.061378
    >>> 300000 0.025925 0.0262731 0.026594
    >>> 350000 0.030249 0.0366534 0.060875
    >>> 400000 0.034372 0.0346935 0.035909
    >>> 500000 0.042992 0.0438456 0.048419
    >>> 800000 0.068332 0.0692489 0.074687
    Hi all,

    nobody answered to my last posting, so I thought I try it
    one more time.

    the situation (in pseudo code):

    open_socket
    setoption(SO_LINGER)
    bind_socket
    generate_a_char[],filled with letters
    take_the_starting_time
    send_data
    close_socket
    take_the_ending_time
    calculate_duration_of_sending

    I called this procedure as run im my former postings. I
    repated this procedure 10 times for each packet size, to
    middle the duration.

    I used a 100MBit BaseT network, switched by a 3COM
    SuperStack 4400, host A and B uses Intel 82801BD PRO/100VE
    chipsets (e100 driver) running Linux Red Hat 9.0 and host c
    and d uses 3Com 3C905 C chipsets (3C59x driver) running Red
    Hat 7.3. I used tcpdump to figure out that the mss is 1460
    bytes, but every tcp package had a payload of 1448 bytes of
    data. I tested 4 combinations of communication for sending:
    1 : A -> D
    2 : A -> B
    3 : C -> D
    4 : C -> B

    This is what I figured out so far:

    1) sending 3 * 1448, 4 * 1448, 5*1448, 6*1448, 7*1448,
    8*1448, 9*1448, 11*1448, 13*1448, 14*1448, 15*1448 and
    16*1448 is done in 3 to 4 milliseconds (ms) for each
    sending, but sending only 1 bytes less or more the duration
    is about 30 to 40 ms.
    2) sending 12 * 1448 bytes was faster then 2 ms for sending
    1,2 and 4
    3) starting with 17 * 1448 for comunication 1 and 3: values
    that are equal or bigger ( up to 33305 bytes, there I
    stopped for this test) are being send faster then 8 ms
    4) for communication 2 and 4 there is the threshold of 22 *
    1448 so that values thar are equal or bigger aer being send
    faster then 8 ms
    5) sending 10 * 1448 was really bad for all communications
    (1, 2, 3, 4): 32 to 37 ms.

    I hope you can give me some hints. Is there a possibility to
    flush the buffer? Maybe by changing the driver? In the
    application I have to modify, all the data is less then 10
    kb but there are different network interfaces.

    You asked for an streamint test. I think that's it:

    netperf -t TCP_STREAM -H 192.169.1.110 -- -r 1

    TCP STREAM TEST to 192.169.1.110
    Recv Send Send
    Socket Socket Message Elapsed
    Size Size Size Time Throughput
    bytes bytes bytes secs. 10^6bits/sec

      87380 16384 16384 10.00 93.85

      I did one more test. I changed the maximum segmentsize
    using setsockopt and TCP_MAXSEG to 1280 bytes. But 10240
    bytes (= 8*1280) isn't faster and the other get worse.

    I can need any hint, any idea.

    please :-((((((((

    Stephan


  • Next message: Geoff Lane: "Re: Wireless Fall Back"
    Loading