Socket Stream
Sockets Stream
Los sockets (zócalos, referido a los enchufes de conexión de cables) son mecanismos decomunicación entre programas a través de una red TCP/IP. De hecho, al establecer unaconexión via Internet estamos utilizando sockets: los sockets realizan la interfase entre laaplicación y el protocolo TCP/IP.Dichos mecanismos pueden tener lugar dentro de la misma máquina o a través de una red. Seusan en forma cliente-servidor: cuando un cliente y un servidor establecen una conexión, lohacen a través de un socket. Java proporciona para esto las clases ServerSocket y Socket.Los sockets tienen asociado un puerto. En general, las conexiones via internet puedenestablecer un puerto particular. Algunos servers puedendefinir otros puertos, e inclusive pueden utilizarse puertos disponibles para establecerconexiones especiales.
Los sockets stream ofrecen un servicio orientado a conexión, donde los datos se transfieren como un flujo continuo, sin encuadrarlos en registros o bloques. Este tipo de socket se basa en el protocolo TCP, que es un protocolo orientado a conexión. Esto implica que antes de transmitir información hay que establecer una conexión entre los dos sockets. Mientras uno de los socketsatiende peticiones de conexión (servidor), el otro solicita la conexión (cliente). Una vez que los dossockets están conectados, ya se puede transmitir datos en ambas direcciones. El protocolo incorpora de forma transparente al programador la corrección de errores. Es decir, si detecta que parte de la información no llegó a su destino correctamente, esta volverá a ser trasmitida. Además, no limita el tamaño máximo de información a transmitir.
Es un servicio orientado a conexión donde los datos se transfieren sin encuadrarlos en registros o bloques. Si se rompe la conexión entre los procesos, éstos serán informados. Como es un protocolo orientado a conexión, para establecer una comunicación utilizando el protocolo TCP, hay que establecer en primer lugar una conexión entre un par de sockets. Mientras uno de los sockets atiende peticiones de conexión (servidor), el otro solicita una conexión (cliente). Una vez que los dos sockets estén conectados, se pueden utilizar para transmitir datos en ambas direcciones.
Mientras que el Stream es un servicio orientado a conexión donde los datos se transfieren sin encuadrarlos en registros o bloques, además de que si se rompe la conexión entre los procesos, éstos serán informados, el datagrama es un servicio de transporte sin conexión en donde se transmiten paquetes individuales de información y no garantiza que los paquetes llegarán en alguna forma en particular. De hecho los paquetes pueden perderse, duplicarse e incluso llegar en desorden. El protocolo de comunicaciones con streams es un protocolo orientado a conexión, hay que establecer en primer lugar una conexión entre un par de sockets. Una vez que los dos sockets, en cambio,el protocolo de comunicaciones con datagramas es un protocolo sin conexión, es decir, cada vez que se envíen datagramas es necesario enviar el descriptor del socket local y la dirección del socket que debe recibir el datagrama.
Conclusion
La Principal diferencia entre los sockets datagrama y los sockets Stream es que el primero no es orientado a
conexion debido al protocolo usado(UDP) mientras que el segundo lo es (protocolo TCP).
Al estar orientado a conexion se vuelve un tanto mas lento en comparación con los sockets datagrama, pues
se invierte tiempo para establecer y mantener la conexion, pero esto hace que sea menos probable la perdida
de información que viaja de un socket a otro, además de que si se interrumpe la conexion se le informa a ambas
partes.
Referencias
Los sockets stream ofrecen un servicio orientado a conexión, donde los datos se transfieren como un flujo continuo, sin encuadrarlos en registros o bloques. Este tipo de socket se basa en el protocolo TCP, que es un protocolo orientado a conexión. Esto implica que antes de transmitir información hay que establecer una conexión entre los dos sockets. Mientras uno de los socketsatiende peticiones de conexión (servidor), el otro solicita la conexión (cliente). Una vez que los dossockets están conectados, ya se puede transmitir datos en ambas direcciones. El protocolo incorpora de forma transparente al programador la corrección de errores. Es decir, si detecta que parte de la información no llegó a su destino correctamente, esta volverá a ser trasmitida. Además, no limita el tamaño máximo de información a transmitir.
Es un servicio orientado a conexión donde los datos se transfieren sin encuadrarlos en registros o bloques. Si se rompe la conexión entre los procesos, éstos serán informados. Como es un protocolo orientado a conexión, para establecer una comunicación utilizando el protocolo TCP, hay que establecer en primer lugar una conexión entre un par de sockets. Mientras uno de los sockets atiende peticiones de conexión (servidor), el otro solicita una conexión (cliente). Una vez que los dos sockets estén conectados, se pueden utilizar para transmitir datos en ambas direcciones.
Mientras que el Stream es un servicio orientado a conexión donde los datos se transfieren sin encuadrarlos en registros o bloques, además de que si se rompe la conexión entre los procesos, éstos serán informados, el datagrama es un servicio de transporte sin conexión en donde se transmiten paquetes individuales de información y no garantiza que los paquetes llegarán en alguna forma en particular. De hecho los paquetes pueden perderse, duplicarse e incluso llegar en desorden. El protocolo de comunicaciones con streams es un protocolo orientado a conexión, hay que establecer en primer lugar una conexión entre un par de sockets. Una vez que los dos sockets, en cambio,el protocolo de comunicaciones con datagramas es un protocolo sin conexión, es decir, cada vez que se envíen datagramas es necesario enviar el descriptor del socket local y la dirección del socket que debe recibir el datagrama.
Conclusion
La Principal diferencia entre los sockets datagrama y los sockets Stream es que el primero no es orientado a
conexion debido al protocolo usado(UDP) mientras que el segundo lo es (protocolo TCP).
Al estar orientado a conexion se vuelve un tanto mas lento en comparación con los sockets datagrama, pues
se invierte tiempo para establecer y mantener la conexion, pero esto hace que sea menos probable la perdida
de información que viaja de un socket a otro, además de que si se interrumpe la conexion se le informa a ambas
partes.
Referencias
- Gonzales Carolina (2012)Diferencias entre Sockets Stream y Datagrama
http://boards5.melodysoft.com/M06/re-diferencias-entre-sockets-stream-73.html - http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html
Comentarios
Publicar un comentario