so when i join a torrent how does my computer start send or recieve data to and from other peers when none of us have ports forwarded?
A resposta é, para torrents você não pode. Para poder se conectar em uma rede p2p, um dos dois lados deve ter uma porta aberta no firewall para se conectar. A maioria dos softwares de torrent usa o UPnP para abrir automaticamente uma porta no firewall e configurar o encaminhamento de porta para o software de torrent.
Quando você está se conectando a alguém que tem uma porta aberta, é apenas uma conexão normal.
Quando você tem a porta aberta e deseja se conectar a pessoas que não têm uma porta aberta em seu firewall, seu software de torrent lista sua máquina no rastreador com seu IP e porta que você abriu e então você deve aguardar outros os usuários se conectem a você antes de começar a se comunicar com eles.
Algumas redes p2p (torrents não usam isso no entanto) usarão um peer de terceiros (outra máquina na rede p2p que tenha suas portas abertas) para passar pela conexão, isso é muitas vezes conhecido como " Supernode ". Outra opção para contornar os firewalls é usar uma terceira parte para trocar "metadados" e executar NAT Hole Punching para formar um ligação direta com o seu parceiro.