How to use TCP Traceroute
Toshi Dávila avatar
Written by Toshi Dávila
Updated over a week ago

The first step to troubleshooting any connectivity issue is to understand the path that packets take on their way to the destination hostname or IP address.  To do this, we obtain a Traceroute.

A traceroute is gathered by sending a packet to a target host with a Time To Live increasing by 1 until the destination host is reached.

Note that not all 'hops' along a route will reply - this is normal and should not be interpreted as a bad route.

In the case of Perforce, Subversion and Git, the protocol used is TCP;  however, traditional traceroutes on Windows, Mac and Linux use the ICMP or UDP protocols.  This means that a traditional traceroute may not give the real picture as to what's happening with repository traffic.

For this reason, when working with our support team to troubleshoot a connectivity issue, we find it best to have a TCP Traceroute.

It's also quite helpful for our team to also know your public IP address ( which can be obtained by accessing https://checkip.amazonaws.com ) as well as the advertised download and upload speed of your internet connection in Megabits Per Second (Mbps), which can be obtained at http://www.speedtest.net/

Windows

Because Windows cannot natively run TCP traceroute, you will need to install the WinPcap library and download the tracetcp utility.

Installing the WinPcap library:

  1. Download the WinPcap library

  2. Double-click on the downloaded executable file open it and start installation

  3. Click the Next button on the WinPcap Setup Wizard page:

4. Review the License agreement and click I Agree

5. On the next page click Install

Next, we’ll need to download tracetcp

Once you’ve downloaded the archive, extract the files from the .zip archive and move them to the C:\WIndows\System32\ folder

Running a TCP Traceroute on Windows (tracetcp):

  1. Open the Command Prompt (CMD) by pressing Win + R 

  2. In the run dialog box, type cmd and click OK

3. Type the following command: tracetcp ******************  

Where ******************  is replaced with your domain name, server name, or IP address


Examples: 

tracetcp <IP>:<Port>
tracetcp subversion.assembla.com:443
tracetcp 12.34.56.78:443


4. Press enter

You’re done!

Running a TCP Traceroute on Mac OS X

1. Press command + space to open the Spotlight search box, then type Terminal and press enter

2. Type the following command into Terminal:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

Then press enter and wait for the command to finish

3. Type brew install tcptraceroute  and wait for the installation to be finished

4. You’re done! Now you can use the TCP Traceroute command line tool. Just type sudo tcptraceroute ************  and press enter

Note: *************** should be replaced with your domain name, server name, or IP address, followed by a space and then the destination port number.

Note: When executing this command, enter the password for the administrator account you are logged in as when prompted. 


Examples:

sudo tcptraceroute <IP> <Port>
sudo tcptraceroute subversion.assembla.com 443
sudo tcptraceroute 12.34.56.78 443

Running a TCP Traceroute on Linux

1. Open Terminal

2. Type sudo traceroute -T -p 1667 ************* 

Note: ************** should be replaced with your domain name, server name, or IP address, and 1667 should be replaced with the appropriate port

3. Press enter


Examples:

sudo traceroute -T -p <Port> <IP>
sudo traceroute -T -p 443 subversion.assembla.com
sudo traceroute -T -p 443 12.34.56.78



Need help? Please contact us at support@assembla.com. 

Did this answer your question?