Home » Articole » Articole » Calculatoare » Reţele de calculatoare » Interfaţa de Programare a Aplicaţiei » Interfaţa de Programare a Aplicaţiei (IPA) pentru SOCKET

Interfaţa de Programare a Aplicaţiei (IPA) pentru SOCKET

Introdusă in 1981, BSD 4.1 UNIX

O interfaţă locală, creată/aparţinand de aplicaţie, controlată de SO în care procesul aplicaţiei poate atât transmite cât şi recepţiona mesaje către/de la alt proces al aplicaţiei (la distanţă sau local)

Doi sockeţi pe gazde separate „conectaţi” prin rutine de management al lăcaşului pentru SO. Aplicaţia vede numai socketul local.

Sockeţii sunt creaţi explicit, utilizaţi şi puţi în funcţiune de către aplicaţii. Ei se bazează pe paradigma client/server. Există doua tipuri de servicii de transport via IPA pentru socket:

  • datagrame nesigure
  • sigure, orientate pe flux

Nivelele de prezentare şi sesiune lipsesc în reţelele UNIX.

Sockeţi: aspectul conceptual

Fiecare socket are bufere de transmisie şi recepţie separate, posibilitatea de identificare a portului, parametri (aplicaţie interogativă şi setabilă).

Operaţiile socketului implementat ca sistem apelează la SO. Limitele utilizator/kernel se încucişează pe sus.

Servicii fără conexiune

Serviciu datagramă: protocoalele de transport de bază nu garantează livrarea.

Nu exista o identificare explicită a serverului sau clientului.

Dacă se iniţiază contactul cu cealaltă parte, trebuie cunoscute.

  • adresa IP
  • numărul portului sau procesul care aşteaptă să fie contactat

Dacă se aşteaptă contactul de la cealaltă parte, trebuie declarat:

  • numărul portului la care se aşteaptă de cealaltă parte.

Crearea unui socket

Acelaşi terminal (socket) folosit pentru a transmite/recepţiona date.

Nu exista o asociere a priori a socketului cu reţeaua.

Trebuie să se specifice familia de protocoale de transport, şi serviciul specific la nivel de transport care se va folosi cu socketul:

Familia de protocoale Nume simbolic
TCP/IP Internet AF_INET
Xerox NS AF_NS
intra-host UNIX AF_UNIX
DEC DNA AF_DECNET
Tipul serviciului Nume simbolic Comentariu
datagrama SOCK_DGRAM protocol UDP in AF_INET
sigură, în ordine SOCK_STREAM protocol TCP in AF_INET
socket brut SOCK_RAW acces direct la nivelul reţea

Socket int (familia int, serviciul int, protocol int)

Familia este numele simbolic al familiei de protocoale.

Serviciul este numele simbolic al tipului de serviciu.

Protocolul permite o specificare mai bună a socketului brut. Pentru noi, acesta va fi 0.

Codul de răspuns de la socket() este este un descriptor de socket, folosit în toate apelurile de sistem legate de socket.

Exemplu:
#include <sys/types.h>
#include<sys/ socket.h> 

 int sockfd; 

 if ( (sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
    { /* handle error */ }

(Nicolae Sfetcu)

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *