Lo primero, tienes que tener los conceptos claros de cómo funciona la traducción de direcciones y puertos de red (NATP) y a partir de ahí los podrás aplicar para cualquier router.
Si en tu red local pones unas direcciones IP privadas, como todos los routers del mundo las ignoran, necesitarás de un mecanismo que vaya cambiando cada paquete de datos interno a otro paquete de datos externo, que tenga la IP pública que tu proveedor de Internet te ha suministrado en esa conexión. Ese mecanismo es la traducción de direcciones de red (NAT).
Pero con 1 dirección IP no podríamos establecer más de una conexión simultánea, a no ser que existiesen los puertos. Hay 65535 puertos (2^16-1) disponibles. Para establecer una conexión normal —por ejemplo cuando navegas—, tu PC va eligiendo puertos no usados en orden creciente, para informarle al destinatario que tu has habilitado temporalmente ese puerto para que te conteste, y que cuando lo haga no lo volverás a usar en bastante tiempo.
Los cortafuegos de los PCs o de los routers normalmente llevan una tecnología (control activo de estados) que mantiene en memoria una tabla para acordarse de esos puertos que el equipo habilita temporalmente para las respuestas, y bloquea todas las conexiones externas que no coinciden con los "remitentes" y "destinatarios" que hay en la tabla.
Pero ahora imagínate que tienes un programa, por ejemplo el eMule, que debe estar siempre recibiendo datos en el mismo puerto, uno fijo que pones tú y no uno aleatorio que elije el PC. En ese caso deberás habilitar en los cortafuegos y en el router que ese puerto específico está a la escucha.
Cuando el router hace NAT, aparte de cambiar la IP, también cambia el puerto de origen del PC a un puerto de uno de sus 65535 que no tenga en ese momento ocupado, uno cualquiera. Como desde fuera lo que ven es el router y no tu PC de dentro, eso impediría las conexiones que necesitan usar puertos fijos.
Por eso hay que hacer una correspondencia de puertos externos a puertos internos, que es lo que la gente comúnmente llama "abrir puertos", para que lo que el router recibe por un determinado puerto externo, lo reenvíe a un determinado puerto de una determinada IP interna.
Las correspondencias deben ser únicas y hacia una única IP interna. La mayoría de los routers permite, si lo necesitas, cambiar el número de puerto (por ejemplo, que lo que reciben en el 4444 externo lo redirijan al 7777 interno de la IP 192.168.1.3) pero hay algunos routers, cuanto más baratos peor, donde el número de fuera y el de dentro tiene que ser el mismo.
En programas donde tú puedes escoger el número del puerto que te dé la gana, no hay mayor problema, pues puedes tener un eMule en un PC con 2 puertos y en otro PC con otros 2 puertos diferentes, y funcionar simultáneamente.
El problema viene en programas donde tú no puedes cambiar el número del puerto, como en el MSN, o como en la mayoría de los juegos. En ese caso, solo podrás tener ese servicio en un equipo (llamémosle PC, llamémosle videoconsola u otro cacharro electrónico en red) simultáneamente.