table of contents
X25(7) | Podręcznik programisty Linuksa | X25(7) |
NAZWA¶
x25, AF_X25 - Interfejs protokołu ITU-T X.25 / ISO-8208.
SKŁADNIA¶
#include <sys/socket.h>
#include <linux/x25.h>
x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);
OPIS¶
Gniazda X25 stanowią interfejs do warstwy pakietów protokołu X.25. Umożliwiają łączenie się aplikacji przez publiczną sieć danych X.25, zgodnie z opisem w zaleceniach Międzynarodowej Unii Telekomunikacyjnej dotyczących X25 (tryb DTE-DCE X.25). Gniazda X25 mogą również być stosowane do łączności bez pośrednictwa sieci X.25 (trybu DTE-DCE X.25), jak opisano to w ISO-8208.
Granice komunikatów są zachowane — odczyt z gniazda za pomocą read(2) spowoduje otrzymanie tej samej porcji danych, którą wyprowadzono za pomocą odpowiadającego mu write(2) do gniazda z drugiej strony połączenia. Gdy jest potrzeba, jądro przeprowadza podział i powtórne złożenie długich komunikatów z wykorzystaniem bitu M protokołu X.25. Nie ma zakodowanego na stałe górnego ograniczenia rozmiaru komunikatu. Jednakże powtórne złożenie długiego komunikatu może się nie powieść w przypadku tymczasowego braku zasobów systemowych lub gdy ograniczenia innych zasobów (takich jak pamięć dla gniazd czy ograniczenia rozmiaru bufora) okażą się istotne. Gdy zajdzie taka sytuacja, połączenie X.25 zostanie zainicjowane ponownie.
Adresy gniazda¶
Rodzina adresów gniazd AF_X25 korzysta do reprezentacji adresów sieciowych ze struktury struct sockaddr_x25 zdefiniowanej w zaleceniach ITU-T dla X.121.
struct sockaddr_x25 {
sa_family_t sx25_family; /* musi być AF_X25 */
x25_address sx25_addr; /* adres X.121 */ };
sx25_addr zawiera tablicą znakową x25_addr[] interpretowaną jako zakończony znakiem NULL łańcuch. sx25_addr.x25_addr[] składa się z maksymalnie 15 (nie licząc końcowego 0) znaków ASCII tworzących adres X.121. Dozwolone są jedynie cyfry dziesiętne od "0" do "9".
Opcje gniazda¶
Następujące specyficzne dla X.25 opcje gniazd można ustawiać za pomocą setsockopt(2) i odczytywać za pomocą getsockopt(2), gdy parametr level jest ustawiony na SOL_X25.
- X25_QBITINCL
- Określa, czy bit Q protokołu X.25 (kwalifikowany bit danych - Qualified Data Bit) jest dostępny dla programu użytkownika. Oczekuje argumentu całkowitego. Gdy argument ten jest ustawiony na 0 (wartość domyślna), bit Q nigdy nie jest ustawiany w pakietach wychodzących, a bit Q pakietów przychodzących jest ignorowany. Gdy argument tjest ustawiony na 1, do każdego komunikatu odczytanego z gniazda lub zapisanego do niego jest dołączany dodatkowy pierwszy bajt. Dla danych odczytanych z gniazda wartość 0 tego bajtu oznacza, że bity Q odpowiednich przychodzących pakietów z danymi nie były ustawione. Wartość 1 pierwszego bajtu oznacza, że bity Q odpowiednich przychodzących pakietów z danymi były ustawione. Gdy pierwszy bajt danych zapisywanych do gniazda jest równy 1, to zostanie ustawiony bit Q odpowiednich wysyłanych pakietów. Gdy pierwszy bajt jest równy 0, bit Q nie zostanie ustawiony.
WERSJE¶
Rodzina protokołów AF_X25 pojawiła się w Linuksie 2.2.
USTERKI¶
Mnóstwo, gdyż implementacja X.25 PLP jest CONFIG_EXPERIMENTAL.
Ta strona podręcznika jest niekompletna.
Nie ma jeszcze przeznaczonego dla programistów aplikacji pliku nagłówkowego; trzeba posługiwać się plikiem nagłówkowym jądra <linux/x25.h>. Z CONFIG_EXPERIMENTAL może wynikać niezgodność interfejsu binarnego w przyszłych wersjach.
Zdarzenia X.25 N-Reset nie propagują się jeszcze do procesów użytkownika. Wobec tego, w przypadku wystąpienia błędu, dane mogą zostać utracone bez ostrzeżenia.
ZOBACZ TAKŻE¶
Jonathan Simon Naylor: “The Re-Analysis and Re-Implementation of X.25”. Dostępne pod adresem
O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 3.40 projektu Linux man-pages. Opis projektu oraz informacje dotyczące zgłaszania błędów można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Andrzej Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl> i Robert Luberda <robert@debian.org>.
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 3.40 oryginału.
2008-08-08 | Linux |