Assume computer A and B have established a TCP connection, now the according applications on both computers don't send any data for maybe 10 seconds (*). During this 10 seconds, is there anything flowing physically that is holding up the connection or is "a and b have an opened network connection" just a software based state on both computers? Thanks for any hint!
(*) Further assume the timeout is defined as e.g. 20 seconds, so the connection doesn't get broken.
TCP/IP states are logical/abstract, and don't necessarily correspond to something happening in the physical world.
Here's the wikipedia link on TCP: http://en.wikipedia.org/wiki/Transmission_Control_Protocol
So, what you're talking about is an ESTABLISHED connection between two machines, where both machines have entries in their networking stacks saying that this port on that IP is connected to the other machine's IP/port, plus serial numbers and other accounting.
If you take an axe and sever the cable between them, then patch it up later, the connection may well still exist if they've been idle (and therefore haven't sent packets, waited to receive the acknowledgement of those packets, and given up on waiting).
An idle TCP/IP connection is just that, idle.
No packets will be generated by the IP stack, which is why some applications implement keepalive messages to make sure firewalls and NAT routers don't time out the connection (eg. drop the connection state) after some amount of inactivity.