There are three different protocols and ports involved when running a node:
HTTP control / API port (default tcp 14265)
TCP neighbor port (default tcp 15600)
UDP neighbor port (default udp 14600)
The neighbor ports are only used to transfer transactions between neighbors. That's why you are not getting anything back, the UDP port simply doesn't support the ...
The default Maximum Transmission Unit (MTU) for most networks is 1500 (1472 excluding headers). The IOTA paket size is 1650 (transaction + hash(request_tx) represented in bytes (1604 + 46)). To be able to send UDP pakets larger than the MTU, paket fragmentation is used. If fragmentation is disabled (DontFragment DF bit is set to 1) either on your machine or ...
No, different protocols will not work.
When receiving a packet from your neighbor, iri will validate if the source of the packet is in your neighbors list. As the port numbers differ, the packets will get rejected.
No, it's not possible.
The UDP port indicated in the configuration only checks for transactions as incoming data.
If a neighbor sends anything else than a transaction, a log entry "Received an Invalid TransactionViewModel. Dropping it..." will get generated.
If an unknown machine sends anything to the node and the node is not configured as a testnet node, ...
There is a really good introduction on iota.partners
I would use the standard ports. This makes it way easier for neighbors.
UDP_RECEIVER_PORT = 14600
TCP_RECEIVER_PORT = 15600
But yes, security is a important topic. Since you have to add the neighbors by hand, you can also add a firewall in front of these ports. So that only these neighbors can talk ...
Using a non-standard port would make it more difficult for a potential attacker to find full iota nodes. But it would take more than just finding those nodes in order to wage an attack on them. Nodes have to add each other in both directions before they will accept transactions from one another. Full nodes do not expose their API port by default, so full ...