Subject: A doubt on PUSH bit.

From: kumar <[email-masked]>
Date: Fri, 14 Dec 2001 16:22:18 +0530

hi all,

May i get a small clarification on PUSH bit in the TCP header ?

DOUBT : When a segment arrives with a "push" bit set, do we need to inform 
the PUSH bit to the application ?

expecting ur reply,
kumar.

---

From: [email-masked]
Date: Fri, 14 Dec 2001 09:36:37 -0600 (CST)

> Date: Fri, 14 Dec 2001 16:22:18 +0530
> From: kumar <[email-masked]>
> Subject: A doubt on PUSH bit.
...
> the PUSH bit to the application ?

Not the bit itself.  When a packet arrives with the PUSH bit set,
then any data that you have received but not yet made available to
the application (including the data in this packet) needs to be
made available to the application.

The BSD networking stack ignores the PUSH bit on receive, because
it always makes all received data available to the application.

(And I'm speaking of in-seqeuence data; out-of-sequence data is
not made available until the missing pieces are received.)

		-David Borman, [email-masked]

---

From: Bob Braden <[email-masked]>
Date: Fri, 14 Dec 2001 13:15:46 -0800 (PST)

*> From [email-masked]  Fri Dec 14 03:02:16 2001
  *> X-Sender: [email-masked]
  *> Date: Fri, 14 Dec 2001 16:20:27 +0530
  *> To: [email-masked]
  *> From: kumar <[email-masked]>
  *> Subject: A doubt on PUSH bit.
  *> Mime-Version: 1.0
  *> X-AntiVirus: scanned by AMaViS 0.2.1
  *> 
  *> hi all,
  *>      May i get a small clarification on PUSH bit in the TCP header ?
  *> 
  *>   DOUBT : When a segment arrives with a "push" bit set, do we need to 
  *> inform the PUSH bit to the application ? 
  *> 

RFC 1122 is the definitive word on this, I think; it says MAY.
If you are unfamiliar with RFC 1122, I suggest that you read and
digest it before launching any more questions about TCP.

I argued in 1978 when TCP was being designed that according to the
logic of Push it should be required (and my TCP did pass it), but
Berkeley Unix set the modern standard of not passing Push to the
receiving application.  Essentially, it was (one of the many cases of)
the OS folks against the networking folks.  The networking folks
defined this nice Push mechanism, and the OS folks ignored it. ;-)

Bob Braden