1.1 Understanding Factors Of Speed
1.1.1 Advertised Speed
The ISP advertises the top line speed and users need to understand what that speed actually means. Typically the speed advertised by an ISP means the top achievable line speed from the user to the network of the ISP. Which means that 1 MBps is measured as the top speed during a long transmission from the user to a network right inside your ISP. This is in no way an indication of the speed you can get from the user to the actual server they want to communicate with. The actual speed will depend on many factors including the total size of the sustained transmission and the actual network hops the user has to go through to reach their target server.
In order for the user to reach the actual target server, many other networks are involved and the data has to travel from their ISP through many intermediate networks that are not related to either the user’s ISP nor the target server’s network provider. Therefore, even if the connection is rated to be able to receive data at 1 MBps, it does not mean the user will get 1 MBps when they are connecting to their target server. Secondly most ISP’s engage in the practice of oversubscribing. Which mean the 1 MBps is only from the user to the immediate terminating network and then the network is shared between all the subscribers. This means that even though 1 MBps is possible from user to the immediate network, the user will not get 1 MBps exiting the ISP’s network boundary. So, even if a server is on the next adjacent network and fully capable of outputting at 1 MBps, the user will not be able to get the advertised 1 MBps speed. Yet many ISP’s will continue to advertise the said speed and will not provide the user information if the advertised speed is even possible at the boundary point of the ISP network. When in doubt, broadband speed test tools from https://speedtest.net/ and https://www.dslreports.com/speedtest are both excellent tools to get a more accurate number of what speed is actually achievable on the connection to the target network. The user should select a target server in Toronto, ON, Canada to provide a more realistic number because Enterprise’s data center is located in Toronto, ON, Canada.
1.1.2 Top Speed
TCP (Transmission Control Protocol) is the protocol that’s widely use for most applications across the Internet such as your web browser, email, and Enterprise. TCP uses an algorithm called slow start which is part of TCP’s congestion and flow controls. The slow start algorithm means that at the beginning of any transmission, it will first start at a slow rate. Then as long as the connection can sustain the current speed, the TCP algorithm increases the transmission speed slowly until it passes a predetermined threshold from which point it increases the transmission speed much faster until the connection is not able to accommodate the current speed. Then it will drop the transmission speed significantly and perform the slow start again. The actual transmission speed will zigzag until it can reach a relative stable speed which will be the actual maximum speed of the line. Therefore, maximum speed will not be reached unless there’s a significant amount of data transmitted at one time.
So assuming that the ISP connection is 1 MBps , and assuming that the network from the ISP to the target server can output at that rate, it still takes a significant amount of continuous data transfer for the top speed to be utilized. Therefore if you download a large file, you may get to see 1 MBps during most of the file transfer, but if you are only transferring a small file, then a significant portion of the transfer or even the entire file is not transmitted at the top speed. That is why broadband speed tests typically report the average speed of transmitting a file that’s around 5 MB. In reality it typically takes at least 1 second for your broadband connection to reach its top speed. So if your connection is capable of downloading at 1 MBps and that you are downloading a 5 MB file from the Internet, you probably can expect the file to finish downloading in 40 seconds which is about the average of 1 MBps . However, if you are downloading a small image of say 128 KB (which is 40 time smaller than the 5 MB file), then you can expect the total time needed to download that image to be much more than 1 second.
1.1.3 Latency
Latency is the time delay when you first initiated the transmission until the data actually arrives at the target server. When you are downloading a large file, latency is not as important. For example, assuming there is 500 ms (0.5 second) latency between the user and the target server. Further, assuming that the actual download is 1 MBps (or 128 KB/sec), if the user is downloading a 5 MB (or 5120 KB) file, then the total time needed to completed the transmission will be:
Pinging www.l.google.com [72.14.205.104] with 32 bytes of data:
Reply from 72.14.205.104: bytes=32 time=9ms TTL=244
Reply from 72.14.205.104: bytes=32 time=10ms TTL=244
Reply from 72.14.205.104: bytes=32 time=11ms TTL=244
Reply from 72.14.205.104: bytes=32 time=10ms TTL=244
Ping statistics for 72.14.205.104:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 9ms, Maximum = 11ms, Average = 10ms
The average for this computer’s connection to Google’s web server during the test is 10 ms. That is probably close to a perfect connection for a consumer broadband connection.
C:\>ping 124.83.135.156
Pinging 124.83.135.156 with 32 bytes of data:
Reply from 124.83.135.156: bytes=32 time=206ms TTL=45
Reply from 124.83.135.156: bytes=32 time=207ms TTL=45
Reply from 124.83.135.156: bytes=32 time=206ms TTL=45
Reply from 124.83.135.156: bytes=32 time=208ms TTL=45
Ping statistics for 124.83.135.156:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 206ms, Maximum = 208ms, Average = 206ms
The same computer, same connection, pinging a different server could yield a much different result. This server yields an average latency of 206 ms. Not as bad as the 500 ms example above but does play an factor in transmission of smaller data content.
When there are network problems between the user and the target server, you can find latency way beyond 500 ms. A few seconds of latency is not uncommon. A few seconds is probably not an issue when you are transmitting a very large file like a video clip, but kills the connection if you are transmitting smaller data content like that sent by Enterprise.
1.1.4 Data / Packet Losses
Data, or more technically, packet losses occurs when there are some issues on the network either due to network equipment, due to condition of the network lines, or due to the amount of traffic on the network, and of course many other factors. When it occurs, the data has to be re-transmitted and therefore impacts the actual speed of the connection. Packet loss plays a big factor on the actual speed of the connection.
For example, assuming there is a network that there’s a 100% chance that there will be a single packet loss during the first 10 packets. Further, assuming that there is no re-transmission overhead, this could mean that for a 5 MB file, only 1 packet from the first 10 will need to be retransmitted. Typical packet size is 1500 B., making the total transmission size of 5.0014 MB. At 1 MBps, it means the total time for the transmission will be 40.01 seconds. That’s a 0.025% degradation. Nearly unnoticeable from the ideal time of 40 seconds. However, if the file size transmitted is 25 KB, the single packet loss will mean a total transmission size of 26.46 KB. At 1 MBps, it means the total time for the transmission will be 0.207 seconds or 207 ms. Compare that to the ideal time of 0.195 seconds or 195 ms, making that single packet loss a 6% degradation. Now of course, it is unlikely that the network loss packet will happen only in the first 10 packets, however, it is not all that unlikely that a network has heavier packet loss during the initial part of data transmission and stabilizes as the data transmission continues on. Again in such scenario, small data files will suffer a lot more than larger data files.
Another issue with packet loss is that because every time there’s a packet loss, TCP will lower the transmission speed by a factor and then restart the slow start algorithm. When you have reached higher speed transmission, lowering the transmission speed shows up less than when you have not reached higher speed. Therefore, when data size is small, a single packet loss will mean that the transmission speed will be reduced greatly percentage wise and therefore impact the performance much more when compared to when the data size is large.
All in all, under most scenarios, small data will probably always suffer at least as much as large data and under certain scenarios small data will suffer more.
1.2 Understanding Enterprise Traffic
1.2.1 Enterprise is not a web application
Enterprise is not a web browser, nor does it behave like a web browser. And Enterprise as a whole does not behave like a web based application. A web browser makes the connection to the URL, the user specifies and then requests for the page and image in parallel. Most modern browser’s reuse these parallel connections if the user stays on the same web server. New connections are initiated if user navigates to a different web server. Therefore, connections for a long browsing session are naturally connected and disconnected as user navigates around different web sites. And a typical web browsing session involves mostly the user downloading content with very minimal user uploading. An average web page size is around 300 KB, but they are broken down to many components which includes the web page itself (average around 25 KB) and the many images and objects on the web page to make up the rest of the 275 KB. A user does not need to wait for all images and objects to load completely before they can read the web page content. Images and objects can continue to load while the user is reading the web page, totally unaware of the time it takes to completely finish loading the web page. And when the ISP caches the mostly static web pages, the load time is much faster as it does not need to be reloaded from the target web server.
Enterprise makes a single connection to the Enterprise server and the single connection carries both the data from the server to the user and user to the server. Enterprise relies on that single connection to be there and not broken. When the connection is broken an error message is displayed to the user and the user needs to reconnect. Enterprise also has more upstream traffic because the user needs to send data to the server. When the user wants to save a work order, the data is transmitted from the user to the server. Most ISP’s today optimize and prioritize downstream traffic, the actual upstream speed (top speed, latency) in Enterprise is much more important than that of web browsing. The amount of data Enterprise transmits through the line is small. Opening of a typical small work order involves 15 KB of upstream data and 15 KB of downstream data. Only large reports will result in large downstream data.
The following table summarizes the difference between a web browser or web browsing in general versus Enterprise application.
Web Browser / Web Browsing | Enterprise |
Makes many simultaneous connections. | Makes a single connection. |
Application natively expects connections to be disconnected and reconnected as needed. | Needs to maintain the single connection or user is prompted with an error message to reconnect. |
Mainly involves downstream data. | Both upstream and downstream data. |
Total size of the complete web page may be bigger (average we page size is > 300 KB), but needs only first 25 – 50 KB to start rendering of the page. | Total size of the data content may be small. Opening a typical small work order involves 5 KB of upstream data and 25 KB of downstream data. But data transmission must be completed before the dialog is operable. |
User can work before the entire web page is downloaded and rendered on the screen. | User will need all the data before they are able to continue on with their next operation. |
Can be cached by ISP in their local network. | Data cannot be cached. Must be transmitted to the server and received fully by the user. |
1.2.2 Typical Enterprise Data Size
In the following table I will try to summarize some typical operations and their associate amount of data for both upstream and downstream.
Enterprise Operation | Sample Upstream / Downstream Data Size |
Login | 5 KB Up 75 KB Down |
Open work in progress | 2.5 KB Up 10 KB Down |
Open a typical small work order | 5 KB Up 25 KB Down |
Save a typical small work order | 15 KB Up 15 KB Down |
Inventory report with result of 1000 lines | 1 KB Up 20 KB Down |
Inventory report with result of 20,000 lines | 5 KB Up 200 KB Down |
Now, the above is just some example results, because the size of the data depends on the size of the store, the complexity of store setup, and the actual data operated. Therefore, a bigger work order uses more downstream data when it is opened, and will use more upstream than downstream data when it is saved. Or a large franchise setup will consume more downstream data during login.
From the data size chart, one can clearly see that on most broadband connections, top speed will never be reached under typical conditions for most of the Enterprise operations. Even a report with result of 20,000 lines only has 200 KB downstream data. With most other Enterprise operations taking less than 50 KB, the top speed of the connection is nearly irrelevant in today’s broadband connection. In fact, higher speed in today’s broadband connection sometimes causes higher possibility of data losses when less than ideal equipment and/or line conditions are involved. Therefore pushing a broadband connection to a higher speed for Enterprise is, in most cases, meaningless.
As this topic of latency indicates, latency places a major role on how fast the data transmission can complete because a Enterprise operation typically involves very small amounts of data. And as the topic of packet loss indicates, depending on the nature of the packet loss, small data size suffers as much and commonly more than larger data sized transmissions. If a user is using wireless equipment where increased latency, packet loss and signal quality is of an issue, then Enterprise will not perform well even though it might not be nearly as obvious when compared to downloading a large file over the Internet.
Another thing about the Enterprise client is that data for Enterprise operations are mostly single chunks of data that cannot be obtained in parallel. Enterprise data is always 100% dynamic and cannot be cached. This impacts how a user perceives the difference between opening a typical web page versus opening a work order in Enterprise. For example the home page of Yahoo has a total size of 400 KB. Opening a small Enterprise work order requires about 25 KB of data. The user would imagine that opening the Enterprise work order should be faster than loading Yahoo’s home page. In reality it takes about 4 seconds for Yahoo’s home page to load on a clean system with no cache. Opening a Enterprise work order takes about the same time.
So why is Enterprise not any faster? Yahoo’s home page is made up with many smaller elements. The actual web page without images and objects are in fact only 30 KB. Which means the web browser can retrieve the page and load all the images and objects in parallel. In fact the web browser starts to render the page as soon as the 30 KB web page is retrieved and then adds the images and objects in as they are downloaded. However, in order to open the Enterprise work order, the entire 25 KB has to be loaded before the UI can start to render the work order because the work order data encompasses the entire 25 KB. So while the total data size might differ, the amount of data that’s required to start rendering is almost the same when compared with Yahoo’s home page. So while the web browser is downloading the rest of the images and objects and rendering them on the screen, Enterprise is process the work order data and displaying them in Enterprise and in the end they completes at around the same time. Furthermore, the next visit to the Yahoo home page takes around 2 seconds, significantly faster than the first visit, because web pages are mostly static and only the changed items needs to be re-downloaded. The rest are stored locally on the computer. Enterprise data is all dynamic. Which means opening the same work order will again take around 4 seconds to complete. So while the user might think their Internet browsing is very fast in fact they might be retrieving mostly cached content while Enterprise requires actual data from Enterprise data server on every operation the user performs.
1.2.3 Enterprise Speed: The Entire Picture
There are many factors that compose the total time required to complete a Enterprise operation. First, the client has to make the request, then the request has to be transmitted to the server, then the server has to process the request, and then the reply has to be transmitted back to the client, and lastly the client has to actually be able to present the reply. Every one of these steps impacts the speed of Enterprise client. The network is involved in two sections of a Enterprise operation, namely the transmission of data from the user to the Enterprise server, and from the Enterprise server to the user. However, when one measures how long it takes to open a Work Order, it involves more than just network speed. The client computer also needs to be able to process the data received from the server and render the user interface accordingly. So when the client computer has many programs running from other applications, or the computer is affected with trojan/virus/spam/malware/etc, they will all impact how fast Enterprise can allow the user to perform their operations.
1.2.4 What Connection Is Best For Enterprise
Enterprise does not require top speed. Enterprise does not work better when you are on a higher advertised broadband connection. A 1 MBps connection will not perform any better or worse than a 3 MBps connection because for what Enterprise does. It will never reach the peak speed. Enterprise works better when the end to end network is reliable, meaning no network disconnects, no low packet losses. Every network disconnect means that user is presented with an error dialog to reconnect. And any packet loss means significant performance degradation because Enterprise’s data size is small. Enterprise works best when latency from the user to the server and from the server back to the user is low. Latency can add to a signification amount of overhead to Enterprise’s small operation. Remember, a 200 ms additional latency means a 20% performance degradation on any operation that takes 1 second to complete. And most Enterprise operations take much less than 1 second to complete. This translates into much slower response times for the user. The latency also adds up as the day goes on. Over the course of the day, a user may make 3,000 Enterprise calls. That 200 ms additional latency will translate into 600 seconds or 10 minutes of additional cumulative wait time.