Understanding Networking Issues


Some basics

In order for file sharing and other internet based software to work, the program needs to be able to communicate with other computers on the internet. In order to do that, first, you need to find other people running Bunzilla and then you need to make sure nothing is interfering with your ability to connect to those people over the internet. Network troubleshooting is about making sure nothing is interfering with your ability to connect to other computers on the internet and making sure nothing interfers with other computers ability to connect to you.

The very first thing you will want to do is be sure your computer is configured to connect to the internet. Can you open a web browser and surf the web? If not, then you will want to get that working first before trying to get Bunzilla functioning. You will want to refer to your computer manufacturer, internet provider and others for help in getting your computer up and running on the internet.

inbound and outbound connections - Once your computer is up and running and you are connected to the web, you are now ready to proceed to make sure nothing is interfering with Bunzilla's ability to function. First and formost, Bunzilla software running on your computer needs to be able to connect to the Bunzilla software running on someone else's computer. Similar to using a telephone, Bunzilla on one persons computer needs to be able to make an outbound call to another persons computer. This is an outbound connection. Ideally, you also want your computer to be able to accept incomming calls. This is an inbound connection.

Now that you understand what a connection is, there are just a few more terms you might want to know about in order to understand and troubleshoot in more detail.

Router - Is generally a hardware device that connects one computer network to another. Typically in a home network, a router may be used to connect a home or wireless network to the internet. For the purposes of network troubleshooting, just think of it as a box that may be intentionally or unintentionally interfering with your ability to make connections, particularly inbound connections.

Firewall - A firewall is usually either sofware running on your computer, in the router, or in corporate networks may be a separate device. The purpose of a firewall is to protect your computer from people on the internet who are trying to break into your computer. By design, firewalls generally are setup to block all inbound connections and may be setup to block outbound connections from newly installed programs. Again, for the sake of our network troubleshooting discussions, it something that may interfer with Bunzilla's ability to function properly. There is a firewall built into windows XP if you have installed service packs or have been running automatic updates. Vista also includes the windows firewall. You or whoever setup your computer may have installed some other firewall software on your computer. Similarly, someone who setup your router may have installed firewall software on it or enabled firewall features that come built into the router.

Chances are, from a troubleshooting perspective, the firewall and/or router is the most likely source of interference.

Ports - Have you ever used a television? If so, you already have a pretty good understand of what a port is. It is just a channel number. When you want to watch a particular channel, you turn your TV to the same channel that the station you want to view is broadcasting on. So, here in Philly, if I want to watch ABC, I turn to channel 6. By default, Bunzilla uses channel (port) 30031. You can change the port Bunzilla uses using the network tab of the configuration screen. Generally, you wouldn't want to change the port. It isn't recommended that you do so, unless you have a real reason for doing so. Keep in mind that when you start connecting to other people, Bunzilla is acting as both the TV and the TV station. When you make an outbound connection, you are tuning to the station that the person you are connecting to is broadcasting on. Similarly, when someone makes an inbound connection to you, they are tuning their TV to the station you are broadcasting on.

protocol - Continuing with television or radio as an example. TV broadcasts maybe in UHF or VHF. Radio broadcasts might be in AM or FM, etc. Cable might be in HighDEf, regular Def or analog. While you don't really have to understand how AM differs from FM in order to use a radio. You don't really need to understand much about protocols. Just be aware that there are two primary types of protocols on the internet. They are called TCP and UDP. Bunzilla is capable of using both protocols. Similar to radio or tv, they have some different performance characteristics. Just as AM radio may have more static and HiDef TV looks better, udp differ in their speed, reliabiility and ability to connect thru various security devices.

Network address - The network address is more relevant to find other people running Bunzilla. In essance, the persons network address is their telephone number. Peoples network address generally remains the same while they are using their computer. Some peoples network address changes everytime they reboot their comptuer or router. Just keep in mind that once you have resolved all the networking difficulties, the other main source of difficulty in using Bunzilla is finding other people to connect to.

Enabling outbound connections: making sure you can make a call

For most home uses who have no additional security software installed and are running the windows firewall, you simply need to add Bunzilla to the list of programs that are permitted to access the network as described in the getting started section. This enables bunzilla to make an outbound connection on any port.

If you are using other firewall software, you should look for a similar feature within your firewall software which allows the program to make outbound connections on any and all ports. You will need to consult the manual of the security software you are using in order to determine how to do this.


More technical

The firewall - Some firewall software may allow you to open up specific ports for inbound or outbound connections. You are strongly encouraged to enable all outbound connections. If you choose to open only a specific port, you should open at least tcp or udp port 30031. Bunzilla needs to be able to make outbound network connections to other people running Bunzilla on the port those users have configured their system to accept incoming connections on. By default, Bunzilla uses tcp and udp port 30031, so you can assume most users will be utilizing this port. Thus, at a minimum, you need to be able to make an outbound connection on at least udp or tcp port 30031.

The router - Most routers by default allow all ports for outbound connection. If someone has modified your router, you will need to enlist their help. The requirement remains the same, they would need to open tcp and/or udp port 30031 at a minimum. If you want to ensure all outbound connectivity will work with every other user, you need to enable all tcp and udp ports.

Enabling inbound connections: making sure you can receive a call

Why - Enabling inbound connections may be more complex then enabling outbound connections. The good news is that even without inbound connections, you should be able to use Bunzilla provided you can find another peer on the network which is setup to accept inbound connections. So why bother getting inbound connections to work? Well, if no one allowed inbound connections, it would be like having telephones where everyone can make calls and no one can receive them. If no one can receive a call, then no one can make a call.

The firewall - Just like the outbound calls, the first thing to configure is the firewall. If you are using the windows firewall and followed the instructions to enable the program for complete network access, then you are done configuring the firewall and you only need to worry about your router. If you are using other firewall software, you may need to do some more work. Particularly if you didn't use a global "enable this program" option. If that is the case, you will need to enable inbound connections on the port you have bunzilla configured to listen on. By default, this is port 30031. Ideally, you want to enable both tcp and udp. Unlike outbound connections, however, you only need to enable the port which you are configured to listen on. There is no reason to enable every port, though there is no harm in enabling every port, as long as you are only enabling it for this specific program.

The router - This is where most people have difficulties. Every router is different, and you generally have to know a lot about networking to modify the router. Bunzilla includes several features that attempt to automatically address the issues created by the router. This includes using automatic universal plug and play for routers that support this capability. Unfortunately many do not. Bunzilla will also attempt to use UDP based pinhole techniques to allow a computer you have made an outbound connection with to assist others in making an inbound connection to you.

The fundimental problem with 99.9 percent of home routers is they use a technique called NAT (network address translation). If you recall what a network address is from our telephone analogy, this is the phone number for your computer. The problem is that the internet ran out of phone numbers a long time ago. So, to follow the analogy forward, your internet provider has a bunch of phone numbers assigned to them. They may have perminently assigned one to your router. This is called a static network address. More likely, they assign you one ever time the router is turned on or rebooted. You can generally connect multiple computers in your home to the same router. What typically happens is that when you turn the computer on, the router assigns it a network address. Again, you may have a static network address assigned to your computer, but the norm is for the router to give you one from a pool of numbers it maintains. You may have noticed something odd in what was just stated. If your internet provider assigns your router a single number, how can it have more then one to give out? There's the reason why this is gets ugly - it doesn't! It in essance assigns you a number that can't be called from the outside. Have you ever noticed on TV, they always use 555 as the beginning of a phone number they might say in the script? Theres a reason for that, those numbers are never assigned to anyone. Similarly, there are certain network addresses that are never used on the internet. Thus my router can give me a number that is the same number your router gives you. Since no one will ever call those numbers, your router, whenever it sees that number, always assumes it is you while my router will always assume it is me. Again, the ugly take away from this is that NAT routers make inbound connections very difficult.


More technical

Now that you know what the issue is, the first step in configuring your router is to get logged into it. If you have the router manual, you are in luck. Also, you might be able to get some basic info from your internet provider if they installed the router. In order to login, first you need to connect to it. How to connect to it is generally explained in the manual, so read the manual or get the manufacturer info off the device and then go to the manufactuers web site to find the manual in the support section of their web site. Most modern home routers come with a web interface and run on the internal network address of the router. If all else fails, try from a web browser that is on a computer physically connected to the router. The other thing you are going to need is the username and password to login to the router. Again, if you set it up yourself or know who set it up, you probably have or can get this info. If your internet provider setup the router, you would need to get that information from them. If you can't convince them you know what you are doing, they might not be willing to give it to you. Perhaps you should call their technical support, tell them you have 20 years in networking and you are certain there is something wrong with the router connecting to your new computer, and if they'd just give you the password, you are certain you could troubleshoot the issue without their assistance.

If you manage to get logged it to the router and are able to configure it, some newer routers include a feature called uPNP (universal plug and play). If your router includes this feature, you are in luck. This is a feature that allows a program to tell the router to take all of the calls it is receiving on its network address on a particular port and send it to the program running on your computer on the port your computer is configured to use. So to use this solution, you just need to enable this feature on your router (or if you are lucky it is already enabled). The only other issue is if you are going to run Bunzilla on more then one computer at the same time, you would want to change the port on one of the computers so they aren't both trying to use the same port.

If your router doesnt support uPNP, heres where that 20 years of network experience comes in. If you aren't experienced in networking, stop here. The following suggestions are a rough idea of what you will need to do and assumes you have a fairly robust knowledge of networking. The simplest thing to do would be to assign your computer a static IP address. If your router allows you to map a specific mac address to a specific IP address, then use that feature. The other alternative is to modify the range of IP addresses your router gives out to a smaller range, then go onto your computer and assign a static address that is outside the range your router is now giving out. The other thing you will need to do is setup a static route, where you map an external port on the firewall to the port Bunzilla is using on its now static address. As an example, assume your router is using dhcp to give out addresses thru You might modify it to instead only give out the range thru Then you would go into the network settings on your computer and switch from dhcp to a static address and enter as your address. Finally, you would need to enter a static route <exteral-ip-address-of-router>:30031 to into the routers static routing table. If you had a second computer you were going to run bunzilla on, you'd do the same thing with a different port number. Assign that new computer address in its network configuration, modify bunzilla to use port 30032, and then enter a static route such as <exteral-ip-address-of-router>:30032 to