Programación de comunicacións en rede

De MediaWiki
Ir a la navegación Ir a la búsqueda

Distintos modelos de comunicacións entre procesos

Na unidade didáctica primeira:

  • aprendeuse a desenvolver aplicacións compostas de múltiples procesos que se comunican entre si mediante mecanismos de entrada/saída (E/S) secuenciais, de xeito que uns procesos poden ler datos de ficheiros ou streams xenerados por outros.
  • analizáronse os distintos tipos de sistemas existentes dependendo de se tiñan un procesador (sistemas monoprocesadores) ou varios (sistemas multiprocesadores). E neste último caso, segundo:
    • se compartían memoria e sistema de E/S (sistemas multiprocesadores fortemente acoplados)
    • se non compartían (sistemas multiprocesadores débilmente acopaldos)
    • sistemas distrbuídos

Na segunda unidade didáctica:

  • aprendeuse a desenvolver aplicacións compostas de múltiples fíos que se comunican entre sí mediante memoria compartida, de xeito que o que un fío esribe na memoria podeno ler directamente os demáis; a memoria compartida permite a comunicación entre obxectos, e polo tanto de máis alto nivel, flexible e natural.

Os modelos anteriores (procesos que se comunican mediante E/S e fíos que se comunican mediante memoria compartida son axeitados para sistemas monoprocesadores e tamén para sistemas multiprocesadores fortemente acoplados que comparten memoria e o sistema de E/S, baixo o control deun único sistema operativo.

Nesta unidade aprenderase a desenvolver aplicacións concurrentes apropiadas para sistemas distribuidos; os procesos executanse en distintos procesadores de sistemas independeentes, y comunícanse a través dunha rede mediante protocolos estándares de comunicacións.

É posible distinguir dous modelos particulares:

  • o modelo cliente/servidor (C/S), onde algúns procesos (procesos servidores) proporcionan servizos a outros (procesos clientes)
  • o modelo entre iguais ou P2P (peer to peer), onde todos os procesos cooperan entre si y funcionan de xeito similar, sen que haiba unha especialización dos procesos.

Modelos desde a perspectiva histórica

Estos distintos modelos pódense enmarcar nunha perspectiva histórica, en tres etapas:

  1. Computación illada. Ata os anos 80 os ordenadores funcionaban de xeito independente e non estaban conectados entre si. Non había comunicación entre procesos que se executaban en ordenadores distintos.
  2. Computación en redes locais C/S. A partir dos anos 80 xeneralizanse as redes locais no ámbito empresarial; nestas redes existían ordenadores especializados nos que se executan procesos servidores, que proporcionaban servizos a outros procesos dentro da red local (clientes). A comunicación entre procesos realizábase mediante protocolos de rede privativos (non estándares).
  3. Computación distribuida. A irrupción da web durante os anos noventa extendeu o uso de internet máis alá dos ambitos militares, académicos e de investigación xeneralizándose o seu uso doméstico e empresarial. Os novos protocolos de rede estándares de internet sustituíron os protocolos privativos nas redes locais, o que fixo posible unha comunicación en rede non restrinxida ós limitesdas redes locais, e que permite a comunicación a través de internet entre procesos que se poden executan en dous ordenadores calquera do mundo.

Esta evolución non implica que os modelos de computación illada e en redes locais C/S) desapareceran; simplemente gañou relevancia o modelo distribuído de computación.

A xeneralización de internet fixo que os protocolos de rede estándares sobre os que está baseada sexan os que se utlizan para a comunicación entre procesos: aa familia de protocolos TCP/IP.

Estes permiten o funcionamento das aplicacións independentemente de onde se executen os procesos. Na actualidade a familia de protocolos de TCP/IP está disponible de serie en calquera sistema operativo e permite polo tanto a comunicación entre procesos:

  • en ordenadores de distintas redes locais
  • dunha mesma rede local
  • ou nun mesmo ordenador

Modelo de niveles de TCP/IP

Resolución de nomes

Práctica

Resumo

  • Os protocolos de comunicación de nivel de transporte UDP y TCP permiten a comunicación entre procesos que se executan en distintos ordenadores (e que por tanto non comparten memoria).
  • DNS
    • é un protocolo importante que proporciona resolución de nomes a enderezos IP.
    • fai posible o uso de nomes en lugar de enderezos IP para facer referencia a máquinas determinadas.
  • A comunicación entre procesos con estos protocolos faise a través de sockets.
  • Un socket para un protocolo de transporte (sexa UDP ou TCP) está ligado a:
    • a unha interfaz de rede
    • a un número de porto
  • UDP
    • é un protocolo de transporte non orientado a conexión que proporciona un servizo de entrega de paquetes individuais de datos chamados datagramas de UDP ou datagramas de usuario
    • Non garantiza a súa entrega nin que cheguen ó seu destino no mesmo orden en que se envían desde a orixe.
    • No propio datagrama está o enderezo IP e o porto de orixe; isto é todo o preciso para enviar datagramas de resposta.
  • TCP
    • é un protocolo de transporte orientado a conexión que proporciona un servicio de entrega fiable de segmentos de datos, unha vez establecida unha conexión, a través de streams asociados a la conexión; de xeito que o que un proceso escribe nun stream de saída o obten o outro de un stream de entrada, estando ambos streams conectados.
    • Con TCP hay dous tipos de sockets:
      • Os sockets de servidor serven para recibir peticións de conexión por parte de clientes.
      • Unha vez establecida a conexión, cliente e servidor comunícanse a través de sendos sockets de comunicación, cada un ligado a un stream binario de saída e outro de entrada, de xeito que o stream de salida de un está conectado o de entrada do outro; o que permite para ambos procesos o envío e recepción de datos en modo full duplex.
  • Existen:
    • protocolos de aplicación baseados en texto e protocolos binarios, xa usen UDP ou TCP
    • protocolos de aplicación con estado e sen estado. Os protocolos con estado son más difíciles de programar; podense facer con base nunha máquina de estados baseada no diagrama de estados para o servidor do protocolo.
  • Pódense programar servidores multifío para protocolos de aplicación
    • baseados en UDP, que poden crear novos fíos para responder a datagramas de UDP particulares; isto mellora o tempo de resposta e proporciona un mellor servizo.
    • baseados en TCP, que crean novos fíos para xestionar novas conexións de clientes; isto permite atender a máis dun cliente á vez.

Creditos e referencias