[asterisk-users] SIP/TCP?

Julio Arruda jarruda-asterisk at jarruda.com
Sun Jan 7 10:05:18 MST 2007


SIP over TCP != RTP over TCP
The whole latency deal is much more of a concern in RTP (as well as 
trying to deliver a late packet, that will be not very useful also).
As I understand, MS does SIP/TCP on their LCS or something like that.
Still, not RTP over TCP, since it does not make sense for the voice-path.

Tim Panton wrote:
> 
> On 5 Jan 2007, at 23:22, Yuan LIU wrote:
> 
>>> From: "James R. Stevens" <jstevens at athensdistributing.com>
>>>
>>> TCP is a connection oriented protocol ..as others mentioned, it 
>>> superiority comes because it knows when packets are dropped to resend 
>>> them. It also has mechanisms for flow control etc.. SIP is a 
>>> connection-less protocol. It uses 'best effort' transmissions..if u 
>>> want its delivery guaranteed you must encapsulate it.
>>
>> So I take it that UDP is just a decision due to popular demand; timing 
>> (jitter) is a frequently cited factor to favour UDP.  Is there any 
>> technical difficulties in implementing SIP/TCP within Asterisk?
>>
>> The reason I'm asking is that there are products that support both UDP 
>> and TCP.  And SIP/TCP, RTP/TCP have their own merits.
>>
>> Granted, SIP is connectionless.  So is HTTP (well, for its original 
>> design anyway).  I notice that guaranteed delivery could be a good 
>> thing for SIP in many situations; there have also been advancements 
>> that make timing less an issue in RTP/TCP.
>>
>> Is "switching to" SIP/TCP - RTP/TCP as simple as rewrap 
>> messages/streams, or is it more involved?
> 
> 
> It's a latency thing.
> Say you send a packet every 20ms
> Say you have a pair of endpoints with 100ms between them.
> Say you drop a packet in the media channel.
> 
> TCP will re-request the missing packet, which has 2
> bad effects:
>     1) when it does turn up the packet will be >100ms late so you have 
> to play silence
>         or make something up until it does.
>     2) all the subsequent packets will be behind the re-tried packet and 
> also 100ms
> late. - Note that because TCP is a stream, you can't get at the 
> subsequent packets
> even if they turn up on time because you have to wait for the missing one.
> Even more frustratingly you now have to dump these 4 perfectly good 
> packets.
> If you don't you will have introduced 100ms of lag in the audio stream.
> 
> - Of course none of this applies if you are on a LAN - with <1ms 
> roundtrip time
> as the retry can get to you soon enough to be useful.
> 
> With UDP you simply make something up for the missing packet and carry 
> on when
> you get the next one. - so you make up a single packet instead of 5.
> 
> With TCP the lost packet is multiplied by the ratio of the roundtrip 
> time to the
> packet interval.
> 
> Of course you can cover this up by increasing the buffering, but then
> you are introducing yet more lag.
> 
> So, I simply don't think that TCP is suitable for telephony media 
> streams over any
> network where the roundtrip time is of the same order as the packet 
> interval.
> 
> Now there are 'reliable datagram protocols' ( IL for example) but they 
> aren't
> much used on the internet.
> 
> 
> Tim Panton
> 
> www.mexuar.net
> www.westhawk.co.uk/
> 
> 
> 
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
> 
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>   http://lists.digium.com/mailman/listinfo/asterisk-users



More information about the asterisk-users mailing list