ccrtp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ccrtp-devel] Multicast and TTL - Again


From: Tom Anwyll
Subject: Re: [Ccrtp-devel] Multicast and TTL - Again
Date: Fri, 15 Sep 2006 06:39:43 -0700 (PDT)

Hi Frederico,

Thanks for the reply and a great software library. 

--- Federico Montesino Pouzols <address@hidden>
wrote:

<snip> 

> Do I suppose it right that RTP packets are being
> sent with TTL=32?

Agreed. This is probably "bad form" for Internet apps.
However, for internal networks that span multiple
subnets, it is a programming requirement to have the
ability to change it. 

> If so, I think the problem could be sorted out by
> moving the setMulticastTTL
> method (in the RTPSession base classes) to the
> protected or public
> sections. Then, you would just have to do
> s->setMulticastTTL(32) (or
> setMulticastTTL(32) within a derived class). This is
> a bug that should
> be fixed for the next release. Could you confirm if
> this works for you?

Agreed. I think unhiding the method is proper and
eases programming complexity. I can confirm that using
a SymmetricRTPSession type the TTL's were set (and
routed) correctly, however, using a RTPSession type
the TTL's were set incorrectly and not routed to the
different subnets. I haven't dug into the
ccRTP/CommonC++ code deep enough to figure out why
this is. I suspect it's in the CommonC++ code. Any
ideas why this might be? 

> As an alternative to allow for setting multicast
> parameters of the control
> (RTCP) socket, a "getCSO" method could be added, but
> I think the first
> solution is tidier.

IMHO (I'm not the author!), I would think a getCSO
method is a requirement. As it stands now, multicast
RTCP packets will not traverse multiple subnets.
Hence, SDES info will not accompany multicast RTP
streams outside of the local network. For my custom
RTP player/client, this is not an issue, but I imagine
it might cause some flakiness in "standardized" apps
such as JMStudio, etc.

I'm not an expert on MBone, but I thought it was a
multicast based network topology and "the next cool
thing". But in it's present implementation,
ccRTP/CommonC++ will have  only limited functionality
on it due to the multicast RTP/RTCP/TTL issue.

Obviously, the multicast TTL issue is relatively
insignificant due to the limited number of real world
situations it is encountered in. And that's cool, I
just desired to get some advice/howto, and if there
are intentions to make changes, otherwise, I will need
to manage my own customized/hacked version.

Thanks again,
Tom

> 
> On Wed, September 13, 2006 8:45 pm, Tom Anwyll
> wrote:
> > Not sure if anyone is following this thread. Not
> much
> > discussion on this.
> >
> > FWIW, here's where I'm at so far:
> >
> > I guess no one has ever used ccRTP multicast
> across
> > subnets, becuase as it stands, it does not work.
> Using
> > an RTPSession object (as in the example code), the
> RTP
> > packets TTL field WILL ALWAYS be 1, despite doing
> a
> > getDSO()->setTimeToLive(ttl)call. So, in essence,
> > ccRTP multicast is broken outside of the local
> > network.
> >
> > If you want to do multicast across networks, *I
> think*
> > one must use a SymmetricRTPSession object. The
> code
> > snippet below does set the TTL correctly:
> >
> > SymmetricRTPSession* s = new
> > SymmetricRTPSession(InetHostAddress("0.0.0.0"));
> >
>
s->addDestination(InetHostAddress("235.1.1.1"),18800);
> > s->getDSO()->setMulticast(true);
> > s->getDSO()->setTimeToLive(32);
> >
> > However, the RTCP packets TTL's are still set to
> 1, so
> > I suppose that RTCP information will never travel
> > beyond the local network. I assume RTP will work
> > without RTCP.
> >
> > If anybody has some advice or good ideas, please
> feel
> > free to chime in.
> >
> > Thanks,
> > Tom
> >
> >
> > --- Tom Anwyll <address@hidden> wrote:
> >
> >> Hello RTP Gurus,
> >>
> >> I am having trouble setting the TTL on a
> multicast
> >> socket. Despite my best efforts, ethereal still
> >> shows the TTL field of my packets set to 1.
> >>
> >> FYI, I'm using ccRTP 1.3.6 and commoncpp 1.3.22
> >>
> >> code snippet
> >>
> >> RTPSession* s = new RTPSession(
> >> INetHostAddress("0.0.0.0"));
> >> s->addDestination(
> >> InetHostAddress("235.1.1.1"),18800);
> >> s->getDSO()->setMulticast(true); // <-- This was
> >> needed to avoid crash on next line -- not sure if
> >> this is right
> >> s->getDSO()->setTimeToLive(32);
> >>
> >> Any ideas about what I am doing wrong or how to
> set
> >> multicast TTL's > 1?
> >>
> >> TIA,
> >> Tom
> >>
> >>
> >> ---------------------------------
> >>  All-new Yahoo! Mail - Fire up a more powerful
> email
> >> and get things done faster.>
> > _______________________________________________
> >> Ccrtp-devel mailing list
> >> address@hidden
> >> http://lists.gnu.org/mailman/listinfo/ccrtp-devel
> >>
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam
> protection around
> > http://mail.yahoo.com
> >
> >
> > _______________________________________________
> > Ccrtp-devel mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/ccrtp-devel
> >
> 
> 
> 

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]