TEMEL BİLGİLER

BITS NEDİR?

BITS’in açılımı “Background Intelligent Transfer Service” yani “Arka Plan Akıllı Aktarım Hizmeti”dir. BITS hizmeti Microsoft Windows’un kullandığı bir dosya transfer servisidir.

BITS hizmet bilgisayarlar arasında boş olan bant genişliğini kullanarak dosya transferi yapmaktadır. Dosya transferi esnasında bazı veri trafiklerine önceliklendirme yapılabilmekte, bazı veri trafiklerine limitleme yapılabilmektedir. Ayrıca veri transfer trafiği asenkron olarak yapılabilmektedir.

BITS (Background Intelligent Transfer Service) hizmeti Microsoft Windows’un birçok uygulamasında kullanılmıştır:

  • Windows Update, Microsoft Update, Windows Server Update Services veya Systems Management Server hizmetleri client’larına ulaşıp dosya aktarabilmek amacıyla kullanmaktadır.
  • Microsoft’un virüs programı Microsoft Security Essentials veya Windows Defender imza güncellemelerini almak amacıyla kullanmaktadır.

Sonuç olarak BITS isimli bir trafik türü görüldüğünde Windows ile ilgili bir güncelleme veya dosya trafiği olduğunu anlaşılabilir.

BITS Servisi Veri Transferini Nasıl Yapmaktadır?

BITS istek yapan uygulama adına asenkron olarak veri transferi yapmaktadır.

  1. Uygulama BITS servisine istek yapar. Bu esnada BITS servisi başka bir transferi başlatabilir veya sonlandırabilir. Network bağlantısında bir problem olmadıkça veri transferi arka planda devam edebilmektedir. Yani BITS asenkron olarak çalışmaktadır.
  2. BITS işletim sistemi kapatılırsa veya network bağlantısı koparsa veri trafiği kapatılmaktadır. Durum normale döndüğünde güncelleme veya veri transferi kaldığı yerden devam etmektedir.
  3. BITS servisi SMB (Server Message Block), HTTP (Hypertext Transfer Protocol) ve HTTPS (Secure Hyper Text Transfer Protocol veya Hypertext Transfer Protocol over Secure Socket Layer) protokollerini desteklemektedir. Yani BITS servisi veri trafiğini SMB, HTTP veya HTTPS protokolleri aracılığıyla yapabilmektedir.

BITS Servisi Bant Genişliğini Nasıl Kullanır?

BITS sadece boş olan bant genişliğini kullanmaktadır. Yani diğer veri trafiklerini bastırmamaktadır. Aşağıda örnek bir grafik çizilmiştir. Grafiğe göre download yönünde 10 mbps bant genişliği vardır ve bu bant genişliğinin bir kısmını A, B ve C veri trafiği tüketmektedir. A, B ve C trafikleri farklı protokollerin kullanıldığı video konferans, web browser (tarayıcı) gibi trafiklerdir. Bu durumda boş olan kısmını BITS servisi kullanabilmektedir. Böylece BITS servisinin oluşturmuş olduğu veri trafiği A, B ve C trafiğini bastırmamaktadır.

BITS hizmeti bandwidth nasıl kullanır
“BITS Servisi Bant Genişliğini Nasıl Kullanır?”

BITS servisinin 3.0 versiyonu ve üstü sürümleri, eğer uygunsa, Internet Gateway Device yani router (yönlendirici) gibi ağ geçitlerinden aldığı bilgiye göre uygun bant genişliğini hesaplamaktadır, aksi durumlarda NIC (Network Interface Controller) yani ağ kartından aldığı bilgiyi kullanmaktadır. NIC kartından alınan bilgiye göre bant genişliği hesaplama işleminde bazı durumlarda (örneğin yüksek hızlı bir ağ kartı çok yavaş bir network’e bağlandığı durumlarda) hatalar olabilmektedir.

Arka plan veri transferi uygun bant genişliğine göre BITS servisi tarafından düşürülebilir, artırılabilir veya limitlendirilebilir. Örneğin yukarıdaki grafiğe göre A, B veya C trafiklerinden herhangi biri daha fazla bant genişliğine ihtiyaç duyarsa BITS servisi kendi veri trafiğini düşürür.

BITS Servisinde İşler (Jobs)

BITS servisi veri transferi işlemini yaparken kuyruk yöntemini kullanmaktadır. Bir BITS oturumu (BITS Session) bir uygulamadan bir iş (Job) oluşturarak başlatılmak zorundadır. “Job” terimi transfer edilecek bir veya daha fazla dosyadan oluşan bir kalıbı ifade etmektedir.

  • Yeni oluşturulan bir Job başlangıçta boştur.
  • Daha sonra transfer edilecek dosyalar eklenmelidir.
  • Ardından URI verileri eklenmelidir. URI’nin açılımı “Uniform Resource Identifier”dir. URI, hedefi veya kaynağı tanımlayan karakterlerden oluşan bir dizidir.
  • Download Job herhangi bir sayıda dosyaya sahip olabilir fakat Upload Job sadece bir adet dosyaya sahiptir.
  • Özellikleri tek tek dosyalar için ayarlanabilir.
  • Jobs uygulamanın oluşturduğu güvenlik şartlarını da alır.
  • BITS servisi Job’ların kontrolü için için API (Application Programming Interface) erişimi sağlamaktadır.
  • Bir Job programlı bir şekilde başlatılabilir, iptal edilebilir, geçici olarak durdurulabilir, devam ettirilebilir veya kuyruğa alınabilir.
  • Bir Job için başlatılmadan önce aynı kuyruk içerisindeki diğer işlere göre bir öncelik ayarlaması yapılabilir. Varsayılan olarak tüm Job’lar “Normal” öncelik seviyesindedir. İsteğe bağlı olarak High (Yüksek), Low (Düşük) veya Foreground (Ön Planda) önceliklendirme seviyeleri yapılabilir.
  • BITS servisi veri trafiğini uygun bant genişliğine göre düşürülebilir, artırılabilir veya limitlendirebilir.

BITS Servisinde Planlama (Scheduling)

  • BITS servisi sınırlı bir zaman diliminde sadece o transfer Job’unu yapması için planlanabilir. Bu zaman diliminde diğer transferler geçici olarak durdurulabilir. Önceliği fazla olan Job daha fazla zaman dilimine sahiptir.
  • BITS servisi aynı önceliğe sahip Job’larda RR algoritmasını kullanmaktadır. RR’nin açılımı “Round-Robin”dir. Round-Robin (RR) algoritmasına çizelgeleme algoritması da denmektedir. Veri transferi dairesel sırayla (ardışık sırayla) yapılmaktadır. Böylece aynı önceliğe sahip veri transfer Job’larında yük dengeleme (load balancing) sağlanmış olur. Round-Robin (RR) algoritması ile bilgiye Round-Robin Algoritması Nedir? makalemizden ulaşabilirsiniz.

Yeni bir Job oluşturulduğunda otomatik olarak durdurulmuş vaziyettedir. Yeni oluşturulan bu Job’un çalışması için aktif edilmesi gerekmektedir. Aktif edilen Job sıraya alınır ve durumu “queued state” olur. İlk önce sunucuya bağlanılıp transfer başlatılır ve veri akışı RR algoritmasına göre devam eder.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir