This article is part of a series of 5 where I am talking about the Microsoft Azure network bandwidth. For a better understanding please make sure you read also the other parts:
- What does Microsoft mean by low / moderate / high / very high / extremely high Azure network bandwidth (part 1)
- The isolated network setup (the environment used for network analysis) (part 2)
- What happens when we perform a PING? (part 2.1)
- What happens when we perform a PING in size of 4086 bytes? (part 2.2)
- Now let’s see what exactly happens when a file is copied over the network (file share) (part 2.3)
- Now let’s see what exactly happens when MS SQL traffic is performed (part 2.4)
- Now let’s see what exactly happens when IIS HTTP/HTTPS traffic is performed (part 2.5)
- The IOmeter benchmark tests who reproduce as close as possible the HTTP/HTTPS, SMB and MS SQL network traffic (part 3)
- The Azure Virtual Machines used to run the IOmeter benchmarks (part 4)
- Results and interpretations
Now let’s see what exactly happens when IIS HTTP/HTTPS traffic is performed
The HTTP/HTTPS IIS network traffic is not that complex, but I will explain in advance what you will see in the next Wireshark and Process Monitor print screens.
In a non-academic explanation: IIS will gradually increase the amount of data it sends to the network adapter (depending on how much and how fast the data is transferred), but with LSO enabled the largest frame size is 62834 bytes.
Let’s pause a bit the explanation and mention Large Segment Offload (LSO) – which “is a technique for increasing outbound throughput of high-bandwidth network connections by reducing CPU overhead. It works by queuing up large buffers and letting the network interface card (NIC) split them into separate packets.”
Continuing the IIS HTTP/HTTPS network traffic explanation: actually those data chunks are sent over the network in much smaller size packets. The size of those packets is in direct relation with the Maximum Transmission Unit size.
Let’s pause again the explanation and mention in the absence of Large Segment Offload (LSO) (TSO / TCP Chimney Offload) the HTTP/HTTPS data IIS is sending over the network will be directly divided into packets in size with the Maximum Transmission Unit.
On the other “end of the wire”, the client system will receive network packets who will not exceed the Maximum Transmission Unit size.
At the network level, the HTTP and HTTPS traffic is not that different: we are still discussing about network frames up to 62834 bytes, but in the HTTPS case we can see an increased number of them being sent over the network. This is happening because the encryption adds overhead.
The purpose of this explanation is to help reproduce as close as possible the IIS (HTTP/HTTPS) network traffic using IOmeter.
Of course, the way the data is handled (processed) before being passed to the network interface card has its performance implications – but this is a different subject. Remember, we look to benchmark only the network. We will try in our analysis to have the minimum influence from CPU, RAM and DISK point of view.
Here I will provide couple of important links for those who want to have a deeper reading in Process Monitor, Wireshark, LSO / TSO / TCP Chimney Offload, MTU
https://en.wikipedia.org/wiki/Maximum_transmission_unit
https://en.wikipedia.org/wiki/Protocol_data_unit
https://en.wikipedia.org/wiki/Network_layer
https://ask.wireshark.org/questions/24699/tcp-packet-length-was-much-greater-than-mtu
https://en.wikipedia.org/wiki/Large_segment_offload
http://www.peerwisdom.org/2013/04/25/disabling-large-send-offload-windows/
https://en.wikipedia.org/wiki/IP_fragmentation
IIS is gradually increasing the amount of data it sends to the network adapter (depending on how much and how fast the data is transferred).The Process Monitor network capture indicates IIS sends to the network adapter chunks of data in size of 64 KB (65536 bytes), 128 KB (131072 bytes), 256 KB (262144 bytes), 512 KB (524288 bytes), 1 MB (1048576 bytes), 2 MB (2097152 bytes), 4 MB (4194304 bytes) …
With LSO enabled the largest sent frame is in size of 62834 bytes.
On the other “end of the wire”, the client system will receive network packets who will not exceed the MTU size.
So, let’s make a short summary of what we’ve seen so far about IIS (HTTP and HTTPS) network traffic usage:
- In contrast with other server software solutions (MS SQL, SMB …) the IIS server doesn’t have a fixed amount of data that is working with, but with LSO enabled the largest sent frame size is 62834 bytes.
- on the other “end of the wire”, the client system will receive network packets who will not exceed the Maximum Transmission Unit size.
- at the network level, the HTTP and HTTPS traffic is not that different: we are still discussing about network frames up to 62834 bytes, but in the HTTPS case we can see an increased number of them being sent over the network. This is happening because the encryption adds overhead.
Again, this explanation will help reproduce as close as possible the IIS network traffic using IOmeter.