Round-trip time(RTT) in networking, also called the round-trip delay time is a benchmark that measures the amount of time it takes for a data packet to be sent in addition to the amount of time it takes for acceptance of that signal to be received in milliseconds. RTT delay also includes propagation times between two communication endpoints.
Scope
In this article we shall discuss:
- What is Round-Trip Time?
- What is a good Round-Trip Time?
- Implementation in Python.
- How to reduce RTT.
This article however is not about:
- Any other unrelated Operating System concepts.
What is Round-Trip Time?
Round-Trip Time is the total time it takes for a signal to be sent in addition to the length of the time it takes for acceptance of that signal.
Therefore this time consists of the propagation times between the two endpoints of the network.
RTT can be defined by an end-user with the help of Internet protocol by pinging that address.
What is a Good Round-Trip Time?
Situations can be different for every other application. So it’s not possible to predict an exact time.
A fully managed and determined desktop virtualization service such as AWS WorkSpaces allows its users to access the resource and applications they need. It has basically three thresholds for RTT.
- The round-trip time from the client’s network to the AWS Region that the WorkSpaces are in should be lower than 100ms.
- If the round-trip time is between 100ms and 200ms, the user can access WorkSpace, but performance is pompous.
- If the round-trip time is between 200ms and 375ms, the performance is cheapened.
- If the round-trip time exceeds 375ms, the WorkSpaces client connection is discarded.
So in general the users should have a round-trip time of 100 milliseconds for normal usage of the application and a maximum of 200 milliseconds before the application starts to degrade.
Implementation in Python
Here’s a Python code implementation to calculate the RTT
# Python program to calculate Round-Trip Time(RTT)
import time
import requests
# Function to calculate the RTT
def RTT(url):
# Time when the signal is sent
time1 = time.time()
r = requests.get(url)
# Time when acknowledgement of signal
# is received
time2 = time.time()
# Total time taken
tim = str(time2 - time1)
print("Time in seconds :" + tim)
# URL address
url = "https://www.wikipedia.org/"
RTT(url)
Output:
Time in seconds :0.0879743240359
How to Reduce RTT
There are two ways through which Round-Trip Time can be reduced.
1. Reducing RTT with Amazon CDN Distribution
CDNs or Content Delivery Networks were created to solve to reduce round-trip time. Using CDN as a service it is reasonable to expect a decrease in RTT by up to half or more.
CDN can affect RTT in the following ways:
- Scalability: CDN as a cloud service, provides high scalability and the ability to exercise a vast number of user requests.
- Load Distribution: When the traffic is high, CDNs use backup edge servers with lower congestion for route requests, this speed’s up the server’s response time and lowers RTT.
- Points of Presence (PoPs): Content Delivery Network also manages a geographical network of dispersed PoPs data centers, each of them containing cached copies of site content data, which are in charge of communicating with site visitors in their region. This helps in reducing the distance a signal has to travel and the number of network stops required to reach a server.
- Web Caching: CDN has the power to cache media, HTML, and dynamic content on a PoP in close proximity to the user. One advantage of this is sometimes the request is fulfilled using a local PoP without traveling to the origin server, which helps in lowering RTT.
2. General Ways to Reduce RTT
- Browser Caching: Modern Browser can cache certain resources of a website locally in the system to reduce RTT.
- Discarding Broken links: Requests which result in 404/410 errors, can be discarded to avoid wasteful reports.
- Bringing content closer to the user: Servers close to the user should be used, this lower’s the RTT by several amounts.
- Merging external scripts: If external scripts can be merged into as few files, this helps to lower RTT several times.
- Lessen HTTP/s directs: Minimizing HTTP/s directs from one URL to another lowers RTT and wait time.
Conclusion
- RTT is a crucial tool for determining the strength of the network. It is the time between the request of the data and the display of the data.
- Factors such as Distance, Network Hops, and Traffic levels can bring a massive change to the value of RTT.
- In Satellite transmissions, RTT can be measured using Jacobson/Karels algorithm.
- Calculation of RTT is advantageous because it helps the user and operators how long will it take the signal to complete the transmission.
- RTT also helps in determining the reliability of the network as the speed of a network.