![Page 2: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/2.jpg)
Lecture OutlineIn this lecture we will examine several difference
collaboration technologies: Mail Chat Audio and videoconferencing ...
![Page 3: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/3.jpg)
Probably the oldest computerbased collaboration technology in general use today is email.
Formally SMTP is defined in RFC 821 (STD 10) as amended by RFC 1123 (STD 3) chapter 5. The protocol used today is also known as ESMTP and defined in RFC 2821.
SMTP is a simple, humanly readable protocol.
![Page 4: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/4.jpg)
Sending a mail
At its simplest, sending an email consists of: discovering the mailexchanger (MX record) of the target address
which lists the mail server Connecting to port 25 on the mail server Sending SMTP HELO or EHLO commands to initiate a session Using more SMTP commands
MAIL FROM:<address>, RCPT TO:<address>, DATA Sending the mail message and finishing mail message with
“<CRLF>.<CRLF>”
![Page 5: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/5.jpg)
Chat
Many different chat clients out there. More sophisticated version of old “talk”
program and chatting in MUDS. AIM, Jabber, ...
![Page 6: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/6.jpg)
Video and audio conferencing
Becoming progressively more common Remember the Aura video Many different technologies out there
Netmeeting, ekiga, gizmo, wengo, skype, access grid, ...
Most of the modern ones are built on open standards
![Page 7: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/7.jpg)
Session Initiation Protocol (SIP)
an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences." (cit. RFC 3261).
Originally designed by Henning Schulzrinne (Columbia University) and Mark Handley (UCL) starting in 1996. The latest version of the specification is RFC 3261 from the IETF SIP Working Group.
In November 2000, SIP was accepted as a 3GPP signaling protocol and permanent element of the IMS architecture. It is widely used as a signaling protocol for Voice over IP, along with H.323 and others.
![Page 8: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/8.jpg)
SIP Features:
Lightweight, in that SIP has only six methods, reducing complexity.
Transportindependent, because SIP can be used with UDP, TCP, ATM & so on.
Textbased, allowing for humans to read SIP messages.
![Page 9: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/9.jpg)
Skype
Very successful audio and now videoconferencing software
Skype builds a peer to peer network Has sophisticated techniques to work around
firewalls.
![Page 10: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/10.jpg)
Skype and firewalls
Let's assume that Alice wants to call her friend Bob. Her Skype client tells the Skype server that she wants to do so.
Server already knows a bit about Alice. From incoming query it sees that Alice is currently registered
at the IP address 1.1.1.1 and a quick test reveals that her audio data always comes from UDP port 1414.
The Skype server passes this information on to Bob's Skype client, which, according to its database, is currently registered at the IP address 2.2.2.2 and which, by preference uses UDP port 2828.
![Page 11: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/11.jpg)
Skype and firewalls
Alice calls Bob Step 1: Alice tries to call Bob, which signals Skype.
Bob's Skype program then punches a hole in its own network firewall: It sends a UDP packet to 1.1.1.1 port 1414. This is discarded by Alice's firewall, but Bob's firewall doesn't know that. It now thinks that anything which comes from 1.1.1.1 port 1414 and is addressed to Bob's IP address 2.2.2.2 and port 2828 is legitimate it must be the response to the query which has just been sent.
![Page 12: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/12.jpg)
Skype and firewalls
Hole punching Step 2: Bob tries to reach Alice, which punches a
hole through Bob's Firewall. Now the Skype server passes Bob's coordinates on to Alice,
whose Skype application attempts to contact Bob at 2.2.2.2:2828. Bob's firewall sees the recognised sender address and passes the apparent response on to Bob's PC and his Skype phone rings.
![Page 13: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/13.jpg)
Skype and firewalls
Call established Step 3: Alice finally reaches Bobs computer
through the hole.
![Page 14: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/14.jpg)
Skype and firewalls
What if NAT rewrites ports as well ? If a firewall simply assigns ports in sequence, e.g. first connection
is assigned 30001, the next 30002, etc. The Skype server knows that Bob is talking to it from port 31234, but the connection to Alice will run via a different port. But even here Skype is able to outwit the firewall. It simply runs through the ports above 31234 in sequence, hoping at some point to stumble on the right one. But if this doesn't work first go, Skype doesn't give up. Bob's Skype opens a new connection to the Skype server, the source port of which is then used for a further sequence of probes.
![Page 15: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/15.jpg)
Skype and firewalls
If all else fails e.g. The NAT assigns ports at random
The skype server can be used as a relay.
![Page 16: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/16.jpg)
Access Grid
As described on the Access Grid web site: "The Access Grid is the ensemble of resources that
can be used to support human interaction across the grid. It consists of: multimedia display, presentation and interaction
environments,
interfaces to grid middleware, interfaces to visualization environments
![Page 17: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/17.jpg)
Access Grid
The Access Grid supports largescale distributed meetings, collaborative work sessions, seminars, lectures, tutorials and training.
The Access Grid design point is grouptogroup communication (thus differentiating it from desktop to desktop based tools that are focused on individual communication).
The Access Grid includes the notion of a "persistent" video conferencing venue, a conferencing site operating continuously and accessible to a wide audience of users on an ad hoc basis.
![Page 18: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/18.jpg)
Basic Functionality
An Access Grid "node" is generally a small conference room or auditorium, with the equipment to participate in a multipoint video conference. Basic functionality is: Audio encoding using one or more microphones Video encoding or "capture" using one or more cameras Audio presentation using one or more speakers Video display via one or more computer monitors and/or video
projection techniques Display of PowerPoint "slides" under the control of a presenter
located either onsite or at a remote site.
![Page 19: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/19.jpg)
Functionality
To achieve this functionality the Access Grid model relies upon the ability to send and receive Internet Multicast traffic to and from all conference nodes.
The Access Grid is based on software (vic and rat) developed as part of the Internet Multicast backbone, or MBONE, which provided multicast services over the unicast Internet backbone (using "tunnels", or "bridges", between multicast nexus sites).
![Page 20: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/20.jpg)
Software components
The Access Grid model revolves around two pieces of software: Vic
the video conferencing tool
Rat the robust audio tool.
and involves several other applications Distributed PowerPoint , a jabber server, a Multicast Beacon
and a Virtual Venue
![Page 21: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/21.jpg)
Video Conference (vic)
Vic was developed by Steve McCanne and Van Jacobson at the Lawrence Berkeley Labs. It is intended to link multiple sites with multiple simultaneous video streams over a multicast infrastructure.
Vic can perform 2 basic functions: take data from video capture cards in the PC to which cameras (or
other video devices) are attached and send it over the network. receive data from the network and display it on a video monitor or
on some other attached video device such as a video projector.
![Page 22: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/22.jpg)
VIC
Note that vic may be run in such a way that it only receives video transmissions or only sends transmissions; it is not required to do both at the same time.
For more information about vic see: http://wwwmice.cs.ucl.ac.uk/multimedia/software/vic
![Page 23: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/23.jpg)
Robust Audio Tool (Rat)
rat is a recent version of the Visual Audio Tool, also developed by Steve McCanne and Van Jacobson at the Lawrence Berkely Labs. rat allows multiple users to engage in a audio conference over the Internet in multicast mode. rat can perform 2 basic functions: take data from the sound card in the PC to which microphones,
headphones, or some other audio devices are attached and send it over the network.
receive data from the network and send it to speakers, headphones, or other attached sound processing device, such as a tape recorder, etc.
![Page 24: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/24.jpg)
RAT
rat displays a list of connected participants and identifies who is speaking and who is listening at any given time.
For more information about rat see http://wwwmice.cs.ucl.ac.uk/multimedia/software/rat
and the Access Grid web site.
![Page 25: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/25.jpg)
The Distributed PowerPoint software The Argonne Distributed PowerPoint software allows a single
presenter at one node to control PowerPoint applications running on computer systems located at other Access Grid nodes.
For example, a conference speaker can run PowerPoint along with the Distributed PowerPoint master software on her laptop computer at the podium of one of the AG sites. When the speaker changes slides, the master will notify the DPPT server, which will notify DPPT clients running on systems at other nodes which will, in turn, direct their local PowerPoint programs to change slides.
![Page 26: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/26.jpg)
The Virtual Venue software
Coordinating multiple group conferences can be complicated. Argonne has developed a collection of web pages and Java applications that can simplify the process.
The Virtual Venue is basically a webpage that lets users select a "conference" to attend. In this context a "conference" is composed of a vic multicast address, a rat multicast address, and a jabber chat room.
![Page 27: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/27.jpg)
Lecture SummaryIn this lecture we have: Looked at several collaboration technologies.
![Page 28: CM0256 Pervasive Computinggoodale/Teaching/Cardiff/2006-7/CM0256/… · an applicationlayer control (signaling) protocol for creating, modifying, and terminating sessions with one](https://reader034.vdocuments.net/reader034/viewer/2022042303/5ece5c7e73171a196779becc/html5/thumbnails/28.jpg)
End of Lecture