Hospedando vários serviços WCF em uma única porta TCP em um serviço do Windows

Abaixo está meu trecho do arquivo app.config do serviço de janelas do host.

<services>
      <service name="Share.Services.MainService">
        <endpoint address="net.tcp://localhost:8001/MainService" behaviorConfiguration="netTcpBehavior" binding="netTcpBinding" contract="Share.Services.IClaimService" />
      </service>
      <service name="Share.Services.MainMasterPageService">
        <endpoint address="net.tcp://localhost:8001/MainMasterPageService" behaviorConfiguration="netTcpBehavior" binding="netTcpBinding" contract="Share.Services.IMainMasterpageService" />
      </service>
      <service name="Share.Services.SMSService">
        <endpoint address="net.tcp://localhost:8001/SMSService" behaviorConfiguration="netTcpBehavior" binding="netTcpBinding" contract="Share.ServiceContracts.Messaging.ISMSService" />
      </service>
    </services>

Há 3 serviços wcf configurados para usar o ponto de extremidade TCP com a porta 8001. No serviço windows, estou usando o código abaixo para registrar os hosts do Serviço

private static ServiceHost[] Hosts = null;

public static void Start()
{     
    try
    {
        while (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
        {
            System.Threading.Thread.Sleep(1000);
        }
        BaseLog.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        Hosts = new ServiceHost[] 
            {
                new ServiceHost(typeof(MainService)), 
                new ServiceHost(typeof(MainMasterPageService)),
                new ServiceHost(typeof(SMSService)) 
            };

        foreach (ServiceHost host in Hosts)
        {
            RegisterServiceHost(host);
        }

        _log.Info("All Hosts Open");
    }
    catch(Exception e)
    {
        _log.Error( "MainServiceHost", e);
    }
}

Para cada objeto ServiceHost eu estou chamando a função RegisterServiceHost, o código desta função é como abaixo

public static void RegisterServiceHost(ServiceHost host)
{
    var ops = (from e in host.Description.Endpoints
            from o in e.Contract.Operations
            select o).ToList();

    ops.ForEach(
        operation => operation.Behaviors.Add(new MainContextOperationBehavior())
            );

    host.Open();
}

O código acima está funcionando corretamente sem nenhum problema. Minha pergunta é que todos os serviços estão compartilhando a mesma porta 8001. Como todos os serviços capazes de compartilhar a mesma porta. Mesmo o serviço de compartilhamento de porta Net.TCP não está habilitado na máquina. Minha outra pergunta é que isso causará algum impacto no desempenho ao compartilhar a mesma porta. Se eu der uma porta única como 8001.8002, 8003 para cada serviço, então quais são as vantagens disso.

questionAnswers(1)

yourAnswerToTheQuestion