[Live-devel] Client issue with large IP packets during interrop tests

Ross Finlayson finlayson at live555.com
Mon Apr 12 11:29:33 PDT 2010


IP fragmentation is a very bad idea, and should be avoided.  (The 
reason for this is that if any IP fragment is lost, the whole IP 
packet will be discarded, even if the remaining fragments happened to 
contain useful data.)  Instead, RTP/UDP/IP packets should always be 
small enough to fit within a network's MTU (even if the theoretical 
maximum size of an IP packet is much larger).  For almost all 
networks, the MTU will be at least 1500 bytes, which is why we set 
the maximum RTP packet size - by default - to 1448 bytes.  Note the 
call to
	setPacketSizes(1000, 1448);
in "MultiFramedRTPSink.cpp".

If you want to increase this number (i.e., for a larger MTU), then 
you can do this by calling "setPacketSizes()" on your 
"MultiFramedRTPSink" (subclass) object.  Note that you *do not* need 
to modify the existing supplied source code to do this.

It is true, however, that we currently 'hardwire' a 7 
Transport-Packets-per-RTP-packet limit when streaming Transport 
Stream data - i.e., the definition of 
"TRANSPORT_PACKETS_PER_NETWORK_PACKET" in 
"MPEG2TransportFileServerMediaSubsession.cpp".  This is one case 
where you would need to modify the supplied code if you wanted to 
change this.
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list