public override void Shift() { WindowList.Sort(); int i; for (i = 0; (i < WindowList.Count) && (WindowList[i].SequenceNumber == _windowBegin); i++) { _windowBegin = WindowList[i].RequiredAck; OutputList.Add(WindowList[i]); } for (int k = 0; k < i; k++) { WindowList.RemoveAt(0); } }