Diferencia entre revisiones de «Programación de comunicacións en rede»
| Línea 23: | Línea 23: | ||
# '''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). | # '''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). | ||
# '''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. | # '''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 = | = Modelo de niveles de TCP/IP = | ||
Revisión del 01:10 2 oct 2021
Sumario
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
- 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:
- 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.
- 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).
- 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.