ICMP Source Quench

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Source Quench is an Internet Control Message Protocol message which requests that the sender decrease the rate of messages sent to a router or host. This message may be generated if a router or host does not have sufficient buffer space to process the request, or may occur if the router or host buffer is approaching its limit.

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Type = 4 Code = 0 Header Checksum
Empty
IP Header + First 8 Bytes of Original Datagram's Data
  • Type must be set to 4.
  • Code must be set to 0.
  • The additional data is used by the sender to match the reply with the associated request.

[edit] Operation of source quench

Data is sent at a very high speed from a host or from several hosts at the same time to a particular router on a network. Although a router has buffering capabilities, the buffering is limited to within a specified range. The router cannot queue any more data than the capacity of the limited buffering space. Thus if the queue gets filled up, incoming data is discarded until the queue becomes empty. But as no acknowledgement mechanism is present in the network layer, the client does not know whether the data has reached the destination successfully. Hence some remedial measures should be taken by the network layer to avoid these kind of situations. These measures are referred to as source quench. In a source quench mechanism, the router sees that the incoming data rate is much faster than the outgoing data rate, and sends an ICMP message to the clients, informing them that they should slow down their data transfer speeds or wait for a certain amount of time before attempting to send more data. When a client receives this message, it will automatically slow down the outgoing data rate or wait for a sufficient amount of time, which enables the router to empty the queue. Thus the source quench ICMP message acts as flow control in the network layer.

[edit] References

  • RFC 792 - INTERNET CONTROL MESSAGE PROTOCOL
  • RFC 1016 - Something a Host Could Do with Source Quench: The Source Quench Introduced Delay (SQuID)
  • RFC 1122 - Requirements for Internet Hosts—Communication Layers
Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export