Out-of-Band Data and Push Bit in TCP/IP

Last reviewed: September 30, 1994
Article ID: Q96682
Summary:

It is sometimes important for a program on the network to send urgent data from the sending station to receiving station, thereby avoiding any buffering. The out-of-band data bit (sometimes referred to as urgent data bit) and push bit in the TCP header is used for this purpose. Microsoft TCP/IP supports sending urgent data by setting the push bit. Microsoft TCP/IP does not support receiving out-of-band data or data with the push bit set. The packets received with the out-of-band data bit or the push bit set will be treated the same as other packets.

Out-of-Band Data

Out-of-band data is generated (TCP header with the urgent bit set) when the data must be specified as urgent and the TCP stack on the receiver must notify the receiving process of the arrival of the data immediately. TCP allows the sender to specify data as being out-of-band by setting the OOB bit in the TCP header and the urgent pointer field. The urgent pointer field specifies the position in the receive window where urgent data ends.

The Microsoft TCP/IP stack does not set the OOB data bit; instead, the push bit is used for data needing immediate delivery. Microsoft TCP/IP does not support the processing of out-of-band data as a receiver. The out-of-band data received by Microsoft TCP/IP stack is not treated as urgent data and it is buffered as usual.

Push Bit

The push bit setting specifies to the TCP stack that the data should be sent out on the network immediately. The normal buffering of data on the sender is avoided and the transport stack immediately processes the data and sends it with the push bit marked in the TCP header. The push bit indicates that the data should be sent to the receiver immediately. When the receiver receives the data, it should also notify the receiving process of the arrival of the data immediately, thus not buffering the data on the receiving end.

The Microsoft TCP/IP implementation supports the use of push bit as a sender. Using the Microsoft TCP/IP Sockets Development Kit, the push bit on a packet can be set by using the MSG_PUSH flag on the send() or sendto() function calls. Microsoft TCP/IP does not treat incoming packets with the push bit turned on as urgent data. Instead, the data is buffered as usual.

Reference(s):

For more information on out-of-band data bit and push bit, please refer to "Internetworking with TCP/IP", Vol. I & II by Douglas Comer, and Microsoft TCP/IP Sockets Development Kit documentation and RFC 793, 1122.


KBCategory: kbnetwork
KBSubcategory:
Additional reference words: 2.10 2.20


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: September 30, 1994
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.