Elephants – Long Fat Networks
Two
weeks ago, I wrote about hot
potato and cold potato routing
because I was studying to recertify my CCNP certification and
this was a new concept that I didn't know.
Today, I can say I passed the exam and I
have learnt more concepts that I would like to highlight in this
blog. This time, I'm going to write about
how to receive large amount of data, till 1 GB, in high delay and
high bandwidth networks.
Everyone who has studied networking knows about TCP Windowing what
means servers and endpoints or clients negotiate the amount of data
they can transmit without overwhelming each other. We can see 16 bits
for Window Size in the TCP header what give us till 2^16 = 65536
bytes or 64 KB that it can be received without sending an ACK
message.
TCP Header |
What happen in high delay and high bandwidth networks such as
satellite links? First, we can transmit a lot of amount of bytes in a
single burst but it is going to delay too much time to be received
for the receiver. Therefore, we can transmit till 64 KB and after
that, we have to wait for an ACK message, what it is inefficient
although we have a high bandwidth link. It's like to want to carry a
lot of things with an elephant (large amount of data in high delay
networks), it will never be fast. This is also called Long Fat
Networks or LFN.
However, TCP Extensions for High Performance networks or RFC
1323 (obsolete and replaced by RFC
7323) solves this issue. Window Scaling extends the 16-bit
window field to 32 bits in length using a TCP option to specify a
count by which the TCP header field bitwise
shifts the window size. For instance, we can see in the next
image a left shift by 7. First, we had a window size of 5840 bytes
and after shifting by 7 we have 747520 bytes of window size.
Left shift by 7 |
This TCP option is negotiated in SYN packets so it can't be changed
once the session is established. Next, we can see a window scale by
7, what means we can receive till 128 x 65536 bytes = 8 MB without
sending an acknowledge (ACK) message.
Window Scaling - SYN |
Next, we can see a window size of 1505 bytes, what it is actually
1505 x 128 = 192640 bytes or nearly 188 KB, what it is much more than
64 KB that we have had without Window Scaling.
Window Scaling |
Once we know about Window Scaling we should look for these RFCs when
we purchase a new appliance. For example, F5 load
balancer supports this kind of extensions for high
performance in their TCP
profiles.
F5 TCP Profile |
Regards
my friends and
remember, drop a line with the first thing
you're thinking.
More
information:
Commentaires
Enregistrer un commentaire