What ports need to be opened to play multiplayer reliably

assassins-creed-revelationsnetworkingpc

So I'm trying to configure my firewall to open the right ports needed to play multiplayer.

According to Ubisoft's Support page:

...you will need to configure your router or firewall to allow the following 
network ports for the best possible connection: ACR Ports: UDP: 21200, 7959, 3074 Uplay Launcher: TCP: 80, 443, 13000, 13005, 13200 Achievements UDP & TCP: 14001

But it isn't clear in what direction and which applications need the ports.

I allowed all outgoing and those incoming UDP ports for ACR but I'm still getting BAD upload and STRICT NAT classification.

I temporarily enabled DMZ on my firewall and inspecting my connections when refreshing my online status, I'm seeing these requests for multiplayer:

0.0.0.0:54466 -> 127.0.0.1:45301 (UDP)
localhost:21200 -> 216.98.51.139:28783 (UDP) //ubisoft servers
localhost:21200 -> 216.98.51.140:28783 (UDP)

And these active connections:

localhost:12001 -> 216.240.146.139:12001 (UDP)
localhost:3074 -> 216.240.146.139:12001 (UDP)
localhost:3074 -> 216.240.146.139:12011 (UDP)

(nothing is coming in or out from UPlay at this point)

I want to hold off on playing until I can get the right ports set up so I won't have to worry about it later. AFAIK, I'm going to have to open something incoming if I want to/end up playing as host but I don't know what yet. No chance of dedicated servers here.

What am I missing here? Do I even need to open any incoming ports?

Best Answer

So it looks like I do need to have UPnP enabled. After having it enabled and restarting my computer, the NAT classification is now declared open. I can even see the entries to Ubisoft in the forwarding table.

Viewing the logs, I've determined that I only really need to open these ports at a minimum for normal play:

ACRSP.exe

Outgoing:
    TCP 80 (remote)
    UDP 3074 (local)

Incoming:
    None

ACRMP.exe

Outgoing:
    UDP 7959 (local)
    UDP 3074 (local)
    UDP 21200 (local)

Incoming:
    UDP 7959 (local)

UbisoftGameLauncher.exe

Outgoing:
    TCP 80 (remote)
    TCP 443 (remote)
    TCP 13000 (remote)

Incoming:
    None

I haven't figured out what affects the upload stat yet. I could probably ignore that for now as I don't have any plans to use the ingame chat.