İnternette gezinirken ne yüklendi?


25

Bir modem kullanıyorum ve n kbps indirme hızını ve m kbps yükleme hızını gösteriyor . Günlüklerini kontrol ettiğimde, indirilen ve yüklenen veri miktarını gösterir. Neden bir saatte 3 MB veri yüklediğimi gösterdiğimi merak ediyorum, bu hiçbir zaman herhangi bir şey yüklemediğimde veya torrent kullanmadığımda aşırı görünüyor.

Peki internette gezinirken ne yüklüyorum?

Yanıtlar:


46

TCP bağlantılarının ve onaylamaların nasıl çalıştığı hakkında daha fazla bilgi için, bkz. Diogo

Bir siteyi ziyaret ettiğinizde, bunun gibi bir şey olur:

  1. DNS sunucunuzla (henüz yapılmadıysa), bilgisayarınızın IP adresini zaten bildiği (veya bu bilgiyi ISS'nizden isteyen bazı otomatik mekanizmalar yoluyla) bağlayıp bağlantıyı onaylamak için paketler gönderen bir bağlantı kurulur. yapıldı. Bağlantı yapıldıktan sonra siteniz ziyaret ettiğiniz sitenin IP adresini sorarak siteyi bulmak için hangi bilgisayarla iletişim kuracağını bilecektir. Bu, yanıtı almak için etki alanı adını içeren bir paket gönderdiği anlamına gelir. Daha sonra bağlantıyı kapatmak için bir paket gönderir.

  2. Ziyaret etmek istediğiniz siteyi barındıran web sunucusuyla bağlantı kurulur, bu da tekrar bağlanmak ve bağlantıyı onaylamak için bir paket gönderir. Bundan sonra ziyaret etmek istediğiniz sayfa için bir istek yapar ve tekrar bir paket gönderir. Ardından yanıt verir ve sayfanın yapısını gösteren web sayfasının HTML kodunu görürsünüz (düzen değil).

  3. Sadece yapıya sahip olduğunuz için gerisini hala getirmeniz gerekiyor. Böylece, scriptler, stiller ve görseller ve benzeri ortamlar elde etmek için ek bir talep (bir SU sorusu 40 istek gibidir) yapılır. Ve bunlardan bazıları ziyaret ettiğiniz web sunucusunda olmayabilir, çünkü sizi 1. adıma geri götüren ek DNS çözümü gerçekleşebilir.

  4. Her şeyden önce, aldığınız her paketin, yüklenen başka bir veri kaynağının eklenmesi, paketlerin yedeklenmesi için genellikle birden fazla paketin bir kerede kabul edildiğinin kabul edildiğine dikkat edin. Böylece, bir şey aldığınızda, onu aldığınız sunucuya gönderirsiniz, böylece gönderdiği şeyin hiçbir yerde kaybolmadığını bilir. Bu şekilde, sunucunun tekrar göndermeyi denemesi gerekmez.

Sonuç olarak, ilk indirdiğiniz sunuculara bazı istekleri bağlamadan ve yüklemeden bir şey indiremezsiniz. Ve küçük bir yükleme için bu yapar ...

Ve sadece tıklattığınız gibi değildir, bundan daha fazlasını yaparsınız, sorunuzu örnek olarak ele alalım: 500 karakter civarında yazdınız, bir karakter 1 bayt olarak sayılır (eğer ASCII karakteri varsa, hepsi bu durumda) ve olabilir 1 ila 4 bayt (eğer bir Unicode karakterse). Yani, sorunuz gerçekten 0,5 KB veya 0,00005 MB alır! Ancak bu bize gönderilen soru değil, sunucunun sorunuzu ve paket başlıklarını saklamasını isteyen bir POST veya AJAX isteği ile çevrilidir.

Her şeyi eklerseniz birkaç saat içinde birkaç megabayta ulaşmak makul olur.


1
Yoldayken Diogo'ya atıfta bulunurken William'ın cevabını belirlemeye çalıştım, onları da oyla! :)
Tamara Wijsman

2
Ve bunun gibi ayrıntılı bir cevap yazmam gerektiğinde hızlı olmaya çalıştım! Gökyüzü roketinin bu cevaplarını hep özlemiş gibi görünüyorum !!!
William Hilsum,

27

Yüklemeniz birincil olarak bir siteye bir HTTP bağlantısı istemek için bir web sunucusuna bir adres (örneğin, www.google.com) yazarken yaptığınız istekler temelindedir . Bu requestions sonra yükleme sonraki noktası ACK (adlı Kaynaklar bölümü s TCP bağlantılarının HTTP protokolü onun üzerine) el sıkışma işlemi :

Veri ağlarında, bir onaylama (veya onaylama), iletişim protokolünün bir parçası olarak bir onaylama veya yanıtın alındığını belirtmek için iletişim süreçleri veya bilgisayarlar arasında geçen bir sinyaldir. Örneğin, ACK paketleri İletim Kontrol Protokolünde, bağlantı kurarken SYN paketlerinin, bağlantı kullanılırken veri paketlerinin ve bağlantı kesilirken FIN paketlerinin alındığını onaylamak için kullanılır.

Örnek olarak, TCP diyagramına bir göz atın (internette gezinmek için TCP kullanıyorsunuz):

diyagram


15

Çevrimiçi olduğunuzda, oldukça basit bir şekilde, uzak bir hedeften gelen her şey bir indirmedir ve gönderdiğiniz her şey bir yüklemedir.

Bu nedenle, basitçe bir web sayfası istemek bile makinenizden (büyük olasılıkla) bir DNS isteği yapmak, bir web sunucusuna bağlanmak, bir sayfa için bir istek göndermek, ardından o sayfadaki her eleman / resim / css / javascript için bir istek göndermek olacaktır. .

Bir saat kullanım için 3 MB gerçekten o kadar değil!


Bir sayfa talep ettiğimde, o sayfa ile ilgili her şey otomatik olarak gelir ya da her eleman için ayrı bir istek bahsettiğin gider mi?
Deb

1
@Debabratta her kaynak için ayrı bir istek gönderilir . Sayfa için (içerik - metin, işaretleme - düzenler vb. İle), biri sayfa için referans verilen çeşitli görüntüler, javascript dosyaları, css dosyaları için. (Bazen tarayıcı önbelleği kullanır - sayfayı en son ziyaret ettiğinizde indirdiğiniz görüntünün kopyası. Ancak bu, görüntünün değişip değişmediğine ilişkin bir isteği de içerir). Ayrıca flaş, silverlight veya benzeri eklentilerden gelen talepler de artıyor.
Nivas,

2

Sıradan TCP ve HTTP paketlerinden daha fazla, izleyiciler tarafından yakalanan bazı özel bilgiler hakkında da biraz bilgi edinmelisiniz. Ghostery web sitesinde bilgi alın .

Sadece gerekli verileri daha büyük hale getirir !


0

Daha basit bir arıza:

  • Sunucuya bağlantı açmak için TCP paketleri
  • Bir web sayfasının her bir bileşeni için HTTP istek paketleri
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.