WhatsApp Nasıl Çalışıyor?

Client servera mesaj gönderiyo serverda diğer client a mesajı iletiyor. Merak ettiğim konu şu. WhatsApp da böyle mi yapıyor. Yani wp den 2 insan nası haberleşebiliyor. İp adresi üzerinden mi yoksa database deki kullanıcı adı üzerinden mi haberleşiyor.

Konunun uzmanı değilim ama şunu eklamem gerek.
Whatsapp mesajları drive yedekliyor.
Ip olduğunu sanmıyorum. Telefon numarasını kullanıcı adı niyetine kullanabilir mi acaba?

Bende bilmiyorum ama tel no sadece kayıt olurken kullanılıyor diye tahmin ediyorum. Birine mesaj atarken ismini aratıp mesaj gönderiyoruz ya acaba kullanıcı ismi ile mi gönderiyor? Ayrıca WhatsApp ın mesajlaşma mantığı socket le mi alakalı yoksa başka birşey diye mi geçiyor?

Ayrıca drive a yedekliyo derken doğrumu bu? Ben sqlite kullanarak apk dosyanın içine kullanıcı mesajları kaydediyor diye biliyorum aksi takdirde internet kapalı iken drive çalışmayacağı için wp de mesaj resim vs vs göremeyiz. Buda benim teorim xd

Bunun başka bir yöntemi yok, internetin işleyişi bu. Bağlantı protokolleri değişebilir, metotlar değişebilir ama Client-Server modeli değişmez:

Bir IP(İnternet Protokolü) adresi atanmadan internete bağlanılamaz. Ve sunucular hariç neredeyse her cihaz internete o an müsait olan rastgele bir IP ile bağlanır.

Eğer veritabanında her kullanıcı için eşsiz bir değer(id) olmasaydı mesajınızın istediğiniz kişiye/kişilere gideceğinin bir garantisi olmazdı.


Kullanıcı talep ederse yedekliyor, depolamıyor.

Genelde bunun için otomatik artırma ile üretilen eşsiz değerler kullanılır.


Android’in /data dizininin altında sadece o uygulamanın erişebileceği bir dizine ya da /sdcard/WhatsApp dizine.

Hem APK dosyaları bir tür sıkıştırılmış dosyadır ve öyle kutu gibi açıp kapatılamaz, ancak yeniden paketlenir.

2 Beğeni

Bu sayfada teknik özellikler kısmında server mimarisi anlatılıyor.

2 Beğeni

Evet.

Database’in bir tablosundaki bir satir, uzerinden haberlesilebilecek bir sey degil.

IP adresi de, uzerinden haberlesilen IP protokolunun calismasinda kullanilan bir bilgi parcasi.

Haberlesme protokoluyle Google’in sundugu hizmetin arasindaki alakayi anlamadim ama zaten soru mesajlarin nasil yedeklendigi degil, hedeflerine nasil iletildikleri.

Kim?
Her kullanicinin bir telefon numarasi ve her telefon numarasinin bir kullanicisi varsa kullanici ID’si olarak kullanabilir her kimse, evet.

Genel olarak, arayuzde yapilan islemler alttaki protokolun calisma seklinden bagimsiz oluyor. Yani arayuzde kullanici ismi kullandin diye protokolde kullanici ismi kullanilmak zorunda degil.

Bu ikisi arasinda niye “yoksa” baglantisi kurduk, anlamadim. Ayrica soketle alakasindan once dogrudan soket kullanip kullanmadigini sormak istemez misin? Kullaniyor.

APK Android’in aplikasyonlarinin geldigi paket dosya formati. Data/yedek icin kullanildigini hic gormedim. Ama X veya Y diye bilmene gerek yok; telefonunu kurcalayip bulabilirsin.

“Client” ve “server” baglantinin iki ucundan daha fazla manaya sahip kelimeler ve bu manada client/server kullanmayan bir suru protokol var. (IP ve TCP bunlardan ikisi.) (Bu arada veri akisi iki uclu olmak zorunda degil.)

2 Beğeni

Nasıl yani? O zaman iletişim nasıl sağlanıyor? file:// protokolü de bunlara dahil mi?

Bununla bir sunucuya birden fazla istemci bağlanabilmesini mi kast ediyorsunuz?

Protokollerin taniminda yazdigi sekilde? Anlamadim, neyi soruyorsun?

Bu bir protokol degil, URL icindeki protokol belirteci.


https://www.ietf.org/rfc/rfc791.txt

Benim anlamadığım, o protokollerin nasıl çalışdığı? Yani bir veri transferinden söz edebilmek için bir kaynak ve bir hedef olması gerekmez mi?

Soyle:

Burada demek istedigim “client” ve “server” herhangi bir veri transferinin kaynagi ve hedefinden daha cok manaya sahip kelimeler. Linkledigim IP dokumentasyonuna bakarsan hic bir yerde “server” ve “client” gecmiyor—haberlesmenin iki ucu varsa iki ucuna da baska isimler verilmis durumda.

“Sunucu” daha yuksek seviyeli protokollerde bir takim seyleri tutup birden fazla “istemciye” veren bir program. Bu alisverisler dahilinde iki yonlu veri akisi oluyor ve veri akisi seviyesindeki protokoller kimin sunucu, kimin istemci oldugu konusunda bilgiye sahip degiller. Olmamalilar.

Bir kaynaktan birden fazla hedefe, bir hedefe birden fazla kaynaktan giden veriye deginmiyorum bile.

2 Beğeni