Serviço de transferência inteligente de plano de fundo - Background Intelligent Transfer Service
| Desenvolvedor (s) | Microsoft |
|---|---|
| lançamento inicial | Outubro de 2001 |
| Versão estável | 10.3 / 7 de dezembro de 2019
|
| Sistema operacional | Microsoft Windows |
| Modelo | Gerenciador de download |
| Licença | Software comercial proprietário |
| Local na rede Internet | docs |
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
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
- AppSense - usa BITS para instalar pacotes em clientes.
- BITS Download Manager - Um gerenciador de download para Windows que cria trabalhos BITS.
- BITSync - Um utilitário de código aberto que usa o BITS para realizar a sincronização de arquivos em compartilhamentos de rede do Server Message Block .
- Civilization V - usa BITS para baixarpacotes de mod .
- Instalador de SO sem fim para Windows - usa BITS para baixar imagens de SO.
- Eve Online - usa BITS para baixar todos os patches pós-apócrifos (10 de março de 2009). Agora também é usado na ferramenta de reparo do cliente.
- Alguns serviços do Google , incluindo Chrome , Gears , Pack , atualizador Flutter e YouTube Uploader, usavam BITS.
- Firefox (desde a versão 68) para atualizações.
- Dispositivo de gerenciamento de sistemas KBOX - Um dispositivo de gerenciamento de sistemas que pode usar BITS para enviar arquivos para sistemas Windows.
- RSS Bandit - usa BITS para baixar anexos em feeds da web.
- Plataforma de mídia de oxigênio - usa BITS para distribuir conteúdo de mídia e atualizações de software.
- SharpBITS - Um gerenciador de download de código aberto para Windows que lida com trabalhos de BITS.
- WinBITS - Um Downloader de código aberto para Windows que baixa arquivos criando trabalhos BITS.
- Novell ZENworks Desktop Management - Um software de gerenciamento de sistemas que pode usar o BITS para enviar arquivos de aplicativos às estações de trabalho.
- Specops Deploy / App - Um software de gerenciamento de sistemas que (quando disponível) usa BITS para entregar pacotes aos clientes em segundo plano.