I am trying to develop a server-client paradigm based application suite. I am planning the app to work with both tcp and sctp protocol support. Now my question is if any of the TCP/SCTP packet is lost, then should I explicitly maintain application level re-transmission mechanism? Or re-transmission is handled by the TCP/SCTP protocol?
Retransmission is handled by the underlying transport protocol, so no you don't have to worry about it.
In case of TCP, you need not worry about handling dropped packets during the connection. But in case you want to have ability to handle dropped connections, handling re-transmission at application level may make sense.
TCP terminates the connection when it gets RST (which may be due to some network error or new firewall policy). If you don't want to drop the data which is received till then and start afresh, but would like to continue from the point, till which you have received data - you can implement some kind of ordering scheme at application level and handle re-transmissions.