From: "johnny zhao" <filamoon2@hotmail.com>
To: vda@port.imtp.ilyichevsk.odessa.ua, linux-kernel@vger.kernel.org
Subject: Re: udp packet loss even with large socket buffer
Date: Sat, 28 Feb 2004 17:08:13 -0500 [thread overview]
Message-ID: <BAY14-F15j87cUL2cZ00000613e@hotmail.com> (raw)
hi,
Since my program is coping with MSN, it's not easy to post a small example.
But I will try :)
I use the following code to initialize the socket:
*****************************
session->rtp.loc_addr.sin_family = AF_INET;
session->rtp.loc_addr.sin_addr.s_addr = INADDR_ANY;
session->rtp.loc_addr.sin_port = htons (port);
session->rtp.socket = socket (PF_INET, SOCK_DGRAM, 0);
g_return_val_if_fail (session->rtp.socket > 0, -1);
err = bind (session->rtp.socket,
(struct sockaddr *) &session->rtp.loc_addr,
sizeof (struct sockaddr_in));
/* set the address reusable */
err = setsockopt (session->rtp.socket, SOL_SOCKET, SO_REUSEADDR,
(void*)&optval, sizeof (optval));
optval = 8388608;
int optlen;
err = setsockopt (session->rtp.socket, SOL_SOCKET, SO_RCVBUF,
(void*)&optval, sizeof (optval));
err = getsockopt (session->rtp.socket, SOL_SOCKET, SO_RCVBUF,
(void*)&optval, &optlen);
**************************
the following code is used to receive data:
**************************
while ( ( error = recvfrom (session->rtp.socket, mp->b_wptr,
1500, 0,
(struct sockaddr *) &remaddr,
&addrlen) ) > 0 )
{
mp->b_wptr = mp->b_rptr + error;
rtp_parse(session, mp); //this function parses and enqueues the
received packet
mp = allocb (1500/*session->max_buf_size*/, 0); //wang
}
**************************
These codes are executed in a thread with the highest priority.
Thank you in advance!
Best regards,
Johnny
>From: Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
>To: "johnny zhao" <filamoon2@hotmail.com>, linux-kernel@vger.kernel.org
>Subject: Re: udp packet loss even with large socket buffer
>Date: Sat, 28 Feb 2004 23:22:50 +0200
>
>On Saturday 28 February 2004 03:09, johnny zhao wrote:
> > Hi,
> >
> > I have a problem when trying to receive udp packets containing video
>data
> > sent by Microsoft Windows Messenger. Here is a detailed description:
> >
> > Linux box:
> > Linux-2.4.21-0.13mdksmp, P4 2.6G HT
> > socket mode:
> > blocked mode
> > code used:
> > while ( recvfrom(...) )
> > socket buffer size:
> > 8388608, set by using sysctl -w net.core.rmem_default and rmem_max
> >
> > I used ethereal(using libpcap) to monitor the network traffic. All the
> > packets were transferred and captured by libpcap. But my program
>constantly
> > suffers from packet loss. According to ethereal, the average time
>interval
> > between 2 packets is 70-80ms, and the minimum interval can go down to
> > ~1ms. Each packet is smaller than 1500 bytes (ethernet MTU).
> >
> > Can anybody help me? I googled and found a similar case that had been
> > solved by increasing the socket buffer size. But it doesn't work for me.
>I
> > think 8M is a crazily large size :(
>
>Post a small program demonstrating your problem.
>(I'd test udp receive with netcat too)
>--
>vda
>
_________________________________________________________________
Find and compare great deals on Broadband access at the MSN High-Speed
Marketplace. http://click.atdmt.com/AVE/go/onm00200360ave/direct/01/
next reply other threads:[~2004-02-28 22:08 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-28 22:08 johnny zhao [this message]
2004-03-02 12:58 ` udp packet loss even with large socket buffer Paulo Marques
-- strict thread matches above, loose matches on Subject: below --
2004-03-03 0:16 johnny zhao
2004-02-28 1:09 johnny zhao
2004-02-28 21:22 ` Denis Vlasenko
2004-03-02 2:12 ` Charlie (Zhanglei) Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BAY14-F15j87cUL2cZ00000613e@hotmail.com \
--to=filamoon2@hotmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=vda@port.imtp.ilyichevsk.odessa.ua \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox