SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
Pr´ ctica de Redes I: Pr´ ctica introductoria
                    a                     a
                 El paquete de comunicaciones Lower Layer
                                    Grupo de Sistemas y Comunicaciones
                                                   Octubre de 2006

                                                          Resumen
           En las pr´ cticas de Redes I se utilizar´ el paquete de comunicaciones Lower Layer, que ofrece un
                     a                             a
       servicio extremo a extremo de env´o de mensajes no orientado a conexi´ n y no fiable. El objetivo de
                                            ı                                   o
       esta pr´ ctica es familiarizarse con este paquete de comunicaciones y realizar un cliente y un servidor
              a
       sencillos que lo utilicen.


1. Introducci´ n
             o
   El paquete Lower Layer UDP 1 es el que ofrece las primitivas de comunicaciones que utilizar´ n los
                                                                                              a
programas a realizar en las pr´ cticas. Cons´ ltese su especificaci´ n2 adjunta.
                              a             u                     o


2. Direcciones y puertos: los End Point
    Un End Point es el destino que tienen los datos que un proceso de una m´ quina le env´a a otro proceso
                                                                             a           ı
en otra m´ quina. Un End Point se construye a partir de la direcci´ n IP y de un puerto de la m´ quina del
         a                                                        o                             a
proceso al que van dirigidos los datos. Los End Point son puntos de destino y origen de los mensajes que
transportan los datos.

2.1.     Construir un End Point
    Para construir un End Point se usa el procedimiento Build:

Server_EP := Lower_Layer_UDP.Build("212.128.4.155", 6001);

    Un proceso puede construir tantos End Point como desee, sean de la m´ quina que sean (en la que
                                                                        a
reside u otra cualquiera).

2.2.     Atarse a un End Point
    Para que un proceso pueda recibir datos de otros, es necesario que anteriormente se ate a un End Point.
De esta forma indica su intenci´ n de escuchar mensajes dirigidos a ese End Point. Esto se puede hacer
                               o
de dos formas:

       At´ ndose a un puerto concreto: Se hace llamando primero a Build para construir un End Point,
          a
       y luego a Bind para atarse a el. N´ tese que la direcci´ n IP que se usa en el Build ha de ser
                                      ´    o                     o
       necesariamente de la m´ quina en la que se ejecuta el c´ digo:
                             a                                o

             Server_EP := Lower_Layer_UDP.Build ("212.128.4.155", 6001);
             Lower_Layer_UDP.Bind (Server_EP);
   1 Lower Layer UDP es un sencillo recubrimiento de la biblioteca Lower Layer para utilizar solamente la parte de UDP. No es

necesario entender toda la complejidad de Lower Layer para realizar las pr´ cticas, sino solamente el subconjunto que aparece en
                                                                          a
Lower Layer UDP
   2 ./lower_layer_udp.ads




                                                               1
At´ ndose a un puerto libre cualquiera: Se hace llamando a Bind_Any, que autom´ ticamente
           a                                                                                      a
        construye un End Point con la direcci´ n IP de la m´ quina y un puerto libre cualquiera asignado por
                                               o            a
                                               ´
        el sistema operativo, y luego se ata a el. Este End Point es devuelto como par´ metro en modo out
                                                                                        a
        por Bind_Any3 :

              LLU.Bind_Any(Client_EP);

2.3.     Desatarse de un End Point
                                                                                            ´
   Cuando un proceso ya no quiere recibir m´ s datos en un End Point, puede desatarse de el. De esta
                                            a
forma indica que ya no va a escuchar´ en mensajes dirigidos a ese End Point. Esto se hace utilizando el
                                    a
procedimiento Unbind:
       Lower_Layer_UDP.Unbind (Client_EP);
   Hay que tener en cuenta que antes de llamar a Unbind es necesario estar seguro de que no hay
mensajes pendientes de recibir en ese End Point.
   Por otro lado, antes de terminar un programa que utilice Lower Layer UDP, despu´ s de desatarse de
                                                                                    e
todos los End Point que se han utilizado, es necesario llamar al procedimiento Finalize:
       Lower_Layer_UDP.Finalize;


3. Composici´ n de mensajes: Buffers
            o
   Cuando un proceso va a enviar un mensaje a otro es necesario que lo almacene previamente en un
Buffer.

3.1.     Declaraci´ n de un Buffer
                  o
    Para utilizar un Buffer es necesario declarar una variable del tipo Buffer_Type4 . En dicha decla-
raci´ n es necesario proporcionar el tama˜ o en bytes que se reserva para almacenar datos en ella. Como
    o                                     n
ser´ necesario utilizar el atributo ’Access de estas variables, es necesario declarar la variable como
   a
aliased:
       Buffer:             aliased LLU.Buffer_Type(1024);

3.2.     Inicializaci´ n de un Buffer
                     o
    El procedimiento Reset permite vaciar el contenido de un Buffer. Es necesario vaciar siempre un
Buffer antes de utilizarlo para componer un nuevo mensaje a enviar, y antes de recibir un nuevo mensaje
   ´                                                                         ´
en el. De esta forma se garantiza que dicho Buffer no tiene datos previos en el:
       Lower_Layer_UDP.Reset(Buffer);

3.3.     Inserci´ n de datos en un Buffer
                o
   La forma de introducir un dato en un Buffer es invocando el atributo ’Write del tipo del dato en
cuesti´ n, de la siguiente forma:
      o
Buffer: aliased Buffer_Type (1024);
I: Integer;
...
I := 5;
Integer’Write (Buffer’Access, I);
    Tras introducir un dato en un Buffer, el siguiente dato que se introduzca en el mismo Buffer se colo-
car´ a continuaci´ n de aqu´ l.
   a              o         e
  3 Para comprender mejor c´ mo se comporta “Bind
                           o                             Any”, puede pensarse que se deber´a llamar m´ s bien “Build Any And Bind”
                                                                                          ı          a
  4 Nota:   Este tipo deriva del tipo Stream de la biblioteca est´ ndar de Ada.
                                                                 a


                                                                2
3.4.    Extracci´ n de datos en un Buffer
                o
    Para extraer un dato de un Buffer se invoca el atributo ’Read del tipo del dato en cuesti´ n, de la
                                                                                             o
siguiente forma:

Buffer: aliased Buffer_Type(1024);
I: Integer;
...
Integer’Read (Buffer’Access, I);

   Una vez extra´do un dato de un Buffer, la siguiente invocaci´ n de Read que se realice sobre el mismo
                  ı                                            o
Buffer extraer´ el dato que se encuentre a continuaci´ n de aqu´ l.
              a                                      o         e


4. Env´o y recepci´ n de mensajes
      ı           o
4.1.    Env´o
           ı
    Cuando un proceso quiere enviar datos a otro proceso, ha de conocer el End Point en el que escucha
el proceso receptor.
    Una vez que sabe el End Point de destino de su mensaje, un proceso lo env´a utilizando el procedi-
                                                                              ı
miento Send_From cuya cabecera es:

procedure Send_From (From:                in     End_Point_Type;
                     To :                 in     End_Point_Type;
                     Data:                access Buffer_Type);


   Los par´ metros son:
          a
       From: El End Point desde el que se envia el mensaje, y en el que posiblemente se esperan mensajes
       de respuesta.
       To: End Point destino del proceso al que se env´a el mensaje.
                                                      ı
       Data: acceso a un Buffer vac´o en el que se hayan los datos que se quieren enviar.
                                   ı
   As´, el c´ digo que llama a Send_From tendr´ el aspecto:
     ı      o                                 a

    Lower_Layer_UDP.Send_From (From_EP, To_EP, Buffer’Access);

4.2.    Recepci´ n
               o
    Un proceso que quiere recibir mensajes previamente debe construir un End Point con la direcci´ n IP
                                                                                                   o
                                              ´
de su m´ quina y un puerto libre, y atarse en el. Una vez hecho esto, usa el procedimiento Receive_From,
       a
cuya cabecera es:

procedure Receive_From (From   :    out End_Point_Type;
                        To     :     in End_Point_Type;
                        Data   : access Buffer_Type;
                        Timeout:     in Duration;
                        Expired:    out Boolean);

   Los par´ metros son:
          a
       From: El End Point desde el que se envi´ el mensaje y en el que posiblemente el emisor espera
                                              o
       respuesta.
       To: End Point en el que escucha el proceso y al que se envi´ el mensaje.
                                                                  o
       Data: acceso a un Buffer vac´o en el que se quedar´ almacenado el mensaje que llegue. Es muy
                                     ı                     a
       importante haber reinicializado dicho Buffer, llamando a Reset, antes de llamar a Receive.


                                                    3
Timeout: plazo (en segundos) durante el cual se esperar´ la llegada del mensaje de un mensaje.
                                                                a
     Si no llegara en este plazo, el procedimiento retorna igualmente, quedando el Buffer vac´o. El tipo
                                                                                             ı
     Duration es compatible con Float.

     Expired: par´ metro de vuelta. Toma el valor True cuando expira el plazo Timeout sin que
                    a
     llegue ning´ n mensaje (con lo que el Buffer queda vac´o). Toma el valor False cuando llega
                u                                             ı
     alg´ n mensaje antes de que venza el plazo, mensaje que queda almacenado en el Buffer.
        u

  As´, el c´ digo que llama a Receive_From tendr´ el aspecto:
    ı      o                                    a

 Receive_From (From_EP, To_EP, Buffer’Access, 2.0, Expired);
 if Expired then
    Put_Line ("Expir´ el plazo");
                    o
 else
    Integer’Read (Buffer’Access, I);
 end if;


5. Pr´ ctica a realizar
     a
  1. Estudiar la especificaci´ n del paquete de comunicaciones Lower Layer UDP (lower layer udp.ads5 ).
                            o
  2. Estudiar el c´ digo del programa cliente (client.adb6 ) y del programa servidor (server.adb7 ).
                  o

  3. Compilar el cliente y el servidor y probarlos. Es necesario que el comando gnatmake encuentre
     la biblioteca de comunicaciones Lower_Layer. Esto puede hacerse de dos formas:

          Teniendo previamente definida la variable de entorno ADA_INCLUDE_PATH en la forma:
              export ADA_INCLUDE_PATH=/opt/ll/lib
          Utilizando el flag -I al llamar a gnatmake, en la forma:
              gnatmake -I/opt/ll/lib client.adb

  4. Modifica el cliente y el servidor de forma que:

          el servidor reciba como argumento en la l´nea de comandos el puerto en en el que se debe
                                                   ı
          atar.
          el cliente reciba como argumentos en la l´nea de comandos el nombre de la m´ quina y el
                                                   ı                                 a
          puerto en el que est´ atado el servidor.
                              a

     Utiliza las funciones Get_Host_Name y To_IP que aparecen en la especificaci´ n de Lower_Layer_UDP
                                                                               o
     y consulta la especificaci´ n del paquete Ada.Command_Line en el manual de referencia del len-
                              o
     guaje.

  5. Realiza modificaciones sencillas al cliente y al servidor para cerciorarte de que comprendes su
     funcionamiento.




 5 ./lower_layer_udp.ads
 6 ./client.adb
 7 ./server.adb




                                                    4

Mais conteúdo relacionado

Mais procurados

Curso Practico Cardsharing Lecc1
Curso Practico Cardsharing Lecc1Curso Practico Cardsharing Lecc1
Curso Practico Cardsharing Lecc1
ZonaTV
 
DIAPOSITIVAS DE PROTOCOLOS
DIAPOSITIVAS DE PROTOCOLOSDIAPOSITIVAS DE PROTOCOLOS
DIAPOSITIVAS DE PROTOCOLOS
gutierrez2010
 
Mikrotik RouterOs basics v0.3
Mikrotik RouterOs basics v0.3Mikrotik RouterOs basics v0.3
Mikrotik RouterOs basics v0.3
Rod Hinojosa
 
Dynamic host configuration protocol(DHCP)
Dynamic host configuration protocol(DHCP)Dynamic host configuration protocol(DHCP)
Dynamic host configuration protocol(DHCP)
Stalin Pallango
 
Problemas de desempeño en las redes de cómputo
Problemas de desempeño en las redes de cómputoProblemas de desempeño en las redes de cómputo
Problemas de desempeño en las redes de cómputo
pabloanibaltabango
 
Ut02 asignacion dinamica_de_direcciones_dhcp
Ut02 asignacion dinamica_de_direcciones_dhcpUt02 asignacion dinamica_de_direcciones_dhcp
Ut02 asignacion dinamica_de_direcciones_dhcp
Carlos Tessier
 

Mais procurados (20)

Tema2 dhcp
Tema2 dhcpTema2 dhcp
Tema2 dhcp
 
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
TCP (Transmission Control Protocol) Y UDP (User Datagram Protocol)
 
Dhcp
DhcpDhcp
Dhcp
 
Clase 03 Protocolos Y Servicios De Red
Clase 03   Protocolos Y Servicios De RedClase 03   Protocolos Y Servicios De Red
Clase 03 Protocolos Y Servicios De Red
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
 
Curso Practico Cardsharing Lecc1
Curso Practico Cardsharing Lecc1Curso Practico Cardsharing Lecc1
Curso Practico Cardsharing Lecc1
 
Dhcp
DhcpDhcp
Dhcp
 
Servicios de Red e Internet
Servicios de Red e InternetServicios de Red e Internet
Servicios de Red e Internet
 
Servicio dhcp gnu linux-centos ::: http://leymebamba.com
Servicio dhcp gnu linux-centos  ::: http://leymebamba.comServicio dhcp gnu linux-centos  ::: http://leymebamba.com
Servicio dhcp gnu linux-centos ::: http://leymebamba.com
 
Protocolos
ProtocolosProtocolos
Protocolos
 
DIAPOSITIVAS DE PROTOCOLOS
DIAPOSITIVAS DE PROTOCOLOSDIAPOSITIVAS DE PROTOCOLOS
DIAPOSITIVAS DE PROTOCOLOS
 
11 aplicaciones tcp ip
11 aplicaciones tcp ip11 aplicaciones tcp ip
11 aplicaciones tcp ip
 
20 dhcp linux_asoitsonp
20 dhcp linux_asoitsonp20 dhcp linux_asoitsonp
20 dhcp linux_asoitsonp
 
Expo ft
Expo ftExpo ft
Expo ft
 
Mikrotik RouterOs basics v0.3
Mikrotik RouterOs basics v0.3Mikrotik RouterOs basics v0.3
Mikrotik RouterOs basics v0.3
 
Dynamic host configuration protocol(DHCP)
Dynamic host configuration protocol(DHCP)Dynamic host configuration protocol(DHCP)
Dynamic host configuration protocol(DHCP)
 
Problemas de desempeño en las redes de cómputo
Problemas de desempeño en las redes de cómputoProblemas de desempeño en las redes de cómputo
Problemas de desempeño en las redes de cómputo
 
Bridges Avanzadas
Bridges AvanzadasBridges Avanzadas
Bridges Avanzadas
 
Ut02 asignacion dinamica_de_direcciones_dhcp
Ut02 asignacion dinamica_de_direcciones_dhcpUt02 asignacion dinamica_de_direcciones_dhcp
Ut02 asignacion dinamica_de_direcciones_dhcp
 
Herramientas de colaboración digital
Herramientas de colaboración digitalHerramientas de colaboración digital
Herramientas de colaboración digital
 

Destaque

Peintres d'avant garde français du x xe siècle
Peintres d'avant garde français du x xe sièclePeintres d'avant garde français du x xe siècle
Peintres d'avant garde français du x xe siècle
pacitina
 
Leo 1402
Leo 1402Leo 1402
Leo 1402
leo0815
 
Peintres d'avant garde français du x xe siècle
Peintres d'avant garde français du x xe sièclePeintres d'avant garde français du x xe siècle
Peintres d'avant garde français du x xe siècle
pacitina
 
Système reproducteur
Système reproducteurSystème reproducteur
Système reproducteur
karalb0186
 
Heinrich Der Hund
Heinrich Der HundHeinrich Der Hund
Heinrich Der Hund
PGCEMaster
 
Ger Ks3 Past&Future Vw
Ger Ks3 Past&Future VwGer Ks3 Past&Future Vw
Ger Ks3 Past&Future Vw
PGCEMaster
 
Cristina laura peintres-francais
Cristina laura peintres-francaisCristina laura peintres-francais
Cristina laura peintres-francais
pacitina
 
Obras de escher (1)
Obras de escher (1)Obras de escher (1)
Obras de escher (1)
quenac
 
Projet carrière de informatique
Projet carrière de informatiqueProjet carrière de informatique
Projet carrière de informatique
jebo1411
 
Violence
ViolenceViolence
Violence
C.A.H.M
 

Destaque (20)

Portail des PME 2011
Portail des PME 2011Portail des PME 2011
Portail des PME 2011
 
Peintres d'avant garde français du x xe siècle
Peintres d'avant garde français du x xe sièclePeintres d'avant garde français du x xe siècle
Peintres d'avant garde français du x xe siècle
 
Références projets
Références projetsRéférences projets
Références projets
 
Tekuidamos 2.0
Tekuidamos 2.0 Tekuidamos 2.0
Tekuidamos 2.0
 
Art90s
Art90sArt90s
Art90s
 
Programa ii jornadas iberoamericanas rrhh y rsc doblecara
Programa ii jornadas iberoamericanas rrhh y rsc doblecaraPrograma ii jornadas iberoamericanas rrhh y rsc doblecara
Programa ii jornadas iberoamericanas rrhh y rsc doblecara
 
Web2y3
Web2y3Web2y3
Web2y3
 
Embasf Présentation Générale 2010
Embasf Présentation Générale 2010Embasf Présentation Générale 2010
Embasf Présentation Générale 2010
 
Blogue
BlogueBlogue
Blogue
 
Leo 1402
Leo 1402Leo 1402
Leo 1402
 
Peintres d'avant garde français du x xe siècle
Peintres d'avant garde français du x xe sièclePeintres d'avant garde français du x xe siècle
Peintres d'avant garde français du x xe siècle
 
Système reproducteur
Système reproducteurSystème reproducteur
Système reproducteur
 
Heinrich Der Hund
Heinrich Der HundHeinrich Der Hund
Heinrich Der Hund
 
Ger Ks3 Past&Future Vw
Ger Ks3 Past&Future VwGer Ks3 Past&Future Vw
Ger Ks3 Past&Future Vw
 
Colores
ColoresColores
Colores
 
Hrbarcamp17
Hrbarcamp17Hrbarcamp17
Hrbarcamp17
 
Cristina laura peintres-francais
Cristina laura peintres-francaisCristina laura peintres-francais
Cristina laura peintres-francais
 
Obras de escher (1)
Obras de escher (1)Obras de escher (1)
Obras de escher (1)
 
Projet carrière de informatique
Projet carrière de informatiqueProjet carrière de informatique
Projet carrière de informatique
 
Violence
ViolenceViolence
Violence
 

Semelhante a Endpoint practica de redes

Capitulo 4: Capa de Transporte del Modelo OSI
Capitulo 4: Capa de Transporte del Modelo OSICapitulo 4: Capa de Transporte del Modelo OSI
Capitulo 4: Capa de Transporte del Modelo OSI
Octavio
 
Capa de transporte del modelo OSI
Capa de transporte del modelo OSICapa de transporte del modelo OSI
Capa de transporte del modelo OSI
elchangoaladino
 
Capa de transporte del modelo OSI
Capa de transporte del modelo OSICapa de transporte del modelo OSI
Capa de transporte del modelo OSI
elchangoaladino
 
Expo 4
Expo 4Expo 4
Expo 4
jorge
 
Capitulo4
Capitulo4Capitulo4
Capitulo4
TESE
 
Capitulo 4 CAPA DE TRANSPORTE DEL MODELO OSI
Capitulo 4    CAPA DE TRANSPORTE DEL MODELO OSICapitulo 4    CAPA DE TRANSPORTE DEL MODELO OSI
Capitulo 4 CAPA DE TRANSPORTE DEL MODELO OSI
BENITEZ ALONSO
 
Seguridad: Backtrack1_bis
Seguridad: Backtrack1_bisSeguridad: Backtrack1_bis
Seguridad: Backtrack1_bis
Francesc Perez
 
Capa de Transporte del Modelo OSI
Capa de Transporte del Modelo OSICapa de Transporte del Modelo OSI
Capa de Transporte del Modelo OSI
angelcgr
 
Métodos de encriptación vía vpns
Métodos de encriptación vía vpnsMétodos de encriptación vía vpns
Métodos de encriptación vía vpns
aleja6hh
 

Semelhante a Endpoint practica de redes (20)

CAPITULO4
CAPITULO4CAPITULO4
CAPITULO4
 
Capitulo 4: Capa de Transporte del Modelo OSI
Capitulo 4: Capa de Transporte del Modelo OSICapitulo 4: Capa de Transporte del Modelo OSI
Capitulo 4: Capa de Transporte del Modelo OSI
 
Capa de transporte del modelo OSI
Capa de transporte del modelo OSICapa de transporte del modelo OSI
Capa de transporte del modelo OSI
 
Capa de transporte del modelo OSI
Capa de transporte del modelo OSICapa de transporte del modelo OSI
Capa de transporte del modelo OSI
 
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiServicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
 
Capitulo 4
Capitulo 4Capitulo 4
Capitulo 4
 
Final
FinalFinal
Final
 
Expo 4
Expo 4Expo 4
Expo 4
 
Trabajo de 2 previo en sistemas operativos en red
Trabajo de 2 previo en sistemas operativos en redTrabajo de 2 previo en sistemas operativos en red
Trabajo de 2 previo en sistemas operativos en red
 
Capitulo4
Capitulo4Capitulo4
Capitulo4
 
Capitulo 4 CAPA DE TRANSPORTE DEL MODELO OSI
Capitulo 4    CAPA DE TRANSPORTE DEL MODELO OSICapitulo 4    CAPA DE TRANSPORTE DEL MODELO OSI
Capitulo 4 CAPA DE TRANSPORTE DEL MODELO OSI
 
Seguridad: Backtrack1_bis
Seguridad: Backtrack1_bisSeguridad: Backtrack1_bis
Seguridad: Backtrack1_bis
 
Capa de Transporte del Modelo OSI
Capa de Transporte del Modelo OSICapa de Transporte del Modelo OSI
Capa de Transporte del Modelo OSI
 
Practica1
Practica1Practica1
Practica1
 
OpenVPN
OpenVPNOpenVPN
OpenVPN
 
Seguridad: Backtrack1
Seguridad: Backtrack1Seguridad: Backtrack1
Seguridad: Backtrack1
 
Redes Privadas Virtuales y cómo configurar routers de Teltonika
Redes Privadas Virtuales y cómo configurar routers de TeltonikaRedes Privadas Virtuales y cómo configurar routers de Teltonika
Redes Privadas Virtuales y cómo configurar routers de Teltonika
 
Redes
Redes Redes
Redes
 
Métodos de encriptación vía vpns
Métodos de encriptación vía vpnsMétodos de encriptación vía vpns
Métodos de encriptación vía vpns
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 

Mais de VISUAL MART - HERBERT PATZAN CARRILLO

Mais de VISUAL MART - HERBERT PATZAN CARRILLO (20)

Estandar TIA 942
Estandar TIA 942Estandar TIA 942
Estandar TIA 942
 
Codigo procesal penal
Codigo procesal penalCodigo procesal penal
Codigo procesal penal
 
Agentes de retencion
Agentes de retencionAgentes de retencion
Agentes de retencion
 
Roland gw 7
Roland gw 7Roland gw 7
Roland gw 7
 
Cisco reduce costos en hospital
Cisco reduce costos en hospitalCisco reduce costos en hospital
Cisco reduce costos en hospital
 
Cisco tech center y la tecnologia lan wireless herbert carrillo
Cisco tech center y la tecnologia lan wireless herbert carrilloCisco tech center y la tecnologia lan wireless herbert carrillo
Cisco tech center y la tecnologia lan wireless herbert carrillo
 
Manual jwplayer
Manual jwplayerManual jwplayer
Manual jwplayer
 
Plano Ciencia
Plano CienciaPlano Ciencia
Plano Ciencia
 
Network security lab certification 350 018
Network security lab certification 350 018Network security lab certification 350 018
Network security lab certification 350 018
 
Unilever en la india
Unilever en la indiaUnilever en la india
Unilever en la india
 
Video streaming
Video streamingVideo streaming
Video streaming
 
Servidores dedicados
Servidores dedicadosServidores dedicados
Servidores dedicados
 
Estimación de proyectos de software
Estimación de proyectos de softwareEstimación de proyectos de software
Estimación de proyectos de software
 
Configurar php sobre iis 7 en windows 7 herbert patzan
Configurar php sobre iis 7 en windows 7   herbert patzanConfigurar php sobre iis 7 en windows 7   herbert patzan
Configurar php sobre iis 7 en windows 7 herbert patzan
 
Sistemas de Conexion
Sistemas de ConexionSistemas de Conexion
Sistemas de Conexion
 
Comparación de métodos de estimacion del análisis conjunto
Comparación de métodos de estimacion del análisis conjuntoComparación de métodos de estimacion del análisis conjunto
Comparación de métodos de estimacion del análisis conjunto
 
Base De Datos Tecnologia De Negocios Electronicos
Base De Datos Tecnologia De Negocios ElectronicosBase De Datos Tecnologia De Negocios Electronicos
Base De Datos Tecnologia De Negocios Electronicos
 
Equipos Activos De Red
Equipos Activos De RedEquipos Activos De Red
Equipos Activos De Red
 
Competencias Laborales
Competencias LaboralesCompetencias Laborales
Competencias Laborales
 
Manual De Wifiway
Manual De WifiwayManual De Wifiway
Manual De Wifiway
 

Último

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 

Último (20)

Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 

Endpoint practica de redes

  • 1. Pr´ ctica de Redes I: Pr´ ctica introductoria a a El paquete de comunicaciones Lower Layer Grupo de Sistemas y Comunicaciones Octubre de 2006 Resumen En las pr´ cticas de Redes I se utilizar´ el paquete de comunicaciones Lower Layer, que ofrece un a a servicio extremo a extremo de env´o de mensajes no orientado a conexi´ n y no fiable. El objetivo de ı o esta pr´ ctica es familiarizarse con este paquete de comunicaciones y realizar un cliente y un servidor a sencillos que lo utilicen. 1. Introducci´ n o El paquete Lower Layer UDP 1 es el que ofrece las primitivas de comunicaciones que utilizar´ n los a programas a realizar en las pr´ cticas. Cons´ ltese su especificaci´ n2 adjunta. a u o 2. Direcciones y puertos: los End Point Un End Point es el destino que tienen los datos que un proceso de una m´ quina le env´a a otro proceso a ı en otra m´ quina. Un End Point se construye a partir de la direcci´ n IP y de un puerto de la m´ quina del a o a proceso al que van dirigidos los datos. Los End Point son puntos de destino y origen de los mensajes que transportan los datos. 2.1. Construir un End Point Para construir un End Point se usa el procedimiento Build: Server_EP := Lower_Layer_UDP.Build("212.128.4.155", 6001); Un proceso puede construir tantos End Point como desee, sean de la m´ quina que sean (en la que a reside u otra cualquiera). 2.2. Atarse a un End Point Para que un proceso pueda recibir datos de otros, es necesario que anteriormente se ate a un End Point. De esta forma indica su intenci´ n de escuchar mensajes dirigidos a ese End Point. Esto se puede hacer o de dos formas: At´ ndose a un puerto concreto: Se hace llamando primero a Build para construir un End Point, a y luego a Bind para atarse a el. N´ tese que la direcci´ n IP que se usa en el Build ha de ser ´ o o necesariamente de la m´ quina en la que se ejecuta el c´ digo: a o Server_EP := Lower_Layer_UDP.Build ("212.128.4.155", 6001); Lower_Layer_UDP.Bind (Server_EP); 1 Lower Layer UDP es un sencillo recubrimiento de la biblioteca Lower Layer para utilizar solamente la parte de UDP. No es necesario entender toda la complejidad de Lower Layer para realizar las pr´ cticas, sino solamente el subconjunto que aparece en a Lower Layer UDP 2 ./lower_layer_udp.ads 1
  • 2. At´ ndose a un puerto libre cualquiera: Se hace llamando a Bind_Any, que autom´ ticamente a a construye un End Point con la direcci´ n IP de la m´ quina y un puerto libre cualquiera asignado por o a ´ el sistema operativo, y luego se ata a el. Este End Point es devuelto como par´ metro en modo out a por Bind_Any3 : LLU.Bind_Any(Client_EP); 2.3. Desatarse de un End Point ´ Cuando un proceso ya no quiere recibir m´ s datos en un End Point, puede desatarse de el. De esta a forma indica que ya no va a escuchar´ en mensajes dirigidos a ese End Point. Esto se hace utilizando el a procedimiento Unbind: Lower_Layer_UDP.Unbind (Client_EP); Hay que tener en cuenta que antes de llamar a Unbind es necesario estar seguro de que no hay mensajes pendientes de recibir en ese End Point. Por otro lado, antes de terminar un programa que utilice Lower Layer UDP, despu´ s de desatarse de e todos los End Point que se han utilizado, es necesario llamar al procedimiento Finalize: Lower_Layer_UDP.Finalize; 3. Composici´ n de mensajes: Buffers o Cuando un proceso va a enviar un mensaje a otro es necesario que lo almacene previamente en un Buffer. 3.1. Declaraci´ n de un Buffer o Para utilizar un Buffer es necesario declarar una variable del tipo Buffer_Type4 . En dicha decla- raci´ n es necesario proporcionar el tama˜ o en bytes que se reserva para almacenar datos en ella. Como o n ser´ necesario utilizar el atributo ’Access de estas variables, es necesario declarar la variable como a aliased: Buffer: aliased LLU.Buffer_Type(1024); 3.2. Inicializaci´ n de un Buffer o El procedimiento Reset permite vaciar el contenido de un Buffer. Es necesario vaciar siempre un Buffer antes de utilizarlo para componer un nuevo mensaje a enviar, y antes de recibir un nuevo mensaje ´ ´ en el. De esta forma se garantiza que dicho Buffer no tiene datos previos en el: Lower_Layer_UDP.Reset(Buffer); 3.3. Inserci´ n de datos en un Buffer o La forma de introducir un dato en un Buffer es invocando el atributo ’Write del tipo del dato en cuesti´ n, de la siguiente forma: o Buffer: aliased Buffer_Type (1024); I: Integer; ... I := 5; Integer’Write (Buffer’Access, I); Tras introducir un dato en un Buffer, el siguiente dato que se introduzca en el mismo Buffer se colo- car´ a continuaci´ n de aqu´ l. a o e 3 Para comprender mejor c´ mo se comporta “Bind o Any”, puede pensarse que se deber´a llamar m´ s bien “Build Any And Bind” ı a 4 Nota: Este tipo deriva del tipo Stream de la biblioteca est´ ndar de Ada. a 2
  • 3. 3.4. Extracci´ n de datos en un Buffer o Para extraer un dato de un Buffer se invoca el atributo ’Read del tipo del dato en cuesti´ n, de la o siguiente forma: Buffer: aliased Buffer_Type(1024); I: Integer; ... Integer’Read (Buffer’Access, I); Una vez extra´do un dato de un Buffer, la siguiente invocaci´ n de Read que se realice sobre el mismo ı o Buffer extraer´ el dato que se encuentre a continuaci´ n de aqu´ l. a o e 4. Env´o y recepci´ n de mensajes ı o 4.1. Env´o ı Cuando un proceso quiere enviar datos a otro proceso, ha de conocer el End Point en el que escucha el proceso receptor. Una vez que sabe el End Point de destino de su mensaje, un proceso lo env´a utilizando el procedi- ı miento Send_From cuya cabecera es: procedure Send_From (From: in End_Point_Type; To : in End_Point_Type; Data: access Buffer_Type); Los par´ metros son: a From: El End Point desde el que se envia el mensaje, y en el que posiblemente se esperan mensajes de respuesta. To: End Point destino del proceso al que se env´a el mensaje. ı Data: acceso a un Buffer vac´o en el que se hayan los datos que se quieren enviar. ı As´, el c´ digo que llama a Send_From tendr´ el aspecto: ı o a Lower_Layer_UDP.Send_From (From_EP, To_EP, Buffer’Access); 4.2. Recepci´ n o Un proceso que quiere recibir mensajes previamente debe construir un End Point con la direcci´ n IP o ´ de su m´ quina y un puerto libre, y atarse en el. Una vez hecho esto, usa el procedimiento Receive_From, a cuya cabecera es: procedure Receive_From (From : out End_Point_Type; To : in End_Point_Type; Data : access Buffer_Type; Timeout: in Duration; Expired: out Boolean); Los par´ metros son: a From: El End Point desde el que se envi´ el mensaje y en el que posiblemente el emisor espera o respuesta. To: End Point en el que escucha el proceso y al que se envi´ el mensaje. o Data: acceso a un Buffer vac´o en el que se quedar´ almacenado el mensaje que llegue. Es muy ı a importante haber reinicializado dicho Buffer, llamando a Reset, antes de llamar a Receive. 3
  • 4. Timeout: plazo (en segundos) durante el cual se esperar´ la llegada del mensaje de un mensaje. a Si no llegara en este plazo, el procedimiento retorna igualmente, quedando el Buffer vac´o. El tipo ı Duration es compatible con Float. Expired: par´ metro de vuelta. Toma el valor True cuando expira el plazo Timeout sin que a llegue ning´ n mensaje (con lo que el Buffer queda vac´o). Toma el valor False cuando llega u ı alg´ n mensaje antes de que venza el plazo, mensaje que queda almacenado en el Buffer. u As´, el c´ digo que llama a Receive_From tendr´ el aspecto: ı o a Receive_From (From_EP, To_EP, Buffer’Access, 2.0, Expired); if Expired then Put_Line ("Expir´ el plazo"); o else Integer’Read (Buffer’Access, I); end if; 5. Pr´ ctica a realizar a 1. Estudiar la especificaci´ n del paquete de comunicaciones Lower Layer UDP (lower layer udp.ads5 ). o 2. Estudiar el c´ digo del programa cliente (client.adb6 ) y del programa servidor (server.adb7 ). o 3. Compilar el cliente y el servidor y probarlos. Es necesario que el comando gnatmake encuentre la biblioteca de comunicaciones Lower_Layer. Esto puede hacerse de dos formas: Teniendo previamente definida la variable de entorno ADA_INCLUDE_PATH en la forma: export ADA_INCLUDE_PATH=/opt/ll/lib Utilizando el flag -I al llamar a gnatmake, en la forma: gnatmake -I/opt/ll/lib client.adb 4. Modifica el cliente y el servidor de forma que: el servidor reciba como argumento en la l´nea de comandos el puerto en en el que se debe ı atar. el cliente reciba como argumentos en la l´nea de comandos el nombre de la m´ quina y el ı a puerto en el que est´ atado el servidor. a Utiliza las funciones Get_Host_Name y To_IP que aparecen en la especificaci´ n de Lower_Layer_UDP o y consulta la especificaci´ n del paquete Ada.Command_Line en el manual de referencia del len- o guaje. 5. Realiza modificaciones sencillas al cliente y al servidor para cerciorarte de que comprendes su funcionamiento. 5 ./lower_layer_udp.ads 6 ./client.adb 7 ./server.adb 4