İleri Düzey Bilgisayar Ağları Ders 5 İnternet te Ses ve Görüntü Transferi İçerik Dağıtım Ağları ve Eşler Arası Ağlar Mehmet Demirci 1
Bugün Multimedia Streaming İçerik Dağıtım Ağları (CDN) Eşler arası ağlar (P2P) 2
Multimedya ve Streaming Multimedya (çoklu ortam) transferi Youtube, Skype, Hangout vb. Zorluklar: Veri boyutu büyük ve değişken. Gecikmeyi sevmiyoruz. Gecikmedeki değişimleri sevmiyoruz. 3
Veriyi Dijitalleştirmek Analog sinyali belli sıklıkta örnekleme Sinyal genliğinin aralığına bağlı olarak belli sayıda bit kullanılır. 4
Video Sıkıştırma Video: resim (imge) dizisi Resim sıkıştırma, spatial redundancy (uzamsal artıklık??) sayesinde sıkıştırılabilir. Gönderilen bit sayısı azalır. (Tek çerçeve için) Temporal (zamansal) redundancy: Birbirini takip eden çerçeveler arasındaki benzerlikler 5
Video Streaming Genel sistem Sunucu dosyayı tutar. İstemci dosyayı ister ve aldıkça oynatır. Zamanlama önemli 6
TCP ve Streaming TCP, ses ve video streaming için optimize edilmiş bir seçenek değildir. TCP kayıp paketleri yeniden yollar ama bu faydalı olmayabilir. TCP kayıp sonrası hızını düşürür. TCP masraflı (20-byte header, ack vb.) TCP yerine UDP 7
UDP ve Streaming UDP kayıp paketleri tekrar yollamaz ve gönderme hızını kayba bağlı olarak değiştirmez. Bu tür kararlar uygulama katmanına kalır. Bazı TCP dostu protokoller UDP üzerinde kullanılabilir. 8
Youtube Bütün videolar Flash e çevrilir. HTTP/TCP üzerinden çalışır. 9
Skype Analog ses sinyali dijitale çevrilir. Oluşan dijital veri İnternet üzerinden yollanır. P2P (Peer-to-peer): Eşler arası iletişim teknolojisi 10
Streamingin Zorlukları Gecikme Sıkışıklık (tıkanıklık) Yönlendirmedeki değişmeler Cevap: Quality of Service - Hizmet kalitesi garantileri 11
QoS: İşaretleme (Marking) Farklı öncelikli trafik türleri arasında ayrım yapmak 12
QoS Alternatifleri Her uygulamaya belli bant genişliği ayırmak Trafiği kabul etmeden önce admission control Ne istiyorsun? vs. Ben ne verebilirim? İhtiyacını karşılayamayacaksam seni bloklarım. 13
Bugün Multimedia Streaming İçerik Dağıtım Ağları (CDN) Eşler arası ağlar (P2P) 14
İçerik Dağıtım Ağları (CDN) Content Distribution Networks Overlay network of Web caches Amaç: Kullanıcıya içeriği en uygun noktadan ulaştırmak Coğrafi olarak dağıtık 15
CDN Content Distribution Networks İçerik sağlayıcılar (Google) Servis sağlayıcılar (Level 3, AT&T) Bağımsız (Akamai) 16
CDN Çoğaltma nasıl yapılacak? Kopyalar nerelere koyulacak? Kullanıcılar nasıl bulacak? Hangi kopyadan ve nasıl çekecekler? Sunucu seçimi (Server selection) İçerik yönlendirme (Content routing) 17
CDN: Sunucu Seçimi Hangi sunucu seçilmeli? En az yüklü olan (Lowest load) En az gecikmeyle ulaşılan (Lowest latency) Herhangi bir yaşayan sunucu 18
CDN: İçerik Yönlendirme Kullanıcı sunucuya nasıl yönlendirilmeli? İnternet yönlendirmesi üzerinden (Anycast) Uygulama tabanlı (HTTP redirect) Adlandırma sistemi üzerinden (DNS) 19
Eşler Arası Ağlar (P2P) Peer-to-peer Networks İstemci-sunucu modelinin dışında, uç sistemlerin hem istemci hem sunucu olarak rol aldığı ağlar Dosya paylaşımı ve dağıtımında yaygın olarak kullanılır. 20
P2P: BitTorrent Dosyayı alır, parçalara böler. Farklı eşlerde farklı parçalar olacak şekilde dağıtır. Her eş kendinde olmayan parçaları diğer eşlerden alarak dosyayı tamamlar. 21
P2P: BitTorrent 1. Eş, dosyanın parçaları ve tracker hakkında bilgi içeren torrent dosyası oluşturur. 2. Bazı eşler (seeder) dosyanın tamamını tutmalıdır. 3. Diğer eşler ellerindeki parçaları takas ederler. 22
P2P: BitTorrent Bedavacılığa Karşı Boğma (Choking) Bir eşe gönderme yapmayı geçici olarak durdurmak O eşten indirme yapamıyorsa ona gönderme de yapmaz. Tit-for-tat 23
P2P: BitTorrent Rarest piece first Önce en az bulunan parçayı indir. Random piece first Seederdan rastgele bir parça indir. 24
Dağıtık Hash Tabloları (DHT) Distributed Hash Tables Anahtar Değer eşleştirmesi DHT de yer alan düğümler bu eşleştirmeyi hızlı biçimde yapabilir. Kullanım: DNS, P2P, CDN, Anycast... 25
DHT: Chord Amaç: Büyük bir dağıtık sistemde veriyi hızlı bulunabilir şekilde tutmak 26
DHT: Chord Consistent Hashing 27
DHT: Chord Consistent Hashing 28