TCP/IP szállítási réteg ( socket programozási interfész )
|
|
- Boglárka Borbélyné
- 8 évvel ezelőtt
- Látták:
Átírás
1 TCP/IP szállítási réteg ( socket programozási interfész ) Összeállította: Mohácsi János BME Informatikai Központ tartva. Copyright 2000, BME Irányítástechnika és Informatika Tanszék
2 TCP/IP socket programozói interfész 2 1 TCP/IP 1.1 TCP/IP ÉS SOCKET INTERFÉSZ VISZONYA A TCP/IP réteges felépítése: Alkalmazói program réteg Szállítási réteg Internet réteg Adaptációs réteg Hordozó hálózat réteg A socket interfészt az 1980-as évek elején, a University of California at Berkeley (UCB) egyik laborjában dolgozták ki TCP/IP kezelői felületeként, UNIX operációs rendszerekhez, azóta UNIX szabványként terjedt el, implementálva van a Windowsban is WinSock néven. A socket egy API (Application Program Interface), ami eredetileg Berkeley-UNIX -ban (4.x) jelent meg. System V. Release 4 is átvette, de abban van más API is erre: TLI = Transport Layer Interface (Lásd szállítási interfész vizsgálata). A socket processzek közötti kommunikációs eszköz, mely független attól, hogy a kommunikáló processzek azonos, vagy különböző gépen vannak-e, illetve amennyire lehet, elfedik a kommunikáció megvalósításának alsóbb szintjeit. A kommunikáció formája kliens-szerver alapú, ami azt jelenti, hogy a szerver valamilyen jól definiált szolgáltatást nyújt, amit a kliensek igénybe vesznek
3 TCP/IP socket programozói interfész 3 A host szerver kliens hálózat B host kliens 1.2 C host Ábra a kliens szerver kommunikációról. Lehet kapcsolat-orientált (connection-oriented) vagy kapcsolat nélküli (connectionless): minden adatátviteli kérésnél meg kell adni a célcímet. Szerver lehet iteratív (ilyenkor a szerver ciklusban vár, azonnal feldolgozza a beérkezett kérést, tipikusan akkoralkalmazott, ha minden kérés feldolgozás véges és rövid idejű), vagy konkurens (ilyenkor a szerver minden kiszolgáláskor fork()-ol, gyereke dolgozza fel, szülő újra vár ciklusban a következő kérésre.) Ezek különböző "kombinációja" is megvalósitható (preforked, filedescriptor passing, stb.) ha nem blokkolódó vagy/és aszinkron rendszerhivásokat alkalmazunk BSD socket szerkezete: Felhasználói program socket könyvtár Stream fej felhasználó kernel SOCKMOD Transport provider TPI: Transport Provider Interface 1. ábra: Socket szerkezet SVR4 UNIX-ban
4 TCP/IP socket programozói interfész 4 a felhasználói program szinte mint egy filedescriptort látja a socket-et. Bár nem minden filedescriptor müvelet müködik (pl. lseek -> ESPIPE üzenet) 1.3 A SOCKET RENDSZERHÍVÁSOK A Socket és TLI összehasonlítása a rendelkezésre álló rendszerhívások tekintetében: Szerep Funkció Socket TLI Szerver allokáció/helyfoglalás - t_alloc() végpont létrehozás socket() t_open() címhez rendelés bind() t_bind() queue méret állítás listen() - várakozás kapcsolat kérelemre új filedescriptor létrehozás accept() t_listen() t_open() t_bind() t_accept() Kliens allokáció/helyfoglalás - t_alloc() Mindkettő végpont létrehozás socket() t_open() címhez rendelés bind() t_bind() szerverhez kapcsolódás adatátvitel (kapcsolat orintált) adatátvitel (kapcsolat nélküli) kapcsolat lezárás connect() read() write() recv() send() recvfrom() sendto() recvmsg() sendmsg() close() shutdown() t_connect() read() write() t_rcv() t_snd() t_rcvudata() t_sndudata() t_close() t_sndrel()
5 TCP/IP socket programozói interfész 5 t_snddis() Ezenkívül a következő rendszerhívásokat szokás használni hálózati programozáskor: ioctl() eszközvezérlő funkció fcntl() fileleírót vezérelő funkció select() szinkron/aszinkron multiplexelt I/O beállításása és várakozás egy I/O eseményre Ezekre részletesen a multiplexelt, aszinkron I/O és nem blokkolódó I/O fejezetekben térünk ki. 1.4 A SOCKET INTERFÉSZ ÁLTALÁNOS LEÍRÁSA A socket egy "communications domain" -hoz kapcsolódik a létrehozáskor: Lokális vagy UNIX domain (AF_LOCAL vagy AF_UNIX): gépen belüli kommunikációhoz Internet domain (AF_INET, AF_INET6): hálózaton át, a következő protokollokkal: TCP: Transmission Control Protocol UDP: User Datagram Protocol IP: Internet Protocol ICMP: Internet Control Message Protocol (Ezeket együtt szokás TCP/IP -nek is nevezni.) Egyéb lehetséges protokollok: ATM, IPX, Appletalk, DECNET, XNS, OSI, de egyes esetekben IPSec kulcsmenedzsment (PF_KEY), hálózati kártyaszintű (Netlink) Az átvitel típusai: stream socket (SOCK_STREAM): kapcsolat-orientált byte-stream: sorrendtartó, megbízható, ismétlődés nélküli, nincs üzenethatár. Tényleges adatküldés előtt a kapcsolatot fel kell építeni. datagram socket (SOCK_DGRAM) : kapcsolat nélküli, üzenet-alapú, nem megbízható egyszerű (raw) socket (SOCK_RAW) : közvetlen hozzáférés a protokollhoz, annak adminisztrációjához, így a felhasználó építhet saját rétegeket sorrendes socket (SOCK_SEQPACKET) hasonló a streamhez, de - 5 -
6 TCP/IP socket programozói interfész 6 üzenethatárokat is közvetíti, kapcsolat-orientált, megbízható megbízható üzenet socket (SOCK_RDM: reliably delivered message socket): megbízható, kapcsolat nélküli, üzenet-orientált Nem minden domain tartalmaz minden socket típusra megvalósítást. Átvitel típusa Kapcsolat sorrendtartó megbízható ismétlés üzenethatár nélk. SOCK_STREAM -orientált i i i n SOCK_DGRAM nélküli n n n i SOCK_RAW SOCK_SEQPACKET -orientált i i i i SOCK_RDM nélküli n i n i Protokoll-default-ok Internet protokollok (AF_INET és AF_INET6) esetén: AF_LOCAL AF_INET AF_INET6 SOCK_STREAM + TCP TCP SOCK_DGRAM + UDP UDP SOCK_RAW Protokolltól függően Protokolltól függően SOCK_SEQPACKET IPv4/ICMPv4/IGMPv4 IPv6/ICMPv A kapcsolat-orientált idődiagram: Kliens Hálózat Szerver socket () socket () bind () bind () listen () connect () Kapcsolat felvétel accept() write () send() sendto() sendmsg() read () Blokkolódik, míg kérést nem kap read () recv() recvfrom() recvmsg() feldolgozás write () 2. ábra: Kapcsolatorientált működés idődiagramja - 6 -
7 TCP/IP socket programozói interfész A kapcsolat-nélküli idődiagram: Kliens Hálózat Szerver socket() socket() bind() bind() sendto() sendmsg() Kérés + adat recvfrom() SSI recvfrom() recvmsg()... sendto() SSI:SocketService Interface 3. ábra: Kapcsolat nélküli működés idődiagramja Minden "kapcsolatot" egy 5-ös azonosít: {Protokoll, helyi gépcím, helyi processz portszám, távoli gépcím, távoli processz portszám Az 5-ös csoport megváltoztatására a a következő rendszerhívások állnak rendelkezésre attól függően, hogy milyen szerepet játszik a program: protokoll helyi gépcím, helyi process portszám távoli gépcím, távoli processz portszám Kapcsolat orientált szerver socket() bind() listen(),accept() Kapcsolat orientált kliens socket() bind() connect() Kapcsolat nélküli szerver socket() bind() recvfrom() Kapcsolat nélküli kliens socket() bind() sendto() Lekérdezésére a getsockname() és a getpeername() rendszerhívások szolgálnak. Az accept() rendszerhívás előtt a szerver socket távoli gépcíme és távoli processz portszáma egy "mindent elfogadó értéket" tartalmaz. Az accept() hatására egy újabb socket keletkezik, és a régi socket akár képes lehet újabb kérés kiszolgálására
8 TCP/IP socket programozói interfész PROGRAMOZÓI INTERFÉSZ Socket létrehozása Socket #include <sys/types.h> #include <sys/socket.h> int socket (int family, int type, int protocol); = file leíró: OK, -1: hiba (kódja: errno) family: communications domain: két konstans-készlet adhatja meg, melyek páronként azonosak: address family: cím formátuma protocol family: hálózati architektúra : UNIX/Local domain: PF_UNIX = AF_UNIX Internet domain: PF_INET = AF_INET type: socket típusa: jelenleg csak SOCK_STREAM, SOCK_DGRAM, SOCK_RAW van. protocol: a használandó protokoll típusa: 0: a default a family és a type szerint, vagy IPPROTO_ICMP, IPPROTO_IGMP, IPPROTO_TCP, IPPROTO_UDP,stb. (<netinet/in.h> -ban) Socket hozzárendelése hálózati címhez Létrehozása után, elsősorban szervernél kell, e nélkül (pl. a kliensnél) automatikusan egy egyedi címhez rendelődik Bind int bind (int fd, struct sockaddr *addrp, int alen); Fd: File leíró, melyet socket() adott, Addrp: Címleíró struktúra címe: struct sockaddr { ushort_t sa_family; /* mint socket()-ben 2 byte */ char sa_data [14]; ; - 8 -
9 TCP/IP socket programozói interfész 9 vagy BSD4.4-ben: struct sockaddr { u_char sa_len; u_char sa_family; char sa_data [14]; De igazából 16 byte-nál hosszabb is lehet, de ilyenné kell a címét cast-olni. A socket hosszának lekérdezésére és beállítására a BSD 4.4-ben sa_len szolgál Socket lezárása Close close (int fd) Ekkor a még át nem adott adatok elveszhetnek, vagy még átvehetőek, lásd SO_LINGER opció Shutdown Csak kapcsolat-orientált (connected) socket-re egyirányú lezárása socketnek. int shutdown (int fd, int how); /* =0 :OK, -1 :hiba */ how = 0: nem lehet több adatot átvenni a socket-től, = 1: nem lehet több adatot átadni a socket-nek, = 2: egyik sem megy (ekvivalens a close()-al) Opciók beállítása ill. lekérdezése Melyeket a socket réteg dolgoz fel, így protokoll-függetlenek. int setsocketopt (int fd, int level, int cmd, char *arg, int len); int getsocketopt (int fd, int level, int cmd, char *arg, int *lenp); level: milyen szintű működést állítunk be (pl. SOL_SOCKET: socketét) Pl. ha cmd = SO_ERROR, arg által mutatott int-be leteszi a hibakódot. Következőkben a legfontosabbakat soroljuk fel: level opciónév get set Leírás mód adat - 9 -
10 TCP/IP socket programozói interfész 10 IPPROTO_IP IPPROTO_TCP SOL_SOCKET IP_OPTIONS + + IP opciókvaló hozzáférés beállít/leolvas void * IP_INCLFDR + + teljes IP header hozzáférhető engedélyez/tilt int TCP_MAXSEG + + maximális TCP szegmens méret beállít/leolvas int TCP adat azonnali TCP_NODELAY + + elküldése (nagy késleltetésű hálózaton ne engedélyez/tilt int alkalmazzuk) SO_BROADCAS T + + SO_DEBUG + + SO_DONTROU TE SO_ERROR + SO_KEEPALIV E Broadcast engedélyezése/tiltása Debuggolás engedélyezése (Kernel specifikus üzenetek) engedélyez/tilt engedélyez/tilt + + Ne routold az üzenetet. engedélyez/tilt int + + SO_LINGER + + SO_OOBINLIN E + + SO_RCVBUF + + SO_SNDBUF + + SO_RCVLOWA T SO_SNDLOWA T SO_RCVTIMEO + + A socket hibalekérdezése. Akkor is küldj, ha nincs mit küldeni, különben a socket lebomlik. close() után mennyi ideig probálkozzon az elküldetlen adat elküldésével. Az OOB adatok is kerüljenek az inputra, vagy külön kelljen feldolgozni. Az olvasási buffer méretének beállítása (A teljesítmény változtatásának eszköze) Az irási buffer méretének beállítása (A teljesítmény változtatásának eszköze) olvasási buffer alsóértéke (byte-ban), ami meghatározza, hogy mikor kell a socketnek feladni a megérkezett adatot irási buffer alsóértéke (byte-ban), ami meghatározza, hogy mikor kell a hálózatnak átadni az elküldendő adatot olvasási buffer alsóértéke (időben), ami meghatározza, hogy mikor kell a socketnek feladni a megérkezett adatot beállít/leolvas engedélyez/tilt beállít/leolvas engedélyez/tilt beállít/leolvas beállít/leolvas beállít/leolvas beállít/leolvas beállít/leolvas int int int int struct linger int int int int int struct timeval SO_SNDTIMEO + + irási buffer alsóértéke beállít/leolvas struct timeval
11 TCP/IP socket programozói interfész 11 SO_REUSEADD R SO_TYPE IPv 6 (időben), ami meghatározza, hogy mikor kell a hálózatnak átadni az elküldendő adatot engedélyezi, hogy az 5- öst azonnal újra lehessen használni ami azonosítja a kapcsolatot. A socket típusának lekérdezése ill. cím konvertálása engedélyez/tilt beállít/leolvas int int Kapcsolat létrehozása Két socket közötti kapcsolat létrehozása, tipikusan kliensben; stream: virtuális áramkör jön étre datagram: megjegyzi a célcímet, azt nem kell az egyes átviteleknél később külön megadni, ill. átvenni csak a megadott címről jött adatokat lehet. (Ha nincs bind-elve, connect() egy új címhez rendeli hozzá a socket-et.) Connect int connect (int fd, struct sockaddr *addrp, int alen); addrp: cél-cím (címzett címe) fd, alen: mint bind() -nél = 0: OK, -1 : hiba, de a cím hozzárendelése (bind) ekkor is megmarad Connect kérések elfogadási szándékának jelzése és a queue méretének beállítása(a szerver oldalon): Csak kapcsolat-orientált socket-nél (SOCK_STREAM, SOCK_SEQPACKET) int listen (int fd, int backlog); backlog: hány feldolgozatlan connect kérést tárol (Nem teljesen, hanem egy exponenciális képlet szerint számolja ki.) Ilyenkor egy ún. passzív socket keletkezik Connect elfogadása (a szerver oldalon): Csak kapcsolat-orientált socket-nél. int accept (in fd, struct sockaddr *addrp, int *alenp); addrp:ide teszi le a kliens címét, ha nem érdekel, NULL
12 TCP/IP socket programozói interfész 12 *alenp:híváskor: az addrp-ként átadott buffer hossza, visszatéréskor: a kapott cím hossza. Ha nem érdekel, alenp==null = -1, ha hiba, = új file leíró, ha sikeres, mely a kapott connect hívásnak felel meg, örökli a bemeneti fd tulajdonságait, pl. típus, protokoll. A bemeneti fd nem vesz részt az így elfogadott hívás további műveleteiben, hanem újabb accept hívások fogadására használható. Ha nincs éppen várakozó connect kérés, accept felfüggeszti a hívó processt. Nem tud eleve elutasítani bizonyos hívásokat, de elfogadás (accept) után azonnal lezárhatjuk azokat Adatok küldése Kapcsolat-orientált esetben használható a write() is, ezzel az átvitel a fileműveletekhez hasonlóan végezhető, sőt a processz esetleg nem is tudja, hogy éppen socket-en át kommunikál. További eszközök csak kapcsolat-orientált socket-re: Send int send (int fd, char *buf, int len, int flags); = -1: hiba, >= 0: átvitt byte-szám flags: MSG_OOB: out-of-band: nagyobb prioritással viszi át, ha a protokoll támogatja ezt MSG_DONTROUTE: ha lehet, közvetlenül a címzettnek küldi, nem használ útvonal valasztást (csak lokális hálózaton működik). Kapcsolat nélküli socket-re is: Sendto int sendto (int fd, char *buf, int len, int flags, /* mint send() */ struct sockaddr *addrp, int alen); /* mint connect() */ = -1: hiba, >= 0 : átvitt byte-szám
13 TCP/IP socket programozói interfész 13 Legáltalánosabb: Sendmsg int sendmsg (int fd, struct msghdr *msgp, int flags); Visszatérési érték, fd, flags: mint send()-nél struct msghdr { caddr_t msg_name; /* cél-cím, elhagyható (char *) */ int msg_namelen; /* ennek hossza */ iovec_t *msg_iov; /* átviend területek leírása */ int msg_iovlen; /* ennek elemszáma, <= MSG_MAXIOVLEN */ caddr_t msg_accrights; /* file leírók UNIX domain esetén */ int msg_accrno; /* ennek elemszáma */ ; Ebben: typedef struct iovec { /* egy átviend terület leírása */ caddr_t iov_base; /* terület címe */ int iov_len; /* terület hossza */ iovec_t; /* típusnév */ Célcímet SOCK_STREAM esetén figyelmen kívül hagyja, előtte connect() kell. SOCK_DGRAM esetén a célcím szerintire küldi, ha nincs célcím (pl. write(), send()) és előzőleg volt connect(), az ott megadottra Adatok átvétele Kapcsolat-orientált esetben használható a read() is, lásd küldés. Az itt ismertetendő többi eszköz bármelyik fajta socket-hez használható. SOCK_STREAM esetén előbb connect()-elni kell. Ha adat előbb megérkezik, minthogy a címzett bind()-elné a socket-jét, a datagram-ot eldobja Recv int recv (int fd, char *buf, int maxlen, int flags); >=0: kapott byte-szám, = -1: hiba flags: MSG_OOB: csak ilyen flag-el küldött adatokat vesz át, egyébként bármelyiket, az ilyennel küldötteket előbb kapja meg, mint a többit MSG_PEEK: az átvett adatokat nem törli a bufferből, csak újabb, ilyen flag nélküli hívásnál Datagram socket esetén ezzel nem tudható meg, ki küldte
14 TCP/IP socket programozói interfész Recvfrom int recvfrom (inf fd, char *buf, int maxlen, int flags, /* mint recv() */ struct sockaddr *addrp, int *alenp); /* mint accept() */ = mint recv() *addrp: innen jött, ide lehet a választ küldeni Recvmsg int recvmsg (int fd, struct msghdr *msgp, int flags); Paraméterek: mint sendmsg(), visszatérési érték: mint recv() Saját socket-cím lekérdezése (pl. gyerek-folyamatban): Getsockname int getsockname (int fd, struct sockaddr *addrp, int *alen); = 0 :OK, =-1: hiba; paraméterek: mint accept() Partner socket-címének lekérdezése: Getpeername int getpeername (int fd, struct sockaddr *addrp, int *alen); = 0: OK, =-1: hiba; paraméterek: mint accept() A port-címeket általában privilegizált felhasználók kaphatják csak meg Név <-> cím fordítás Rutinkészlet, a cím egyes részeinek fordítására, az /etc könyvtárban található megfelelő file-ok alapján és a DNS alapján. Mindegyik valamilyen struktúra címét adja vissza, amely a rutinban definiált statikus adatra mutat. Újabb hívás e területet felülírja, ezért ha később is szükség van rá, le kell másolni Host név <---> host Internet cím fordítás: File: /etc/hosts Ha van DNS a hálózaton, akkor ott is keresheti
15 TCP/IP socket programozói interfész 15 Paraméterek átvételéhez: struct hostent { /* definíciója <netdb.h> -ban */ char * h_name; /* host hivatalos neve */ char ** h_aliases; /* host-név alias lista, végén 0 pointer */ int h_addrtype; /* cím-típus, kés bbi b vítéshez, most: AF_INET */ int h_length; /* kés bbi b vítéshez, most: 4 */ char ** h_addr_list; /* hálózati címek listája, egy hostnak több is lehet, binárisan, nagy-kicsi byte-sorrendben */ ; Gethostent #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> struct hostent * gethostent (void); /etc/hosts file megnyitása, ha első hívás, első ill. következő bejegyzés olvasása, végül, vagy hiba esetén 0-t ad Endhostent void endhostent (void); /etc/hosts file olvasásának lezárása Gethostbyaddr struct hostent * gethostbyaddr (char *addrp, int len, int type); Cím szerinti keresés /etc/hosts file-ban, = struct cím, ha megvan, =0, ha nincs, ekkor h_errno = HOST_NOT_FOUND jelzi az egyetlen lehetséges hibaokot, de ha van egy un. DNS is, mely domain name service-t csinál, akkor azt is használja a kereséshez, ekkor h_errno = TRY_AGAIN: átmeneti hiba, NO_RECOVERY: fatális hiba, NO_DATA: ez sem találja Utána lezárja a file-t, ha a stayopen értéke nulla volt sethostent()-ben, ezért újabb hostent() hívás ismét elölről kezdi olvasni a file-t Gethostbyname struct hostent * gethostbyname (char *name); Név szerinti keresés /etc/hosts file-ban, név eredeti vagy bármelyik alias is lehet
16 TCP/IP socket programozói interfész 16 = mint gethostbyaddr() esetén, ez is lezárja, ha Sethostent void sethostent (int stayopen); Visszaáll a file elejére, és ha a stayopen!= 0 egyszer is, a következő endhostent() hívásig nem zárja majd le gethostbyaddr() ill. gethostbyname() végrehajtása után, azaz az előző stayopen!=0 hatása megmarad getaddrinfo (megírandó) Hálózat név <---> hálózat-szám fordítás: File: /etc/networks vagy DNS Lekérdezések: mint...host... fv.-eknél: struct netent * getnetent (void); void endnetent (void); struct netent * getnetbyaddr (long net, int type); struct netent * getnetbyname (char *name); void setnetent (int stayopen); Protocol név <---> protocol-szám fordítás: File: /etc/protocols Paraméterek átvételéhez: struct protent { /* definíciója <netdb.h> -ban */ char * p_name; /* hivatalos protocol-név */ char ** p_aliases; /* protocol-név alias lista, végén 0 pointer */ int p_proto; /* protocol szám */ ; Lekérdezések: mint...host... fv.-eknél: struct protent * getprotent (void); void endprotent (void); struct protent * getprotbynumber (int protno); struct protent * getprotbyname (char *name); void setprotent (int stayopen);
17 TCP/IP socket programozói interfész Szolgáltatás név <---> port-szám fordítás: File: /etc/services Paraméterek átvételéhez: struct servent { /* definíciója <netdb.h> -ban */ char * s_name; /* hivatalos szolgáltatás-név */ char ** s_aliases; /* szolg.-név alias lista, végén 0 pointer */ int s_port; /* port szám */ char * s_proto; /* használandó protokoll, ha NULL, csak szolgáltatás-nevet használ */ ; Lekérdezések: mint...host... fv.-eknél: struct protent * getservent (void); void endservent (void); struct servent * getservbyport (int port, char *proto); struct servent * getservbyname (char *name, char *proto); void setservent (int stayopen); ahol proto: protokoll névre mutat Pl. a helyi hálózaton lévő gépek nevének, címének lekérdezése: typedef struct in_addr { /* Internet address */ union { struct { uchar_t s_b1, s_b2, s_b3, s_b4; S_un_b; /* bytes */ struct { ushort_t s_w1, s_w2; S_un_w; /* 2-B words */ ulong_t S_addr; /* 4-B word */ S_un; /* union név */ in_addr_t; /* típusnév */ typedef struct hostelement { /* Lánc egy eleme */ struct hostelement * next; /* => következ */ char * name; /* host neve */ in_addr_t inaddr; /* internet cím */ hostelement_t; /* típusnév */ struct utsname { /* host rendszer adatai [26] 382. old. */ char sysname [SYS_NMLN]; /* rendszer neve */ char nodename [SYS_NMLN]; /* host neve */ char release [SYS_NMLN]; /* op. r. neve */ char version [SYS_NMLN]; /* verzió */ char machine [SYS_NMLN]; /* géptípus */ ; hostelement_t * gethosts (void) /* Host-ok adatainak kigy jtése */ { struct hostent *hp; /* => egy bejegyzés a host listában */ hostelement_t *rhp, *nhp; /* => lánc eleje, új láncelem */ struct utsname u; /* saját név megszerzéséhez */ in_addr_t *ip; /* => internet address */ rhp=0; /* üres lánc */
18 TCP/IP socket programozói interfész 18 if (uname(&u) < 0) error("uname() hiba"); /* saját adatok lekérd. */ while ((hp=gethostent())!=0) { /* következ host olvasása */ if (!strcmp(hp->h_name, "localhost") /* saját maga, visszahurkoláshoz */!strcmp(hp->h_name, "anyhost") /* broadcast üzenethez */!strcmp(hp->h_name, u.nodename)) /* saját maga */ continue; if (! (nhp = (hostelement_t*) malloc (sizeof(hostelement_t))) ) error ("Nincs elég memória"); ip = (in_addr_t*) *(hp->h_addr_list); /* 1. Internet cím címe */ nhp->inaddr.s_addr = ip->s_addr; /* In. cím a láncelembe */ nhp->name = strdup(hp->h_name); /* host név másol. */ nhp->next = rhp; rhp = nhp; /* beláncolás el re */ /* while */ endhostent(); /* olvasás lezárása */ return rhp; 1.6 I/O MULTIPLEXELÉS A file illetve socket írási-olvasási kérések együtt multiplexelhetőek szinkron módon a select() rendszerhívással, amelynek formátuma a következő: #include <sys/time.h> #include <sys/select.h> int select(int nfds, fd_set *readfds, fd_set *exceptfds, struct timeval *timeout); *writefds,fd_set A függvény nfds argumentum az utána következő három argumentumban előforduló file leírók maximális száma. A második, harmadik és negyedik argument három fileleíró halmazra mutat: az elsőbe azok a fileleírók vannak beállítva, amelyekre olvasási feltétel bekövetkeztét várjuk, a másodikba az írási, a harmadikba a kivételes műveletre váró fileleírók vannak bemaszkolva. Kivételes műveletek alatt Out-of-Band adatok érkezését, vagy signal érkezését kell érteni, erről az Out-of-Band című alfejezetben lesz szó. Akármelyik maszk lehet NULL is. A maszkok long integer értékek, bennük a file leírók bitek. Ha az adott gépen a long integer 32 bites, akkor maximum 32 file leírót tudunk a select() hívással szinkron módon multiplexelni. Ennek kikerlésére több trükkös megoldás létezik. A file leírók maszkolására az alábbi makrók szolgálnak: void FD_SET(int fd, fd_set &fdset);a fileleíró beállítása a maszkban void FD_CLR(int fd, fd_set &fdset);a fileleíró törlésre a maszkból int FD_ISSET(int fd, fd_set &fdset);a fileleíró szerepel-e a maszkban void FD_ZERO(fd_set &fdset);az egész maszk törlése, inicializálása
19 TCP/IP socket programozói interfész 19 A timeout argumentum a hívásban az eseményekre való maximális várakozás idejét hivatott beállítani. Ha nincs definiálva (NULL), akkor a select() blokkolódik bármelyik beállított fileleírón egy esemény bekövetkeztéig, vagy egy SIGIO illetve SIGURG signal érkezéséig. A SIGIO és SIGURG szignálok az aszinkron multiplexelést hivatottak biztosítani, erről majd az Aszinkron socket-ek című fejezetben lesz szó. Ha a timeout 0, akkor a select() lekérdezi a beállított fileleírókra érkezett eseményeket és azonnal visszatér. 1.7 OUT-OF-BAND ADATOK TCP használata esetén lehetőség van két processz között a kétirányú (duplex) csatorna mellet egy logikailag külön kezelt "jelzési csatornát" használni, úgynevezett Out-of-Band (OOB) adatokat küldeni. Az OOB adatok a többi adattól függetlenül küldhetőek, send(3n) rendszer-hívás harmadik, flags argumentumának MSG_OOB flag beállításával. Ezt a jelzési csatornát használja a telnet és az rlogin vezérlő adatok továbbítására. 1.8 NEM-BLOKKOLÓDÓ SOCKET-EK Néhány alkalmazásnál követelmény, hogy a socket-ekre vonatkozó rendszerhívások ne blokkolódjanak. Egy olyan kérés, amely nem tud végrahajtódni azonnal, mert várakozni kell a processznek a kérés végrehajtására, nem mindig alkalmazható real-time körülmények között. Egy már létrehozott és összekötött socket-et az fcntl(2) rendszerhívással tehetünk nem-blokkolódóvá. Az alábbi példa e hívás használatát mutatja be: #include <fcntl.h> #include <sys/file.h> int fileflags; int sock;... sock= socket(af_inet, SOCK_STREAM, 0);... if(fileflags= fcntl(sock, F_GETFL, 0)== -1) { perror( Get file flags ); exit(-1); if(fcntl(sock, F_SETFL, fileflags FNDELAY)== -1) {
20 TCP/IP socket programozói interfész 20 perror( Set file to non-nlocking ); exit(-1);... Ha egy nem-blokkolódó socket-en I/O történik, ellenőrizni kell az errno hibaváltozó tartalmát, EWOULDBLOCK hiba keletkezhet egy olyan hívásnál, amelyik rendesen (ezen opció beállítása nélkül) blokkolódna. Az accept(3n), connect(3n), send(3n), recv(3n), read(2) és write(2) hívásoknál fordulhat elő. Ha például a write() hívás nem tud teljesen befejeződni (nem tudja az adott socketre kiírni az összes byte-ot), a visszatérési érték a sikeresen elküldött byte-ok száma lesz. A nem blokkolódó tulajdonságot bármikor be lehet állítani és el lehet venni. 1.9 INTERRUPT/ESEMÉNY VEZÉRELT SOCKET-EK (ASZINKRON SOCKETEK) Néhány esetben szükség lehet eseményvezérlés jellegű hálózati kommunikációra. Erre szolgálnak az aszinkron socket-et. A processz ilyenkor SIGIO szignált kap, ha a socket (vagy file) befejezte az adott I/O műveletet. E szignál elkapásához és feldolgozásához három dolgot kell megtenni: 1. Meg kell adni, hogy a processzben a SIGIO szignált melyik függvény fogja lekezelni. Ezt a signal(2), sigset(2), (sigvec(2b) a BSD kompatibilis UNIX rendszerek esetén) rendszerhívásokkal tehetjük meg. 2. Hozzá kell rendelni az adott socket-hez a processz ID, vagy processz csoport ID az fcntl(2) hívással. 3. Át kell állítani a socket-et aszinkron üzemmódba. A következő példa egy sock socket-re állítja be, hogy a vétel pillanatában az alkalmazás a my_handler() függvénnyel kezelje a beérkező SIGIO szignált: #include <signal.h> #include <fcntl.h> #include <sys/file.h>... signal(sigio, my_handler); sigset(sigio, my_handler); if(fcntl(sock, F_SETOWN, getpid())< 0) { perror( Set file to asynchronous ); exit(-1); Out-of-Band adatok aszinkron kezeléséhez hasonlóan be kell állítani a SIGURG szignál fogadását is programunkban. A kövtekző példa socket-et aszinkron üzemmódba állítását mutatja be:
21 TCP/IP socket programozói interfész 21 #include <fcntl.h> #include <sys/file.h> int fileflags; int sock;... sock= socket(af_inet, SOCK_STREAM, 0);... if(fileflags= fcntl(sock, F_GETFL, 0)== -1) { perror( Get file flags ); exit(-1); if(fcntl(sock, F_SETFL, fileflags FNDELAY FASYNC)== -1) { perror( Set file to non-blocking and asynchronous ); exit(-1); Az aszinron üzemmódba helyezés után a send(3n), recv(3n), read(2) és write(2) hívásokat használhatjuk, ha beállítottuk a SIGIO szignál lekezelését programunkban A HÁLÓZATI KONFIGURÁCIÓ MEGHATÁROZÁSA A UNIX ioctl(2) rendszerhívása SIOCGIFCONF, SIOCGIFBRDADDR és SIOCGIFFLAGS beállításai lehetőséget nyújtanak az interfészek paramétereinek lekérdezésre,az összes kapcsolódó hálózat broadcast címének lekérdezésére, ezzel kideríthetjük, támogatja-e az adott hálózati interfész a broadcast üzenetek küldését, vagy sem, ha igen milyen broadcast címre küldhetünk broadcast üzeneteket a sendto(3n) rendszerhívás segítségével BROADCAST ÜZENETEK KÜLDÉSE Internet domainű datagram típusú socket-ek broadcast és multicast üzeneteket is küldhetnek, hogy a kapcsolódó hálózat összes host-ját vagy a gépek egy csoportját elérjék. A broadcast üzenetek igen leterhelhetik a hálózatot, hiszen minden hálózatban levő gépet az üzenetek feldolgozására kényszerítenek. Ha egy host több hálózatra is csatlakozik, akkor a send(3n) csak az egyik hálózatra tud broadcast üzeneteket kibocsátani, kivéve, ha a speciális INADDR_BROADCAST címhez rendeljük hozzá a socket-et (bind(3n)). Az INADDR_ANY és az
22 TCP/IP socket programozói interfész 22 INADDR_BROADCAST konstansok a netinet/in.h header file-ban vannak definiálva MULTICAST ÜZENETEK KÜLDÉSE ÉS FOGADÁSA (megírandó) 2 példák: 2.1 UNICAST PÉLDAPROGRAMOK Datagram Szerver példa: #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> /* * This program creates a datagram socket, binds a name to it, then reads * from the socket. */ main() { int sock, length; struct sockaddr_in name; char buf[1024]; /* Create socket from which to read. */ sock = socket(af_inet, SOCK_DGRAM, 0); if (sock < 0) { perror("opening datagram socket");
23 TCP/IP socket programozói interfész 23 /* Create name with wildcards. */ name.sin_family = AF_INET; name.sin_addr.s_addr = INADDR_ANY; name.sin_port = 0; if (bind(sock, &name, sizeof(name))) { perror("binding datagram socket"); /* Find assigned port value and print it out. */ length = sizeof(name); if (getsockname(sock, &name, &length)) { perror("getting socket name"); printf("socket has port #%d\n", /* Read from the socket */ if (read(sock, buf, 1024) < 0) perror("receiving datagram packet"); printf("-->%s\n", buf); close(sock); ntohs(name.sin_port)); Datagram kliens példa #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <stdio.h> #define DATA "The sea is calm tonight, the tide is full..." /* * Here I send a datagram to a receiver whose name I get from the command * line arguments. The form of the command line is * * dgr_cli hostname portnumber message */ main(argc, argv) int argc; char *argv[]; {
24 TCP/IP socket programozói interfész 24 int sock; struct sockaddr_in name; struct hostent *hp, *gethostbyname(); /* Create socket on which to send. */ sock = socket(af_inet, SOCK_DGRAM, 0); if (sock < 0) { perror("opening datagram socket"); /* * Construct name, with no wildcards, of the socket to send to. * Gethostbyname() returns a structure including the network address * of the specified host. The port number is taken from the command * line. */ hp = gethostbyname(argv[1]); if (hp == 0) { fprintf(stderr, "%s: unknown host\n", argv[1]); exit(2); bcopy(hp->h_addr, &name.sin_addr, hp->h_length); /* Get IP address BSD 4.2 way, indeed we receive a pointer to pointer */ name.sin_family = AF_INET; name.sin_port = htons(atoi(argv[2])); /* Send message. */ if (sendto(sock, argv[3], strlen(argv[3]), 0, &name, sizeof(name)) < 0) perror("sending datagram message"); close(sock); Stream szerver példa #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <stdio.h> #define TRUE 1 /* * This program creates a socket and then begins an infinite loop. Each time * through the loop it accepts a connection and prints out messages from it
25 TCP/IP socket programozói interfész 25 * When the connection breaks, or a termination message comes through, the * program accepts a new connection. */ main() { int sock, length; struct sockaddr_in server; int msgsock; char buf[1024]; int rval; int i; /* Create socket */ sock = socket(af_inet, SOCK_STREAM, 0); if (sock < 0) { perror("opening stream socket"); /* Name socket using wildcards */ server.sin_family = AF_INET; server.sin_addr.s_addr = INADDR_ANY; server.sin_port = 0; if (bind(sock, &server, sizeof(server))) { perror("binding stream socket"); /* Find out assigned port number and print it out */ length = sizeof(server); if (getsockname(sock, &server, &length)) { perror("getting socket name"); printf("socket has port #%d\n", ntohs(server.sin_port)); /* Start accepting connections */ listen(sock, 5); do { msgsock = accept(sock, 0, 0); if (msgsock == -1) perror("accept"); else do { bzero(buf, sizeof(buf));
26 TCP/IP socket programozói interfész 26 if ((rval = read(msgsock, buf, 1024)) < 0) perror("reading stream message"); i = 0; if (rval == 0) printf("ending connection\n"); else printf("-->%s\n", buf); while (rval!= 0); close(msgsock); while (TRUE); /* * Since this program has an infinite loop, the socket "sock" is * never explicitly closed. However, all sockets will be closed * automatically when a process is killed or terminates normally. */ Stream kliens példa #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <stdio.h> /* * This program creates a socket and initiates a connection with the socket * given in the command line. One message is sent over the connection and * then the socket is closed, ending the connection. The form of the command * line is streamwrite hostname portnumber */ main(argc, argv) int argc; char *argv[]; { int sock; struct sockaddr_in server; struct hostent *hp, *gethostbyname(); char buf[1024]; /* Create socket */ sock = socket(af_inet, SOCK_STREAM, 0);
27 TCP/IP socket programozói interfész 27 if (sock < 0) { perror("opening stream socket"); /* Connect socket using name specified by command line. */ server.sin_family = AF_INET; hp = gethostbyname(argv[1]); if (hp == 0) { fprintf(stderr, "%s: unknown host\n", argv[1]); exit(2); bcopy(hp->h_addr, &server.sin_addr, hp->h_length); /* Get IP address BSD 4.2 way, indeed we receive a pointer to pointer */ server.sin_port = htons(atoi(argv[2])); if (connect(sock, &server, sizeof(server)) < 0) { perror("connecting stream socket"); if (write(sock, argv[3], strlen(argv[3])) < 0) perror("writing on stream socket"); close(sock); 2.2 MULTICAST PÉLDA PROGRAMOK Küldő Program /* * sender.c -- multicasts "hello, world!" to a multicast group once a second * */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <time.h> #include <string.h>
28 TCP/IP socket programozói interfész 28 #include <stdio.h> #define HELLO_PORT 6789 #define HELLO_GROUP " " main(int argc, char *argv[]) { struct sockaddr_in addr; int fd, cnt; struct ip_mreq mreq; char *message="hello, World!"; /* create what looks like an ordinary UDP socket */ if ((fd=socket(af_inet,sock_dgram,0)) < 0) { perror("socket"); /* set up destination address */ memset(&addr,0,sizeof(addr)); addr.sin_family=af_inet; addr.sin_addr.s_addr=inet_addr(hello_group); addr.sin_port=htons(hello_port); /* now just sendto() our destination! */ while (1) { if (sendto(fd,message,sizeof(message),0,(struct sockaddr *) &addr, sizeof(addr)) < 0) { perror("sendto"); sleep(1); Hallgató Program /* * listener.c -- joins a multicast group and echoes all data it receives from * the group to its stdout... * */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <time.h> #include <string.h> #include <stdio.h> #define HELLO_PORT
29 TCP/IP socket programozói interfész 29 #define HELLO_GROUP " " #define MSGBUFSIZE 256 main(int argc, char *argv[]) { struct sockaddr_in addr; int fd, nbytes,addrlen; struct ip_mreq mreq; char msgbuf[msgbufsize]; /* create what looks like an ordinary UDP socket */ if ((fd=socket(af_inet,sock_dgram,0)) < 0) { perror("socket"); /* set up destination address */ memset(&addr,0,sizeof(addr)); addr.sin_family=af_inet; addr.sin_addr.s_addr=htonl(inaddr_any); /* N.B.: differs from sender */ addr.sin_port=htons(hello_port); /* bind to receive address */ if (bind(fd,(struct sockaddr *) &addr,sizeof(addr)) < 0) { perror("bind"); /* use setsockopt() to request that the kernel join a multicast group */ mreq.imr_multiaddr.s_addr=inet_addr(hello_group); mreq.imr_interface.s_addr=htonl(inaddr_any); if (setsockopt(fd,ipproto_ip,ip_add_membership,&mreq,sizeof(mreq)) < 0) { perror("setsockopt"); { /* now just enter a read-print loop */ while (1) { addrlen=sizeof(addr); if ((nbytes=recvfrom(fd,msgbuf,msgbufsize,0, (struct sockaddr *) &addr,&addrlen)) < 0) perror("recvfrom"); puts(message);
Dr. Varga Imre. Socket-programozás. C nyelven
Dr. Varga Imre Socket-programozás C nyelven Főbb pontok A kommunikáció alapjai Adatstruktúrák és típusok Konvertáló függvények Rendszerhívások Információs függvények Kliens & Server Server szolgáltatást
Dr. Varga Imre Debreceni Egyetem, Informatikai Kar. Socket-programozás. C nyelven, Linux alatt
Dr. Varga Imre Debreceni Egyetem, Informatikai Kar Socket-programozás C nyelven, Linux alatt 2019.03.02 Főbb pontok A kommunikáció alapjai Adatstruktúrák és típusok Konvertáló függvények Rendszerhívások
Számítógépes hálózatok
Számítógépes hálózatok 7. gyakorlat: SOCKET programozás (C) Gyakorlatvezető: Ács Zoltán Hatodik házi-feladat 1/2 ADAPTÍV FA Tekintsünk 16 állomást, melyek adaptív fabejárás protokollal visznek át csomagokat.
Hálózati architektúrák laborgyakorlat
Hálózati architektúrák laborgyakorlat 10. hét Dr. Orosz Péter, Skopkó Tamás 2012. szeptember A Unix (C) socket A kommunikációt lehetővé tevő programozási eszköz UNIX fájlleíró (ld. minden egy fájl filozófia)
Számítógépes hálózatok I.
Számítógépes hálózatok I. 2.gyakorlat Rétegmodellek Socket programozás bevezető Laki Sándor lakis@inf.elte.hu http://lakis.web.elte.hu Sándor Laki (C) Számítógépes hálózatok I. 1 Miért is jók a rétegek?
Socket programozás Példák
Socket programozás Példák Áttekintés Client Server socket socket bind connect Connection request listen accept Client / Server Session write read read write close EOF read close 3 Select demo Beej s guide
Számítógépes Hálózatok. 5. gyakorlat
Számítógépes Hálózatok 5. gyakorlat PYTHON ALAPOK V. Socket programozás, UDP 2 Óra eleji kiszh Elérés: https://canvas.elte.hu Számítógépes Hálózatok Gyakorlat 1 3 A kommunikációs csatorna kétféle típusa
Számítógépes hálózatok
Számítógépes hálózatok HETEDIK ELŐADÁS SOCKET programozás C/C++ nyelven AZ ELŐADÁS DIÁKAT KÉSZÍTETTE: ÁCS ZOLTÁN Hálózati programozás bevezetés Általában egy klasszikus hálózati alkalmazás két fő részre
FTP: Elkülönített kontroll- és adatkapcsolat. FTP: File Transfer Protocol
Áttekintés Számítógépes Hálózatok 2010 2. Hálózati felhasználások -- socket programozás Bruce Maggs és Srinivasan Seshan (CMU) fóliái alapján Felhasználói réteg Kliens-szerver Felhasználás igényei Háttér
Számítógép-hálózatok: 4. Labor. TCP kliens. A gyakorlat célja:
TCP kliens A gyakorlat célja: TCP kliens alkalmazás írásának az elsajátítása TCP protokoll tulajdonságainak a tanulmányozása Elméleti bevezető: TCP tulajdonságai: A TCP az UDP-vel ellentétben egy összeköttés
Socketek programozása
Socketek programozása Moldován István Sonkoly Balázs BME TMIT Áttekintés Socketek általánosan Fontosabb rendszerhívások és struktúrák Socket programozási technikák Példák Socketek cél: IPC (Inter-Process
Számítógépes Hálózatok GY 3-4.hét
Számítógépes Hálózatok GY 3-4.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu 1 Teszt canvas.elte.hu Kód:
Számítógépes Hálózatok 2012
Számítógépes Hálózatok 2012 8. Hálózati felhasználások -- socket programozás Bruce Maggs és Srinivasan Seshan (CMU) fóliái alapján 1 Áttekintés Felhasználói réteg Kliens-szerver Felhasználás igényei Háttér
Számítógépes Hálózatok. 3. gyakorlat
Számítógépes Hálózatok 3. gyakorlat Áramkörkapcsolt hálózatok ÓRAI FELADAT (1 PONT) Számítógépes Hálózatok Gyakorlat 2 Topológia cs1.json D A S1 S4 C B S2 S3 Irányítatlan legyen a gráf!!! Számítógépes
TCP szerver készítése
TCP szerver készítése Mérési segédlet Informatika 2 A labor feladat célja, hogy a hallgatót megismertesse a TCP/IP protokollt használó programok készítésével. Ezen belül bemutatásra kerül a Berkley Socket
Bevezetés a SOCKET programozásba UDP kliens
Bevezetés a SOCKET programozásba UDP kliens A gyakorlat célja: Megismerkedni a Kliens-szerver modellel A kapcsolodási végpont fogalmának az elsajátítása Megismerkedni SOCKET API alapstruktúráival, (socket,
Számítógépes Hálózatok ősz 2006
Számítógépes Hálózatok ősz 2006 2. Hálózati felhasználások -- socket programozás Bruce Maggs és Srinivasan Seshan (CMU) fóliái alapján 1 Áttekintés Felhasználói réteg Kliens-szerver Felhasználás igényei
SOCKET használata UDP kliens
SOCKET használata UDP kliens A gyakorlat célja: Kliens-szerver modell Megismerkedni a SOCKET API alapstrukturáival, működési elveivel UDP kliens megvalósítása (UDP visszhang kliens) Elméleti bevezető:
UDP idő szerver. UDP protokollal kapcsolatos ismeretek elmélyítése. Egy UPP protokollt használó időszerver megvalósítása
UDP idő szerver A gyakorlat célja: UDP protokollal kapcsolatos ismeretek elmélyítése. Egy UPP protokollt használó időszerver megvalósítása Elméleti bevezető: UDP Protokoll föbb tulajdonságai: Az Internet
Számítógépes Hálózatok. 9. gyakorlat
Számítógépes Hálózatok 9. gyakorlat Wireshark Gombos Gergő Számítógépes hálózatok 2 Wireshark Szűrők definiálására alkalmas input eszközök Csomag összefoglaló nézete Kiválasztott csomag hierarchikus nézet
TCP szerver. TCP szerver alkalmazás írásának az elsajátítása TCP protokoll tulajdonságainak a tanulmányozása kisérleti úton
TCP szerver A gyakorlat célja: TCP szerver alkalmazás írásának az elsajátítása TCP protokoll tulajdonságainak a tanulmányozása kisérleti úton Elméleti bevezető: TCP kilens-szerver alkalmazás: Amint a fenti
Gyorstalpaló hálózatprogramozás C nyelven UNIX. környezetben
Gyorstalpaló hálózatprogramozás C nyelven UNIX környezetben Hajba Gábor László 2007. február 20. Tartalomjegyzék 1. A legfontosabb parancs 4 2. TCP alapú kliens m ködése 4 3. Kliens socket létrehozása
Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész
3. előadás Protokollok Kommunikáció 2. rész RPC (Remote Procedure Call) távoli eljáráshívás RMI (Remote Method Invocation) távoli metódushívás MOM (Message-Oriented Middleware) üzenetorientált köztesréteg
Kommunikáció. 3. előadás
Kommunikáció 3. előadás Kommunikáció A és B folyamatnak meg kell egyeznie a bitek jelentésében Szabályok protokollok ISO OSI Többrétegű protokollok előnyei Kapcsolat-orientált / kapcsolat nélküli Protokollrétegek
UNIX: folyamatok kommunikációja
UNIX: folyamatok kommunikációja kiegészítő fóliák az előadásokhoz Mészáros Tamás http://home.mit.bme.hu/~meszaros/ Budapesti Műszaki Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 A kommunikáció
Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely
Hálózati architektúrák és Protokollok GI 8 Kocsis Gergely 2018.11.12. Knoppix alapok Virtuális gép létrehozása VirtualBox-ban (hálózatelérés: bridge módban) Rendszerindítás DVD-ről vagy ISO állományból
Számítógépes Hálózatok. 3. gyakorlat
Számítógépes Hálózatok 3. gyakorlat Teszt canvas.elte.hu Számítógépes Hálózatok Gyakorlat 2 NC-NetCat (SoCat), avagy hálózati svájcibicska # szerver imitálása nc -l -p 1234 # kliens imitálása nc destination_host
Tartalom. Hálózati kapcsolatok felépítése és tesztelése. Rétegek használata az adatok továbbításának leírására. OSI modell. Az OSI modell rétegei
Tartalom Hálózati kapcsolatok felépítése és tesztelése Bevezetés: az OSI és a Általános tájékoztató parancs: 7. réteg: DNS, telnet 4. réteg: TCP, UDP 3. réteg: IP, ICMP, ping, tracert 2. réteg: ARP Rétegek
Operációs rendszerek. 4. gyakorlat: Szignálok küldése, kezelése
Operációs rendszerek 4. gyakorlat: Szignálok küldése, kezelése Ajánlott irodalom UNIX programozáshoz: Kernighan & Pike: A Unix operációs rendszer Stewens: Advanced Programming in the UNIX Environment (APUE)
Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet
HTTP Hálózat Rétegezett architektúra felhasználók Alkalmazási Web, e-mail, file transfer,... Szállítási Internet Hálózat-elérési Végponttól végpontig terjedő átvitel, Megbízható átvitel, sorrendbe állítás,
Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés
Tartalom D Szoftvertechnológia elıadás Architektúra D vs CORBA Példá 2 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is használatos (pl. vágólap) NetDDE NetBIOS
EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA
EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA Iványi Tibor, ivanyit@tigris.klte.hu Csukás Levente, csukasl@fox.klte.hu Kossuth Lajos Tudományegyetem Informatikai és Számító Központ Abstract The well
Számítógépes Hálózatok GY 4.hét
Számítógépes Hálózatok GY 4.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu Teszt 10 kérdés 10 perc canvas.elte.hu
Számítógépes Hálózatok GY 8.hét
Számítógépes Hálózatok GY 8.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu Teszt 10 kérdés 10 perc canvas.elte.hu
Fábián Zoltán Hálózatok elmélet
Fábián Zoltán Hálózatok elmélet Network Basic Input/Output System Helyi hálózatokon keresztül számítógépek Név alapján azonosítják egymást Szállítási protokollokra épül NetBeui fölött (pl. Win 9x Netbios
Operációs rendszerek. 6. gyakorlat: Processzusok közti kommunikáció (osztott memória, üzenetsor)
Operációs rendszerek 6. gyakorlat: Processzusok közti kommunikáció (osztott memória, üzenetsor) A UNIX System V Release-óta minden rendszer biztosít három egyszerűabsztrakciót a processzusok közti kommunikáció
Számítógépes Hálózatok GY 6.hét
Számítógépes Hálózatok GY 6.hét Laki Sándor ELTE-Ericsson Kommunikációs Hálózatok Laboratórium ELTE IK - Információs Rendszerek Tanszék lakis@elte.hu http://lakis.web.elte.hu Teszt 10 kérdés 10 perc canvas.elte.hu
9. MPI
9. MPI kertesz.gabor@nik.uni-obuda.hu MPI Message Passing Interface Elosztott memóriájú párhuzamos programozási API Gyk. folyamatok közötti kommunikáció de facto ipari standard Több száz előre definiált
Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20
Hálózatkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés 2013 1 / 20 Tartalomjegyzék 1 Hálózati Alapismeretek 2 System.Net Namespace 3 Socket Kezelés 4 Példa Tóth Zsolt
Számítógépes Hálózatok. 4. gyakorlat
Számítógépes Hálózatok 4. gyakorlat Teszt canvas.elte.hu Számítógépes Hálózatok Gyakorlat 2 TCP Számítógépes Hálózatok Gyakorlat 3 TCP socket() bind() listen() accept() sock = socket.socket(socket.af_inet,
Számítógép-hálózatok. Gyakorló feladatok a 2. ZH témakörének egyes részeihez
Számítógép-hálózatok Gyakorló feladatok a 2. ZH témakörének egyes részeihez IPV4 FELADATOK Dr. Lencse Gábor, SZE Távközlési Tanszék 2 IP címekkel kapcsolatos feladatok 1. Milyen osztályba tartoznak a következő
Számítógépes Hálózatok 2011
Számítógépes Hálózatok 2011 10. Hálózati réteg IP címzés, IPv6, ARP, DNS, Circuit Switching, Packet Switching 1 IPv4-Header (RFC 791) Version: 4 = IPv4 IHL: fejléc hossz 32 bites szavakban (>5) Type of
Az internet ökoszisztémája és evolúciója. Gyakorlat 4
Az internet ökoszisztémája és evolúciója Gyakorlat 4 Tartományok közti útválasztás konfigurálása: alapok Emlékeztető: interfészkonfiguráció R1 R2 link konfigurációja R1 routeren root@openwrt:/# vtysh OpenWrt#
Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek
Hálózatok Rétegei Számítógépes Hálózatok és Internet Eszközök WEB FTP Email Telnet Telefon 2008 2. Rétegmodell, Hálózat tipusok Közbenenső réteg(ek) Tw. Pair Koax. Optikai WiFi Satellit 1 2 Az Internet
Operációs rendszerek. UNIX fájlrendszer
Operációs rendszerek UNIX fájlrendszer UNIX fájlrendszer Alapegység: a file, amelyet byte-folyamként kezel. Soros (szekvenciális) elérés. Transzparens (átlátszó) file-szerkezet. Link-ek (kapcsolatok) létrehozásának
Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely
Hálózati architektúrák és Protokollok GI 7 Kocsis Gergely 2017.05.08. Knoppix alapok Virtuális gép létrehozása VirtualBox-ban (hálózatelérés: bridge módban) Rendszerindítás DVD-ről vagy ISO állományból
Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)
lab Adathálózatok ATM-en Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Megvalósítások Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577)
Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -
lab Adathálózatok ATM-en Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Megvalósítások Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577)
Számítógépes Hálózatok. 7. gyakorlat
Számítógépes Hálózatok 7. gyakorlat Gyakorlat tematika Hibajelző kód: CRC számítás Órai / házi feladat Számítógépes Hálózatok Gyakorlat 7. 2 CRC hibajelző kód emlékeztető Forrás: Dr. Lukovszki Tamás fóliái
Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M) 2003.04.29
Számítógép labor V. Egyszer Web szerver Dokumentáció (K4C03M) 2003.04.29 Egyszer Web szerver Feladat: Egyszer Web szerver Feladat sorszám: 17 Leírás: Készítsen egy egyszer Web szervert, amely képes statikus
1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7
1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7 1.1. Új virtuális gép és Windows Server 2008 R2 Enterprise alap lemez létrehozása 1.2. A differenciális lemezek és a két új virtuális
2. fejezet Hálózati szoftver
2. fejezet Hálózati szoftver Hálózati szoftver és hardver viszonya Az első gépek összekötésekor (azaz a hálózat első megjelenésekor) a legfontosabb lépésnek az számított, hogy elkészüljön az a hardver,
Beej útmutatója a hálózati programozáshoz
Beej útmutatója a hálózati programozáshoz Internet Socketek használatával Brian "Beej" Hall beej@piratehaven.org Fordította: Hajdu Gábor triasz@inf.elte.hu (Az esetleges hibákért semmi felelősséget nem
Hálózati architektúrák laborgyakorlat
Hálózati architektúrák laborgyakorlat 5. hét Dr. Orosz Péter, Skopkó Tamás 2012. szeptember Hálózati réteg (L3) Kettős címrendszer: ARP Útválasztás: route IP útvonal: traceroute Parancsok: ifconfig, arp,
Az internet ökoszisztémája és evolúciója. Gyakorlat 1
Az internet ökoszisztémája és evolúciója Gyakorlat 1 GNS3: installálás és konfiguráció GNS3: hálózatszimulátor Valódi router/hoszt image-ek hálózatba kapcsolása emulált linkeken keresztül: CISCO, Juniper,
Számítógépes Hálózatok. 8. gyakorlat
Számítógépes Hálózatok 8. gyakorlat Teszt canvas.elte.hu Számítógépes Hálózatok Gyakorlat 2 Udp stream példa Példa kód a gyakorlat honlapján. cv2 install: pip install --user opencv-python Számítógépes
2. fejezet Hálózati szoftver
2. fejezet Hálózati szoftver Hálózati szoftver és hardver viszonya Az első gépek összekötésekor (azaz a hálózat első megjelenésekor) a legfontosabb lépésnek az számított, hogy elkészüljön az a hardver,
Segédlet a Hálózati architektúrák és protokollok laborgyakorlathoz v0.6
Segédlet a Hálózati architektúrák és protokollok laborgyakorlathoz v0.6 Bevezetés A laborgyakorlaton alkalmazott operációs rendszer: Linux Disztribúció: Knoppix Linux Live 6.x (DVD változat) Linux parancsok:
Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 3. óra. Kocsis Gergely, Supák Zoltán
Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása 3. óra Kocsis Gergely, Supák Zoltán 2017.03.08. TCP/IP alapok IPv4 IP cím: 32 bites hierarchikus logikai azonosító. A hálózaton
Az internet ökoszisztémája és evolúciója. Gyakorlat 1
Az internet ökoszisztémája és evolúciója Gyakorlat 1 GNS3: installálás és konfiguráció GNS3: hálózatszimulátor Valódi router/hoszt image-ek hálózatba kapcsolása emulált linkeken keresztül: CISCO, Juniper,
Előnyei. Helyi hálózatok tervezése és üzemeltetése 2
VPN Virtual Private Network A virtuális magánhálózat az Interneten keresztül kiépített titkosított csatorna. http://computer.howstuffworks.com/vpn.htm Helyi hálózatok tervezése és üzemeltetése 1 Előnyei
(NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV
Kommunikációs rendszerek programozása (NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV (5. mérés) SIP telefonközpont készítése Trixbox-szal 1 Mérés helye: Széchenyi István Egyetem, L-1/7 laboratórium, 9026 Győr, Egyetem
Using the CW-Net in a user defined IP network
Using the CW-Net in a user defined IP network Data transmission and device control through IP platform CW-Net Basically, CableWorld's CW-Net operates in the 10.123.13.xxx IP address range. User Defined
Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.
Alap protokollok NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás. SMB: NetBT fölötti főleg fájl- és nyomtató megosztás, de named pipes, mailslots, egyebek is. CIFS:ugyanaz mint az SMB,
URL-LEL ADOTT OBJEKTUM LETÖLTÉSE (1) URL-LEL ADOTT OBJEKTUM LETÖLTÉSE
Programozás III HÁLÓZATKEZELÉS A hálózatkezeléshez használatos java csomag: java. net Hol találkoztunk már vele? Pl.: URL cim = this.getclass().getresource("/zene/valami_zene.wav"); De pl. adott URL-ről
Modbus kommunikáció légkondícionálókhoz
Modbus kommunikáció légkondícionálókhoz FJ-RC-MBS-1 Mobus szervezet: -> http://www.modbus.org (néha Modbus-IDA) -> Modbus eszköz kereső motor http://www.modbus.org/devices.php Modbus (RTU) - soros kommunikációs
Ethernet/IP címzés - gyakorlat
Ethernet/IP címzés - gyakorlat Moldován István moldovan@tmit.bme.hu BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM TÁVKÖZLÉSI ÉS MÉDIAINFORMATIKAI TANSZÉK Áttekintés Ethernet Multicast IP címzés (subnet)
UNIX folyamatok kommunikációja
UNIX folyamatok kommunikációja kiegészítő fóliák az előadásokhoz Mészáros Tamás http://www.mit.bme.hu/~meszaros/ Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Dr. Wührl Tibor Ph.D. MsC 04 Ea. IP kapcsolás hálózati réteg
Dr. Wührl Tibor Ph.D. MsC 04 Ea IP kapcsolás hálózati réteg IP kapcsolás Az IP címek kezelése, valamint a csomagok IP cím alapján történő irányítása az OSI rétegmodell szerint a 3. rétegben (hálózati network
Hálózati rendszerek adminisztrációja JunOS OS alapokon
Hálózati rendszerek adminisztrációja JunOS OS alapokon - áttekintés és példák - Varga Pál pvarga@tmit.bme.hu Áttekintés Általános laborismeretek Junos OS bevezető Routing - alapok Tűzfalbeállítás alapok
Hálózati architektúrák és Protokollok PTI 5. Kocsis Gergely
Hálózati architektúrák és Protokollok PTI 5 Kocsis Gergely 2013.03.28. Knoppix alapok Virtuális gép létrehozása VirtualBox-ban (hálózatelérés: bridge módban) Rendszerindítás DVD-ről vagy ISO állományból
Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. Kocsis Gergely, Supák Zoltán
Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása Kocsis Gergely, Supák Zoltán 2016.02.23. TCP/IP alapok A Microsoft Windows alapú hálózati környezetben (csakúgy, mint más hasonló
<stone@elte.hu> Modla Ferenc <modla@inf.elte.hu> 2004. augusztus 13. 1. Port szkennelés
Port szkennelés és TCP eltérítés Juhász Péter Károly Stone Modla Ferenc 2004. augusztus 13. Tartalomjegyzék 1. Port szkennelés 1 1.1. TCP connect() scan...................................
Tűzfalak működése és összehasonlításuk
Tűzfalak működése és összehasonlításuk Készítette Sári Zoltán YF5D3E Óbudai Egyetem Neumann János Informatikai Kar 1 1. Bevezetés A tűzfalak fejlődése a számítógépes hálózatok evolúciójával párhuzamosan,
Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat
Planet-NET Egy terjeszkedés alatt álló vállalat hálózatának tervezésével bízták meg. A vállalat jelenleg három telephellyel rendelkezik. Feladata, hogy a megadott tervek alapján szimulációs programmal
Programozás 6. Dr. Iványi Péter
Programozás 6. Dr. Iványi Péter 1 Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak
ALKALMAZÁSOK ISMERTETÉSE
SZE INFORMATIKAI KÉPZÉS 1 SZE SPECIFIKUS IT ISMERETEK ALKALMAZÁSOK ISMERTETÉSE A feladat megoldása során valamely Windows Operációs rendszer használata a javasolt. Ebben a feladatban a következőket fogjuk
Kommunikáció Androidon Mobilinternet Wifi
OE-NIK 2012. március 24. Sicz-Mesziár János sicz-mesziar.janos@ nik.uni-obuda.hu Kommunikáció Androidon Mobilinternet Wifi Kommunikációs eszközök Androidon Wi-Fi Ma már minimum: a / b / g szabványok, újabbakon
Hálózati architektúrák és Protokollok GI - 9. Kocsis Gergely
Hálózati architektúrák és Protokollok GI - 9 Kocsis Gergely 2016.11.28. IP, MAC, ARP A B csomópontból az A-ba küldünk egy datagramot. Mik lesznek az Ethernet keretben található forrás és a cél címek (MAC
A Wireshark program használata Capture Analyze Capture Analyze Capture Options Interface
A Wireshark program használata A Wireshark (régi nevén Ethereal) protokoll analizátor program, amelyet a hálózat adminisztrátorok a hálózati hibák behatárolására, a forgalom analizálására használnak. A
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. május 6. Parancssori paraméterek Parancssorban történ programindításkor a program nevét követ en szóközökkel elválasztva paraméterek (command
Hálózati architektúrák laborgyakorlat
Hálózati architektúrák laborgyakorlat 6. hét Dr. Orosz Péter, Skopkó Tamás 2012. szeptember Szállítási réteg (L4) Szolgáltatások Rétegprotokollok: TCP, UDP Port azonosítók TCP kapcsolatállapotok Alkalmazási
Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft
Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül
Cloud computing. Cloud computing. Dr. Bakonyi Péter.
Cloud computing Cloud computing Dr. Bakonyi Péter. 1/24/2011 1/24/2011 Cloud computing 2 Cloud definició A cloud vagy felhő egy platform vagy infrastruktúra Az alkalmazások és szolgáltatások végrehajtására
Útmutató az IP és Routing mérésekben használt Cisco routerek alapszint konfigurációjához i
Útmutató az IP és Routing mérésekben használt Cisco routerek alapszint konfigurációjához i 1. Bevezetés (készítette: Fodor Kristóf fodork@tmit.bme.hu) A routerek a hozzájuk csatolt hálózati szegmensek
Netis vezeték nélküli, N típusú, router
Netis vezeték nélküli, N típusú, router Gyors üzembe helyezési kézikönyv Típusok: WF-2409/WF2409/WF2409D A csomagolás tartalma (Vezeték nélküli, N típusú, router, hálózati adapter, ethernet kábel, kézikönyv,
4. Hivatkozási modellek
4. Hivatkozási modellek Az előző fejezetben megismerkedtünk a rétegekbe szervezett számítógépes hálózatokkal, s itt az ideje, hogy megemlítsünk néhány példát is. A következő részben két fontos hálózati
Az adott eszköz IP címét viszont az adott hálózat üzemeltetői határozzákmeg.
IPV4, IPV6 IP CÍMZÉS Egy IP alapú hálózat minden aktív elemének, (hálózati kártya, router, gateway, nyomtató, stb) egyedi azonosítóval kell rendelkeznie! Ez az IP cím Egy IP cím 32 bitből, azaz 4 byte-ból
IP beállítások 3. gyakorlat - Soproni Péter 2009. tavasz Számítógép-hálózatok gyakorlat 1 Bemutató során használt beálltások Windows IP-cím: 192.168.246.100 (változtatás után: 192.168.246.101) Alhálózati
A C programozási nyelv VI. Parancssori argumentumok File kezelés
A C programozási nyelv VI. Parancssori argumentumok File kezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv VI. (Parancssori argumentum, file kezelés) CBEV6 / 1 Parancssori
Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -
VTP Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW2 SW3 2 Alap konfiguráció SW1-2-3 conf t interface e1/0 switchport trunk encapsulation dot1q switchport mode trunk vtp domain CCIE vtp mode transparent vtp
Gyors üzembe helyezési kézikönyv
Netis vezeték nélküli, kétsávos router Gyors üzembe helyezési kézikönyv WF2471/WF2471D A csomagolás tartalma (Két sávos router, hálózati adapter, ethernet kábel, kézikönyv) 1. Csatlakozás 1. Kapcsolja
Az internet ökoszisztémája és evolúciója. Gyakorlat 4
Az internet ökoszisztémája és evolúciója Gyakorlat 4 Tartományok közti útválasztás konfigurálása: alapok Emlékeztető: interfészkonfiguráció R1 R2 link konfigurációja R1 routeren root@openwrt:/# vtysh OpenWrt#
HÁLÓZATI BEÁLLÍTÁS. Videorögzítőkhöz
I BEÁLLÍTÁS Videorögzítőkhöz Kérjük olvassa át figyelmesen ezt az útmutatót a készülék használata előtt és tartsa meg jövőben felhasználás céljára. Fenntartjuk a jogot a kézikönyv tartalmának bármikor
TCP/IP SOCKET INTERFACE
TCP/IP SOCKET INTERFACE PROGRAMOZÁSA Számítógép-hálózatok (BMEVIHA215) 2014. április 24., Budapest Dr. Lencse Gábor tudományos főmunkatárs BME Hálózati Rendszerek és Szolgáltatások Tanszék lencse@hit.bme.hu
Statikus routing. Hoszt kommunikáció. Router működési vázlata. Hálózatok közötti kommunikáció. (A) Partnerek azonos hálózatban
Hoszt kommunikáció Statikus routing Két lehetőség Partnerek azonos hálózatban (A) Partnerek különböző hálózatban (B) Döntéshez AND Címzett IP címe Feladó netmaszk Hálózati cím AND A esetben = B esetben
Gyors telepítési kézikönyv
netis Vezeték nélküli, N router Gyors telepítési kézikönyv 1. A csomagolás tartalma (Vezeték nélküli,n Router, Hálózati adapter, Ethernet kábel, Kézikönyv) * A kézikönyv, az összes, Netis, 150Mbps/300Mbps
C programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
Technikai tudnivalók a Saxo Trader Letöltéséhez tűzfalon vagy proxy szerveren keresztül
Letöltési Procedúra Fontos: Ha Ön tűzfalon vagy proxy szerveren keresztül dolgozik akkor a letöltés előtt nézze meg a Technikai tudnivalók a Saxo Trader Letöltéséhez tűzfalon vagy proxy szerveren keresztül
Hálózati ismeretek. Az együttműködés szükségessége:
Stand alone Hálózat (csoport) Az együttműködés szükségessége: közös adatok elérése párhuzamosságok elkerülése gyors eredményközlés perifériák kihasználása kommunikáció elősegítése 2010/2011. őszi félév