Transcript Document

The Real-Time
Conferencing Applications




Classification
Network News (NNTP)
P2P Collaborative applications
 Instant Messaging
 Real-Time Collaboration
Netiquette
P2P Collaborative Applications



For remote real-time human collaboration
Instant messaging, virtual meetings,
shared whiteboards, teleconferencing,
tele-presence
E.g., talk, IRC, ICQ, AOL Messenger,
Yahoo! Messenger, Jabber, MS
Netmeeting, NCSA Habanero, Games
Classification of Textual
Conferencing

According to the relative timing:



Asynchronous or
Synchronous
According to the number of participants



One to One
One to Many
Many to Many
Network News, Newsgroups



Network News Transfer Protocol (NNTP)
Predecessor: UUCP
Components:



News Transfer Agency (NTA)
News Server
News Reader Client Software

E.g.: Pine, trn, tin, Pnews, Netscape Navigator, etc.
NNTP Operation



To acquire recent articles, an NNTP client
must first establish a TCP connection with
port 119 on one of its newsfeeds
After the connection has been established,
the client and server communicate using a
sequence of commands and responses
These commands & responses are used to
ensure that the client gets all the articles it
needs, but no duplicates
NNTP Commands
Command
Meaning
LIST
Give me a list of all newsgroups and articles you have
NEWSGROUPS date time
Give me a list of newsgroups created after date/time
GROUP grp
Give me a list of all articles in grp
NEWNEWS grps date time
Give me a list of new articles in specified groups
ARTICLE id
Give me a specific article
IHAVE id
I have article id. Do you want it? ()If yes, locally POSTs)
POST
I have an article for you that was posted here (locally)
QUIT
Terminate the session
Names of Some Top-Level
Newsgroups and Their Topics
Newsgroup Name
Description
comp
computers and softwares
news
the newsgroup system and its operation
sci
scientific topics
soc
social, cultural topics
talk
discussed questions (short talks, non longer articles)
rec
activity for recreation, amusement, hobbies
misc
mixed topics, which were not classified
alt
alternative groups, which are out of any previous categories
Names of Some Newsgroups in the
Field of Informatics and Their
Descriptions
Newsgroup Name
Description
comp.os.linux.announce
Latest Linux advances
comp.os.linux.admin
System management questions
comp.os.linux.setup
Installation problems
comp.os.linux.help
Helps and solutions
comp.os.linux.misc
Mixed Linux related topics
comp.multimedia
Multimedia related topics
news.iif.hu
Newsgroup related to IIF (Information Infrastructure Program financed by the Hungarian Government)
Real-Time User Communication

Chat in written form (textual
conferencing)





Internet Relay Chat (IRC)
ICQ
Instant Messaging
Internet based telephoning
Telephone
network
IP
network
Legend
gateway
connection
PC
Synchronous choices



Talk, n-talk, y-talk
ICQ
IRC, Netmeeting



Web-based synchronous tools, “chats”
Stand alone, CGI-based, and Java-based


See http://www.irchelp.org/irchelp/altircfaq.html
See http://www.2meta.com/chats/info/
White-boards
Instant Message Technologies
ICQ
Jabber (http://www.jabber.org/)
MSN (Microsoft Messenger)
Yahoo! Messenger
GMAIL-based Messenger
ICQ: Instant Messaging
• Released in November 1996
• Allows users to be notified when their friends come online
• Users can send messages to their friends (instant messaging)
• Also allows users to exchange files
www.icq.com
Main Server
User List:
2. User A
searches ICQ
for User B
1. Members (user
B and user C)
3. Server
register their
informs User A of
details at the ICQ
the user B’s
web site
location
User A
User B
4. User A
connects to User C
interacts and
exchanges files
Short history of
ICQ

The company Mirabilis was founded in 1996


their field of focus was to be peer-to-peer communication through
the Internet
In the same year they launched ICQ as their first product



It was an instant messenger for use on the Internet
A lot of others were to come, but ICQ was the first one to enter the
market
Its main features included:





Mirabilis Jalapa
The ability to show the user when his friends are online (connect to the ICQ-server)
Invoke online real-time peer-to-peer communication in different ways (message, games etc)
An address-database for the users friends and ICQ-contacts
In 1998 Mirabilis was bought by AOL, a company that earlier had
realesed an instant messenger themselves
ICQ had although proved to be more successful than the AOL instant
messenger, and the existence of ICQ was not immediately threatened
ICQ today

Ever since the first version released in 1996 ICQ has
focused on the P2P (peer-to-peer) communication. The
communication possibilities have although expanded, and
includes in the latest beta-version ICQ2000b among
other functions the following:







Instant messaging system
Realtime chat-function
Phone via the Internet (PC-PC, PC-phone & phone-phone)
SMS service
Direct filetransfer possibilites between two users
ICQ is available for many different operating systems
today, including a Java-version and also a version for the
Palm OS.
Main competitors include AIM, MSN Messenger and the
Yahoo! Messenger
ICQ –
Also a
Community
User status:
-Sharon has sent you a message
-Daniel has birthday
-MOM has left an „away message”
-Z-home is „not available”
ICQ status
I am currently online
-connected to the
ICQ network
Visit Sharons
Homepage, or
Send her a sms
Splitting of the
Contact list according
to their current ICQstatus
Shortcut bar
The User Menu
Here you can choose
between all the different
possibilities to contact
The user, or change the
current settings for
this particular user
The technical facts

To communicate with the server, ICQ uses UDP. In the
Client-Client case both UDP and TCP are used. Inside
the UDP packets, the messages themselves are
created according to the so called ICQ-protocol.

If you are interested in the details, try the following
links:
The ICQ Protocol Site (English, French, German, Russian and
Spanish):
http://www.d.kth.se/~d95-mih/icq/
The ICQ Hacking Page (English):
http://www.algonet.se/~henisak/icq/

For general information, visit http://www.icq.com/
P2P Collaborative Applications



Magi
Groove
Jabber
Collaboration





Tap into knowledge
Leverage expertise at
the edges of organization
Each additional member increases the
network’s value
Outsourcing
Collaborative Development Manager
Groove



Groove is a collaborative P2P system
(http://www.groove.net)
It is mainly targeted to Internet and
intranet users, although it can also be used
on mobile devices, such as PDAs, mobile
phones, and tablets
It is intended to enable communication,
content sharing, and tools for joint
activities
Internet Relay Chat (IRC)
 Definition of IRC
 textbased teleconferencing system using TCP/IP
 multi-user, multi-channel system
 offers the possibility to “talk” to other users
around the world in realtime
History of IRC









Summer 1988: Jarrko Oikarinen wrote the first IRC client and server
at the University of Oulu/Finland
Middle of 1989: 40 servers worldwide - release of ircII
July 1990: avergage of 12 users on 38 servers
August 1990: birth of EFnet
October 1992: start of Undernet
May 1993: Request for Comments (RFC) 1459 presented to the public
July 1994: birth of Dalnet
July 1996: split of the EFnet: the European servers formed the
IRCnet
January 1998: start of a initiative (IETF-IRCUP) to create a new
RFC and to set up a new standard for all IRC-networks. The project
was cancelled.
IRC networks
Network
EFnet
IRCnet
Undernet
Dalnet
47K+
# of users
57K+
53K+
50K+
Nickserv
no
no
no
no
Chanserv
no
no
yes
yes
Homepage
www.efnet.org
www.ircnet.org
www.undernet.org
www.dal.net
y
Basic IRC Commands
 Basic
Commands (selected)
Command
Description
Example
/join [#]
Join a channel
/join #newbies
/leave [#]
Leave a channel
/leave #newbies
/whois [nick]
Get info on a nick
/whois picard
/msg [nick][message]
Send a private msg. to a user
/msg picard hello there!
/quit
Quit IRC
/quit
IRC Channels




Real-time chat - text-based conferencing
There is an IRC channel dedicated to the
World Wide Web
This channel is named: www
IRC channels allow Internet users around the
world to discuss topics in real-time
Architecture of IRC





An IRC network is defined by a group of servers
connected to each other
A single server forms the simplest IRC network
The only configuration allowed for IRC servers is
that of spanning tree where each server acts as a
central node for the rest of the network it sees
The IRC protocol provides no mean for two clients to
directly communicate
All communication between clients is relayed by the
server(s)
Sample Small IRC Network
S2
Legend
S1
C1
S4
S3
C2
S5
C3 C4
R6
C5 C6 C7
Server
Client
Connection
IRC Protocol Services


The next services are offered by the
IRC Protocol
The combination of these services allow
real-time conferencing:



Client Locator
Message Relaying
Channel Hosting and Management
Client Locator



To be able to exchange messages, two
clients must be able to locate each other
Upon connecting to a server, a client
registers using a label which is then used
by other servers and clients to know
where the client is located
Servers are responsible for keeping track
of all the labels being used
Message Relaying


The IRC protocol provides no
mean for two clients to
directly communicate
All communication between
clients is relayed by the
server(s)
Channel Hosting and
Management





A channel is a named group of one or more users which will all
receive messages addressed to that channel
A channel is characterized by its name and current members, it
also has a set of properties which can be manipulated by (some
of) its members
Channels provide a mean for a message to be sent to several
clients
Servers host channels, providing the necessary message
multiplexing
Server are also responsible for managing channels by keeping
track of the channel members
IRC Concepts

In the following it is described how
different classes of messages are
delivered:



One-to-one communication
One-to-many
One-to-all
One-To-One Communication



Communication on a one-to-one basis is usually
performed by clients, since most server-server
traffic is not a result of servers talking only to each
other
To provide a means for clients to talk to each other,
it is required that all servers be able to send a
message in exactly one direction along the spanning
tree in order to reach any client.
Thus the path of a message being delivered is the
shortest path between any two points on the spanning
tree
S2
Examples of
One-to-One
Communication
Legend
S1
C1
S4
S3
C2
S5
Server
Client
Connection
C3 C4
R6
C5 C6 C7


Example 1: A message between clients C1 and C2 is only seen by
server S1, which sends it straight to C1 and C2, respectively
Example 2: A message between clients C1 and C3 is seen by
servers S1, S2, S3 & S4


No other clients or servers are allowed see the message
Example 3: A message between clients C2 and C7 is seen by
servers S1, S2, S3 & S6, only
One-To-Many Communication


The main goal of IRC is to provide a forum
which allows easy and efficient conferencing
(one to many conversations)
IRC offers several means to achieve this, each
serving its own purpose



To a channel
To a host/server mask
To a list
To a channel

In IRC the channel has a role equivalent to
that of the multicast group



Their existence is dynamic
Actual conversation carried out on a channel must
only be sent to servers which are supporting users
on a given channel
Moreover, the message shall only be sent once
to every local link as each server is
responsible to fan the original message to
ensure that it will reach all the recipients
Examples of
One-to-Many
Communication
S2
Legend
S1
C1
S4
S3
C2
S5



Example 1: Any channel
with C1 in it => Messages
to the channel go to the S1
and then nowhere else
Server
Client
Connection
C3 C4
R6
C5 C6 C7
Example 2: Two clients in a channel => All messages traverse a path as
if they were private messages between the two clients outside a
channel
Example 3: C1, C2 & C3 in a channel => All messages to the channel
are sent to all clients and only those servers which must be
traversed by the message if it were a private message to a single
client
 If C1 sends a message, it goes back to C2 and then via S2, S3 & S4
To a host/server mask



To provide with some mechanism to send
messages to a large body of related users,
host and server mask messages are available
These messages are sent to users whose host
or server information math that of the mask
The messages are only sent to locations
where users are, in a fashion similar to that
channels
To a list


The least efficient style of one-to-many conversation
is through clients talking to a ‘list’ of targets (client,
channel, mask)
How this done is almost self explanatory:



the client gives a list of destinations to which the message
is to be delivered and
the server breaks it up and dispatches a separate copy of
the message to each given destination
This is not as efficient as using a channel since the
destination list may be broken up and the dispatch
sent without checking to make sure duplicates aren’t
sent down each path
One-To-All Communication




The one-to-all type of message is better described as a
broadcast message, sent to all clients or servers or both
On a large network of users and servers, a single message can
result in a lot of traffic being sent over the network in an
effort to reach all of the desired destinations
For some class of messages, there is no option but to
broadcast it to all servers so that the state information held
by each server is consistent between servers
Its types:



Client-to-client
Client-to-server
Server-to-server
Client-to-Client

There is no class of message which, from a
single message, results in a message being
sent to every other client
Client-to-Server


Most of the commands which result in a change of state
information (such as channel membership, channel mode, user
status, etc.) must be sent to all servers by default
This distribution shall not be changed by the client
Server-to-Server


While most messages between servers
are distributed to all ‘other’ servers,
this is only required for any message
that affects a user, channel or server
Since these are the basic items found in
IRC, nearly all messages originating
from a server are broadcast to all other
connected servers
Architecture Related Problems
of IRC (1)

Scalability



This protocol does not scale sufficiently well when used in a
large arena
The main problem comes from the requirement that all
servers know about all other servers, clients and channels
and that information regarding them be updated as soon as
it changes
Reliability

As the only network configuration allowed for IRC servers
is that of a spanning tree, each link between two servers is
an obvious and quite serious point of failure
Architecture Related Problems
of IRC (2)

Network Congestion


Due to the spanning tree architecture the IRC protocol is
extremely vulnerable to network congestions
This problem is endemic (local), and should be solved for the
next generation:


if congestion and high traffic volume cause a link between two
servers to fail, not only this failure generates more network
traffic, but the reconnection (eventually elsewhere) of two
servers also generates more traffic
In an attempt to minimize the impact of these problems, it
is strongly recommended that servers do not automatically
try to reconnect too fast, in order to aggravating this
situation
Architecture Related Problems
of IRC (3)

Privacy



Besides not scaling well, the fact that servers
need to know all information about other
entities, the issue of privacy is also a concern
This is in particular true for channels, as the
related information is quite a lot more revealing
than whether a user is online or not
Security considerations

Asides from the privacy concerns, security is
irrelevant
Software Implementations &
References

Software implementations



ftp://ftp.irc.org/irc/server
ftp://ftp.funet.fi/pub/unix/irc
ftp://coombs.anu.edu.au/pub/irc
 References
 www.irchelp.org/irchelp/
 www.newircusers.com
 www.contactor.se/~dast/irc/history.
html
Netiquette issues
Media richness (paucity), self presentation, flaming and social control
issues





Rule 1: Remember the Human
Rule 2: Adhere to the same
standards of behavior online
that you follow in real life
Rule 3: Know where you are in
cyberspace
Rule 4: Respect other people's
time and bandwidth
Rule 5: Make yourself look good
online

Rule 6: Share expert

Rule 7: Help keep flame wars

Rule 8: Respect other people's

Rule 9: Don't abuse your

Rule 10: Be forgiving of other
knowledge
under control
privacy
power
people's mistakes