🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #486

Re: Transferencias de archivos

#486
From: Pablo
Date: Thu, 06 Sep 2007 22:45
97 lines
5263 bytes
Oscar Garcia escribió:
> No debes mezclar la transferencia del archivo en el socket del chat.
> Dependiendo del tamaño del archivo y de la velocidad de conexión eso te
> supondrá un retardo enormísimo.
>   
Sí... creo que además complicaría mucho las cosas.
> ¿Qué protocolo has usado? No has hablado nada acerca de él.
>   
En principio para la transferencia de archivos pretendía usar TCP que es
lo más habitual... Aunque ya habia pensado lo de la transferencia por
difusión. Puede ser muy util pero quizá en futuras versiones si tiene
éxito... (entonces necesitaría UDP claro)
> Si quieres usar un protocolo similar al usado por FTP recuerda el
> problema de los routers y los proxies... las personas ocultas tras ese
> tipo de dispositivos no podrán recibir conexiones externas (sólo
> realizarlas).
>   
El programa está destinado a trabajar en un mismo segmento de red. La
localización de ip's se realizaría mediante broadcast... Así que si eso
funciona, probablemente, las conexiones también lo harán. Aunque la
verdad es que por internet lo de los routers es un problema.
> Enviar el archivo en la misma conexión que usas para conectar al chat te
> evitará ese tipo de problemas, pero siempre que tengas un buen protocolo
> que separe una cosa de otra.
>   
Si consigo establecer una no habrá problema con dos. :-)
> ¿Qué protocolos has programado que emulen el nivel de sesión y presentación?
>   
Todavía no he programado gran cosa. Pero almenos el nivel de sesión lo
tengo casi decidido. Me falta por decidir algunos detalles sobre los
"handshakes" de la encriptación y eso... Pero bueno eso será más o menos
como SSL.

En cuanto al protocolo de presentación:
> Una transferencia de archivos puede comenzar con una descripción del
> nombre de archivo y su longitud, seguido por su contenido.
>   
Creo que lo más práctico es enviar la longitud, nombre y descripción del
archivo en un paquete mezclado en la conexión de chat, a modo solicitud.
Dejando la conexión de transferencia ya establecida, con claves de
encriptación y todo ya resuelto antes.
> Ten en cuenta que una transferencia de archivos ralentizará (aumentará
> la latencia) de las conversaciones dependiendo del tamaño de bloque que
> definas para cada trocito de archivo.
>   
Eso es lo que me preocupa...
> Para mejorar la transferencia de archivos sin mermar demasiado la
> latencia de salida puedes programarte una ventana de transferencia, de
> modo que se envíen los i siguientes paquetes cuando se reciban los
> mensajes de recepción. Durante el comienzo de la transferencia
> posiblemente la latencia sea notable, pero una vez se haya enviado
> completamente la ventana sólo se enviará poco a poco el tamaño pequeño
> del mensaje, mejorando la latencia una vez estabilizada la transferencia.
>   
Creo que eso es lo que buscaba. Como es un programa para redes locales,
la velocidad es un punto muy importante. Así que probaré lo de la
ventana... No importa que haya un poco de latencia al principio.
> Hombre.. trabajar, trabajar.. he hecho muchos protocolos de
> transferencia de archivos, entre ellos uno que trabaja en difusión
> usando UDP para enviar un mismo archivo a multitud de destinos usando
> una única vez el ancho de banda de la red.
Es una lástima que no se perfeccione ese sistema porque se lograría
realizar streaming con anchos de banda pequeños... Aunque quizá sea un
poco peligroso a gran escala. :-\

Fenix escribió:
>     	Podrías mirar como lo hacen otros directamente... es lo bueno del  
> código fuente libre.  :) 
>   
Ya había pensado en esa posibilidad... Pero los programas que se me
ocurren que utilizan transferencia de archivos son demasiado complicados
para mí... Es cuestion de tiempo, está claro, pero es una parte muy
pequeña del programa para dedicarle tanto.



Gracias por vuestra atención, a ver si el programa evoluciona y termina
siendo una herramienta útil.
Saludos.
Technical Details
Message-ID: <Bq%Di.6500029$D7.12156711@telenews.teleline.es>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!telenews.teleline.es!not-for-mail
References: <VDJCi.6445515$D7.12079038@telenews.teleline.es> <fbh1r3$bs3$1@cormoran.emeteo.local>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,375ebb79da2d042c
X-Google-Attributes: gidf86c8,public,usenet
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!telenews.teleline.es!not-for-mail
X-Trace-PostClient-IP: 213.60.84.85
From: Pablo <palmail2004-news@yahoo.es>
User-Agent: Thunderbird 2.0.0.4 (X11/20070604)
MIME-Version: 1.0
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Transferencias de archivos
References: <VDJCi.6445515$D7.12079038@telenews.teleline.es> <fbh1r3$bs3$1@cormoran.emeteo.local>
In-Reply-To: <fbh1r3$bs3$1@cormoran.emeteo.local>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Lines: 98
Message-ID: <Bq%Di.6500029$D7.12156711@telenews.teleline.es>
Date: Thu, 06 Sep 2007 22:45:53 GMT
NNTP-Posting-Host: 10.20.31.4
X-Complaints-To: usenet@teleline.es
X-Trace: telenews.teleline.es 1189118753 10.20.31.4 (Fri, 07 Sep 2007 00:45:53 MET DST)
NNTP-Posting-Date: Fri, 07 Sep 2007 00:45:53 MET DST
Organization: Terra Networks