The first element of the abstract data model is the concept of a receive window. A receiver determines what amount of machine memory it is can commit to queue PDUs received from the sender. This amount of memory is called a receive window, and on the abstract level, the receiver MUST treat the ReceiveWindow data structure as a queue. The receiver SHOULD choose an initial value for the receive window based on an implementation-specific algorithm.<24>