mathieu: While I'm hardly a network guru, the router examines FTP packets (or maybe all packets, matching on FTP syntax) and modifies (or at least takes notice of) the PORT command. When doing NAT (or NPAT as one of my pedantic friends would have you say) iptables under Linux, you have to modprobe ip_nat_ftp to get FTP to work. There's also a ip_nat_irc module to get DCCs to work. Oh, and I recommend Tannenbaum's Networks, 4th ed; it's very up-to-date and covers ADSL, 802.11, Bluetooth and 802.16 (the new wireless MAN standard).
k: Can I borrow The War of the Worlds sometime?