http://stackoverflow.com/questions/756765/when-will-a-tcp-network-packet-be-fragmented-at-the-application-layer/2678518#2678518
http://stackoverflow.com/questions/5829148/message-reassembly-socket-communication