PROYECTO SOCKET TCP - Erick Albadan - Sebastian Vera

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

SOCKET TCP/IP

Utilidad del modelo estándar TCP/IP en la operación de la comunicación cliente-


servidor a través de sockets.

Problemática:
Dentro de las redes de comunicación existe un problema común en la
transferencia de archivos grandes de manera eficiente y segura entre dos
sistemas. Aquí crear y utilizar un socket TCP/IP resulta ser útil.
Con fines de ayudar en el soporte de un servidor que aloja información
confidencial de una empresa del estado en la cual la transmisión de datos y
archivos está siendo lenta, conflictiva e incompleta. Por tal razón, se propone
implementar un socket TCP/IP para atender todas las novedades presentadas en
el pasado y presentar una buena experiencia al usuario.
Como se mencionó en el párrafo anterior, los sockets TCP/IP permiten la
comunicación bidireccional entre cliente-servidor, garantizando por medio del
TCP que los datos lleguen de manera segura y en el orden correcto al destinatario.
Esto es crucial para la transmisión de archivos, datos o videos.
Por lo tanto, desde nuestro papel como ingenieros de sistemas, aconsejamos
priorizar la utilización de los sockets orientados al protocolo TCP/IP para tener la
certeza de que los datos transferidos son los deseados. Por el contrario, usar un
protocolo UDP/IP puede perjudicar el flujo de transferencias, ya que este
protocolo está enfocado en la velocidad y no tanto en la confidencialidad de
datos, provocando así incoherencia en el envío de archivos, ya que pueden llegar
en desorden, incompletos o, directamente, no llegar.
En definitiva, La solución a este problema implicaría la implementación de
sockets TCP/IP para la transmisión de datos y la incorporación de técnicas de
programación de red para optimizar la eficiencia de la transmisión.
Objetivo:
Desarrollar un sistema de transferencia de archivos eficientes y seguros basado
en sockets dentro del modelo TCP/IP que permita la transmisión de archivos
cliente-servidor, con la finalidad de garantizar la integridad y el orden correcto de
los datos transmitidos.
Alcance:
El desarrollo de este proyecto permitió investigar a profundidad sobre los
protocolos TCP y la programación de sistemas de comunicación bidireccionales
utilizando sockets. Asimismo, fue un desafío interesante estructurar y diseña un
servidor que de respuesta a las solicitudes enviadas por el cliente a través de una
conexión IP, establecida en las reglas del firewall.
El desarrollo del proyecto se llevó a cabo en el lenguaje de programación Python,
utilizando principalmente las bibliotecas socket y socket server para establecer
conexiones con el servidor. Este enfoque nos permitió cumplir con el objetivo
inicial del proyecto: Desarrollar un socket basado en el modelo TCP/IP para
facilitar una comunicación sostenible entre el cliente y el servidor.
Además, se realizaron pruebas para asegurar la eficiencia de la comunicación y
descubrir que aspectos de mejora tenía el sistema. Al final, el proyecto no solo
proporcionó una solución técnica, sino que también aportó valiosos
conocimientos sobre la programación de redes.
Descripción funcional:
La descripción funcional del socket es posible hacerla mediante el modelo
TCP/IP, el cual consiste en 4 capas con una cantidad determinada de protocolos
funcionando en cada una de estas capas. La relación existe entre el modelo
cliente-servidor, el socket y los protocolos será expresado mediante el modelo
anteriormente mencionado (TCP/IP).
- Capa de Aplicación

• HTTP (Hypertext Transfer Protocol / Protocolo de transferencia de


hipertexto): es un protocolo de comunicación utilizado para la
transferencia de datos en la Web. Es el protocolo fundamental que permite
la comunicación entre un cliente y un servidor web.

HTTP se basa en sockets para establecer la comunicación entre el cliente y


el servidor. Los clientes web utilizan sockets para abrir conexiones con los
servidores web y enviar solicitudes HTTP para obtener recursos.

El funcionamiento de HTTP implica una serie de pasos, los cuales son:


establecimiento de conexión (el cliente web abre una conexión TCP/IP
con el servidor web utilizando un socket), envío de solicitud (el cliente web
envía una solicitud HTTP al servidor, que incluye un método de solicitud y
la URL del recurso solicitado), procesamiento de la solicitud (el servidor
web procesa la solicitud y busca el recurso solicitado en su sistema de
archivos o base de datos), envío de respuesta (el servidor web envía una
respuesta HTTP al cliente, que incluye un código de estado y, en el caso de
una solicitud exitosa, el contenido del recurso solicitado), cierre de
conexión (una vez completada la transacción, la conexión se cierra, o se
mantiene abierta para permitir múltiples solicitudes en una única
conexión).

• SMTP (Simple Mail Transfer Protocol / Protocolo Simple de


Transferencia de Correo): es un protocolo de comunicación utilizado para
enviar correos electrónicos a través de una red. Es el estándar utilizado
para la transmisión de mensajes de correo electrónico entre servidores de
correo electrónico.

SMTP se utiliza para establecer la comunicación entre un cliente de correo


electrónico y un servidor de correo electrónico. El cliente de correo
electrónico actúa como el cliente en el modelo cliente-servidor, mientras
que el servidor de correo electrónico actúa como el servidor.

El funcionamiento de SMTP implica una serie de pasos, los cuales son:


establecimiento de conexión (el cliente de correo electrónico abre una
conexión TCP/IP con el servidor de correo electrónico utilizando un
socket), envío del mensaje (el cliente de correo electrónico envía el
mensaje de correo electrónico al servidor de correo electrónico a través de
la conexión establecida), procesamiento del mensaje (el servidor de
correo electrónico procesa el mensaje y lo encola para su entrega),
entrega del mensaje (el servidor de correo electrónico entrega el mensaje
al servidor de correo del destinatario, que a su vez lo entrega a la bandeja
de entrada del destinatario), cierre de conexión (una vez completada la
transacción, la conexión se cierra).

• Telnet: es un protocolo de red que permite la comunicación bidireccional


entre un cliente y un servidor a través de una red. Facilita la conexión
remota a un servidor para ejecutar comandos y acceder a recursos como si
estuvieras físicamente presente en ese servidor.

Telnet utiliza sockets para establecer la conexión entre el cliente y el


servidor. Los sockets proporcionan una interfaz de programación para la
comunicación entre procesos a través de una red, permitiendo que el
cliente Telnet se conecte al servidor y envíe comandos para su ejecución.

El funcionamiento de Telnet implica una serie de pasos, los cuales son:


establecimiento de conexión (el cliente Telnet inicia una conexión TCP/IP
con el servidor utilizando un socket), autenticación (es opcional.
Dependiendo de la configuración del servidor, puede requerir que el cliente
se autentique proporcionando credenciales de inicio de sesión),
interacción con el servidor (una vez establecida la conexión, el cliente
puede enviar comandos al servidor, que son ejecutados por el sistema
remoto. El servidor envía las respuestas al cliente a través de la misma
conexión), cierre de conexión (cuando la interacción ha terminado, el
cliente o el servidor pueden cerrar la conexión).

• FTP (File Transfer Protocol / Protocolo de Transferencia de Archivos): es


un protocolo de red utilizado para transferir archivos entre un cliente y un
servidor a través de una red, como Internet. Es ampliamente utilizado para
cargar y descargar archivos desde servidores remotos.
FTP utiliza sockets para establecer la conexión entre el cliente y el servidor.
Los sockets proporcionan una interfaz de programación para la
comunicación entre procesos a través de una red, lo que permite que el
cliente FTP se conecte al servidor FTP y realice operaciones de
transferencia de archivos.

El funcionamiento de FTP implica una serie de pasos, los cuales son:


establecimiento de conexión (el cliente FTP inicia una conexión TCP/IP
con el servidor utilizando un socket), autenticación (es opcional.
Dependiendo de la configuración del servidor, puede requerir que el cliente
se autentique proporcionando credenciales de inicio de sesión),
navegación en el sistema de archivos (una vez establecida la conexión, el
cliente puede navegar por el sistema de archivos del servidor, listando
directorios, creando carpetas, y navegando entre ellos), transferencia de
archivos (el cliente puede cargar archivos al servidor o descargar archivos
desde el servidor. Esto se realiza mediante comandos específicos como
PUT y GET), cierre de conexión (cuando la transferencia de archivos ha
terminado, el cliente o el servidor pueden cerrar la conexión).

• DNS (Domain Name System / Sistema de Nombres de Dominio): es un


sistema que se encarga de traducir los nombres de dominio a direcciones
IP y viceversa. Esto permite a los usuarios acceder a recursos en Internet
utilizando nombres de dominio legibles en lugar de tener que recordar
direcciones IP numéricas.

DNS no se basa directamente en sockets para su funcionamiento. Sin


embargo, los clientes DNS y los servidores DNS pueden utilizar sockets
para comunicarse entre sí y realizar consultas y respuestas de DNS.

El funcionamiento de DNS implica una serie de pasos, los cuales son:


resolución de nombres (cuando un usuario ingresa un nombre de dominio
en su navegador web, el sistema operativo del cliente envía una consulta
DNS al servidor DNS configurado), consulta DNS (el cliente DNS envía una
consulta al servidor DNS, solicitando la dirección IP asociada al nombre de
dominio especificado), procesamiento en el servidor DNS (el servidor
DNS procesa la consulta y busca la dirección IP correspondiente en su
base de datos o a través de consultas a otros servidores DNS si es
necesario), respuesta DNS (el servidor DNS responde al cliente con la
dirección IP asociada al nombre de dominio solicitado), cierre de
conexión (una vez que se ha completado la transacción, la conexión entre
el cliente y el servidor DNS se cierra).
• RIP (Routing Information Protocol / Protocolo de Información de
Enrutamiento): es un protocolo de enrutamiento utilizado en redes de
computadoras para intercambiar información de enrutamiento entre
routers. Su objetivo principal es determinar la mejor ruta para reenviar
paquetes de datos dentro de una red basándose en el número de saltos
(hops) entre routers.

RIP no utiliza sockets directamente para su funcionamiento, ya que se trata


de un protocolo de enrutamiento diseñado para routers. Sin embargo, los
routers pueden utilizar sockets para comunicarse entre sí y compartir
información de enrutamiento utilizando RIP.

El funcionamiento de RIP implica una serie de siguientes pasos, los cuales


son: intercambio de información (los routers vecinos intercambian
información de enrutamiento utilizando mensajes RIP. Estos mensajes
contienen información sobre las redes a las que están conectados y el
número de saltos necesarios para alcanzarlas), atualización de la tabla
de enrutamiento (cada router actualiza su tabla de enrutamiento
utilizando la información recibida en los mensajes RIP. Esto permite al
router determinar la mejor ruta para reenviar paquetes de datos dentro de
la red), difusión de actualizaciones, (los routers difunden periódicamente
actualizaciones de enrutamiento a sus vecinos para mantener actualizada
la información de enrutamiento en toda la red), convergencia (con el
tiempo, la red converge hacia un estado estable en el que todos los routers
tienen información de enrutamiento consistente y actualizada).

• SNMP (Simple Network Management Protocol / Protocolo Simple de


Administración de Red): es un protocolo estándar utilizado para
monitorear y administrar dispositivos de red, como routers, switches,
servidores y otros dispositivos de red. Permite a los administradores de red
recopilar información, configurar parámetros y recibir notificaciones sobre
el estado y el rendimiento de los dispositivos de red.

SNMP utiliza sockets para establecer la comunicación entre los agentes


SNMP (en los dispositivos de red) y el servidor de administración SNMP
(también conocido como NMS, Network Management System). Los
agentes SNMP actúan como clientes, mientras que el servidor de
administración SNMP actúa como el servidor en el modelo cliente-
servidor.

El funcionamiento de SNMP implica a serie de pasos, los cuales son:


agentes SNMP (estos son programas que se ejecutan en los dispositivos
de red y recopilan información sobre el estado y el rendimiento del
dispositivo. Los agentes SNMP responden a solicitudes de información
(GET) y pueden enviar notificaciones (TRAPs) al servidor de administración
SNMP cuando se producen eventos importantes), servidor de
administración SNMP (NMS) (este es el componente central de la gestión
de red. El servidor de administración SNMP envía solicitudes de
información (GET) a los agentes SNMP para recopilar datos de los
dispositivos de red y puede enviar comandos de configuración (SET) para
ajustar la configuración de los dispositivos), protocolo SNMP (define un
conjunto de operaciones y mensajes que se utilizan para la comunicación
entre los agentes SNMP y el servidor de administración SNMP. Estos
mensajes se envían a través de sockets utilizando el protocolo UDP (User
Datagram Protocol) en el puerto 161 para las solicitudes GET y SET, y en el
puerto 162 para las notificaciones TRAP).
- Capa de Transporte

• TCP (Transmission Control Protocol / Protocolo de Control de


Transmisión): es un protocolo de comunicación de datos que garantiza la
entrega ordenada y confiable de datos a través de una red. Es parte del
conjunto de protocolos TCP/IP, que es ampliamente utilizado en Internet y
en redes locales.

TCP está estrechamente relacionado con los sockets ya que es el


protocolo subyacente utilizado para la comunicación bidireccional entre
un cliente y un servidor a través de una red.

El funcionamiento de TCP implica una serie de pasos, los cuales son:


establecimiento de conexión (antes de que los datos puedan ser
transferidos, se establece una conexión TCP entre el cliente y el servidor.
Esto se logra mediante un proceso conocido como el "apretón de manos
de tres vías" (three-way handshake), en el que el cliente y el servidor
intercambian mensajes para establecer la conexión), transferencia de
datos (una vez establecida la conexión, el cliente y el servidor pueden
enviar y recibir datos de manera bidireccional. TCP se encarga de dividir los
datos en segmentos más pequeños y numerarlos para garantizar su
entrega ordenada y confiable), control de flujo y control de congestión
(TCP implementa mecanismos de control de flujo y control de congestión
para garantizar que la red no se sature y que los datos se entreguen de
manera eficiente. Esto incluye ajustar la velocidad de transmisión en
función de la capacidad de la red y retransmitir segmentos perdidos o
dañados), cierre de conexión (una vez que se han transferido todos los
datos, se cierra la conexión TCP. Esto se realiza mediante un proceso de
"apretón de manos de cuatro vías" (four-way handshake), en el que el
cliente y el servidor intercambian mensajes para confirmar el cierre de la
conexión).
• UDP (User Datagram Protocol / Protocolo de Datagrama de Usuario): es
un protocolo de comunicación de datos que proporciona una forma simple
de enviar datagramas a través de una red sin garantías de entrega
ordenada o confiable. A diferencia de TCP, UDP no establece una conexión
antes de enviar datos y no implementa mecanismos de control de flujo o
control de congestión.

UDP también está estrechamente relacionado ya que es el protocolo


subyacente utilizado para la comunicación entre un cliente y un servidor a
través de una red. Al igual que TCP, los sockets proporcionan una interfaz
de programación de aplicaciones (API) que permite a los programas enviar
y recibir datos utilizando UDP.

El funcionamiento de UDP implica una serie de pasos, los cuales son:


envío de datagramas (los programas cliente y servidor pueden enviar y
recibir datagramas UDP de manera independiente sin necesidad de
establecer una conexión previa. Esto permite una comunicación rápida y
eficiente, pero no garantiza la entrega ordenada o confiable de datos), sin
control de flujo ni retransmisión (a diferencia de TCP, UDP no
implementa mecanismos de control de flujo o retransmisión de datos. Esto
significa que los datagramas pueden perderse, duplicarse o llegar en un
orden diferente al que fueron enviados), menor sobrecarga (debido a su
naturaleza sin conexión y sin garantías, UDP tiene una sobrecarga de
protocolo más baja en comparación con TCP. Esto lo hace adecuado para
aplicaciones donde la velocidad y la eficiencia son más importantes que la
confiabilidad, como en la transmisión de audio y video en tiempo real).
- Capa de Internet

• ARP (Address Resolution Protocol / Protocolo de Resolución de


Direcciones): es un protocolo utilizado para asociar direcciones IP de nivel
de red con direcciones MAC (Media Access Control) de nivel de enlace en
una red local. Se utiliza principalmente para encontrar la dirección MAC
correspondiente a una dirección IP determinada en la misma subred.

ARP no está directamente relacionado con los sockets ni con la


comunicación cliente-servidor. Sin embargo, ARP es esencial para la
comunicación en una red local, ya que permite a los dispositivos de red
determinar la dirección MAC de un destino dentro de la misma subred.

El funcionamiento de ARP implica una serie de pasos, los cuales son:


solicitud ARP (cuando un dispositivo necesita enviar datos a una dirección
IP determinada dentro de la misma subred, envía una solicitud ARP en la
red preguntando "¿Quién tiene esta dirección IP?" Esta solicitud se realiza
utilizando una dirección de difusión (broadcast) para que todos los
dispositivos en la red puedan escucharla), respuesta ARP (el dispositivo
con la dirección IP solicitada responde a la solicitud ARP con su dirección
MAC correspondiente. Esta respuesta se envía directamente al dispositivo
que realizó la solicitud), caché ARP (una vez que un dispositivo ha
obtenido la dirección MAC asociada a una dirección IP, guarda esta
información en una tabla de caché ARP para futuras referencias. Esto evita
la necesidad de realizar solicitudes ARP repetidas para el mismo destino
dentro de un período de tiempo determinado).

• IP (Internet Protocol / Protocolo de Internet): es un protocolo de


comunicación utilizado para identificar y enrutar paquetes de datos a
través de una red de computadoras. Es parte del conjunto de protocolos
TCP/IP y se utiliza para la transmisión de datos en Internet y en redes
locales.

IP está estrechamente relacionado ya que es el protocolo subyacente


utilizado para enviar y recibir paquetes de datos a través de una red. Los
sockets proporcionan una interfaz de programación de aplicaciones (API)
que permite a los programas enviar y recibir datos utilizando direcciones
IP.

El funcionamiento de IP implica una serie de pasos, los cuales son:


asignación de direcciones IP (cada dispositivo en una red tiene una
dirección IP única que se utiliza para identificarlo en la red. Las direcciones
IP pueden ser asignadas estáticamente (configuradas manualmente) o
dinámicamente (mediante un servidor DHCP)), enrutamiento de paquetes
(cuando un dispositivo desea enviar datos a otro dispositivo en la red, crea
un paquete de datos que incluye la dirección IP del destino. Este paquete
se envía a través de la red y es dirigido de manera eficiente hacia su destino
utilizando tablas de enrutamiento y protocolos de enrutamiento como RIP,
OSPF o BGP), reenvío de paquetes (en cada nodo de la red, los paquetes
IP son reenviados de un dispositivo a otro según la información de
enrutamiento contenida en las tablas de enrutamiento. Los routers y
switches son dispositivos clave en este proceso, ya que determinan la
mejor ruta para reenviar los paquetes hacia su destino), entrega de
paquetes (una vez que los paquetes alcanzan su destino, son recibidos
por el dispositivo de destino y se entregan a la aplicación correspondiente
utilizando la información de los puertos de destino contenida en el
encabezado de los paquetes IP.

• IGMP (Internet Group Management Protocol / Protocolo de Gestión de


Grupos de Internet): es un protocolo utilizado en redes IP para administrar
la membresía de grupos multicast. Permite a los dispositivos informar a los
routers sobre su interés en recibir tráfico multicast para grupos
específicos, así como a los routers mantener un registro de los miembros
de cada grupo multicast en la red.

IGMP no está directamente relacionado, ya que es un protocolo utilizado


para administrar el tráfico multicast en la capa de red, mientras que los
sockets se utilizan principalmente para la comunicación punto a punto
entre aplicaciones en el modelo cliente-servidor. Sin embargo, los sockets
podrían utilizarse en aplicaciones que implementan funciones
relacionadas con multicast, como la transmisión de contenido multimedia
a múltiples receptores.

El funcionamiento de IGMP implica una serie de pasos, los cuales son:


registro de grupos multicast (los dispositivos que desean recibir tráfico
multicast para un grupo específico envían mensajes de solicitud de
membresía IGMP a los routers en la red. Estos mensajes informan al router
sobre el interés del dispositivo en unirse al grupo multicast), gestión de
membresía (los routers utilizan IGMP para mantener un registro de los
miembros activos de cada grupo multicast en la red. Esto les permite
determinar qué tráfico multicast deben enviar a qué segmentos de la red,
minimizando la duplicación de tráfico innecesario), control de tráfico
multicast (los routers utilizan la información de membresía IGMP para
administrar eficientemente el tráfico multicast en la red, enviando tráfico
solo a los segmentos donde hay miembros activos del grupo multicast).

• ICMP (Internet Control Message Protocol / Protocolo de Mensajes de


Control de Internet): es un protocolo utilizado en redes IP para el envío de
mensajes de control y diagnóstico entre dispositivos en una red. ICMP se
utiliza principalmente para informar sobre errores de red, realizar pruebas
de conectividad (ping) y administrar la entrega de paquetes IP.

ICMP no está directamente relacionado, ya que se centra en la


comunicación de control entre dispositivos en una red IP y no en la
comunicación entre aplicaciones cliente y servidor a través de sockets. Sin
embargo, los mensajes ICMP pueden ser generados como respuesta a
eventos relacionados con los sockets, como la indisponibilidad de un
servidor o la pérdida de paquetes durante la transmisión.

El funcionamiento de ICMP implica una serie de pasos, los cuales son:


envío de mensajes de control (los dispositivos en una red IP pueden
enviar mensajes ICMP para informar sobre eventos como la
indisponibilidad de un destino, la fragmentación de paquetes, el tiempo de
vida excedido y otros errores de red), respuestas a mensajes ICMP
(cuando un dispositivo recibe un mensaje ICMP, puede generar una
respuesta ICMP apropiada. Por ejemplo, un dispositivo puede responder a
un mensaje de eco ICMP (ping) para confirmar la conectividad de red),
gestión de la entrega de paquetes (ICMP se utiliza para administrar la
entrega de paquetes IP, incluida la generación de mensajes de error
cuando se produce un problema en la entrega de un paquete (por ejemplo,
un destino inalcanzable)), diagnóstico de red (ICMP también se utiliza
para realizar pruebas de conectividad, como el comando "ping", que envía
mensajes de eco ICMP a un destino y espera una respuesta).
- Capa de Interfaz de Red

• Ethernet: es una tecnología de red de área local (LAN) que define los
estándares para la transmisión de datos en una red cableada. Utiliza un
método de acceso al medio de transmisión conocido como CSMA/CD
(Carrier Sense Multiple Access with Collision Detection / Acceso Múltiple
por Detección de Portadora con Detección de Colisiones), que permite a
múltiples dispositivos compartir el mismo medio de transmisión y evitar
colisiones de datos.

Ethernet es el medio físico y la tecnología subyacente que permite a los


dispositivos de red, incluidos los servidores y clientes, comunicarse entre
sí. Los sockets se utilizan para establecer la comunicación entre
aplicaciones cliente y servidor a través de una red Ethernet.

El funcionamiento de Ethernet implica una serie de pasos, los cuales son:


transmisión de datos (los datos se transmiten en una red Ethernet en
forma de tramas (frames) que contienen la información enviada y la
dirección de destino. Estas tramas se envían a través del medio físico de
transmisión, que puede ser cableado (como cables de cobre) o
inalámbrico (como Wi-Fi)), CSMA/CD (Carrier Sense Multiple Access
with Collision Detection / Acceso Múltiple por Detección de Portadora
con Detección de Colisiones) (Ethernet utiliza el método CSMA/CD para
evitar colisiones de datos en el medio de transmisión. Los dispositivos
escuchan el medio antes de transmitir datos para detectar si hay señales
de otros dispositivos transmitiendo. Si se detecta una señal, el dispositivo
espera un tiempo aleatorio antes de intentar transmitir nuevamente para
evitar colisiones), direcciones MAC (cada dispositivo en una red Ethernet
tiene una dirección MAC única, que se utiliza para identificarlo en la red.
Las tramas Ethernet contienen las direcciones MAC de origen y destino
para asegurar que los datos lleguen al destino correcto), topologías de red
(Ethernet admite varias topologías de red, incluidas estrellas, buses y
anillos. Estas topologías determinan cómo se conectan físicamente los
dispositivos en la red y cómo se transmiten los datos entre ellos).

• Token Ring: es una antigua tecnología de red de área local (LAN) que utiliza
un método de acceso al medio conocido como Token Passing (Paso de
Token). En una red Token Ring, los datos se transmiten en forma de "token"
a través de un anillo lógico formado por todos los dispositivos conectados
a la red. Solo el dispositivo que posee el token tiene permiso para
transmitir datos, lo que garantiza un acceso ordenado al medio de
transmisión y evita las colisiones de datos.

Token Ring no está directamente relacionado, ya que se trata de una


tecnología de red que utiliza un método de acceso al medio diferente al
utilizado por los sockets para la comunicación punto a punto en el modelo
cliente-servidor. Sin embargo, los dispositivos que se comunican a través
de una red Token Ring podrían utilizar sockets para la comunicación entre
aplicaciones cliente y servidor.

El funcionamiento de Token Ring implica una serie de pasos, los cuales


son: paso de Token (en una red Token Ring, los datos se transmiten en
forma de "token" a través de un anillo lógico que conecta todos los
dispositivos en la red. El token circula por el anillo en una dirección
predeterminada y solo un dispositivo a la vez puede poseer el token),
transmisión de datos (cuando un dispositivo posee el token, tiene
permiso para transmitir datos. El dispositivo agrega los datos a la trama de
datos y los transmite a través del anillo. Los demás dispositivos en la red
reciben la trama de datos y la pasan al siguiente dispositivo en el anillo
hasta que llega al destino), retorno del token (una vez que un dispositivo
ha transmitido sus datos, libera el token y lo pasa al siguiente dispositivo
en el anillo. El proceso continúa de esta manera, permitiendo que los
dispositivos en la red transmitan datos de manera ordenada y sin
colisiones).

• ATM (Asynchronous Transfer Mode / Modo de Transferencia Asíncrona):


es una tecnología de conmutación de paquetes utilizada en redes de alta
velocidad que transporta datos, voz y video en celdas de tamaño fijo.
Aunque no está directamente relacionada con los sockets o el modelo
cliente-servidor en el sentido tradicional, puede ser utilizada como
infraestructura subyacente en la comunicación de red entre clientes y
servidores.

En una red ATM, los dispositivos de red pueden utilizar sockets para la
comunicación entre aplicaciones cliente y servidor, similar a como se hace
en otros tipos de redes. Sin embargo, la implementación exacta de la
comunicación entre sockets y la red ATM puede variar según los protocolos
y tecnologías utilizados.

El funcionamiento de ATM implica una serie de pasos, los cuales son:


celdas ATM (en una red ATM, los datos se transmiten en forma de celdas
de tamaño fijo (53 bytes), que contienen una cabecera de 5 bytes y una
carga útil de 48 bytes. Estas celdas son transmitidas de manera asíncrona
y pueden contener datos de diferentes tipos, como voz, video o datos),
conmutación de celdas (los dispositivos de red en una red ATM utilizan
técnicas de conmutación de celdas para enrutar las celdas de manera
eficiente a través de la red hacia su destino. Esto puede implicar el uso de
conmutadores ATM y enrutadores ATM que toman decisiones de
enrutamiento basadas en la información de la cabecera de las celdas),
QoS (Quality of Service) (ATM es conocido por su capacidad para
proporcionar calidad de servicio garantizada, lo que permite priorizar el
tráfico en función de sus requisitos de ancho de banda y latencia. Esto se
logra mediante la asignación de diferentes clases de servicio a las celdas
ATM y el uso de técnicas de control de congestión para garantizar un
rendimiento óptimo de la red).

• Frame Relay: es un protocolo de conmutación de paquetes utilizado en


redes de área amplia (WAN) para transmitir datos de manera eficiente y
confiable. Aunque no está directamente relacionado con los sockets o el
modelo cliente-servidor en el sentido tradicional, puede ser utilizado como
infraestructura subyacente en la comunicación de red entre clientes y
servidores.

En una red Frame Relay, los dispositivos de red pueden utilizar sockets
para la comunicación entre aplicaciones cliente y servidor, similar a como
se hace en otros tipos de redes. Sin embargo, la implementación exacta de
la comunicación entre sockets y la red Frame Relay puede variar según los
protocolos y tecnologías utilizados.

El funcionamiento básico de Frame Relay implica los siguientes aspectos:


transmisión de tramas (en una red Frame Relay, los datos se transmiten
en forma de tramas a través de circuitos virtuales permanentes (PVC) o
circuitos virtuales conmutados (SVC). Estas tramas contienen información
de control y datos, y se transmiten a través de la red Frame Relay hacia su
destino), conmutación de tramas (los dispositivos de red en una red
Frame Relay utilizan técnicas de conmutación de tramas para enrutar las
tramas de manera eficiente a través de la red hacia su destino. Esto implica
el uso de conmutadores Frame Relay que toman decisiones de
enrutamiento basadas en la información de control de las tramas),
eficiencia de ancho de banda (Frame Relay es conocido por su eficiencia
en el uso del ancho de banda, ya que elimina la sobrecarga de la
encapsulación de datos utilizada en otros protocolos WAN, como el
Protocolo de Punto a Punto (PPP). Esto permite una transmisión más
rápida y eficiente de datos en la red).
Impresión del código y resultados:

- Este script de Python utiliza la biblioteca “socket”, para realizar conexión y se


mantendrá abierta gracias a un bucle “while” para poder escribir lo datos que se
van a enviar en tiempo real. Con la función “sendall” el servidor responderá y se
recibirá los datos con “recv”.
La conexión se mantendrá abierta hasta que se escriba la palabra reservada
“cerrar”.
Script Cliente:

Este script de Python describe la creación de un servidor utilizando la biblioteca


“socketserver”. Se crea una clase llamada “MiControladorTCP” que hereda de
“socketserver.BaseRequestHandler” y sobrescribe el método “handle()”. Este
método utiliza “recv” y “sendall” para recibir y enviar datos a los clientes que se
conecten.
El servidor mantiene el socket abierto con un bucle “while”, que se cierra cuando
el cliente envía la palabra “cerrar”. Si se recibe un texto vacío en “recv”, el
servidor se cierra.
La clase “MiControladorTCP” se pasa a “socketserver.TCPServer” y se utiliza el
método “serve_forever()” para mantener el servidor siempre activo. Esto es en
realidad otro bucle “while” que recrea un socket si un cliente lo solicita.
El servidor se cierra correctamente cuando se pulsan las teclas “Ctrl” y “C”, lo
que llama al método “shutdown()”. En resumen, el script describe la creación de
un servidor que espera conexiones de clientes y mantiene los sockets activos para
el intercambio de datos.
Funcionamiento:

Conclusiones:
El uso del modelo TCP/IP para el desarrollo del socket permitió una comunicación
eficiente y confiable entre los sistemas. TCP/IP, al ser un conjunto de protocolos
red, facilitó la transmisión de datos al proporcionar un canal de comunicación
estable y seguro.
TCP/IP es ampliamente adoptado y reconocido en la industria; el socket
desarrollado puede interactuar con varios sistemas y aplicaciones sin tener que
realizar adaptaciones o modificaciones adicionales.
Bibliografía:
https://jarroba.com/nuestro-propio-servidor-software-socket-con-
python/#google_vignette
Modelo de referencia TCP/IP: capas, funciones, ventajas... (ccm.net)
Modelo TCP/IP: Principios y funcionamiento esencial (jcweb.es)

También podría gustarte