Wednesday, August 19, 2015

Remote Desktop and streaming information


Remote Desktop and streaming information


Preliminary information on remote desktop and streaming. It appears from my reading, experience Teamviewer software is fast, secure as claimed and agree on teamviewer quite fast on good bandwidth networks.


Gstreamer:

Gstreamer sounds a stable, widely known, multi-platform supported multimedia framework, please see information

http://gstreamer.freedesktop.org/features/
GStreamer is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing.

MDN:

Mozilla's developer network's article has a good article on web multimedia streaming and protocols, helps to get a good picture.
https://developer.mozilla.org/en-US/Apps/Build/Audio_and_video_delivery/Live_streaming_web_audio_and_video

How is teamviewer so fast:

This link has some information on the software & simple level details on making teamviewer like software.

http://stackoverflow.com/questions/9498877/how-is-teamviewer-so-fast

"Introduction
I'm developing a remote desktop software (just for fun) in C# 4.0 for Windows Vista/7. I've gotten through basic obstacles: I have a robust UDP messaging system, relatively clean program design, I've got a mirror driver (the free DFMirage mirror driver from DemoForge) up and running, and I've implemented NAT traversal for all NAT types except Symmetric NATs (present in corporate firewall situations).
Regarding screen transfer/sharing, thanks to the mirror driver, I'm automatically notified of changed screen regions and I can simply marshal the mirror driver's ever-changing screen bitmap to my own bitmap. Then I compress the screen region as a PNG and send it off from the server to my client. Things are looking pretty good, but it's not fast enough. It's just as slow as VNC (btw, I don't use the VNC protocol, just a custom amateur protocol)."

http://security.stackexchange.com/questions/14280/how-team-viewer-establish-remote-desktop-connection

"To elaborate on ewanm89's post, TeamViewer does use UDP pinholeing.
UDP is a stateless protocol. This means packets are fired off at their target with no verification (at the protocol level) that they were received or even reached the destination. Firewalls are designed to look for UDP packets and record the source and destination as well as the timestamp. If they see an inbound packet that matches an outbound packet they will generally allow the packet through even without a specific rule being placed in the firewall's access list. This can be locked down on enterprise grade devices, but in general 90% of the firewalls out there will allow return traffic.
In order to pin hole your machine (viewer) has a TCP connection back to the main TeamViewer server. The target machine (client) also has a TCP connection to the main TeamViewer Server. When you hit connect your machine tells the main server its intention. The main server then gives you the IP address of the client machine. Your machine then begins firing UDP packets at the client. The client is signaled that you intend to connect and is given your IP. The client also starts firing UDP packets at you.
This causes both firewalls (yours and the clients) to allow the traffic, thus "punching holes" in the firewall.
Of course TeamViewer adds some security by doing a pin/password check before the main server sends the IP info to both parties but you get the idea."


No comments:

Post a Comment