Wprowadzenie do komutacji wiadomości
Komutacja wiadomości to metoda przesyłania danych, w której cała wiadomość stanowi jednostkę routingu. Węzeł odbiera kompletną wiadomość, zapisuje ją w buforze, wybiera kolejny węzeł na podstawie adresu i dopiero wtedy przekazuje całość dalej.
Wiadomość przechodzi przez serię węzłów bez rezerwacji stałej ścieżki. Każdy węzeł przechowuje pełną jednostkę do czasu dostępności łącza wychodzącego, więc opóźnienie zależy od liczby skoków i czasu oczekiwania w kolejce. Model ten pasuje do usług, w których transmisja może zostać odroczona, lecz nie zapewnia opóźnienia właściwego dla rozmowy prowadzonej w czasie rzeczywistym.
Mechanizm „zapisz i podaj dalej”
Podstawowym mechanizmem komutacji wiadomości jest (ang. store-and-forward). Węzeł pośredni wykonuje następującą sekwencję działań:
- Odbierz: Węzeł odbiera całą wiadomość z poprzedzającego go węzła.
- Zapisz: Kompletna wiadomość jest umieszczana w buforze pamięci lub w pamięci trwałej, zależnie od wymagań systemu.
- Sprawdź i wybierz trasę: Węzeł analizuje nagłówek wiadomości i jej adres docelowy. Następnie wybiera następny skok na podstawie dostępnych tras oraz stanu łączy.
- Podaj dalej: Węzeł czeka, aż łącze wychodzące do następnego węzła stanie się dostępne. Gdy łącze jest wolne, przesyła całą wiadomość dalej.
Proces ten jest powtarzany w każdym węźle na trasie, aż wiadomość dotrze do miejsca docelowego.
Zalety i wady
Zalety
- Współdzielenie łączy: Łącza komunikacyjne są współdzielone przez wiele wiadomości i nie są dedykowane dla jednej sesji. Łącze jest zajęte przez czas potrzebny do przesłania wiadomości, po czym może obsłużyć kolejną jednostkę. W odróżnieniu od .
- Obsługa przeciążenia: Buforowanie wiadomości pozwala czasowo absorbować nagłe wzrosty ruchu. Pojemność bufora jest skończona, więc długie przeciążenie zwiększa kolejki i może prowadzić do odrzucenia wiadomości.
- Priorytetyzacja wiadomości: Przechowywanie całych wiadomości pozwala systemowi ustawiać je w kolejkach według priorytetu, jeżeli implementacja udostępnia taką funkcję. Wiadomość pilna może wtedy zostać wysłana przed mniej pilnymi.
Wady
- Opóźnienie: Na każdym skoku cała wiadomość musi zostać odebrana i zapisana przed rozpoczęciem przekazywania. Czas transmisji rośnie wraz z długością wiadomości, liczbą skoków i oczekiwaniem w kolejkach, dlatego metoda nie pasuje do rozmów głosowych ani wideokonferencji.
- Zmienny czas dostarczenia (): Czas, jaki wiadomość spędza w buforze na każdym węźle, zależy od natężenia ruchu i kolejności obsługi. Różne wiadomości mogą więc docierać z różnym opóźnieniem.
- Wymagania pamięciowe: Węzeł pośredni musi mieć pamięć lub pamięć trwałą na całą wiadomość przechodzącą przez jego kolejkę. Duże pliki zajmują więcej miejsca i ograniczają liczbę jednostek, które można obsłużyć równocześnie.
Kontekst historyczny i współczesne zastosowanie
Komutacja wiadomości była stosowana we wczesnych sieciach telegraficznych oraz systemach telegramowych. Węzeł odbierał całą depeszę, zapisywał ją, a następnie nadawał dalej. Podobny model występował we wczesnych systemach poczty elektronicznej, w tym w sieciach używających UUCP (Unix-to-Unix Copy).
W ogólnych sieciach IP stosuje się model komutacji pakietów, w którym dane aplikacji są dzielone na mniejsze jednostki. Węzeł może przekazać pakiet przed odebraniem reszty wiadomości, zmniejszając pamięć potrzebną na jednym skoku i czas oczekiwania na całość. Usługi asynchroniczne, takie jak poczta elektroniczna, nadal kolejkowują i przekazują całe wiadomości. W tym modelu oczekiwanie na całą wiadomość zastępuje obsługa poszczególnych pakietów, a zapotrzebowanie na bufor zależy od rozmiaru pakietu, długości kolejki i natężenia ruchu. Usługi interaktywne mogą korzystać z tego modelu, lecz jakość zależy od kolejkowania, strat i protokołu transportowego.