Güvenli veri transferinin esasları Uygulama, iletim, ve link katmanlarında önemli En önemli 10 konu listesinde 1. sıraya yerleşir. Güvenilir olmayan kanalın karakteristikleri güvenilir veri transferinin (rdt) karmaşıklığını belirleyecektir 3:TAŞIMA KATMANI
Kayıplı kanallarda hata düzeltme İletim kanalı paketteki bitleri doğru iletemeyebilir Bit/paket iletiminde hata tespiti: bit hatası için kontrol toplamı/paket için sıra numarası soru: hatalar nasıl düzeltilebilir: acknowledgements (ACKs): alıcı göndericiye paketlerin tamamıyla doğru alındığını söyler negative acknowledgements (NAKs): alıcı göndericiye paketlerin alınmadığını/hatalı olarak alındığını söyler Gönderici NAK aldığında paketi yeniden gönderir 3:TAŞIMA KATMANI
NAK-olmayan bir protokol Sadece ACK kullanılır NAK yerine, alıcı doğru olarak aldığı en son paket için ACK gönderir Alıcı ACK gönderdiği paketin sıra numarasını mutlaka belirtmelidir Aynı paket için tekrarlanan (duplicate) ACK, NAK ile aynı manaya gelir ve gönderici en son ACK gönderilen paketten bir sonrakini yeniden gönderir 3:TAŞIMA KATMANI
rdt3.0: dur ve bekle (değişen bit protokolü:0 ve 1) a) Kayıpsız iletim b) Kayıplı iletim 3:TAŞIMA KATMANI
a) Erken timeout (zaman aşımı) rdt3.0 devam rcvACK1 Birşey yapma c) ACK kayboldu a) Erken timeout (zaman aşımı) 3:TAŞIMA KATMANI
dur ve bekle protokolü performansı performansı çok kötü örnek: 1 Gbps link, 15 ms uçtan uca yayınım gecikmesi, 1KB packet: L (packet uzunluğu-bit) 8kb/pkt T = = = 8 microsec transmit R (iletim hızı, bps) 10^9 b/sn U sender: utilizasyon (kullanım oranı) – göndericinin gönderme işiyle meşgul olduğu zaman yüzdesi 100*L / R .008*100 %U = = = %0.027 gönderici RTT + L / R 30.008 Her 30 ms’de 1KB pkt -> 33kB/sn thruput (1 Gbps link te) protokol fiziksel kaynakların kullanımını sınırlar! 3:TAŞIMA KATMANI
rdt3.0: dur ve bekle 100*L / R %U = = = RTT + L / R .008*100 %0.027 gönderici alıcı Paketin ilk biti gönderildi , t = 0 Paketin son biti gönderildi, t = L / R Paketin ilk biti geldi RTT Paketin son biti geldi, ACK gönderildi ACK geldi, bir sonraki paketi gönder, t = RTT + L / R 100*L / R .008*100 %U = = = %0.027 gönderici RTT + L / R 30.008 3:TAŞIMA KATMANI
Boru hattı protokolleri Boru hattı: gönderici henüz ACK alınmamış birçok paketin arka arkaya gönderilmesine izin verir Sıra numarası aralığı artırılmalı Alıcıda ve vericide buffer (depolama) yapılmalı a) Dur bekle protokolü b) Bir boru hattı protokolü Boru hattı protokolleri iki genel formdadır: go-Back-N(GBN-Geri git N) , selective repeat (SR-seçici tekrarlama) 3:TAŞIMA KATMANI
Boru hattı: artan utilizasyon gönderici alıcı Paketin ilk biti gönderildi , t = 0 Paketin son biti gönderildi, t = L / R Paketin ilk biti geldi RTT 1. Paketin son biti geldi, ACK gönderildi 2. Paketin son biti geldi, ACK gönderildi 3. Paketin son biti geldi, ACK gönderildi ACK geldi, bir sonraki paketi gönder, t = RTT + L / R Utilizasyon faktörü 3 katına çıktı! 100*3 * L / R . 24 %U = = = %0.08 gönderici RTT + L / R 30.008 3:TAŞIMA KATMANI
Go-Back-N (GBN-N Geri Git) Gönderici: Paket başlığında k-bit seq numarası N’ e kadar “pencere” N: ACK’lenmeyen ardışıl paket sayısı ACK’ lendi Gönderilecek Gönderildi fakat henüz ACK’ lenmedi Henüz gönderilemez ACK(n): n sıra numarasına kadar olan (n dahil) bütün paketleri ACK’ler- “toplu ACK” Tekrarlı (duplicate) ACK alınabilir Her gönderilen paket için zaman sayacı var Zamanaşımı(timeout)(n): penceredeki n. Paketi ve daha yüksek sıra numarasına sahip paketleri tekrar gönder 3:TAŞIMA KATMANI
GBN pencere büyüklüğü =4 3:TAŞIMA KATMANI
GBN: Java uygulaması 3:TAŞIMA KATMANI