Sockets, DHCP i DNS: Guia Completa
Enviado por Victor y clasificado en Informática y Telecomunicaciones
Escrito el en catalán con un tamaño de 9,69 KB
Socket -> És una interfície API de comunicació entre els programes i la xarxa TCP/IP. No defineix un protocol, sinó que és la implementació d'un protocol.
Propietats del Socket en la Creació
Per crear un socket cal especificar la família de protocols, el tipus de connexió desitjada i el protocol concret dins la família especificada. La família de protocols identifica l'arquitectura de protocol sobre la qual es defineix el socket, que poden ser diferents versions d'IP, el sistema de fitxers Unix o el protocol específic d'Apple. El tipus de connexió defineix el protocol i serveis a nivell de transport, definint un socket sobre el protocol TCP, sobre el protocol UDP o sobre altres protocols de més baix nivell.
Sockets a Unix: Base I/O
Es considera que la xarxa és un dispositiu més d'entrada/sortida de dades. Segueixen un funcionament semblant al paradigma open-read-write-close amb propietats i funcions addicionals.
Comanda select()
Quan un procés està bloquejat esperant per connexions per diversos sockets, podem determinar els descriptors del conjunt que estigui apunt i dur a terme les operacions corresponents.
Operacions de Sockets per Enviar Dades
write(socket, buffer, length)
writev(socket, iovector, vectorlen)
send(socket, message, length, flags)
sendto(socket, message, length, flags, destaddr, addrlen)
sendmsg(socket, messagestruct, flags)
send
, write
i writev
només funcionen amb sockets connectats, ja que no admeten adreça de destí. Caldria completar-ho amb un comentari per a cada paràmetre.
Operacions de Sockets per Rebre Dades
read(descriptor, buffer, length)
readv(descriptor, iovector, vectorlen)
recv(socket, buffer, length, flags)
recvfrom(socket, buffer, length, flags, fromaddr, addrlen)
recvmsg(socket, messagestruct, flags)
Funció bind
Associa una adreça local al socket.
Bind(socket, localaddr, addrlen)
Té com a paràmetres el descriptor del socket a associar l'adreça, l'estructura que especifica l'adreça local a associar i la longitud de l'adreça.
Assignar Adreça de Destí al Socket
Connect(socket, destaddr, addrlen)
destaddr
és l'estructura de tipus socket que defineix l'adreça de destí. addrlen
és la longitud de l'adreça en bytes.
Gestió del Nom i Domini del Host
Gestió del nom:
gethostname(name, lenght)
: Permet obtenir el nom del host.sethostname(name, lenght)
: Permet assignar el nom de la màquina només quan es tenen els privilegis necessaris.
Cal registrar el domini dins l'espai de noms de domini (DNS).
Funció listen
listen(socket, qlength)
: Posa el socket en mode passiu i indica al SO que el software té que guardar les múltiples peticions simultànies.
Datagrama
Un datagrama és la unitat d'informació de la capa de xarxa.
DHCP
Protocol per a la configuració automàtica de hosts a la xarxa sense tenir cap informació. Rep tota la informació del servidor DHCP, inclosa l'adreça IP, i gestiona les adreces en cas d'assignació dinàmica d'adreces.
Petició DHCP Utilitzant UDP/IP
- El host envia una petició broadcast amb un identificador de petició. El servidor DHCP està programat per respondre les peticions DHCP enviades a l'adreça broadcast, i els altres hosts no responen a peticions DHCP.
- El servidor DHCP envia la resposta també broadcast, mantenint el mateix identificador de la petició. El host la reconeix a partir del número de petició.
Estat lease (DHCP)
Quan caduca, el client intenta renovar el lease enviant un DHCPREQUEST
i passant a l'estat de Renew per esperar la resposta. La resposta pot ser DHCPACK
, que és una resposta d'aprovació de renovació i el client torna a l'estat BOUND, o també pot ser DHCPNACK
, la qual cosa torna el client a l'estat Initialize. Si no hi ha resposta, el servidor no és accessible o es troba fora de servei.
Renovació del lease
Per a la seva renovació a l'estat de bound, el client inicia 3 timers:
- Renewal: Indica reiniciar la renovació amb temps amb el mateix servidor.
- Rebinding: Indica que el servidor no respon i que cal intentar renovar amb un altre diferent.
- Expiration: Diu que ha caducat el lease.
Estat Bound (DHCP)
Serveix al host per esperar la confirmació final del servidor que el host li ha acceptat/seleccionat la seva oferta de les moltes que ha rebut.
Existeix perquè un host pot rebre més d'una oferta de diferents servidors DHCP i cal que el host decideixi quina escollir i informar-ho al servidor escollit, que ha de confirmar que ho ha rebut.
Diferència entre l'Estat bound i request
En l'estat bound, se sap que el servidor està informat i la configuració del host ha acabat. En l'estat de request, el host ha decidit entre les ofertes i ha informat al servidor, però encara no sap si el servidor està informat de ser l'escollit. En el primer, el host ja està operatiu; en el segon, encara no.
Overload (DHCP)
L'opció overload permet reutilitzar per a altres coses els camps server-host-name
i boot-file-name
de la capçalera del DHCP.
Tipus d'Assignació d'Adreces (DHCP)
El servidor DHCP permet 3 tipus d'assignació d'adreces:
- Configuració manual: L'administrador assigna una adreça concreta a un ordinador concret.
- Configuració automàtica: L'administrador permet assignar una adreça estàtica a un ordinador quan arrenca.
- Configuració dinàmica: El servidor assigna l'adreça a un host de manera temporal per un període de temps.
Relació entre DHCP i DNS
En principi, són processos independents, però està clar que quan s'assigna una adreça IP a una màquina, es pot estar definint una nova relació nom-adreça si el host té un nom donat d'alta a un DNS. El mateix passa quan aquesta assignació s'acaba. Per tant, cal fer immediatament una actualització al DNS. Algunes implementacions de DHCP incorporen el procés automàticament.
DNS
El DNS és el sistema per mapejar adreces IP numèriques amb noms d'alt nivell útils per als usuaris.
L'estructura jeràrquica divideix el rang d'opcions amb subdominis i permet delegar la gestió de cada subdomini al seu propietari i, per tant, no tenir només una base de dades centralitzada, que no és escalable.
Propietats del DNS
Un sistema DNS ha de complir les propietats següents:
- Distribuït: El mecanisme està distribuït en un conjunt de servidors treballant cooperativament.
- Eficient: La majoria de noms es poden resoldre localment i només pocs generen tràfic cap a la xarxa Internet.
- General: No està restringit només per a noms.
- Fiable: Si una màquina cau, el sistema continua sent operatiu.
Domain name
Un domini és un nom dins una estructura jerarquitzada d'assignació de noms de hosts que dóna un nom per a un grup de hosts. En ser jerarquitzada, pot organitzar jeràrquicament l'organització de tots els seus noms, definint així subdominis dins el seu domini. Un nom de domini consisteix en la seqüència de subnoms (de tots els subdominis) separats per punts. Un domini és únic dins d'Internet.
Caching
L'utilitzem per reduir el cost de cerca de noms no locals i consisteix en què cada servidor manté un registre dels noms utilitzats recentment amb el nom i el servidor que l'autoritza. Així, es pot respondre a una petició de DNS d'un altre domini que ja haguem consultat anteriorment si tenim el resultat de la petició a la memòria cau. Això permet resoldre ràpidament la cerca, però pot ser informació caducada.
Jerarquia de Noms / Jerarquia DNS
La relació és que, en principi, caldria un servidor DNS per cada domini o subdomini, però a la pràctica s'agrupen i un servidor sol respondre a totes les peticions dels seus subdominis (si són de la mateixa organització). En realitat, els servidors es divideixen més per "propietat" del domini que per la divisió estricta de cada subdomini. Per tant, la diferència de la jerarquia de noms és que defineix un nou domini per cada subdomini, però no hi ha una jerarquia física directa/idèntica de servidors, sinó que els servidors se solen jerarquitzar en subarbres complets de la jerarquia de noms.