Połączenie idealne


12. Błędy transmisji uniemożliwiają pobieranie danych (I)

OBJAWY: Do wysyłania poczty wykorzystywany jest program emulujący terminal, taki jak na przykład Telix. Próby pobrania danych kończą się w ten sposób, że Telix zamiast danych wyświetla setki komunikatów o błędach.

DIAGNOZA: Przyczyna problemu nie leży po stronie programu emulującego terminal. Duża liczba błędów wskazuje na to, że źródło zakłóceń leży najprawdopodobniej gdzieś między komputerem obsługującym skrzynkę pocztową, a komputerem lokalnym. Aby upewnić się, że problem nie dotyczy skrzynki pocztowej (co jest wielką rzadkością) i nie jest też związany ze złej jakości łączami telefonicznymi można spróbować połączyć się z inną skrzynką pocztową. Jeśli problem występuje nadal, najprawdopodobniej dotyczy on komputera lokalnego (czyli tego, z którego korzystasz).

Błąd transmisji nie oznacza, że otrzymywane dane to śmieci pełne błędów. Oznacza to natomiast, że przesyłane dane uległy zniekształceniu podczas transmisji, w związku z czym komputer-adresat prosi o ponowne przesłanie błędnych ramek danych. Błędy transmisji wpływają więc na czas transmisji, ale nie na jakość otrzymywanych danych.

Możliwość 1: Do zapewnienia poprawnego przesyłania danych między portem COM i modemem niezbędny jest protokół transmisji danych umożliwiający sterowanie połączeniem. Do osiągnięcia tego celu posłużyć się można dwoma procedurami: pierwsza oparta jest na sprzętowym protokole RTS/CTS i wykorzystującymi zarządzanie RTS oraz CTS łączami szeregowymi do sterowania przepływem danych, a druga - na protokole programowym XON/XOFF przesyłającym dodatkowe rozkazy sterujące między komputerem i modemem. Oba spełniają swoje zadanie poprawnie, przy czym protokół sprzętowy realizuje je nieco efektywniej, ze względu na to, że nie musi przesyłać dodatkowych rozkazów, co powoduje zmniejszenie szybkości transmisji danych.

Dostęp do ustawień dotyczących kontroli przepływu danych uzyskuje się przez wybranie kolejno poleceń Start/Ustawienia /Panel sterowania/Modemy. W wyświetlonym oknie wybrać należy wykorzystywany modem i kliknąć kolejno Właściwości/Połączenia/Zaawansowane. Tam uaktywnić można pole wyboru Użyj kontroli transmisji i zaznaczyć opcję Sprzętowej (RTS/CTS). Wybranie tej opcji zalecamy zawsze, nie tylko w razie problemów z przesyłaniem danych.

Możliwość 2: Inną potencjalną przyczyną problemów może być czas opóźnienia komputera lokalnego - to jest czas, który upływa zanim komputer zareaguje na wprowadzony rozkaz. Najważniejszym z czasów opóźnień jest opóźnienie przerwania, czyli czas potrzebny komputerowi do reakcji na zgłoszenie przerwania otrzymane od, chociażby kontrolera łącza szeregowego. Standardowe dziś łącza szeregowe wyposażone są w 16-bajtowy bufor pamięci, który używają w połączeniu z modułem UART 16550a (lub kompatybilnym) w celu przezwyciężenia ograniczeń związanych z czasem opóźnienia. Mimo to, może się zdarzyć, że dane przepełnią bufor ze względu na to, że komputer nie pobrał danych odpowiednio wcześnie. W systemie Windows 95/98 można samodzielnie określić poziom zapełnienia, po osiągnięciu którego bufor melduje, że dane muszą zostać pobrane, dzięki czemu uniknąć można utraty danych. Zmniejszenie owego poziomu daje komputerowi odpowiednio więcej czasu na reakcję zanim bufor ulegnie przepełnieniu. Opcję pozwalającą na sterowane omawianym poziomem znaleźć można klikając przycisk Właściwości znajdujący się na karcie Ogólne okna Właściwości: Modemy (udostępnianego w wyniku dwukrotnego kliknięcia ikony Modemy w Panelu sterowania). Kliknięcie owego przycisku spowoduje otwarcie okna Właściwości dla określonego modemu. W nim wybrać należy kartę Połączenie, a dalej Ustawienia portu... W wyświetlonym w ten sposób oknie Zaawansowane ustawienia portu można dokonywać ustawień rozmiarów buforów, ale dopiero po uprzednim zaznaczeniu pola wyboru Użyj buforów FIFO.

13. Błędy transmisji uniemożliwiają pobieranie danych (II)

OBJAWY: Podczas pobierania danych ze skrzynki pocztowej, program Telix wyświetla setki komunikatów o błędzie. Czynności zaproponowane we wskazówce 12 nie zlikwidowały problemu.

DIAGNOZA: Dochodzi w takim razie kilka innych źródeł potencjalnych problemów.

Możliwość 1: Czasem winę za niezliczone ilości komunikatów o błędzie ponosi przesyłanie pakietów z dysku twardego. Twardy dysk przesyłający dane w pakietach powinien móc przesłać więcej danych w trakcie jednej, niemożliwej do przerwania czynności. W przypadku starszych (i wolniejszych) komputerów może to jednak powodować wstrzymanie pracy procesora (CPU) na czas pobierania danych z dysku twardego i tym samym, być przyczyną nieterminowego pobierania danych z bufora.