Ders notu 5

İ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