Patrząc na standardy poziomu łącza danych, takie jak PPP general frame format lub Ethernet, nie jest jasne, co się stanie, jeśli suma kontrolna jest nieprawidłowa. W jaki sposób protokół wie, gdzie rozpoczyna się następna klatka?Jak odzyskać PPP lub Ethernet z powodu błędów?
Czy skanuje on tylko w poszukiwaniu następnego wystąpienia "flagi" (w przypadku PPP)? Jeśli tak, co się stanie, jeśli pakietowy ładunek będzie zawierał samą "flagę"? Chodzi mi o to, że bez względu na to, czy używane są frameworki czy pola "długość", nie jest jasne, jak odzyskać dane z niepoprawnych pakietów, w których pole "długość" może być uszkodzone lub bajty "ramkowania" mogą stać się częścią pakiet ładunku.
UPDATE: znalazłem to, czego szukałem (co nie jest ściśle co prosiłem o), patrząc w górę „GFP CRC oparte kadrowanie”. Według Communication networks
Odbiornik GFP synchronizuje się z granicą ramki GFP w ramach procesu trzech stanów. Odbiornik jest początkowo w stanie polowania , gdzie analizuje cztery bajty na raz, aby zobaczyć, czy CRC obliczone na pierwszych dwóch bajtach jest równe zawartości kolejnych dwóch bajtów. Jeśli nie zostanie znalezione dopasowanie, GFP przesunie się do przodu o jeden bajt, ponieważ GFP przyjmuje oktetową transmisję synchroniczną podaną przez warstwę fizyczną. Gdy odbiorca znajdzie dopasowanie, przechodzi do stanu pre-synchronizacji . Podczas gdy w tym stanie pośrednim odbiornik używa pola niepewnego PLI (wskaźnik długości ładunku) do określenia położenia następnej granicy ramki. Jeżeli uzyskano docelowy numer N udanego wykrywania ramki, wówczas odbiornik przechodzi do stanu synchronizacji . Stan synchronizacji to normalny stan, w którym odbiornik analizuje każdy PLI, sprawdza poprawność za pomocą cHEC (sprawdzanie błędów nagłówka rdzenia), wyodrębnia ładunek i przechodzi do następnej ramki.
W skrócie, każdy pakiet zaczyna się od "długość" i "CRC (długość)". Nie ma potrzeby ucieczki od żadnych znaków, a długość pakietu jest znana z wyprzedzeniem.
Wydaje się, że dwa główne podejścia do ramy szkieletowej pakietów:
- schematy kodowania (bit/bajt farsz, kodowanie Manchester, 4b5b, 8b10b itp)
- danych niemodyfikowane + kontrolna (GFP)
Ten pierwszy jest bezpieczniejszy, drugi jest bardziej wydajny. Oba są podatne na błędy, jeśli tylko ładunek zawiera prawidłowy pakiet i uszkodzenie linii powoduje, że bajty postępowania zawierają sekwencję bajtów "początku ramki", ale brzmi to wysoce nieprawdopodobnie. Trudno jest znaleźć twarde liczby, by zapewnić GFP solidność, ale wiele nowoczesnych protokołów używa go, więc można założyć, że wiedzą, co robią.
... ale nadal bez korekcji błędów lub odzyskiwania w warstwie łącza. –
bez korekcji błędów. Ale myślałem, że LCP może odzyskać od błędów łącza, aby ponownie zsynchronizować połączenie. – nik
Ale pakiet z błędem jest nadal wykrywany i odrzucany. Korekcja błędów w warstwie łącza oznaczałaby poprawienie tego błędu/ponowne przesłanie oryginalnego pakietu. Co nie dzieje się w warstwie łącza. –