Czy segmenty, pakiety i ramki mają taki sam rozmiar, jeśli zignorujemy nagłówki?

12

Szukałem wyjaśnień na temat różnic między segmentami, pakietami i ramkami oraz tego, co przeczytałem:

  • Segment to oryginalne dane + nagłówek warstwy transportowej.
  • Pakiet to nagłówek segmentu + warstwy sieci.
  • Ramka jest nagłówkiem warstwy pakietu + łącza danych.

Zasadniczo oznacza to, że jeśli odłożymy nagłówki na bok, Segmenty = Pakiety = Ramki.

Pamiętam, że czytałem, że warstwa łącza danych przenosi dane przesłane do niej przez warstwę sieciową i dzieli je na mniejsze porcje danych, aby warstwa fizyczna mogła je przesłać. Dlatego założyłem, że te ramki są mniejszymi częściami danego pakietu.

Ale wszędzie, gdzie szukam, czytam, że jedyną różnicą między segmentami, pakietami i ramkami są nagłówki dołączone do oryginalnych danych na różnych warstwach i że nazwy są różne, ponieważ są unikalne dla każdej warstwy, chociaż jest to w zasadzie ta sama rzecz.

Czy segmenty, pakiety i ramki są naprawdę takie same, z wyjątkiem nagłówków, które każdy z nich zawiera? Czy wszystkie mają ten sam rozmiar?

amiregelz
źródło
1
„wypełnienie” lub ilość danych może być inna. Rzuć okiem na „algorytm Nagle”, zaimplementowany w wielu stosach sieciowych: en.wikipedia.org/wiki/Nagle's_alameter
Florenz Kley

Odpowiedzi:

16

wprowadź opis zdjęcia tutaj

Każda warstwa ma swój nagłówek, jak widać:

  • Segmenty: warstwa transportowa (TCP / UDP) = nagłówek transportowy + dane (z górnej warstwy)
  • Pakiet: warstwa internetowa (IP) = nagłówek sieci + nagłówek transportu i dane (zarówno transport, jak i dane z wyższych warstw)
  • Ramki: Warstwa sieci (Ethernet) = nagłówek ramki + sieć, nagłówek transportu i dane (z trzech górnych warstw).

Tak więc, aby odpowiedzieć na twoje pytanie, różnica między segmentem, pakietem i ramkami jest w zasadzie tym, co dana warstwa uważa za „dane”. W segmencie dane pochodzą z warstwy aplikacji; w pakiecie dane pochodzą z warstwy transportowej (nagłówek transportu + dane); a na ramce dane pochodzą z warstwy internetowej (nagłówki transportowe i internetowe + dane z warstwy aplikacji).

Diogo
źródło
1
A co ze sposobem, w jaki dane są ostatecznie przekazywane przez warstwę fizyczną? Jeśli nie wszystkie dane są przesyłane jednocześnie, to jak działa podział? Czy dzieje się to jednocześnie w warstwach sieci i łącza danych (i obsługiwanych przez warstwę transportu)? Czy możesz udzielić odpowiedzi na temat tego procesu w swojej odpowiedzi?
amiregelz
Diogo ma rację, ale są też pewne względy, które mogą wprowadzać w błąd. Pomimo faktu, że możesz wysyłać 100 bajtów danych, pakiet nadal zajmuje pełną MTU (zwykle ~ 1500 bajtów) w sieci. Minusem jest to, że jeśli wysyłasz wiązkę małych pakietów, nigdy nie uzyskasz maksymalnej możliwej przepustowości łącza sieciowego. Niektóre hermetyzowane tunele mogą zmniejszyć / zminimalizować to marnotrawstwo ... ale to inny temat.
TheCompWiz
@Diogo Czy możesz edytować swoją odpowiedź zgodnie z moim komentarzem? Dziękuję Ci.
amiregelz,
0

Czy segmenty, pakiety i ramki są naprawdę takie same, z wyjątkiem nagłówków, które każdy z nich zawiera?

http://www.inetdaemon.com/tutorials/basic_concepts/communication/frames_packets_n_pdus.shtml

Czy wszystkie mają ten sam rozmiar?

Jeśli myślisz o warstwach jako o pojedynczych elementach, to nie; wszystkie mają różne maksymalne i minimalne rozmiary. Myślenie o nich w stosunku do siebie; dolna warstwa określa, jaki maksymalny rozmiar danych może być przekazany z warstwy powyżej.

matak
źródło