What is the difference between "interrupt merging" and "Nagle's algorithm"?

Is the main difference in themes?

+3


source to share


1 answer


Interrupt pooling is about the network driver: the idea is to avoid having to call the interrupt handler again every time a network packet appears. Instead, after receiving a packet, the NIC waits until M packets are received, or until N microseconds have passed before an interrupt is generated. The driver can then process multiple packets at once. (Otherwise, with modern gigabit and 10 gigabit adapters, the processor would need to inject hundreds of thousands or millions of interrupts per second, which could prevent the system from doing a lot more.) As you can see from your link, there is (or at least it can be) the cost of additional delay, since the OS does not start processing the received packet at the earliest possible moment.

Nagle's algorithm aims to reduce the number of packets sent by combining payload data from multiple packets into one. The classic example is a telnet session. Without Nagle, every time you press a key, the system has to create a whole new packet (min. 64 bytes on Ethernet) to send one byte.



So the intent of the pooling of collaborations is to support more bandwidth, while the intent of Nagle's algorithm actually creates less bandwidth (by sending fewer packets).

+3


source







All Articles