Hi Peter,
my plan is to add an internal hash table to keep the details about
connections and make routing in the config possible without using
htable. This is for next major release, for other things I'm not
sure I have time, considering it's very likely to freeze quite soon.
If you want to work on it, there should be no conflicts.
Cheers,
Daniel
On 12/4/12 6:48 PM, Peter Dunkley
wrote:
Hi Daniel,
I know you were thinking of looking at the MSRP module before the
next release, and during discussions here at Crocodile we realised
that there was another enhancement that would be useful.
An MSRP relay has the option of splitting large MSRP messages
(including those that are already chunked) into smaller chunks.
The reason is that there is no maximum size for an MSRP chunk, so
it is entirely possible for a client to attempt to send a large
file in a single, very-large, MSRP message. In this cases it
becomes important to pull the message from the receive buffer in
small pieces (instead of waiting for a complete message to arrive
and over-flowing the receive buffer) and relaying it in smaller
chunks.
Also, the flow control for MSRP is based around TCP windowing, so
if you want to limit the rate that someone is sending you MSRP
messages (for example during the transfer of a large file) you do
so by pulling from the TCP buffer at a lower rate. One way of
avoiding overloading an MSRP relay is to have fairly small TCP
receive buffers thereby limiting the rate at which clients and
relays can send data. However, if the TCP buffers are small the
chances of a client sending a message or chunk that is too large
(and needs to be chunked by the relay) increases further.
Of course, to do this the MSRP module will need to be able to
remember the (From|To)-Path, transaction ID, and so on from the
start of the MSRP message so that it can use these (along with
calculated Byte-Range) in each additional chunk.
I was thinking a new parameter indicating the maximum MSRP send
chunk size is required. If an MSRP message in the receive buffer
reaches that number then it has to be pulled from the buffer in
parts and relayed as multiple chunks. This maximum send chunk
size should be set to be much smaller than the TCP receive buffer
size.
Regards,
Peter
--
Peter Dunkley
Technical Director
Crocodile RCS Ltd
|
_______________________________________________
sr-dev mailing list
sr-dev@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda