Dlaczego w sieci Ethernet określono minimalny rozmiar ramki?

12

Myślę, że minimum to 64 bajty. Dlaczego to minimum jest konieczne?

użytkownik46749
źródło

Odpowiedzi:

16

Po krótkim czytaniu wydaje się, że jest to związane z częścią CSMA / CD dotyczącą wykrywania kolizji. Gdyby stare ramki były zbyt małe, niektóre kolizje byłyby niewykrywalne. Kontynuując dziś temat analogii samochodowych, z tego samego powodu nie zezwalamy na rowery na szybkich autostradach - po prostu nie są dla nich bezpieczne.

mfinni
źródło
3
+1, nie wiedziałem tego o rowerach ...
Kyle Brandt
6
+1 Wykrywanie kolizji jest tego przyczyną. 64 bajty to 0,04 ms przy prędkości Ethernet 10 Mb. Wszelkie mniejsze i kolizje pozostałyby niewykryte (w 1982 r.).
sysadmin1138
Jeśli cię rozumiem, powodem minimum 64 bajtów jest zapewnienie wystarczającej ilości czasu, aby inne stacje mogły to zauważyć?
CodyBugstein
1
Czy możesz wyjaśnić, dlaczego kolizje byłyby niewykrywalne?
problemofficer
1
Jestem pewien, że zderzenie roweru na szybkiej autostradzie byłoby wykrywalne. Poza tym rowery są dozwolone na drogach międzystanowych w większości zachodnich stanów USA, więc nie jestem pewien, jak odpowiednia jest ta analogia. :)
Michael Hampton
4

Oprócz (absolutnie poprawnej) odpowiedzi mfinni, ustawienie minimalnego rozmiaru ramki pozwala spędzić wiele cykli odbioru weryfikujących sumy kontrolne ramek. W Ye Olde Days można łatwo wyobrazić sobie układ, który przetwarza jeden bit na cykl, ale obliczenie sumy kontrolnej na specjalnej ścieżce biegnącej równolegle do ścieżki odbiorczej zajmuje wiele cykli. Otrzymywanie wielu krótkich wiadomości może spowodować zniekształcenie logiki sumy kontrolnej przez wywołanie w niej wielu jednoczesnych operacji. Odrzucenie czegokolwiek poniżej określonego progu rozmiaru pozwala uniknąć tego problemu w prosty sposób.

BMDan
źródło
Uważam, że ta odpowiedź jest błędna; ma to związek z opóźnieniem propagacji w medium i wykrywaniem kolizji.
Andrew Wagner
@AndrewWagner, jak już powiedziałem w mojej odpowiedzi, powyższa odpowiedź mfinni, dotycząca wykrywania kolizji, jest poprawna. Chodzi mi o to, że to „dziwactwo” specyfikacji pozwala również projektantom sprzętu na kilka własnych skrótów.
BMDan
2

Ethernet jest zaprojektowany do pracy na wspólnym medium (ether!). Nadawcy są w stanie wykryć, kiedy sygnał, którym sterują eterem, jest inny niż na eterze.

Niestety wszystkie media mają opóźnienie propagacji (niestety nawet światło porusza się ze skończoną prędkością).

Załóżmy, że wysyłasz bardzo krótką ramkę. Aby wykryć, czy odbiornik transmituje w tym samym czasie, w którym odbierał ramkę, musisz poczekać na sygnał, który wysyłają, aby do ciebie dotrzeć, dlatego musisz poczekać / nasłuchiwać dwukrotnie opóźnienia propagacji medium, zanim dowiesz się, czy istnieje kolizja na końcu odbierającym.

Teraz zamiast po prostu słuchać (wysyłając ciszę) w tym czasie, możesz równie dobrze posłać w tym czasie przydatne informacje.

W związku z tym standard określa minimalny rozmiar ramki jako ilość danych, które można wysłać DWUKROTNIE, co stanowi najgorsze opóźnienie propagacji na współdzielonym medium.

Jeśli więc jesteś niezadowolony, ponieważ duże ramki wydają się „niezoptymalizowane” dla twojej małej wiadomości, pomyśl o tym dodatkowym miejscu w pakiecie jako możliwości znalezienia czegoś innego do wysłania, kiedy i tak będziesz musiał wysłać zera.

Oczywiście istnieje wiele innych sposobów radzenia sobie z kolizjami i opóźnieniami propagacji w lokalnym standardzie sieci, ale wtedy nie byłby to ethernet i myślę, że wszyscy możemy się zgodzić, że ethernet jest całkiem słodki.

Andrew Wagner
źródło
Pytanie: Więc rozumiem, dlaczego potrzebujesz minimum, 2 x PDale skąd pochodzi 64 bajty? Czy nie powinno to zależeć od długości / rodzaju kabla? 64 bajty wydają się arbitralne
CodyBugstein
Wraca do starego kompromisu złożoności wydajności VS. Możesz zbudować jakiś system do automatycznego pomiaru sieci i wybrać odpowiedni minimalny rozmiar pakietu, ale zwiększyłoby to nietrywialną złożoność przy stosunkowo niewielkim zysku.
Peter Green,
0

Aby CSMA / CD działał poprawnie, potrzebujesz spójnego wykrywania kolizji.

Jeśli odbiorca zobaczy kolizję, a nadawca nie, pakiet zostanie utracony. Podobnie, jeśli nadawca widzi kolizję, ale odbiorca nie dostanie duplikatu pakietu po ponownym przesłaniu przez nadawcę. Żadne nie jest pożądane.

Ponieważ dane przemieszczają się ze skończoną prędkością, wymagany był minimalny rozmiar pakietu, aby zapewnić, że jeśli dojdzie do kolizji, zdarzy się wszędzie. Im większy minimalny rozmiar pakietu, tym większy i / lub szybszy możesz zrobić sieć, zanim CSMA / CD się zepsuje.

Co do tego, dlaczego 64-bajtowe nie jestem pewien, ale spodziewam się, że była to tylko okrągła liczba, która „wydawała się odpowiednia w danym momencie”, biorąc pod uwagę prędkości, przy których działały, oczekiwany rozmiar sieci Ethernet i oczekiwany rozmiar pakietów wyższego poziomu.

Peter Green
źródło
0

Minimalna długość pakietu 64 bajtów nie jest liczbą dowolną. W warstwie fizycznej 10Base5 (koncentrycznej „Fat Ethernet”, jednej z pierwotnie określonych warstw fizycznych, która ma najdłuższe dozwolone kable), uzyskuje się minimalną długość pakietu, w mikrosekundach, co stanowi dwukrotność czasu podróży w obie strony maksymalnej długości kabel, który ma 2500 metrów, składa się z pięciu 500-metrowych segmentów z czterema repeaterami. Ma to na celu zapewnienie, że pakiety przesyłane z przeciwnych stron kabla całkowicie zderzają się w każdym punkcie kabla, co zapewnia niezawodne wykrywanie kolizji we wszystkich węzłach.

Drobnostki:

  • To dwukrotność minimalnej kwoty narzut na bezpieczeństwo
  • Wykrywanie kolizji w kablu koncentrycznym może być wykonane przez analogowy komparator napięcia (ponieważ zderzone pakiety powodują dwukrotność normalnego napięcia sygnału)
  • Prędkość prądu w kablu miedzianym wynosi około 200000 kilometrów na sekundę
  • Każdy bit w 10Base5 Ethernet ma 20 metrów długości w kablu
PkP
źródło