that it is working with udp for you is more of a fluke, than a given. In general it should also use a S+H, if you want a stable data point!
there is much more to networking than meets the eye, mainly because it is completely async.
it might behave differently, depending on your framerate, the framerate difference of sender and receiver, depending on the amount of the data sent, etc.
especially tcp is prone to confusion, because it is by definition stream-based, not package based. the TCP nodes are deceivingly simple, and tend to make it look like you are receiving the same data you are sending, but in fact you could just as well get half the data in one frame, and some more the next - that would be perfectly legal and valid output for the tcp node. That it usally works out is an accidental by-product when you have sender and receiver with a similar framerate (of eg 60Hz) which dictates, how often the tcp-stream is looked at.