[asterisk-dev] extend IAX2 IE proposal
Russell Bryant
russell at digium.com
Mon Dec 11 20:28:11 MST 2006
Derek Smithies wrote:
> Well no..
> I am not happy with this. Yes yes, it will work to a size of 4096 bytes or
> some such size. But what happens if someone wants 20K bytes? Should we
> not, at this time, think about future requirements? I am thinking of when
> iax2 is used as an alternative to MSN, and people are doing file transfers
> over iax2. Or other such large transfers.
If you read Markku's latest proposal, it was changed such that it would support
up to 255 segments of 253 bytes each, except for the first segment, which would
have 252 bytes. That is the one I was responding to.
252 + 254 * 253 = 64514 bytes
It certainly goes large enough, given that the maximum segmented IE length
approaches the maximum size of a single UDP packet.
> The proposal above is, in my view flawed - it does not go large enough.
See above.
> Worse, there has been no discussion on how it will go on a moderately
> lossy link. The calculation I put forward a while ago was based on 100 K
> bytes, and 0.1% loss. Now, on a 1 % lossy link, what happens? audio
> quality is poor, and they send out a large packet. The packet does not
> make it through, and all full frames are held up, waiting for this super
> large packet to go out. Does that mean the link is frozen in an up state,
> and one cannot send the hangup message?
>
> Sure, in some countries of the world with ethernet links to each house, 1%
> is ridiculously high. However, for many others, 1% does happen.
You are correct that if an IAX2 Full frame gets lost, it will have to be
retransmitted, and the destination will not be able to process any further Full
frames until it has been successfully received. However, that's exactly how it
is supposed to work. And, on a lossy link, you can expect some sort of
performance hit. It is also worth noting that Asterisk's IAX2 implementation
uses a "sliding window" for the transmission and receiving of Full frames. That
means that just because the lost frame has not been acknowledged, this does not
mean that further Full frames can not be transmitted. The receiving side should
just save them, and not process them until the next expected frame has been
received. Once received, it will send an ACK which acknowledges all frames
received up to the next expected sequence number.
On the topic of holding up the link while transmitting a large packet, this
isn't something that would be newly introduced into IAX2. In fact, it is normal
to have extremely large IAX2 trunk frames which get transmitted a lot more often
than any signaling frames.
--
Russell Bryant
Software Engineer
Digium, Inc.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: russell.vcf
Type: text/x-vcard
Size: 266 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20061211/d5681f4d/russell.vcf
More information about the asterisk-dev
mailing list