Linux AX25-HOWTO, Radio Amatorskie.: Protokoły dla Packet Radio a Linux
Następna strona
Poprzednia strona
Spis treści
3. Protokoły dla Packet Radio a Linux
Protokół AX.25 oferuje dwa tryby operacji: connected i connectionless. Używany jest albo do połączeń typu stacja-do-stacji albo jako medium dla innych protokołow takich jak TCP/IP lub NetRom.
Podobny jest w swej strukturze do X.25 level 2 z pewnymi modyfikacjami, które czynią go bardziej użytecznym do pracy w środowisku radia amatorskiego.
Protokół NetRom jest próbą pełnego protokołu sieciowego i w swej najniższej warstwie używa AX.25 jako protokołu typu datalink. Dostarcza on sieciowej warstwy, która jest adaptowaną formą AX.25. Protokół NetRom cechuje się dynamicznym routingiem, posiada też funkcję pseudonimów dla węzłów.
Protokół Rose został wynaleziony i po raz pierwszy zastosowany przez Tom'a Moulton, W2VY, i jest wariacją protokołu X.25 w warstwie packet. Pomyślany jest tak, że AX.25 jest jego warstwą typu datalink. Sam również dostarcza warstwę sieciową. Adresy Rose przyjmują formę 10 cyfrowych numerków. Pierwsze cztery cyfry stanowią Data Network
Identification Code (DNIC) i wzięte zostały z załącznika B z zaleceń CCITT X.121. Więcej informacji na temat protokołu Rose można uzyskać z
Serwera RATS.
Początkowo, wczesne oprogramowanie AX.25 współpracujące z jądrem Linuxa wypracował Alan Cox. Następnie
Jonathon Naylor przejął rozwijający się projekt dodając obługę NetRomu i Rose; obecnie on właśnie zajmuje się opracowywaniem źródeł AX.25 współpracujego z jądrem Linuxa. DAMA zostało napisane przez
Joerg Reuter. Obsługę karty dźwiękowej jako modemu oraz modem Baycom dodał
Thomas Sailor. Programy narzędziowe AX.25 są obecnie prowadzone przeze mnie.
Linux obsługuje TNC w trybie KISS (Terminal Node Controllers), kartę Ottawa PI, kartę Gracillis PacketTwin oraz inne oparte na scalaku SCC Z8530, modem Baycom zarówno seryjny jak i równoległy. Nowy, od Tomasza, sterownik DźwiękoModemu obsługuje karty dźwiękowe SoundBlaser oraz te zbudowane w oparciu o Crystal chipset.
Programy użytkownika zawierają prosty PMS (Personal Message System), program latarnie, liniowy program 'call' do połaczeń, 'listen' przykładowy program do uchwycenia surowych ramek AX.25 na poziomie interfejsu, oraz programy do konfiguracji NetRomu. Załączono również program, ktory jest jakby serwerem AX.25 przechwytującym i rozprowadzającym wchodzące połączenia; jest też demonik dla NetRomu, który wykonuje całą czarną robotę dla obsługi protokołu NetRom.
3.1 Jak to wszystko działa?
AX.25 pod Linuxem jest zupełnie nową implementacją. Choć na pozór wygląda podobnie do NOS, BPQ lub innych implementacji AX.25 to jednak nie przypomina żadnej z nich ani nie jest identyczną z żadną z nich. AX.25 pod Linuxem można skonfigurować tak, że będzie zachowywać się niemalże tak jak inne implementacje AX.25 ale proces konfiguracyjny jest bardzo odmienny.
Aby dopomóc ci w sposobie myślenia przy konfigurowaniu, sekcja ta stara się wyjaśnić niektóre strukturalne cechy AX.25 oraz umieszcza je w ogólnej strukturze Linuxa.
Uproszczony schemat warstw protokołów sieciowych.
-----------------------------------------------
| AF_AX25 | AF_NETROM | AF_INET | AF_ROSE |
|=========|===========|=============|=========|
| | | | |
| | | TCP/IP | |
| | ---------- | |
| | NetRom | | Rose |
| -------------------------------------
| AX.25 |
-----------------------------------------------
Schemat ten ilustruje poprostu, że NetRom, TCP/IP i Rose wszystkie razem rezydują na protokole AX.25 ale że każdy z nich traktowany jest osobno u poziomu programowania na interfejsie. Nazwy 'AF' to nazwy nadawane dla Address Family każdego z tych protokołów podczas pisania dla nich programów. Ważne tutaj jest to, że konfiguracja urządzenia AX.25 kluczowo wpływa na to jak będą konfigurowane NetRom, Rose oraz TCP/IP.
Schemat modułów w implementacji sieciowej Linuxa
----------------------------------------------------------------------------
User | Programs | call node || Daemons | ax25d mheardd
| | pms mheard || | inetd netromd
----------------------------------------------------------------------------
| Sockets | open(), close(), listen(), read(), write(), connect()
| |------------------------------------------------------
| | AF_AX25 | AF_NETROM | AF_ROSE | AF_INET
|------------------------------------------------------------------
Kernel | Protocols | AX.25 | NetRom | Rose | IP/TCP/UDP
|------------------------------------------------------------------
| Devices | ax0,ax1 | nr0,nr1 | rose0,rose1 | eth0,ppp0
|------------------------------------------------------------------
| Drivers | Kiss PI2 PacketTwin SCC BPQ | slip ppp
| | Soundmodem Baycom | ethernet
----------------------------------------------------------------------------
Hardware | PI2 Card, PacketTwin Card, SCC card, Serial port, Ethernet Card
----------------------------------------------------------------------------
Ten schemat jest troszeczkę bardziej ogólny od pierwszego. Stara się on ukazać zależność pomiędzy programami narzędziowymi, jądrem oraz sprzętem. Pokazuje też zależność pomiędzy interfejsem programowania gniazd dla aplikacji, właściwymi modułami protokołów, interfejsami sieciowymi jądra, oraz sterownikami urządzeń. Każdy element schematu polega na tym elemencie, który jest poniżej niego samego i konfigurację trzeba rozpoczynać od samego dołu w górę. Więc dla przykładu, jeśli chesz odpalać program call to musisz również skonfigurować sprzęt, następnie upewnić się, że jądro posiada odpowiedni sterownik urządzenia, dalej musisz stworzyć właściwy interfejs sieciowy oraz, że jądro zawiera właściwy protokół, który oferuje odpowiedni dla programu call interfejs programowania. W takiej hierarchii starałem się też rozłozyć ten dokument.
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
ax25 howto pl 2AX25 HOWTO pl 11ax25 howto pl 9ax25 howto pl 26ax25 howto pl 15AX25 HOWTO pl 20AX25 HOWTO plax25 howto plax25 howto pl 13ax25 howto pl 18ax25 howto pl 23ax25 howto pl 17ax25 howto pl 22ax25 howto pl 19ax25 howto pl 10ax25 howto pl 27ax25 howto pl 6więcej podobnych podstron