Este es un proyecto para la materia Redes de Datos, desarrollada por Erick López, Braulio Rivas, Alejandro Sornoza, Ariel Vargas y Angelo Zurita.
La versión de typescript (javascript) del proyecto consiste de dos programas, server
y client
, las cuales abren un socket TCP dentro de un mismo dispositivo para comunicarse (en puertos distintos).
Al inicio, el proceso client
abre el archivo especificado por consola, lo separa en grupos de
- Para el cálculo de los checksums, es necesario transformar los datos en bytes. Por ello, se convierten los datos en un
Uint8Array
, los cuales se usan para calcular los checksums. - Se usa el algoritmo crc para el frame check sequence, y la suma a complemento uno para los checksums ipv4 y tcp, que son muy similares.
Se usó bun
para el desarrollo en typescript, porque lo soporta por defecto y es más rápido que node
o deno
.
bun run server.ts [--port <port_number>]
bun run client.ts [--port <port_number>] [--clientPort <port_number>] --file <file>
- Funciona dentro de una sola misma máquina, aunque se podría modificar para que se ejecute en dispositivos distintos.
- No se han añadido tests al funcionamiento del checksum.