Co zostaje przesłane, gdy przeglądam internet?

25

Korzystam z modemu, który pokazuje prędkość pobierania n kbps i prędkość wysyłania m kbps. Kiedy sprawdzam dzienniki, pokazuje ilość danych pobranych i przesłanych. Zastanawiam się, dlaczego to pokazuje, że przesłałem 3 MB danych w ciągu godziny, co wydaje się nadmierne, gdy nigdy niczego nie przesyłam ani nie używam torrentów.

Więc co przesyłam, gdy przeglądam internet?

Deb
źródło

Odpowiedzi:

46

Aby uzyskać więcej informacji na temat działania połączeń TCP i potwierdzeń, zobacz odpowiedź Diogo

Gdy odwiedzasz witrynę, dzieje się coś takiego:

  1. Nawiązane jest połączenie z serwerem DNS (o ile jeszcze nie zostało to zrobione), którego komputer już zna adres IP (lub za pomocą automatycznego mechanizmu, który żąda tych informacji od twojego dostawcy usług internetowych), wysyłając pakiety w celu nawiązania połączenia i potwierdzenia połączenia zostało zrobione. Po nawiązaniu połączenia Twoja witryna pyta o adres IP odwiedzanej witryny, aby wiedział, z jakim komputerem się skontaktować, aby ją uzyskać. Oznacza to, że wysyła pakiet zawierający nazwę domeny, aby uzyskać tę odpowiedź. Później wysyła również pakiet, aby zamknąć połączenie.

  2. Nawiązane jest połączenie z serwerem WWW, który hostuje witrynę, którą chcesz odwiedzić, to ponownie wysyła pakiet do połączenia i potwierdzenia połączenia. Następnie wysyła zapytanie o stronę, którą chcesz odwiedzić, ponownie wysyłając pakiet. Następnie odpowiada i wyświetla się HTML strony internetowej, który wskazuje jej strukturę (a nie układ).

  3. Ponieważ masz tylko strukturę, musisz pobrać resztę. Tak więc, dodatkowe żądania (pytanie SU to 40 żądań), aby uzyskać skrypty, style i media, takie jak obrazy i tym podobne. Ponieważ niektóre z nich mogą nie znajdować się na tym samym serwerze internetowym, co odwiedzasz, może nastąpić dodatkowe rozpoznawanie DNS, prowadząc z powrotem do kroku 1.

  4. Co więcej, pamiętaj, że każdy otrzymany pakiet jest potwierdzany przez dodanie kolejnego źródła danych, które są przesyłane, aby zaoszczędzić na pakietach, zwykle wiele pakietów jest potwierdzanych jednocześnie. Tak więc, gdy otrzymasz coś, wyślesz na serwer, który otrzymałeś, aby wiedział, że to, co wysłał, nie zgubiło się gdzieś. W ten sposób serwer nie musi próbować wysyłać go ponownie.

Najważniejsze jest to, że nie można pobrać czegoś bez uprzedniego połączenia i przesłania niektórych żądań na serwery, z których pobierasz. I to składa się na mały upload ...

I to nie tak, że tylko klikasz, robisz więcej, weźmy jako przykład: wpisałeś około 500 znaków, znak liczy się jako 1 bajt (jeśli w tym przypadku jest znak ASCII) i może być od 1 do 4 bajtów (jeśli jest to znak Unicode). Twoje pytanie zajmuje więc 0,5 KB lub 0,00005 MB! Ale to nie tylko pytanie, które zostaje do nas wysłane, ale także otoczone żądaniem POST lub AJAX, które prosi serwer o zapisanie twojego pytania i samych nagłówków pakietów.

Jeśli zsumujesz wszystko, rozsądnie jest osiągnąć kilka megabajtów w ciągu kilku godzin.

Tamara Wijsman
źródło
1
Próbuj nakreślić odpowiedź Williama, odnosząc się do Diogo w podróży, idź do nich głosować! :)
Tamara Wijsman,
2
I starałem się być szybki, kiedy powinienem napisać szczegółową odpowiedź w ten sposób! Zawsze wydaje mi się, że tęsknię za tymi odpowiedziami, że rakieta nieba !!!
William Hilsum,
27

Twoje przesyłanie opiera się głównie na wymaganiach, które wpisujesz po wpisaniu adresu (na przykład www.google.com) do serwera WWW, aby poprosić o połączenie HTTP z tą witryną. Po tych żądaniach kolejnym punktem przesyłania są potwierdzenia (potwierdzenia połączeń TCP na protokole HTTP ) w procesie uzgadniania :

W sieciach danych potwierdzenie (lub potwierdzenie) jest sygnałem przekazywanym między procesami komunikacyjnymi lub komputerami w celu oznaczenia potwierdzenia lub otrzymania odpowiedzi, jako części protokołu komunikacyjnego. Na przykład, pakiety ACK są używane w Protokole Kontroli Transmisji w celu potwierdzenia odbioru pakietów SYN podczas nawiązywania połączenia, pakietów danych podczas korzystania z połączenia oraz pakietów FIN podczas kończenia połączenia.

Aby to zilustrować, spójrz na diagram TCP (używasz TCP do surfowania w Internecie):

diagram

Diogo
źródło
15

Gdy jesteś online, po prostu wszystko, co pochodzi ze zdalnego celu, to pobieranie, a wszystko, co wysyłasz, to przesyłanie.

Tak więc, nawet zwykłe żądanie strony internetowej będzie polegało na tym, że Twój komputer (najprawdopodobniej) wysyła żądanie DNS, łączy się z serwerem internetowym, wysyła żądanie strony, a następnie wysyła żądanie dla każdego elementu / obrazu / css / javascript na tej stronie .

3 MB na godziny użytkowania to naprawdę niewiele!

William Hilsum
źródło
kiedy żądam strony, wszystko związane z tą stroną przychodzi automatycznie lub dla każdego elementu pojawia się osobne żądanie, o którym wspomniałeś?
Deb
1
@Debabratta jest wysyłane osobne żądanie dla każdego zasobu . Jeden dla strony (z zawartością - tekst, znaczniki - układy itp.), Jeden dla różnych obrazów, plików javascript, plików css, do których odwołuje się strona. (Czasami przeglądarka korzysta z pamięci podręcznej - kopii obrazu pobranego podczas ostatniej wizyty na stronie. Ale wymaga to również sprawdzenia, czy obraz się zmienił). Żądania z Flash, Silverlight lub innych takich wtyczek również się sumują.
Nivas,
2

Więcej niż zwykłe pakiety TCP i HTTP, powinieneś także dowiedzieć się trochę o niektórych specjalnych informacjach, które są przechwytywane przez moduły śledzące. Uzyskaj informacje na dedykowanej stronie Ghostery .

Zwiększają tylko niezbędne dane !

smonff
źródło
0

Prostszy podział:

  • Pakiety TCP, aby otworzyć połączenie z serwerem
  • Pakiety żądań HTTP dla każdego elementu strony internetowej
Sedat Kapanoglu
źródło