throbber
VOLUME ]I
`
`" Fififfliubu
`
`."'
`
`
`
`Google Ex. 1007, pg. 1
`
`Google Ex. 1007, pg. 1
`
`

`

`‘
`-;—-
`hummus with Ice/n.
`
`Vol. 2 by We 8. Cost: and David 1.. Stevens.
`Includes Damon-apnea. Mame-e and index.
`Contents. Vol. 1. Principles, protocols, and
`enumerate - v. 2. neatly, implementation, and
`intends-
`2. Computer network
`t. Coeputer networks.
`protoeoh.
`3. Due: cremains“ systems.
`1. Stevens, David L.
`H. ext)...
`mtos.s.css 1991
`006.6
`90-7829
`1m 0-13-666505-9 (v. 1)
`ISBN 0-13-472262-6 (v. 2)
`
`Editorial/production supervision: Joe Scordato
`Cover deslgn: Karen Stephens
`Cover illustration: Jim Kinstrey
`Manufacturing buyers: Linda Behrens and David Dickey
`
`‘
`
`
`
`;
`.4
`
`The author and publisher of this book have used their best efforts in preparing this book.
`These efforts include the development. research. and testing of the theories and programs to
`determine their effectiveness. The author and publisher make no warranty of any kind.
`expressed or implied. with regard to these programs or the documentation contained in this
`book. The author and publisher shall not be liable in any event for incidental or consequential
`damages in connection with. or arising out of. the furnishing. performance. or use of these
`programs.
`
`1:
`_.
`
`O 1991 by Prentice-Hall. Inc.
`A Simon & Schuster Company
`Englawood Cliffs. New Jersey 07632
`
`All rights reserved. No prtrt of this book
`may be reproduced. in any form or by any
`means. without permission in writing from
`the publisher.
`
`Printed in the United States of America
`I098765432|
`
`ISBN U-lfl-H'EEHE-l:
`
`UNIX is a registered trademark of AT&T Bell
`Laboratories.
`proNET-IO is a trademark of Protcon Comoration.
`VAX. Microvax. and DECstation are trademarks
`of Digital Equipment Corporation.
`
`.
`
`Prentice-Hall lntemational (UK) Limited, London
`Prentice-Hall of Australia Pty. Limited. Syrlmfiv
`Prentice-Hall Canada lnc.. Toronto
`Prentice-Hall His‘panoamericanu. S. A.. Mexico City
`Prentice-Hall of India Private Limited. New Delhi
`Prentice-Hall of Japan. lnc., Tokyo
`Simon & Schuster Asia Pte. Ltd.. Singapore
`Editoru Prentice-Hall do Brasil. Ltdu.. Rio de .lonc'ir'o
`
`'Wu-E-srrornrmmrr-t'me-arwr.v.7. 7:
`
`.;
`
`. G
`
`,
`
`oogle Ex. 1007, pg. 2
`
`Google Ex. 1007, pg. 2
`
`

`

`
`
`tission
`
`Chap. l4
`
`Sec. 14.4
`
`Retransmission Timer And Backofl'
`
`265
`
`nsmitting
`-______..—___—_-
`
`it needs to schedule another retransmission
`Once tcprexmr retransmits the data,
`timeout in the future. The call to tmset implements timer control according to Kam’s
`algorithm.
`It shifts the timeout in lcb_re.\'mt left ch_re.\'mtconnr bits to double the de-
`lay for each retransmission that has occurred.
`It then passes the computed delay as an
`argument to Imser, causing it to schedule a new RETRANSMIT event.
`For small values of TCP_MAXREI'RIES. doubling the timeout on each retransmis-
`sion works well. However. if the system allows a large number of retrics, doubling the
`timeout on each can result in severe delays before TCP decides to abort a connection.
`To prevent the timeout from becoming arbitrarily large, rcprexmt enforces a maximum
`timeout by choosing the minimum of
`the
`computed timeout
`and constant
`TCP_MAXRXT.
`Section 14.7.] discusses the final few statements in u‘prexmr, which handle conges-
`tion control.
`
`.ransmitting
`
`*/
`
`14.5 Window-Based Flow Control
`
`mum) I
`
`. TCP_MAXRXT) ) .-
`
`*/
`* first drop
`:cb_ssthresh) l2;
`
`ll be called by the
`sion. Because the
`
`be processed. so
`
`count and enforces
`
`.‘P_MAXRETRIES.
`'! to abort the con-
`n! has checked for
`nains in the output
`retransmission.
`
`When TCP on the receiving machine sends an acknowledgement. it includes a win-
`dow advertisement in the segment to tell the sender how much buffer space the receiver
`has available for additional data. The window advertisement always specifies the data
`the receiver can accept beyond the data being acknowledged, and TCP mandates that
`once a receiver advertises a given window. it may never advertise a subset of that win-
`dow (i.e., the window never shrinks). Of course. as the sender fills the advertised win-
`dow. the value in the acknowledgement field increases and the value in the window
`field may become smaller until it reaches zero. However. the receiver may never de-
`crease the point in the sequence space through which it has agreed to accept data. Thus.
`the window advertisement can only decrease if the sender supplies data and the ack-
`nowledgement number increases: it cannot decrease merely because the receiver decides
`to decrease its buffer size.
`TCP uses window advertisements to control the flow of data across a connection.
`
`A receiver advertises small window sizes to limit the data a sender can generate.
`extreme case, advertising a window size of zero halts transmission altogethert.
`
`in the
`
`14.5.1 Silly Window Syndrome
`
`If a receiver advertises buffer space as soon as it becomes available, it may cause
`behavior known as the silly window syndrome. Silly window behavior is characterized
`as a situation in which the receiver's window oscillates between zero and a small posi-
`tive value, while the sender transmits small segments to fill the window as soon as it
`opens. Such behavior leads to low network utilization because each segment transmit-
`ted contains little data compared to the overhead for TCP and IP headers.
`To prevent a TCP peer from falling victim to the silly window syndrome when
`transmitting. TCP uses a technique known as receiver-side silly window avoidance.
`The silly window avoidance rule states that once a receiver advertises a zero window, it
`iWe say that the receiver "closes“ the window.
`
`Google Ex. 1007, pg. 3
`
`

`

`
`
`a... - H.
`
`.. .....- u _ .‘
`
`Tcprwt’ndow be
`space (i.e.. the size
`buffer).
`if TCP has
`connection (the stat
`ment size has not t
`
`silly window avoids
`tcb_window of the
`blished. tcpm'indow
`ing the window to z
`The final statel
`venisemcnt as discu
`
`14.5.3 Optlmlzlng
`
`Once a recein
`
`state and begins to 1
`an acknowledgemei
`the acknowledgeme
`ficient space becon
`and the sender will
`Although the
`minor optimization
`for the receiver to 1
`size. without waitii
`plication program t
`3! space causes the
`As the sender proi
`ment. moves back
`
`14.5.4 Adlustlns
`
`Procedure rcp
`dow advertisemen
`
`peer TCP is willin
`
`fChspler 12 discr
`
`£00
`
`llJl’: I‘IDW Control And Adaptive Retransmission
`
`Chap. [4
`
`should delay advertising a nonzero window until it has a nontrivial amount of space in
`its buffer. A nontrivial amount of buffer space is defined to be the space sufficient for
`one maximum-sized segment or the space equivalent
`to one quarter 'of the buffer,
`whichever is larger.
`
`14.5.2 Flecelver-SIde Sllly Wlndow Avoldanco
`
`Procedure tcprwindow implements receiver-side silly window avoidance when it
`computes a window advertisement.
`
`/* tcprwindow.c - tcprwindow */
`
`Ginclude <conf .h)
`#include <kernel.h>
`#include <network.h>
`
`/ a___._---—._--__________——-__.._....._-_..____...._.._.__________-_-—__..-----_
`
`tcprwindow - do receive window processing for a TCB
`*
`it __—__..__....-______———____-..--___-_____._-.._-___________-___-..__._________
`‘/
`
`tcprwindow (ptcb)
`int:
`struct
`tcb
`'ptcb;
`l
`
`int:
`
`window;
`
`window = ptcb->tcb_rbsize - ptcb->tcb_rbcount;
`if (ptcb->tcb_st:at:e < TCPS_ESTABLISHED)
`return window:
`
`Receiver-side Silly Window Syndrome Avoidance:
`Never shrink an already-advertised window, but wait for at:
`least 1/4 receiver buffer and 1 max-sized segment before
`opening a zero window.
`
`/~k
`
`*
`‘
`
`* i
`
`*
`*/
`
`if (windowtt < ptcb—>tcb_rbsize || window < ptcb->ccb rmss)
`window = 0:
`_
`
`window = max(window, ptcb->tcb_cwin - ptcb—>tcb_rnext:);
`ptcb->t:cb_cwin = ptqb—>tcb_rnext: + window;
`return window;
`
`
`
`Google Ex. 1007, pg. 4
`
`Google Ex. 1007, pg. 4
`
`

`

`
`
`Sec. [4.5
`
`Window-Based Flow Control
`
`267
`
`to the available buffer
`Tcpm'r‘ndow begins by computing a window size equal
`space (i.e.. the size of the receive buffer minus the current count of characters in the
`buffer).
`if TCP has just begun a three-way handshake. but has not yet established a
`connection (the state is less than TCPS_ESTABLISHED), the receiver maximum seg-
`ment size has not been initialized. Therefore. rcprwindow cannot apply receiver-side
`silly window avoidance - it merely stores the value computed for the window in field
`tt'b_wind0w of the TCB and tetums to its caller. Once a connection has been esta-
`blished. (cprwr'ndow applies the rule for receiver-side silly window avoidance. by reduc-
`ing the window to zero unless a nontrivial amount of space is available.
`The final statements of tcpm'r'ndow apply congestion avoidance tothe window ad-
`vertisement as discussed below.
`
`14.5.3 Optimizing Pertormance After A Zero Window
`
`Once a receiver advertises a zero window. the sender enters the PERSIST output
`state and begins to probe the receiverl'. The receiver responds to each probe by sending
`an acknowledgement. As long as the window remains closed, the probes continue, and
`the acknowledgements contain a window advertisement of zero. Eventually. when suf-
`ficient space becomes available, the acknowledgements will carry a nonzero window,
`and the sender will start to transmit new data.
`
`Although the sender beats ultimate responsibility for probing a zero window, a
`minor optimization can improve performance. The optimization consists of arranging
`for the receiver to generate a gratuitous acknowledgement that contains the new window
`size. without waiting for the next probe. Thus, in our implementation, whenever an ap-
`plication program extracts data from a TCP input buffer. it checks to see if the addition-
`al space causes the window to open. and sends a gratuitous acknowledgement if it does.
`As the sender processes the acknowledgement, it finds the nonzero window advertise-
`ment. moves back to the TRANSMIT state. and resumes transmission of data.
`
`14.5.4 Adjusting The Sender’s Window
`
`It handles win-
`Procedure tcpswindow computes the size of the sender’s window.
`dow advertisements in incoming segments. and keeps track of the amount of data the
`peer TCP is willing to receive.
`
`ission
`
`Chap. l4
`
`aunt of space in
`.ce sufficient for
`r of the buffer.
`
`)idance when it
`
`ice :
`wait for at
`ant: before
`
`:cb_rmss i
`
`axt) .-
`
`fChaptcr [2 discusses output processing and the output state machine.
`
`Google Ex. 1007, pg. 5
`
`Google Ex. 1007, pg. 5
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket