Directly connect Arduino Mega (with ethernet shield) to computer without router?

alpheustest:
I have decided to use TCP for the guaranteed delivery.

TCP does not guarantee delivery either. It is reliable in the sense that if it tells you delivery was successful then you can know that it was in fact successful. Failures can still occur and you will still need to deal with them.