Serviço de transferência inteligente de plano de fundo - Background Intelligent Transfer Service

Serviço de transferência inteligente de plano de fundo (BITS)
Desenvolvedor (s) Microsoft
lançamento inicial Outubro de 2001 ; 19 anos atras ( 2001-10 )
Versão estável
10.3 / 7 de dezembro de 2019 ; 20 meses atrás ( 07/12/2019 )
Sistema operacional Microsoft Windows
Modelo Gerenciador de download
Licença Software comercial proprietário
Local na rede Internet docs .microsoft .com / en-us / windows / win32 / bits / background-intelligent-transfer-service-portal

O Background Intelligent Transfer Service (BITS) é um componente do Microsoft Windows XP e de iterações posteriores dos sistemas operacionais, que facilita a transferência assíncrona, priorizada e acelerada de arquivos entre máquinas usando largura de banda de rede ociosa. É mais comumente usado por versões recentes do Windows Update , Microsoft Update , Windows Server Update Services e System Center Configuration Manager para fornecer atualizações de software aos clientes, o antivírus da Microsoft Microsoft Security Essentials (uma versão posterior do Windows Defender ) para buscar atualizações de assinaturas e também é usado pelos produtos de mensagens instantâneas da Microsoft para transferir arquivos. O BITS é exposto por meio do COM ( Component Object Model ).

Tecnologia

O BITS usa largura de banda ociosa para transferir dados. Normalmente, o BITS transfere dados em segundo plano, ou seja, o BITS só transferirá dados quando houver largura de banda que não esteja sendo usada por outros aplicativos. O BITS também oferece suporte à retomada de transferências em caso de interrupções.

O BITS versão 1.0 oferece suporte apenas para downloads. A partir da versão 1.5, o BITS suporta downloads e uploads. Uploads requerem o servidor da web IIS , com extensão de servidor BITS, no lado receptor.

Transferências

O BITS transfere arquivos em nome de aplicativos solicitantes de forma assíncrona, ou seja, uma vez que um aplicativo solicita o serviço BITS para uma transferência, ele estará livre para realizar qualquer outra tarefa, ou mesmo encerrar. A transferência continuará em segundo plano enquanto houver conexão de rede e o proprietário do trabalho estiver conectado. Os trabalhos BITS não são transferidos quando o proprietário do trabalho não está conectado.

O BITS suspende qualquer transferência em andamento quando a conexão de rede é perdida ou o sistema operacional é desligado. Ele retoma a transferência de onde parou quando (o computador é ligado mais tarde e) a conexão de rede é restaurada. O BITS oferece suporte a transferências por SMB , HTTP e HTTPS .

Largura de banda

O BITS tenta usar apenas largura de banda sobressalente. Por exemplo, quando os aplicativos usam 80% da largura de banda disponível, o BITS usará apenas os 20% restantes. O BITS monitora constantemente o tráfego de rede em busca de qualquer aumento ou diminuição no tráfego de rede e controla suas próprias transferências para garantir que outros aplicativos de primeiro plano (como um navegador da web ) obtenham a largura de banda de que precisam. Observe que o BITS não mede necessariamente a largura de banda real. O BITS versão 3.0 e superior usará contadores de dispositivo de gateway da Internet , se disponíveis, para calcular com mais precisão a largura de banda disponível. Caso contrário, o BITS usará a velocidade relatada pela NIC para calcular a largura de banda. Isso pode levar a erros de cálculo de largura de banda, por exemplo, quando um adaptador de rede rápido (10 Mbit / s) é conectado à rede por meio de um link lento (56 kbit / s).

Empregos

O BITS usa uma fila para gerenciar as transferências de arquivos. Uma sessão BITS deve ser iniciada a partir de um aplicativo, criando um Trabalho . Um trabalho é um contêiner, que possui um ou mais arquivos para transferir. Um trabalho recém-criado está vazio. Os arquivos devem ser adicionados, especificando os URIs de origem e de destino . Enquanto um trabalho de download pode ter qualquer número de arquivos, os trabalhos de upload podem ter apenas um. As propriedades podem ser definidas para arquivos individuais. Os trabalhos herdam o contexto de segurança do aplicativo que os cria. O BITS fornece acesso à API para controlar trabalhos. Um trabalho pode ser iniciado, interrompido, pausado, retomado e consultado para obter o status de forma programática. Antes de iniciar um trabalho, uma prioridade deve ser definida para especificar quando o trabalho é processado em relação a outros trabalhos na fila de transferência. Por padrão, todos os trabalhos têm prioridade normal . Os trabalhos podem, opcionalmente, ser definidos como prioridade Alta , Baixa ou Primeiro plano . As transferências em segundo plano são otimizadas pelo BITS, 1 que aumenta e diminui (ou regula) a taxa de transferência com base na quantidade de largura de banda de rede ociosa disponível. Se um aplicativo de rede começar a consumir mais largura de banda, o BITS diminuirá sua taxa de transferência para preservar a experiência interativa do usuário, exceto para downloads de prioridade em primeiro plano .

Agendamento

O BITS agenda cada trabalho para receber apenas um intervalo de tempo finito , para o qual apenas aquele trabalho pode ser transferido, antes de ser temporariamente pausado para dar a outro trabalho a chance de transferência. Os trabalhos de prioridade mais alta obtêm uma porção maior de fração de tempo. O BITS usa o agendamento round-robin para processar trabalhos na mesma prioridade e evitar que um grande trabalho de transferência bloqueie trabalhos menores.

Quando um trabalho é criado, ele é automaticamente suspenso (ou pausado). Ele deve ser explicitamente retomado para ser ativado. A retomada move o trabalho para o estado na fila . Por sua vez, para transferir dados, ele primeiro se conecta ao servidor remoto e, em seguida, inicia a transferência. Depois que o intervalo de tempo do trabalho expira, a transferência é temporariamente pausada e o trabalho é movido de volta para o estado de fila . Quando o trabalho obtém outra fração de tempo, ele precisa se conectar novamente antes de poder ser transferido. Quando o trabalho é concluído, o BITS transfere a propriedade do trabalho para o aplicativo que o criou.

O BITS inclui um mecanismo interno para tratamento de erros e tentativas de recuperação. Os erros podem ser fatais ou transitórios ; qualquer um move um trabalho para o respectivo estado. Um erro transitório é um erro temporário que se resolve sozinho após algum tempo. Para um erro transitório, o BITS aguarda algum tempo e, em seguida, tenta novamente. Para erros fatais , o BITS transfere o controle do trabalho para o aplicativo de criação, com o máximo de informações possível sobre o erro.

Ferramentas de interface de linha de comando

Comando BITSAdmin

BITSAdmin
Desenvolvedor (s) Microsoft
Versão estável
3,0
Sistema operacional Microsoft Windows
Modelo Comando
Licença Software comercial proprietário
Local na rede Internet docs .microsoft .com / en-us / windows-server / administração / windows-comandos / bitsadmin

Microsoft fornece uma BITS Administration Utility ( BITSAdmin) de linha de comando utilidade para gerenciar BITS empregos. O utilitário faz parte do Windows Vista e posterior. Também está disponível como parte das ferramentas de suporte do Windows XP Service Pack 2 ou do Windows Server 2003 Service Pack 1 .

Exemplo de uso:

C:\> bitsadmin /transfer myDownloadJob /download /priority normal https://example.com/file.zip C:\file.zip

PowerShell BitsTransfer

No Windows 7 , o BITSAdminutilitário foi preterido em favor dos cmdlets do Windows PowerShell . O BitsTransfermódulo PowerShell fornece oito cmdlets para gerenciar trabalhos BITS.

O exemplo a seguir é equivalente ao exemplo BITSAdmin acima:

Start-BitsTransfer -Source "https://example.com/file.zip" -Destination "C:\file.zip" -DisplayName "myDownloadJob"

Lista de aplicativos não Microsoft que usam BITS

Veja também

Referências

links externos