internal TagsTransferWindow(DestinationSession session, OutboundTunnelSelector tunnelsel)
        {
            Window = new TimeWindowDictionary <uint, GarlicCreationInfo>(GarlicResendTimeLimit);
            OutstandingMessageIds = new TimeWindowDictionary <uint, GarlicCreationInfo>(GarlicTimeBetweenResends * 10);

            Resend = new PeriodicAction(GarlicTimeBetweenResends / 4);

            Session        = session;
            TunnelSelector = tunnelsel;

            TunnelProvider.DeliveryStatusReceived += new Action <DeliveryStatusMessage>(TunnelProvider_DeliveryStatusReceived);
            InboundTunnel.DeliveryStatusReceived  += new Action <DeliveryStatusMessage>(InboundTunnel_DeliveryStatusReceived);
        }