Patrząc na wpis Ethernet na Wikipedii, nie mogę zrozumieć, w jaki sposób wskazano, jak długo trwa ramka Ethernet. Pole nagłówka EtherType / Length najwyraźniej może wskazywać albo typ ramki, albo jawną długość, i domyślam się, że w przypadku typu ramki musi ona wykonać inną logikę, aby dowiedzieć się, jak długi jest pakiet. Na przykład, jeśli pole EtherType ma wartość 0x0800, oznacza to ładunek IPv4, a zatem odbierająca karta sieciowa musiałaby zbadać pierwsze 32 bity ładunku, aby znaleźć długość pakietu IP, a zatem obliczyć całkowitą długość ramkę Ethernet i wiedz, kiedy szukać sumy kontrolnej końca ramki i odstępu między ramkami.
Czy to brzmi poprawnie? Spojrzałem również na specyfikację IEEE 802.3 dla Ethernetu (w każdym razie część 1), która wydaje się to potwierdzać, ale jest dość nieprzejrzysta.
źródło
Odpowiedzi:
Podwarstwa Fizycznego Kodowania jest odpowiedzialna za rozdzielanie ramek i wysyłanie ich do warstwy MAC.
Na przykład w Gigabit Ethernet schemat kodowania 8B / 10B wykorzystuje 10-bitową grupę kodową do kodowania 8-bitowego bajtu. Dodatkowe dwa bity informują, czy bajt jest informacją kontrolną, czy danymi. Informacją sterującą może być Konfiguracja, Start_of_packet, End_of_packet, IDLE, Carrier_extend, Error_propagation.
W ten sposób karta sieciowa wie, gdzie zaczyna się i kończy ramka. Oznacza to również, że długość ramki nie jest znana przed jej pełnym dekodowaniem, analogicznie do łańcucha zakończonego NULL w C.
źródło
Artykuł, na który naprawdę chcesz odpowiedzieć na twoje pytanie, to http://en.wikipedia.org/wiki/Ethernet_II_framing ; który mówi:
źródło
Logicznie istnieją tylko trzy opcje:
Jedna z nich działa w sieci Ethernet, ponieważ obecnie nie ma innych dostępnych opcji dla nowoczesnej sieci;) Pierwsza i trzecia są złe dla sieci Ethernet, więc masz rację!
źródło
Zajęło mi to trochę czasu, aby to rozwiązać raz i jeszcze raz. Niewiele dostępnych informacji na ten temat, co jest zaskakujące, ponieważ jest to tak oczywiste pytanie. W końcu zdecydowałem się na rozwiązanie polegające na wykorzystaniu pól długości w nagłówkach pakietów. Zobacz poniższy link
http://www3.rad.com/networks/infrastructure/lans/etherform.htm#_ieee
źródło