I know that usually when you set up a connection between a data source and a data receiver that you need to port forward to gain access to the data source computer so I was wondering why you don't need to port forward in bit torrent because all of the computers are sources and how they avoid the firewall of the modem?
If you are behind a router (more precisely, a NAT), and the other side of the connection is behind a router, you can not directly connect to each other.
This is true for BitTorrent as well, so if you are behind a router and you do not have a port forwarding configured, then you will not be able to download (or upload) from any other user who has the same configuration.
That said, many routers support the UPnP protocol, which allows an application to automatically enable port forwarding. In that case, you probably won't notice that your port has been opened.
The other answer is technically incorrect.
If I have my ports closed, I can make outbound connections to someone who has their ports forwarded.
If my ports are forwarded, others can make inbound connection to my client.
If both have ports forwarded, it does not matter. Connection streams need to be initiated by only one of the clients, so even though an outsider can not initiate a connection with me because my ports are closed, I can still initiate the connection to someone who has a proper configuration.
As the other user stated about UPnP (Universal Plug n' Play) some BitTorrent clients will request a port forward from your router.
I strongly recommend you manage your own port forwards and disable this service, at it can leave gaping holes in your firewall.