The Bitcoin P2P protocol is an application-specific layer over TCP/IP.
If a node does not have an open port by themselves, they can only make outgoing connections. Node software uses things like UPnP to request NATs to open ports, but if that fails, a node's connections will be unidirectional.
Yes, this is an accurate description of the mempool behaviour. When a transaction is expired from the mempool, its descendants are as well.
When txA gets dropped, so does txB. If we later re-broadcast txB (and it's not too large) our peers will add it to a (small) cache of orphaned transaction they keep for us. If we broadcast txA in the next 20 minutes (...
Easiest way to understand the response of other nodes IMO is using Wireshark and follow the below steps:
Capture packets according to the network you will be using on this system when Bitcoin full node connects with the network.
Launch Bitcoin Core
Stop capturing packets once the node is connected to few peers
Filter captured data in ...