Other segments that do not fit into the buffer space are dropped. We keep track of the flow where the incoming segments belong. We will only pass the real segments to the protocol above. Of course, the other applications have already used some window size at the time our application starts. Every 10 ms a new random number d is selected and then a transition is made from the ordering buffer to the queue.
New segments occupy the slots after that.
Our current pointer is also updated every 1 ms that a packet is delivered to the transport layer. Since our segments might follow different paths, we assume that they might arrive out of order, or with delay variation. Each time a segment arrives, we select a random number d2 corresponding to each segment's delay into the network. Of course, we clean up the ordering buffer after the transition. New packet comes in and gets number 2.