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