When the server sends data to the browser, sometimes the server sends a packet, and the browser will reply with an ACK. Sometimes the server sends three packets, and the browser responds with an ACK? What is the principle? Is there a formula for calculation?
There are many questions about TCP on the Internet, and I have written more than 200 articles about TCP. But it has not been mentioned which TCP we are discussing?
Hehe, you might be surprised. Is there a lot of TCP?
Yes, there are many different implementation branches of TCP. Although the basic principles are the same, the details are quite different, especially the difference between the Congestion Control and when and how to send ACKs.
There are usually "Accumulated ACK", "Delayed ACK", "Duplicated ACK", "Selective ACK", "Duplicated SACK".
If you add "Nagle algorithm", "Fast Retransmit / Recovery", "SACK", "BBR", supplemented by "TCP Segment Offload" and "TCP Receive Offload", the entire TCP will become extremely complicated and elusive.
What is the correct posture to learn TCP? How can we learn well?
Why do so many TCP branches have different implementation details but can communicate freely without obstacles?
Because they all follow one of the most basic principles, the confirmation principle!
Any other principle can be disregarded, but this confirmation principle is essential. If this principle is missing, then this TCP must be a fake TCP.
With the confirmation principle, at least the two parties in communication can communicate, and this "ability" is a manifestation of capability. Other algorithms are only optimizing the transmission efficiency of communication. In layman's terms, the confirmation principle solves the problem of whether or not it can, while other algorithms solve the problem of disappointment.
Now that the principle of confirmation is so important, the next question is:
• What kind of message needs to be acknowledged (ACK)?
• When to confirm?
What kind of message needs to be acknowledged (ACK)?
o TCP packets carrying data
o TCP packets carrying SYN
o TCP packets carrying FIN
Students with a certain inductive ability can naturally summarize TCP packets that do not need to be acknowledged:
o No ACK message carrying data
o TCP packets carrying RST
When will it be confirmed?
This question may seem simple, but it is not so easy to answer.
If a message requiring confirmation is received, an ACK message is immediately generated for confirmation. The advantages are obvious: RTT is small. Since the receiver does not delay the confirmation, the RTT value measured by the sender in real time is close to the real. Sender Delivery Rate = CWND / SRTT In the case of equal CWND, the smaller the SRTT, the higher the transmission rate. The disadvantages are also obvious:
High CPU resource consumption
Each time the computer sends an ACK message, it will generate a CPU overhead that cannot be ignored, causing the overall time for the CPU to process the TCP message.
Many TCP researchers, after comparing theories with experiments, finally decided to send an ACK for every two packets that need to be acknowledged. This is called Delayed ACK. The advantages and disadvantages are exactly the opposite of the first solution, but the reduction in CPU consumption is greater than the loss caused by delayed confirmation. This is the "Trade-Off" in the eyes of Westerners!
If only one message needs to be acknowledged, the second message is long overdue, and the receiver needs to wait foolishly? No, it is automatically controlled by a Delayed ACK Timer. Once the timer expires, an ACK message is sent immediately.
Some classmates will say that the packet capture picture was clearly confirmed after receiving three messages. This depends on where the packet is captured and the time difference. It is more likely that the receiver has received 2 packets and sent an ACK. When the ACK arrives at the packet capture point, the third TCP packet of the sender is already on the road ahead of time, causing a visual error.
Movement is absolute, and stillness is relative. The only constant in this world is change itself. To learn technology, you have to learn how to solve problems. With the right idea, no matter how the technology changes, you can spend the least time absorbing its essence.
Maybe in a few years, the TCP protocol will no longer exist, but this does not affect us to learn it! The TCP protocol condenses the wisdom of the world's top communication experts. By learning their methods and ideas to optimize the efficiency of communication transmission, the complexity is simplified, and the vast number of technical articles are just a repeater!
The above is the news sharing from the PASSHOT. I hope it can be inspired you. If you think today' s content is not too bad, you are welcome to share it with other friends. There are more latest Linux dumps, CCNA 200-301 dumps and CCNP Written dumps waiting for you.
Cisco Dumps Popular Search:
350-401 brain dump cisco 200 301 training ccna 200-301 study planner 200-301.prepaway.premium.exam.160q ccnp tshoot 300-135 dumps 2019 ccie sp recommended books ccna 200-301 pdf free download ccnp routing and switching exam fees ccnp 300-135 practice exam ccnp 300-435
Copyright © 2024 PASSHOT All rights reserved.