Mezun olamadiniz gitti. Hadi hayırlı olsun darısı basima :) up diyelim echo "imzanız zel karakter içermemelidir";

Sayın müridler Başlıkan anlaşıldığı üzere multi homing olan güvenilir veri transferi gerçekleştirmemiz gerekiyor udp kullanarak. Mininet ortamında çalışıyoruz. Topoloji şu şekilde s0 s1 h1 --| |--h2 s2 s3 Veriyi iki hat üzerinden de gnderip hızlı bir şekilde karşıya geçmesini sağlamak gerekiyor. Yalnız kafalarına esen bir zamanda s0-s1 arasındaki bağlantıyı kesecekler. Bunu nasıl tespit edebilirim? Çok düşündüm ama bir yol bulamadım. Kesildiğinde sadece alttan devam etmek gerekiyor. Şuana kadar yaklaşımım şu oldu. iki tarafta da ikişer tane soket açtım. h1 den gnderme yapacağım. Hız nemli olduğu için Go-Back-N uygulamayı düşünüyorum. İlk başta, readable, writeable, error = select şeklinde o an kim yazabiliyor kim okuyabiliyor alayım ona gre davranayım dedim fakat karşı taraf hiçbir şey gndermese bile timeout olmuyordu. O yüzden readable, writeable, error = select readable2, writeable2, error2 = select buna çevirdim. Amacım ilkinde yazabilen soketleri almak, ikincide de okunabilen yoksa timeout'a düşmesini sağlamaktı. Fakat bağlantıyı mininette link s0 s1 down yaparak kırsam da writeable listesinde hep iki soket de duruyor. Bunun çalışması gerekirdi ben mi yanlış birşey yaptım? Zaten beklenen buydu derseniz de neriniz var mı?

Mezun olamadiniz gitti. Hadi hayırlı olsun darısı basima :) up diyelim Oluyoruz inşallah :D Yukarıda anlattığım gibi yaptım. 50 MB dosyayı karşıya attım. md5 ile kontrol ettim. sıkıntı yok. Darısı senin başına :D

Udp de zaren datagram oldugundan checksum yoktur ondanda timeout a dusmez normal olarak tcp olsaydi duserdi senin metodlada olur ama arada packet kacirmaman lazim bence 2 sinede es zamanli bas datayi kopan kopsun kopmayan almaya devam edecektir udp te ::: REALHACKERS. NET ADMIN :::

Son olarak aşağıdaki ynteme karar verdim. Tecrübeli arkadaşlar yorum yaparsa sevinirim. Her iki tarafta da ikişer soket olsun biri üst yol biri alt yol için. Gnderen tarafta her soket için ayrı zaman değişkenleri olsun ve o sokete gelen en son ACK'ın zamanını tutsun. İki taraf için de ayrı Go-Back-N implement edeyim. Dosyanın yarısını biri diğer yarısını diğeri gndersin. Kendi içinde reliable data transfer yapsınlar. Her turda select çağırılacak. Eğer timeout'a düşerse ikisine de ACK gelmemiştir. İkisinden de windowu gnder. Eğer readable bir tane ise zamanı lç ve ACK gelmeyenin son ACK zamanı ile karşılaştır. Eğer timeout değerinden büyükse windowu tekrar gnder. Gelen normal devam etsin. Değilse normal devam et. Eğer ikisine de ACK gelmişse time değerlerini yenile normal devam et. Sadece bir tane ACK geldiğinde bu aşağıdakine gelmişse üsttekinin zamanını kontrol et 10 timeout'tan büyük bir fark varsa kopmuştur artık oradan gnderme. Aşağıyı bitir, sonra yukarıda kalanları da aşağıdan gnder. Bu algoritma için düşünceleriniz ne?