Serviciu de transfer inteligent de fundal - Background Intelligent Transfer Service
Dezvoltatori | Microsoft |
---|---|
Eliberarea inițială | Octombrie 2001 |
Versiune stabila | 10.3 / 7 decembrie 2019
|
Sistem de operare | Microsoft Windows |
Tip | Administrator de descărcări |
Licență | Software comercial proprietar |
Site-ul web | docs |
Serviciul de transfer inteligent de fundal (BITS) este o componentă a Microsoft Windows XP și iterațiile ulterioare ale sistemelor de operare, care facilitează transferul asincron, prioritar și limitat de fișiere între mașini care utilizează lățime de bandă de rețea inactivă. Acesta este cel mai frecvent utilizat de versiunile recente ale Windows Update , Microsoft Update , Windows Server Update Services și System Center Configuration Manager pentru a oferi actualizări de software pentru clienți, Microsoft e scanner anti-virus Microsoft Security Essentials (o versiune mai recentă de Windows Defender ) pentru a prelua actualizări de semnături și este, de asemenea, utilizat de produsele de mesagerie instantanee Microsoft pentru a transfera fișiere. BITS este expus prin Modelul de obiecte componente (COM).
Tehnologie
BITS folosește lățime de bandă inactivă pentru a transfera date. În mod normal, BITS transferă date în fundal, adică BITS va transfera date numai ori de câte ori există lățime de bandă care nu este utilizată de alte aplicații. BITS acceptă și reluarea transferurilor în caz de întrerupere.
BITS versiunea 1.0 acceptă doar descărcările. De la versiunea 1.5, BITS acceptă atât descărcări, cât și încărcări. Încărcările necesită serverul web IIS , cu extensie de server BITS, pe partea de recepție.
Transferuri
BITS transferă fișierele în numele solicitantului de aplicații în mod asincron, adică, odată ce o aplicație solicită serviciul BITS pentru un transfer, va fi liber să facă orice altă sarcină sau chiar să termine. Transferul va continua în fundal atâta timp cât conexiunea la rețea este acolo și proprietarul jobului este conectat. Joburile BITS nu se transferă atunci când proprietarul jobului nu este conectat.
BITS suspendă orice transfer în desfășurare atunci când conexiunea la rețea este pierdută sau sistemul de operare este oprit. Reia transferul de unde a oprit când (computerul este pornit mai târziu și) conexiunea la rețea este restabilită. BITS acceptă transferuri prin SMB , HTTP și HTTPS .
Lățime de bandă
BITS încearcă să utilizeze doar lățimea de bandă de rezervă. De exemplu, atunci când aplicațiile utilizează 80% din lățimea de bandă disponibilă, BITS va folosi doar restul de 20%. BITS monitorizează constant traficul de rețea pentru orice creștere sau scădere a traficului de rețea și limitează propriile transferuri pentru a se asigura că alte aplicații din prim-plan (cum ar fi un browser web ) obțin lățimea de bandă de care au nevoie. Rețineți că BITS nu măsoară neapărat lățimea de bandă reală. Versiunile BITS 3.0 și versiunile ulterioare vor utiliza contoare de dispozitive Internet Gateway , dacă sunt disponibile, pentru a calcula mai exact lățimea de bandă disponibilă. În caz contrar, BITS va utiliza viteza raportată de NIC pentru a calcula lățimea de bandă. Acest lucru poate duce la erori de calcul al lățimii de bandă, de exemplu atunci când un adaptor de rețea rapid (10 Mbit / s) este conectat la rețea printr-o legătură lentă (56 kbit / s).
Locuri de munca
BITS folosește o coadă pentru a gestiona transferurile de fișiere. O sesiune BITS trebuie pornită dintr-o aplicație prin crearea unui job . O lucrare este un container, care are unul sau mai multe fișiere de transferat. Un job nou creat este gol. Fișierele trebuie adăugate, specificându-se atât URI-ul sursă, cât și cel de destinație . În timp ce o lucrare de descărcare poate avea orice număr de fișiere, sarcinile de încărcare pot avea doar una. Proprietățile pot fi setate pentru fișiere individuale. Locurile de muncă moștenesc contextul de securitate al aplicației care le creează. BITS oferă acces API pentru a controla lucrările. O lucrare poate fi pornită, oprită, întreruptă, reluată și interogată la nivel de program. Înainte de a începe o lucrare, trebuie setată o prioritate pentru ca aceasta să specifice când lucrarea este procesată în raport cu alte lucrări din coada de transfer. În mod implicit, toate lucrările au prioritate normală . Opțional, joburile pot fi setate la prioritate înaltă , scăzută sau prim-plan . Transferurile de fundal sunt optimizate de BITS, 1 care crește și scade (sau accelerează) rata de transfer pe baza cantității de lățime de bandă de rețea inactivă disponibilă. Dacă o aplicație de rețea începe să consume mai multă lățime de bandă, BITS își reduce rata de transfer pentru a păstra experiența interactivă a utilizatorului, cu excepția descărcărilor prioritare de prim plan .
Programare
BITS programează fiecare job pentru a primi doar o porțiune de timp finită , pentru care numai acel job este permis să se transfere, înainte ca acesta să fie temporar întrerupt pentru a oferi unui alt job șansa de transfer. Locurile de muncă cu prioritate superioară obțin o porțiune mai mare de timp. BITS folosește programarea round-robin pentru a procesa lucrări în aceeași prioritate și pentru a preveni un job de transfer mare să blocheze joburi mai mici.
Când un job este nou creat, acesta este suspendat automat (sau întrerupt). Trebuie reluat explicit pentru a fi activat. Reluarea mută lucrarea în starea de așteptare . La rândul său, pentru a transfera date, se conectează mai întâi la serverul de la distanță și apoi începe transferul. După expirarea intervalului de timp al lucrării, transferul este întrerupt temporar, iar lucrarea este mutată înapoi în starea de așteptare . Când lucrarea primește o altă porțiune de timp, trebuie să se conecteze din nou înainte de a se putea transfera. Când lucrarea este finalizată, BITS transferă calitatea de proprietar asupra lucrării către aplicația care a creat-o.
BITS include un mecanism încorporat pentru tratarea erorilor și încercările de recuperare. Erorile pot fi fatale sau tranzitorii ; fie mută un loc de muncă în statul respectiv. O eroare tranzitorie este o eroare temporară care se rezolvă după un timp. Pentru o eroare tranzitorie, BITS așteaptă un timp și apoi încearcă din nou. Pentru erori fatale , BITS transferă controlul lucrării către aplicația care creează, cu cât mai multe informații despre eroare pe care le poate oferi.
Instrumente de interfață din linia de comandă
Comanda BITSAdmin
Microsoft oferă o BITS Administrare Utility ( BITSAdmin
) linie de comandă de utilitate pentru a gestiona locuri de muncă BITS. Utilitarul face parte din Windows Vista și versiunile ulterioare. De asemenea, este disponibil ca parte a instrumentelor de asistență Windows XP Service Pack 2 sau a instrumentelor de asistență Windows Server 2003 Service Pack 1 .
Exemplu de utilizare:
C:\> bitsadmin /transfer myDownloadJob /download /priority normal https://example.com/file.zip C:\file.zip
PowerShell BitsTransfer
În Windows 7 , BITSAdmin
utilitarul este depreciat în favoarea cmdleturilor Windows PowerShell . BitsTransfer
Modulul PowerShell oferă opt cmdleturile cu care să gestioneze locuri de muncă BITS.
Următorul exemplu este echivalentul exemplului BITSAdmin de mai sus:
Start-BitsTransfer -Source "https://example.com/file.zip" -Destination "C:\file.zip" -DisplayName "myDownloadJob"
Lista aplicațiilor non-Microsoft care utilizează BITS
- AppSense - Folosește BITS pentru a instala pachete pe clienți.
- BITS Download Manager - Un manager de descărcare pentru Windows care creează locuri de muncă BITS.
- BITSync - Un utilitar open source care utilizează BITS pentru a efectua sincronizarea fișierelor pe partajările de rețea Server Message Block .
- Civilizația V - Folosește BITS pentru a descărcapachetele de moduri .
- Instalator de sistem de operare fără sfârșit pentru Windows - Folosește BITS pentru a descărca imagini de sistem de operare.
- Eve Online - Folosește BITS pentru a descărca toate patch-urile post-Apocrypha (10 martie 2009). De asemenea, este folosit acum în instrumentul de reparare a clientului.
- Unele servicii Google , inclusiv Chrome , Gears , Pack , Flutter Updater și YouTube Uploader au folosit BITS.
- Firefox (de la versiunea 68) pentru actualizări.
- KBOX Systems Management Appliance - Un dispozitiv de gestionare a sistemelor care poate utiliza BITS pentru a livra fișiere către sistemele Windows.
- RSS Bandit - Utilizează BITS pentru a descărca atașamente în fluxuri web.
- Platforma media oxigen - Utilizează BITS pentru a distribui conținut media și actualizări de software.
- SharpBITS - Un manager de descărcare open source pentru Windows care gestionează joburile BITS.
- WinBITS - Un program de descărcare open source pentru Windows care descarcă fișiere prin crearea de locuri de muncă BITS.
- Novell ZENworks Desktop Management - Un software de gestionare a sistemelor care poate utiliza BITS pentru a livra fișiere de aplicații la stațiile de lucru.
- Specops Deploy / App - Un software de gestionare a sistemelor care (atunci când este disponibil) utilizează BITS pentru livrarea pachetelor către clienții din fundal.