The Real-Time Conferencing Applications Classification Network News (NNTP) P2P Collaborative...
-
Upload
logan-mason -
Category
Documents
-
view
218 -
download
3
Transcript of The Real-Time Conferencing Applications Classification Network News (NNTP) P2P Collaborative...
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 telephoningLegend
gateway
connection
PC
IP
networkTelephonenetwork
Synchronous choices
Talk, n-talk, y-talk ICQ IRC, Netmeeting
See http://www.irchelp.org/irchelp/altircfaq.html
Web-based synchronous tools, “chats” Stand alone, CGI-based, and Java-based
See http://www.2meta.com/chats/info/ White-boards
Instant Message Technologies
ICQJabber (http://www.jabber.org/)MSN (Microsoft Messenger)Yahoo! MessengerGMAIL-based Messenger
ICQ: Instant Messaging
www.icq.comMain Server
User List:
User A
2. User A searches ICQ for User B
User B
3. Server informs User A of
the user B’s location
4. User A connects to User C interacts and exchanges files
• 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
1. Members (user B and user C) register their
details at the ICQ web site
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:
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
Mirabilis Jalapa
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”
Visit SharonsHomepage, orSend her a sms
ICQ statusI am currently online-connected to theICQ network
Splitting of theContact list accordingto their current ICQ-status
Shortcut bar
The User Menu
Here you can choosebetween all the differentpossibilities to contactThe user, or change thecurrent settings forthis 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
# of users
57K+
53K+
50K+
47K+
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
Legend
Server Client Connection
S2
S1 S4
S3
C3 C4
C7C6C5
C2C1
S5
R6
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
Examples of One-to-One Communication
Legend
Server Client Connection
S2
S1 S4
S3
C3 C4
C7C6C5
C2C1
S5
R6
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
Legend
Server Client Connection
S2
S1 S4
S3
C3 C4
C7C6C5
C2C1
S5
R6
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 C3
Example 1Example 1: Any channel : Any channel with with C1C1 in it => Messages in it => Messages to the channel go to the to the channel go to the S1S1 and then nowhere elseand then nowhere else
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 Most of the commands which result in a change of state information (such as channel membership, channel mode, user information (such as channel membership, channel mode, user status, etc.) status, etc.) mustmust be sent to all servers by default be sent to all servers by default
This distribution This distribution shall notshall not be changed by the client 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
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 knowledge
Rule 7: Help keep flame wars under control
Rule 8: Respect other people's privacy
Rule 9: Don't abuse your power
Rule 10: Be forgiving of other people's mistakes
Media richness (paucity), self presentation, flaming and social control issues