i've been having the same problem. it's most likely your internet service provider (ISP):
this is the answer blizzard gave me:
Running a trace route may help identify where the connection problems are occurring. This does not imply that your internet connection is having problems but this does help us test the connection from your computer to our servers and every "hop" in between. Using this program can help determine what location the data you are sending is running into a problem.
1) Click Start and in the "Start Search" field type "command" or "cmd".
2) The search should find the cmd.exe program. Please right click on that program and select "Run as Administrator" to load up the command window.
3) In the command window, type tracert realm.battle.net > C:\tracert.txt and press the Enter key. Note that realm should be replaced by the site you are having problems reaching (Asia, Europe, USEast, USWest) example: tracert USWEST.battle.net > C:\tracert.txt. A file will be created on your C: drive called tracert.txt that contains your trace route information.
4) Type exit and press the Enter key to close the command window.
1)Go to the /Applications/Utilities folder and start the Terminal application.
2) Type traceroute realm.battle.net > ~/Desktop/tracert.txt and press the Return key. Note that realm should be replaced by the site you are having problems reaching (Asia, Europe, USEast, USWest) example: traceroute USWEST.battle.net > ~/Desktop/tracert.txt. A file will be created on your Desktop called tracert.txt that contains your trace route information.
3)Quit the Terminal application.
I ran Trace Route, now what do I do?
Open the tracert.txt file. You will see 3 kinds of information regarding the route that internet traffic is taking from your computer to the realm you chose:
1) The number on the far left is the hop number.
2) The next 3 numbers (with 'ms' after each one)is the length of time, in milliseconds, it takes for your computer to receive a response from the computer you are trying to contact. A high value, for example greater than 200 ms for broadband or 350 ms for dial-up indicates that traffic is slow, and can cause latency or 'laggy' play. Asterisks (*) indicate that your computer did not receive a response from the computer you are trying to contact at all, which can keep you from connecting to our servers all together, or cause you to be disconnected abruptly.
3) The final piece of information is the DNS (or 'name') and/or the IP number of server you are trying to contact on this hop. If you did not receive any responses from this server, you may receive an error message such as 'Request Timed Out' or 'Destination Net Unreachable'.
Since our Battle.net servers are protected from unsolicited traffic and attacks, all the hops after you have reached our server may give you an error message such as 'Request Timed Out' or 'Destination Net Unreachable'. Our current server names begin with various mixes of numbers and letters, and end in the following addresses:
All error messages you may receive after contacting our server can be safely ignored for troubleshooting purposes, and they do NOT indicate a problem with your internet connection.
If you see any error messages or asterisks in your trace route for the hops before you reach our servers, you may need to contact your Internet Service Provider (ISP) and provide them your traceroute information for further troubleshooting. Once the information has been submitted, it may take several days for the problem to be identified and resolved. Remember that Blizzard Entertainment can only ask your ISP to fix an issue; the best results come when you contact your ISP directly.