Cele. Założenia. Format komunikatów

Podobne dokumenty
Wirtualna centralka telefoniczna P2P

Projekt protokołu na SIK (2006/07)

Remote Quotation Protocol - opis

Projekt protokołu na SIK (2006/07)

Projekt z Laboratorium Sieci Komputerowych Protokół sterujący połączeniami telefonicznymi w sieci IP

Klient-Serwer Komunikacja przy pomocy gniazd

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

System Rozproszone Komunikator Dokumentacja. Maciej Muszkowski Jakub Narloch

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Specyfikacja protokołu zdalnych kolejek RQP Krzysztof Choromański 19 kwietnia, 2008

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Aukcja trwa od momentu, gdy informacje o przedmiocie są dostępne dla klientów, a kończy się wraz z wysłaniem opisanego dalej komunikatu FINISH_MSG.

Mechanizmy pracy równoległej. Jarosław Kuchta

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Protokół wymiany sentencji, wersja 1

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

Programowanie współbieżne i rozproszone

Instalacja i konfiguracja serwera telnet.

pasja-informatyki.pl

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

TCP/IP formaty ramek, datagramów, pakietów...

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Konfiguracja konta pocztowego w Thunderbird

iqportal abonencki panel zarządzania

interfejs szeregowy wyświetlaczy do systemów PLC

OmniTouch 8400 Instant Communications Suite Telefon aplikacji My Instant Communicator. My Instant Communicator dla serii Alcatel-Lucent /4068

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

Telefonia Internetowa VoIP

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Funkcje sterownika CellBOX-UxR ModBUS RTU

Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Uniwersalny Konwerter Protokołów

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Czas w systemach rozproszonych. Krzysztof Banaś Systemy rozproszone 1

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Protokół aukcji internetowych

ZiMSK dr inż. Łukasz Sturgulewski, DHCP

Przesyłania danych przez protokół TCP/IP

Poczta P2P Opis protokołu. Marcin Waniek. 27 kwietnia 2010

Zdalne wywoływanie procedur RPC 27. października Dariusz Wawrzyniak (IIPP) 1

REGULAMIN PRZESYŁANIA FAKTUR W FORMIE ELEKTRONICZNEJ

Manual konfiguracji konta dla fax2mail

REGULAMIN PRZESYŁANIA FAKTUR W FORMIE ELEKTRONICZNEJ. Podstawa prawna

Zdalne wywoływanie procedur RPC 27. października 2010

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Manual konfiguracji konta dla fax2mail

5. Model komunikujących się procesów, komunikaty

GroupWise WebAccess Basic Interface

3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S FAX SYSTEM

wersja dokumentu 1.0 data wydania

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Dr Michał Tanaś(

Problemy z bezpieczeństwem w sieci lokalnej

m e d i a s e r v i c e Moduł kamery JPEG z komunikacją szeregową CJ0706A

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Podstawowe pojęcia dotyczące sieci komputerowych

FAQ: /PL Data: 9/04/2013 WinCC v7 Wymiana danych ze sterownikiem serii S poprzez protokół Modbus TCP

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Regulamin przesyłania faktur w formie elektronicznej przez Severstal Distribution Sp. z o.o. 1 Postanowienia ogólne

Warstwa łącza danych. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa. Sieciowa.

Sieci komputerowe - administracja

S Instrukcje programowania instrukcje obsługi Ethernetu

Instrukcja obsługi AWIZA dla central MIKROTEL CA15, CA32

Laboratorium Sieci Komputerowych - 2

DOKUMENTACJA TECHNICZNA SMS API MT

Model OSI. mgr inż. Krzysztof Szałajko

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

1. Warstwa fizyczna. 2. Organizacja transmisji.

MODUŁ KOMUNIKACYJNY GSM-4/GSM-5

Wykład VI. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Złośliwe oprogramowanie Sandrorat (podszywające się pod oprogramowanie Kaspersky) na platformę Android WYNIKI ANALIZY

Rysunek 1: Okno z lista

Program GroupWise WebAccess interfejs podstawowy

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

Sprawozdanie nr 4. Ewa Wojtanowska

Sieci Komputerowe 2008/2009. Opis Protokołu

Mediatel 4B Sp. z o.o., ul. Bitwy Warszawskiej 1920 r. 7A, Warszawa,

Sieci komputerowe - Protokoły warstwy transportowej

Technologie WAN transmisja synchroniczna i asynchroniczna

Model sieci OSI, protokoły sieciowe, adresy IP

Instrukcja instalacji usługi Sygnity SmsService

Scenariusz lekcji Opracowanie: mgr Bożena Marchlińska NKJO w Ciechanowie Czas trwania jednostki lekcyjnej: 90 min.

Protokoły sieciowe - TCP/IP

Laboratorium Protokoły sieci teleinformatycznych

Pytania na kolokwium z Systemów Teleinformatycznych

IBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003

komunikator na platformę Android wspierający protokół GG

Transkrypt:

Jarosław Osmański Streszczenie Niniejszy dokument przedstawia protokół TelefoNic, sterujący połączeniami telefonicznymi w sieci IP. Protokół umożliwia abonentom łączenie się w grupy co pomaga w wymienianiu się połączeniami. Połączenie polega na wywołaniu abonenta (tak będziemy nazywać użytkownika protokołu) przez innego abonenta. Aby zostało nawiązane połączenie, abonent wywoływany musi zgodzić się na połącznie. Abonent może zawiesić rozmowę, czyli zatrzymać ją do czasu odwieszenia, czyli kontynuowania. Możliwe jest też przejęcie połączenia przez abonenta z tej samej grupy, czyli kontynuowanie rozmowy przez innego abonenta w grupie. TelefoNic wykorzystuje krążacy żeton do zapewniania spójności danych. Wybiera lidera grupy, aby ten zarządzał WLT. Do wybrania lidera grupy stosowany jest algorytm tyrana. Polega on na elekcji tego z abonentów, który ma największy numer. Dla adresu a.b.c.d:e (a.b.c.d to numer ip, e numer portu), porównujemy liczby w kolejności alfabetycznej, np. jeśli a jest większe od liczby a1 w adresie innego abonenta to adres a.b.c.d:e > a1.b.c.d:e. Cele Protokół ma działać w sieci IP. TelefoNic ma umożliwiać imitację działania typowej biurowej centralki telefonicznej. Protokół ma umożliwiać wymianę danych głosowych pomiędzy użytkownikami. Założenia Protokół działa w warstwach 5, 6, 7 modelu ISO. Protokół korzysta z protokołu IP do dostępu do sieci. Protokół korzysta z protokołu TCP do transportu komunikatół. Protokół działać będzie w środowisku rozproszonym, bez centralnego serwera. Zarządzanie grupami będzie odbywać się w modelu klient-serwer. Format komunikatów Oktety są przesyłane przez sieć w porządku sieciowym. Znaki interpretowane są w arytmetyce uzupełnień do 2. Liczby zmiennoprzecinkowe przesyłane są w formacie IEEE 754. Liczby dwu oktetowe mogą być uzupełniane zerami do czterech oktetów.

IDENT{ uint16 adres_ip; uint16 numer_portu; } Identyfikator dla jednego abonenta. WLT{ uint16 numer_wlt; uint16 stan; {0x00 brak rozmowy,0x01 rozmowa,0x02 zawiesiłem,0x03 zawiesił} IDENT kto_rozmawia; IDENT z_kim_rozmawiam; } Opisuje Wirtualną Linię Telefoniczną. ORDINARY_MSG{ uint16 rodzaj_wywolania; IDENT ip_nadawcy; IDENT ip_odbiorcy; IDENT ip_wywolywany; IDENT ip_wywolujacy; IDENT szef_wywolywanego; IDENT szef_wywolujacego; WLT numer_wlt; } Znaczenie pół w komunikacie: rodzaj_wywolania identyfikuje jaki komunika został wywołwany ip_odbiorcy adres tego kogo chcemy poinformować ip_wywolywany adres tego od kogo odbiorca spodziewa się komunikatu ip_wywolujacy adres tego kto spodziewac się dostać komunikat szef_wywolywanego przekonanie nadawcy o szefie wywoływanego szef_wywolujacego przekonanie nadawcy o swoim szefie numer_wlt stan WLT, który powinien się znajdować u odbiorcy Komunikaty korzystające z tego formatu: Wywolanie_MSG, Akceptuj_MSG, Zajety_MSG, Odrzucony_MSG, Rozlacz_MSG, Zawies_MSG, Odwies_MSG, Nie_Mamy_Rozmowy_MSG, Zajete_Jedno_WLT_MSG, Przyslij_Wszystkie_WLT_MSG, Get_Boss_MSG, Election_MSG, Answer_MSG, Coordinator_MSG, Popros_O_Linie_MSG, Trzymaj_Linie_MSG, Oddaj_Linie_MSG, Nie_Ma_Linii_MSG, Zgoda_Rozlacz_MSG, Niezgoda_Odwies_MSG, Zgoda_Odwies_MSG, Zostalem_Odwieszony_MSG ALLWLT_MSG{6 rodziaj_wywnadawcy; IDENT ip_odbiorcy; IDENT ip_wywolywany; IDENT ip_wywolujacy; IDENT autor; uint16 ile_wlt; WLT[MAX_WLT] do_poprawy;

} ile_wlt rzeczywista ilość używanych obecnie WLT Komunikaty korzystające z tego formatu: Wszystkie_WLT_MSG DATA_MSG{ uint16 rodziaj_wywolania; IDENT ip_nadawcy; IDENT ip_odbiorcy; IDENT ip_wywolywany; IDENT ip_wywolujacy; IDENT szef_wywolywanego; IDENT szef_wywolujacego; uint16 dlugosc_danych; octet[maksymalna_ilosc_bajtow_danych] mibd; } Komunikaty korzystające z tego formatu: Data_MSG

Opis wymienianych komunikatów Zadania_GRP Wywolanie_MSG zgłasza chęć rozpoczęcia rozmowy rodzaj_wywolania = Wywolanie_CONST Zajete_Jedno_WLT_MSG wysyła stan jednego z WLT do odbiorcy informuje grupę, że jedno z WLT jest zajęte rodzaj_wywolania = Zajete_Jedno_WLT_CONST Przyslij_Wszystkie_WLT_MSG abonent żąda przysłania mu stanu wszystkich WLT grupy rodzaj_wywolania = Przyslij_Wszystkie_WLT_CONST ip_odbiorcy adres, o którym abonent myśli, że jest szefem ip_wywolywany adres, o którym abonent myśli, że jest szefem ip_wywolujacy swój adres szef_wywolywanego adres, o którym abonent myśli, że jest szefem szef_wywolujacego adres, o którym abonent myśli, że jest szefem Wszystkie_WLT_MSG abonent przesyła stan wszystkich WLT do odbiorcy format komunikatu: ALLWLT_MSG rodziaj_wywolania = Wszystkie_WLT_CONST ip_odbiorcy adres żądającego stanu wszystkich WLT autor swój adres ile_wlt rzeczywista ilość użytych wlt do_poprawy wyslane wszystkie WLT Odp_Szefa_GRP Niezgoda_Odwies_MSG abonent nie dostaje zgody na odwieszenie swojej rozmowy od szefa grupy Zgoda_Odwies_MSG abonent dostaje zgodęna odwieszenie swojej rozmowy Popros_O_Linie_MSG rodzaj_wywolania = Popros_O_Linie_CONST

Trzymaj_Linie_MSG rodzaj_wywolania = Trzymaj_Linie_CONST Oddaj_Linie_MSG rodzaj_wywolania = Oddaj_Linie_CONST Nie_Ma_Lini_MSG rodzaj_wywolania = Nie_Ma_Linii_CONST W_Trakcie_Rozmowy_GRP Rozlacz_MSG zgłasza chęć zakończenia rozmowy rodzaj_wywolania = Rozlacz_CONST ip_odbiorcy adres tego kogo chcemy poinformować ip_wywolywany - swój adres; ip_wywolujacy adres tego kogo chcemy poinformować szef_wywolywanego - swój adres szef_wywolujacego - swój adres WLT numer_wlt stan WLT, które chcemy przesłać do innych członków w naszej grupie Zgoda_Rozlacz_MSG odpowiedź na sygnal rozłączenia rodzaj_wywolania = Zgoda_Rozlacz_CONST Zawies_MSG abonent chce zawiesić rozmowę, służy także do zawieszenia rozmowy w grupie rodzaj_wywolania = Zawies_CONST ip_odbiorcy adres tego kogo chcemy poinformować ip_wywolywany swój adres ip_wywolujacy adres tego kogo chcemy poinformować szef_wywolywanego - swój adres szef_wywolujacego adres abonenta, o którym myślimy, że jest szefem WLT numer_wlt WLT, które chcemy zawiesić Odwies_MSG abonent chce odwiesić rozmowę, którą zawiesił rodzaj_wywolania = Odwies_CONST ip_odbiorcy adres tego kogo chcemy poinformować ip_wywolywany - swój adres; ip_wywolujacy adres tego kogo chcemy poinformować szef_wywolywanego - swój adres

szef_wywolujacego - swój adres WLT numer_wlt stan WLT, które chcemy odwiesić (u odbiorcy) Zostalem_Odwieszony_MSG abonent informuje serwer, że został odwieszony rodzaj_wywolania = Zostalem_Odwieszony_CONST Odpowiedz_Na_Wywolanie_GRP Akceptuj_MSG abonent wywoływany zgadza się na rozmowę rodzaj_wywolania = Akceptuj_CONST ip_odbiorcy adres tego kogo chcemy poinformować ip_wywolywany - swój adres; ip_wywolujacy adres tego kogo chcemy poinformować szef_wywolywanego mój szef WLT numer_wlt stan WLT, który mamy po zaakceptowaniu Zajety_MSG abonent wywoływany nie ma wolnych WLT rodzaj_wywolania = Zajety_CONST Odrzucony_MSG -abonent wywoływany odrzucił propozycję rozmowy rodzaj_wywolania = Rozlacz_CONST Wybor_Szefa_GRP Get_Boss_MSG abonent pyta się wszyskich czy jest szef rodzaj_wywolania = Get_Boss_CONST Election_MSG abonent rozsyła do wszystkich abonentów o wyższych numerach od siebie, że abonent, którego obecnie uważa za szefa, jest niedostępny. rodzaj_wywolania = Election_CONST szef_wywolywanego - swój adres szef_wywolujacego - swój adres Answer_MSG abonent zgłasza, że to on jest szefem, lub też ma większe prawo od odbiorcy tego komunikatu do bycia szefem rodzaj_wywolania = Answer_CONST szef_wywolywanego - swój adres szef_wywolujacego - swój adres Coordinator_MSG abonent wysyła ten komunikat, gdy uważa, że jest szefem

rodzaj_wywolania = Coordinator_CONST szef_wywolywanego adres tego kogo uważa za szefa szef_wywolujacego - swój adres Inne Nie_Mamy_Rozmowy_MSG wiadomość, którą wysyła abonent, gdy rozmowa nie została w dobry sposób zainicjowana, nie zostało zajęte WLT itd. rodzaj_wywolania = Nie_Mamy_Rozmowy_CONST Data_MSG dane wymieniane między abonentami (w szczególności rozmowa głosowa) format komunikatu: DATA_MSG rodziaj_wywolania = Data_CONST ip_nadawcy ip_odbiorcy ip_wywolywany ip_wywolujacy szef_wywolywanego szef_wywolujacego dlugosc_danych ilość bajtów mibd mibd przesylane dane Opis stanów Każdy abonent posiada dla każdego WLT stan opisujący stan rozmowy z innym abonentem (lub jej brak). Abonenci, którzy są w grupach, posiadają dodatkowo stan związany z zarządzaniem grupami, tzn. stan wyrażający jak abonent postrzega swoją grupę. Abonent, który jest szefem może wysyłać komunikaty, których nie mogą wysyłać zwykli użytkownicy. Zarządzanie grupami Szef_State a)election_msg -> wysyła do nadawcy Answer_MSG b)get_boss_msg-> wysyła do nadawcy Answer_MSG c)jako jedyny reaguje na zapytania z gupy Odp_Szefa_GRP Sluga_State a) Coordinator_MSG -> ustala właściciela tokena, na nadawce Coordinator_MSG

b) Election_MSG -> w zależności od swojego ip. jeśli ma numer mniejszy od nadawcy to nie odpowiada; jeśli większy wysyła do odbiorcy Answer_MSG! i zmienia stan na Bezkrolewie_State c)odp_szefa_grp -> wysyła Coordinator_MSG Szef_Bez_Slug_State a) Election_MSG -> wysyła do nadawcy Answer_MSG! b) Get_Boss_MSG -> wysyła do nadawcy Answer_MSG! Kandydat_State a) Answer_MSG -> przechodzi do stanu Election_Ended_State W przypadku braku odpowiedzi następuje przejście do stanu Szef_Bez_Slug_State Election_State a) Coordinator_MSG > przechodzi do stanu Sluga_State; uaktualnie informacje o posiadaczu żetonu Bezkrolewie_State a) Election -> w zależności od swojego ip. jeśli ma numer mniejszy od nadawcy to nie odpowiada; jeśli większy wysyła do odbiorcy Answer_MSG! i zmienia stan b) Answer -> przechodzi do stanu Election_State W tym stanie abonent wysyła komunikat Election do wszystkich użytkowników o wyższym ip od niego. Nowy_State a) Coordinator_MSG -> przechodzi do stanu Sluga_State i uaktualnia posiadacza tokena Wysyła komunikat Get_Boss_MSG, do wszystkich.

Wywoływanie i odbieranie rozmów Wszystkie stany w tym rozdziale reagują na następujące komunikaty: a) W_trakcie_rozmowy_GRP + Data_MSG -> Nie_Mamy_Rozmowy_MSG b) Nie_Mamy_Rozmowy_MSG -> wraca do stanu Próżniak oddając najpierw WLT Prozniak_State abonent gotowy do przyjęcia rozmowy lub jakiejś innej reakcji W tym stanie reaguje na: a) Wywolanie_MSG -> jeśli jest w grupie wysyła Decyzja_State abonent decyduje czy chce przyjąć rozmowę a) abonent chce przyjąć rozmowę -> wysyła Akcept_MSG! do wywołującego b) abonent nie chce przyjąć rozmowy -> wysyła Odrzuc_MSG! do wywołującego Odrzuc_State abonent nie otrzymał linii, nie może wykonać rozmowy Wez_Linie_State abonent czeka na otrzymanie linii od szefa grupy Oddaj_Linie_State abonent nie może otrzymać WLT od szefa grupy Czekam_State abonent czeka na odpowiedź Zakoncz_State abonent ma oddać linie WLT zakończył swoją rozmowę

Rozmowa Rozmowa_State trwa rozmowa a)jedyny stan w którym przyjmowane są pakiety Data_MSG Zawieszony_State jestem zawieszony a) można rozłączyć; następuje zmiana stanu na Rozlaczam_STATE b) mogę dostać sygnał o odwieszeniu; wtedy zmieniam stan na Rozmowa_State Odwieszam_State odwieszam rozmowę, muszę powiadomić o tym szefa Zawiesilem_State zawiesiłem rozmowę Rozlaczam_State abonent próbuje powiadomić rozmówce, że się rozłącza

Wywolanie_CONST = 0x00 Akceptuj_CONST = 0x01 Zajety_CONST = 0x02 Odrzucony_CONST = 0x03 Rozlacz_CONST = 0x04 Zawies_CONST = 0x05 Odwies_CONST = 0x06 Nie_Mamy_Rozmowy_CONST = 0x07 Zajete_Jedno_WLT_CONST=0x08 Przyslij_Wszystkie_WLT_CONST=0x09 Wszystkie_WLT_CONST = 0x0A Get_Boss_CONST = 0x0B Election_CONST = 0x0C Answer_CONST = 0x0D Coordinator_CONST = 0x0E Popros_O_Linie_CONST = 0x0F Trzymaj_Linie_CONST = 0x10 Oddaj_Linie_CONST = 0x11 Nie_Ma_Linii_CONS = 0x12 Zgoda_Rozlacz_CONST = 0x13 Niezgoda_Odwies_CONST = 0x14 Zgoda_Odwies_CONST = 0x15 Zostalem_Odwieszony_CONST =0x16 Data_CONST = 0xFF Numery