Diferencia entre revisiones de «Programación de comunicacións en rede»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 34: Línea 34:
  
 
= Modelo de niveles de TCP/IP =
 
= Modelo de niveles de TCP/IP =
 +
As comunicacións a través de redes de ordenadores realízanse a través dun modelo en capas ou niveles (''layers''):
 +
* cada nivel proporciona determinados servizos os niveles superiores
 +
* o nivel máis baixo é o físico, ó que pertencen o hardware de ordenadores e de redes
 +
* o máis alto é o de aplicación, que proporciona servizos a programas de aplicación que se comunican entre sí
 +
* no medio hai varios niveles, cada un dos cales utiliza servizos proporcionados polo nivel inferior e proporciona servizos ó nivel superior.
 +
* ós servizos que proporciona un nivel accédese utilizando determinados protocolos.
 +
 +
O primeiro modelo por niveles para comunicacións en rede foi o modelo OSI (''Open Systems Interconnection'') proposto pola organización ISO (''International Organization for Standardization'').
 +
 +
Na actualidade impúxose o modelo de TCP/IP sobre o que se construíu internet. O seu nivel superior (aplicación) inclúe os tres niveles superiores do modelo OSI (aplicación, presentación e sesión). As entidades que funcionan en cada nivel acceden os servizos proporcionados por entidades do nivel inferior mediante protocolos. Para este modelo desenvolveuse un conxunto ou pila de protocolos (''protocol suite'' ou ''protocol stack''). En cada nivel hai un ou varios protocolos baseados nos protocolos do nivel inferior e nos que se basean os protocolos do nivel superior.
 +
 +
 +
[correspondencia entre os niveles do modelo de TCP/IP e os do modelo OSI].
 +
 +
Existen diferentes dispositivos que interveñen nas comunicacións de rede, cada un traballando en diferentes niveles do modelo de TCP/IP.
 +
* os hubs interconectan os ordenadores dunha rede local do xeito máis sinxelo: replica e trasmite instantáneamente o resto de ordenadores da rede local a información que lle chega. Funcionan a nivel de capa física
 +
* os switches fan a mesma misión pero de xeito "máis intelixente": a información enviada polo ordenador de orixe vai directamente ó ordenador de destino sen replicarse no resto de equipos que estén conectados. Implementan os niveles físico e de enlace
 +
* os routeres fan posible a interconexión entre distintas redes. Implementan os niveles físico, de enlace e de rede.
 +
* os hosts son ordenadores conectados a unha rede e implementan todos os niveles. Engaden pois os niveles de transporte e de aplicación.
 +
 +
O nivel de rede non pode garantir por si mesmo a entrega de todos os paquetes de datos enviados nin que se reciben en destino na mesma orde na que se envían. O nivel de transporte pode proporcionar un servizo de comunicación fiable de extremo a extremo entre dous hosts que pode garantizar a recepción de todos os datos enviados e na  mismo orden na que se envían.
 +
 +
{| class="wikitable"
 +
|+ Servizos proporcionados por cada nivel do modelo TCP/IP
 +
! Nivel
 +
! Entidades conectadas
 +
! Agrupación de datos
 +
! Servizo que proporciona o nivel
 +
|-
 +
| Enlace
 +
| Interfaces de red
 +
| Trama
 +
| Comunicación entre dúas interfaces ou tarxetas de rede dunha mesma red local, con conexión física directa a través dun ''switch'' ou de varios ''switches'' interconectados entre sí. O nivel de enlace pode proporcionar un servicio de entrega fiable de tramas sobre un nivel físico non fiable, detectar as tramas con erros e as tramas non recibidas, e solicitar a súa retransmisión.
 +
|-
 +
| Rede
 +
| Hosts
 +
| Datagrama IP (paquete de datos)
 +
| Comunicación entre dúas interfaces de red, host interfaces ou hosts. </br> O término host pódese referir a unha interfaz de rede conectada a unha rede (''host interface'') o ordenador ó que pertence a interfaz (''host computer''). A cada interfaz de red se lle asigna un enderezo IP. <br/> O nivel de rede comunica distintas interfaces mediante o protocolo IP, cun servizo de entrega de paquetes de datos ou datagramas que non garantiza a sá entrega (poden non chegar o seu destino) nin a súa entrega en orden (podenn non chegar na mesma orde en que foron enviados). </br> As interfaces poden pertencer a unha mesma rede local ou a distintas redes locales interconectadas a través de un ou máis routers ou encamiñadores intermedios. </br> Un router permite conectar redes distintas: dispón de varias interfaces de red, e cada unha pode estar conectada a unha rede distinta.
 +
|-
 +
| Transporte
 +
| Portos nun host
 +
| Segmento
 +
| Transmisión de datos entre dous portos, cada un nun host. Existen dous protocolos no nivel de transporte:
 +
* TCP. Servicio de transmisión fiable e con entrega de segmentos de datos en destino na mesmo orde en que se envían en orixe.
 +
* UDP. Servicio de entrega de datagramas de usuario que non garantiza nin a súa entrega nin que sexa na mesma orde.
 +
|-
 +
| Aplicación
 +
| Procesos
 +
| Datos
 +
| Transmisión fiable de una secuencia de bytes entre dos procesos, cada uno de los cuales se ejecuta en un host u ordenador distinto.
 +
|}
  
 
= Resolución de nomes =
 
= Resolución de nomes =

Revisión del 01:43 2 oct 2021

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

As comunicacións a través de redes de ordenadores realízanse a través dun modelo en capas ou niveles (layers):

  • cada nivel proporciona determinados servizos os niveles superiores
  • o nivel máis baixo é o físico, ó que pertencen o hardware de ordenadores e de redes
  • o máis alto é o de aplicación, que proporciona servizos a programas de aplicación que se comunican entre sí
  • no medio hai varios niveles, cada un dos cales utiliza servizos proporcionados polo nivel inferior e proporciona servizos ó nivel superior.
  • ós servizos que proporciona un nivel accédese utilizando determinados protocolos.

O primeiro modelo por niveles para comunicacións en rede foi o modelo OSI (Open Systems Interconnection) proposto pola organización ISO (International Organization for Standardization).

Na actualidade impúxose o modelo de TCP/IP sobre o que se construíu internet. O seu nivel superior (aplicación) inclúe os tres niveles superiores do modelo OSI (aplicación, presentación e sesión). As entidades que funcionan en cada nivel acceden os servizos proporcionados por entidades do nivel inferior mediante protocolos. Para este modelo desenvolveuse un conxunto ou pila de protocolos (protocol suite ou protocol stack). En cada nivel hai un ou varios protocolos baseados nos protocolos do nivel inferior e nos que se basean os protocolos do nivel superior.


[correspondencia entre os niveles do modelo de TCP/IP e os do modelo OSI].

Existen diferentes dispositivos que interveñen nas comunicacións de rede, cada un traballando en diferentes niveles do modelo de TCP/IP.

  • os hubs interconectan os ordenadores dunha rede local do xeito máis sinxelo: replica e trasmite instantáneamente o resto de ordenadores da rede local a información que lle chega. Funcionan a nivel de capa física
  • os switches fan a mesma misión pero de xeito "máis intelixente": a información enviada polo ordenador de orixe vai directamente ó ordenador de destino sen replicarse no resto de equipos que estén conectados. Implementan os niveles físico e de enlace
  • os routeres fan posible a interconexión entre distintas redes. Implementan os niveles físico, de enlace e de rede.
  • os hosts son ordenadores conectados a unha rede e implementan todos os niveles. Engaden pois os niveles de transporte e de aplicación.

O nivel de rede non pode garantir por si mesmo a entrega de todos os paquetes de datos enviados nin que se reciben en destino na mesma orde na que se envían. O nivel de transporte pode proporcionar un servizo de comunicación fiable de extremo a extremo entre dous hosts que pode garantizar a recepción de todos os datos enviados e na mismo orden na que se envían.

Servizos proporcionados por cada nivel do modelo TCP/IP
Nivel Entidades conectadas Agrupación de datos Servizo que proporciona o nivel
Enlace Interfaces de red Trama Comunicación entre dúas interfaces ou tarxetas de rede dunha mesma red local, con conexión física directa a través dun switch ou de varios switches interconectados entre sí. O nivel de enlace pode proporcionar un servicio de entrega fiable de tramas sobre un nivel físico non fiable, detectar as tramas con erros e as tramas non recibidas, e solicitar a súa retransmisión.
Rede Hosts Datagrama IP (paquete de datos) Comunicación entre dúas interfaces de red, host interfaces ou hosts.
O término host pódese referir a unha interfaz de rede conectada a unha rede (host interface) o ordenador ó que pertence a interfaz (host computer). A cada interfaz de red se lle asigna un enderezo IP.
O nivel de rede comunica distintas interfaces mediante o protocolo IP, cun servizo de entrega de paquetes de datos ou datagramas que non garantiza a sá entrega (poden non chegar o seu destino) nin a súa entrega en orden (podenn non chegar na mesma orde en que foron enviados).
As interfaces poden pertencer a unha mesma rede local ou a distintas redes locales interconectadas a través de un ou máis routers ou encamiñadores intermedios.
Un router permite conectar redes distintas: dispón de varias interfaces de red, e cada unha pode estar conectada a unha rede distinta.
Transporte Portos nun host Segmento Transmisión de datos entre dous portos, cada un nun host. Existen dous protocolos no nivel de transporte:
  • TCP. Servicio de transmisión fiable e con entrega de segmentos de datos en destino na mesmo orde en que se envían en orixe.
  • UDP. Servicio de entrega de datagramas de usuario que non garantiza nin a súa entrega nin que sexa na mesma orde.
Aplicación Procesos Datos Transmisión fiable de una secuencia de bytes entre dos procesos, cada uno de los cuales se ejecuta en un host u ordenador distinto.

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