EDIT:
I decided to establish a strict naming convention for all the participants and their interactions, that I use throughout the code and comments and everywhere basically. The machine running the program is called "host", the machine we don't want the traffic to reach is "target" and the machine that is actually communicating with guest is "destination". While these terms are not clearly unambiguous they are way better than in/out and with the definitions being laid down it makes the scenario easier to visualize and understand. So the ip:port values are called target_ip and destination_ip, which admittedly is confusing, but a simple picture in the documentation clears it up.
Origina