Rozdział 13 Warstwa 5: warstwa sesji
Funkcje warstwy sesji
Piątą warstwą modelu OSI jest warstwa sesji. Warstwa sesji pozwala dwóm aplikacjom zsynchronizować swoją komunikację i wymianę danych. Ta warstwa dzieli komunikację między dwoma systemami na jednostki dialogowe i wyznacza ważne i mało znaczące punkty synchronizacyjne podczas tej komunikacji. Na przykład, duża, rozproszona baza danych transakcji między wieloma systemami może wykorzystać warstwę sesji do stwierdzenia, czy transakcje zostały przeprowadzone końca, czy też zostały wycofane do punktu kontrolnego znanego wszystkim systemom.
Analogie dla warstwy sesji bo krótkie - trudno je zauważyć
Np. komunikujemy się na Chat, ale są problemy: 1. komunikaty mogą się krzyżować w trakcie konwersacji; 2. potrzebna może być przerwa lub czas na przeczytanie wcześniejszych konwersacji i czas na zsynchronizowanie po zakłóceniu. Rozwiązania:
protokół określający zasady komunikacji: kolejność wysyłania komunikatów (żeby wzajemnie nie przerywać) komunikacja przemienna / albo komunikacja dwukierunkowa (każdy pisze kiedy chce)
trzeba wysyłać do siebie nawzajem punkt kontrolny (że trzeba zapisać do pliku), przeczytać ostatnią część i sprawdzić czas na zegarze synchronizacja
ważne są: początek i koniec konwersacji
Zastosowania warstwy sesji: RPC, protokoły jakości usług (np. RSVP - protokół rezerwacji pasma)
Kontrola dialogu
Warstwa sesji ustanawia, zarządza i kończy sesje miedzy protokołami warstwy aplikacji. Dotyczy to rozpoczęcia, wstrzymania i ponownej synchronizacji komunikacji między aplikacjami na dwóch komputerach. Warstwa sesji koordynuje współdziałanie aplikacji na dwóch komunikujących się ze sobą hostach. Dane wędrują w sieciach z komutacją pakietów, a nie jak rozmowy telefoniczne, które wędrują w sieciach opartych z komutacją obwodów.
Komunikacja miedzy dwoma komputerami obejmuje wiele mini-konwersacji, dzięki czemu komputery komunikują się w sposób efektywny. Jednym z wymogów wobec mini-konwersacji jest to, że każdy host odgrywa podwójną rolę: żąda usług - tak jak klient, i odpowiada usługami - tak jak serwer. Określenie roli, którą odgrywają w danej chwili jest częścią kontroli dialogu.
Warstwa sesji decyduje o tym, czy zastosować konwersację przemienną, czy dwukierunkową. To także część kontroli dialogu. Jeżeli dozwolona jest jednoczesna, dwukierunkowa komunikacja, warstwa sesji ma niewiele pracy związanej z zarządzaniem konwersacją. W takich sytuacjach inne warstwy komunikujących się ze sobą komputerów zarządzają konwersacją. Na poziomie warstwy sesji możliwe są kolizje, aczkolwiek są one zupełnie odmienne od kolizji mediów występujących na poziomie warstwy 1. W warstwie sesji kolizje polegają na tym, że komunikaty mijają się i powodują zamęt na jednym lub obu komunikujących się hostach.
Jeśli kolizje warstwy sesji nie mogą zostać zaakceptowane, kontrola dialogów daje dodatkową opcję: komunikację przemienną. Komunikacją przemienna może być oparta na wykorzystaniu znacznika danych warstwy sesji, dzięki czemu każdy host czeka na swoją kolej. Proces ten można porównać do sposobu obsługi zezwoleń na transmisję właściwa dla protokołu Token Ring warstwy 2. Istnieją też inne metody określania kolejności nadawania.
Separacja dialogów
Podział dialogów to uporządkowane zainicjowanie, zakończenie i zarządzanie komunikacji, podczas której sprawdzane jest przeprowadzanie transakcji. Transakcja jest zdefiniowana jako niepodzielna jednostka pracy, czyli jednostka pracy, która musi zostać zakończona lub wycofana do znanego stanu, tak jakby nigdy się nie zaczęła. Przykładem jest podjęcie pieniędzy z banku. Jeśli transakcja zostanie zapoczątkowana, musi /ostać zakończona, a klient musi otrzymać pieniądze; w innym przypadku konto klienta nie może zostać pomniejszone o żądaną kwotę.
W chwili napotkania punktu kontrolnego na osi czasu t, warstwa sesji Hosta A wysyła komunikat synchronizacyjny do Hosta B. W tym czasie oba hosty przeprowadzają następującą procedurę:
Warstwa sesji: podział dialogu, synchronizacja podrzędna
Tworzą kopię zapasową danego pliku.
Zapisują ustawienia zegara.
Tworzą zapis końcowego punktu konwersacji.
Synchronizacja główna wymaga więcej etapów oraz konwersacji, niż na rys.
Punkty kontrolne można porównać do sytuacji, gdy edytor tekstu zatrzymuje się na sekundę w celu dokonania autozapisu bieżącego dokumentu. Punkty kontrolne są używane do oddzielenia części sesji, czasem nazywanych dialogami, dzięki czemu transakcja zostanie zakończona lub nic rozpocznie się.
Protokoły warstwy sesji
Na poziomie warstwy 5 działa kilka ważnych protokołów. Trzeba umieć je rozpoznać w chwili, gdy pojawią się podczas procedury logowania lub w aplikacji. Oto przykłady protokołów warstwy 5:
Structured Query Language (SQL)
Remote Procedure Call (RPC)
System X Window
AppleTalk Session Protocol (ASP)
Digital Network Architecture Session Control Protocol (DNA SCP)
Podsumowanie
Warstwa sesji ustanawia, zarządza, i kończy sesje miedzy aplikacjami.
Sesje komunikacyjne składają się z mini-konwersacji, które zachodzą między aplikacjami rezydującymi na różnych urządzeniach sieciowych.
Żądania i odpowiedzi są koordynowane przez protokoły zaimplementowane na poziomie warstwy sesji.
Warstwa sesji decyduje o tym, czy zastosować komunikację dwukierunkową, czy
przemienną używając kontroli dialogów.
Warstwa sesji używa podziału dialogu w celu zainicjowania, zakończenia i zarządzania komunikacją w sposób uporządkowany.