In http ( over tcp) there is a header which called keep "alive"
I dont understand how a connection can be open in tcp if all packets come from different
source ( router decision - over the internet)
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.
TCP keepalives are an optional implementation and as such, are not generally implemented. An HTTP keepalive is not the same thing as a TCP keepalive.
A TCP session can be maintained even when data between the source and destination takes different paths because TCP doesn't care what path the data takes (asymmetric routing). TCP maintains session state via a 4 tuple: sourceaddress:port<->destinationaddress:port.
It doesn't matter what path the data takes between the 2 hosts.