Netprog: Chat1 Chat Issues and Ideas for Service Design Refs: RFC 1459 (IRC)

Slides:



Advertisements
Similar presentations
COS 461 Fall 1997 Routing COS 461 Fall 1997 Typical Structure.
Advertisements

Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
MASK. Agenda Introduction –IRC prelude –What is IRC? –How does IRC work? Architecture –Client/Server –IRC commands –3 major types of communication on.
Intermediate TCP/IP TCP Operation.
Lecture 17 Client/Server Programming Chat CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger.
Internet Networking Spring 2006 Tutorial 12 Web Caching Protocols ICP, CARP.
Bots and Botnets CS-431 Dick Steflik. DDoS ● One of the most common ways to mount a Distributed Denial of Service attacks is done via networks of zombie.
© nCode 2000 Title of Presentation goes here - go to Master Slide to edit - Slide 1 Reliable Communication for Highly Mobile Agents ECE 7995: Term Paper.
Secure communications Week 10 – Lecture 2. To summarise yesterday Security is a system issue Technology and security specialists are part of the system.
Oct 21, 2004CS573: Network Protocols and Standards1 IP: Addressing, ARP, Routing Network Protocols and Standards Autumn
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #13 Web Caching Protocols ICP, CARP.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
CSE 461: Distance Vector Routing. Next Topic  Focus  How do we calculate routes for packets?  Routing is a network layer function  Routing Algorithms.
Chapter 23: ARP, ICMP, DHCP IS333 Spring 2015.
CCNA Guide to Cisco Networking Fundamentals Fourth Edition Chapter 9 Network Services.
What Is TCP/IP? The large collection of networking protocols and services called TCP/IP denotes far more than the combination of the two key protocols.
15-1 Networking Computer network A collection of computing devices that are connected in various ways in order to communicate and share resources Usually,
Internet Relay Chat David Holl IS 373. Overview Introduction Standards Body History Specifications Advantages and Disadvantages Privacy Security Pervasiveness.
Internet Review Academic Talent Search. All About Networking DevicesDevices Packet TransferPacket Transfer HardwareHardware SoftwareSoftware Wiring/CablingWiring/Cabling.
Microsoft Windows 2003 Server. Client/Server Environment Many client computers connect to a server.
15-1 More Chapter 15 Goals Compare and contrast various technologies for home Internet connections Explain packet switching Describe the basic roles of.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Addressing the Network – IPv4 Network Fundamentals – Chapter 6.
Presentation Title Subtitle Author Copyright © 2002 OPNET Technologies, Inc. TM Introduction to IP and Routing.
1 Napster & Gnutella An Overview. 2 About Napster Distributed application allowing users to search and exchange MP3 files. Written by Shawn Fanning in.
Chapter 16 – DNS. DNS Domain Name Service This service allows client machines to resolve computer names (domain names) to IP addresses DNS works at the.
Networking Computer network A collection of computing devices that are connected in various ways in order to communicate and share resources Usually,
 Introduction  VoIP  P2P Systems  Skype  SIP  Skype - SIP Similarities and Differences  Conclusion.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Chapter 4 Networking and the Internet Introduction to CS 1 st Semester, 2015 Sanghyun Park.
LIGHT WEIGHT DIRECTORY ACCESS PROTOCOL Presented by Chaithra H.T.
1 Introducing Routing 1. Dynamic routing - information is learned from other routers, and routing protocols adjust routes automatically. 2. Static routing.
1 Client Server Architecture over the Internet Week - 2.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
1 Routing. 2 Routing is the act of deciding how each individual datagram finds its way through the multiple different paths to its destination. Routing.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
Scalability Don McGregor Research Associate MOVES Institute
CS1Q Computer Systems Lecture 17 Simon Gay. Lecture 17CS1Q Computer Systems - Simon Gay2 The Layered Model of Networks It is useful to think of networks.
Kerberos Named after a mythological three-headed dog that guards the underworld of Hades, Kerberos is a network authentication protocol that was designed.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
Transport Layer COM211 Communications and Networks CDA College Theodoros Christophides
The InetAddress Class A class for storing and managing internet addresses (both as IP numbers and as names). The are no constructors but “class factory”
Netprog: Routing and the Network Layer1 Routing and the Network Layer (ref: Interconnections by Perlman)
1 Peer-to-Peer Technologies Seminar by: Kunal Goswami (05IT6006) School of Information Technology Guided by: Prof. C.R.Mandal, School of Information Technology.
Security, NATs and Firewalls Ingate Systems. Basics of SIP Security.
Routing and Routing Protocols
1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Dynamic Host Configuration Protocol (DHCP)
Lecture Topics: 11/27 Networks Layered Model Ethernet IP.
NETWORKING FUNDAMENTALS. Network+ Guide to Networks, 4e2.
WEEK 11 – TOPOLOGIES, TCP/IP, SHARING & SECURITY IT1001- Personal Computer Hardware System & Operations.
Enterprise Network Systems TCP Mark Clements. 3 March 2008ENS 2 Last Week – Client/ Server Cost effective way of providing more computing power High specs.
Spring 2000CS 4611 Routing Outline Algorithms Scalability.
DHCP Vrushali sonar. Outline DHCP DHCPv6 Comparison Security issues Summary.
Chapter 25 Internet Routing. Static Routing manually configured routes that do not change Used by hosts whose routing table contains one static route.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
Netprog: Client/Server Issues1 Issues in Client/Server Programming Refs: Chapter 27.
IP Security (IPSec) Matt Hermanson. What is IPSec? It is an extension to the Internet Protocol (IP) suite that creates an encrypted and secure conversation.
Communication Networks NETW 501 Tutorial 2
Process-to-Process Delivery:
Internet Networking recitation #12
NET323 D: Network Protocols
Subject Name: Computer Communication Networks Subject Code: 10EC71
Intra-Domain Routing Jacob Strauss September 14, 2006.
Net 431 D: ADVANCED COMPUTER NETWORKS
Chat Refs: RFC 1459 (IRC).
NET323 D: Network Protocols
Issues in Client/Server Programming
CPEG514 Advanced Computer Networkst
Kerberos Part of project Athena (MIT).
Routing and the Network Layer (ref: Interconnections by Perlman
Presentation transcript:

Netprog: Chat1 Chat Issues and Ideas for Service Design Refs: RFC 1459 (IRC)

Netprog: Chat2 Service Design Issues Pretend we are about to design a chat system. We will look at a number of questions that would need to be answered during the design process. We will look at some possible system architectures.

Netprog: Chat3 Multi-user Chat Systems Functional Issues –Message types. –Message destinations (one vs. many groups) –Scalability (how many users can be supported) –Reliability? –Security authentication authorization privacy

Netprog: Chat4 Message Types Some options: –text only –audio –images –anything (MIME)?

Netprog: Chat5 Scalability How large a group do we want to support? How many groups? What kind of service architecture will provide efficient message delivery? What kind of service architecture will allow the system to support many users/groups?

Netprog: Chat6 Message Destinations Each message goes to a group (multi- user chat). –Can we also send to individuals? –Should we support more than one group? Are groups dynamic or static? What happens when there is nobody in a group? Can groups communicate? Can groups merge or split?

Netprog: Chat7 Reliability Does a user need to know (reliably) all the other users that receive a message? What happens if a message is lost? –resend? application level or at user level? What happens when a user quits? –Does everyone else need to know?

Netprog: Chat8 Security Authentication: do we need to know who each user is? Authorization: do some users have more privileges than others? Privacy: –Do messages need to be secure? –Do we need to make sure messages cannot be forged?

Netprog: Chat9 Peer-to-Peer Service Architecture Client

Netprog: Chat10 Peer-to-Peer Service Architecture (cont.) Each client talks to many other clients. Who’s on first? Is there a well known address for the service? How many peers can we keep track of? If 2 peers (clients) are on the same machine, do we need to send a message to the machine twice?

Netprog: Chat11 Client/Server Client Server

Netprog: Chat12 Client/Server Server is well known. Life is easier for clients - don’t need to know about all other clients. Limited number of clients? Security is centralized. Server might get overloaded?

Netprog: Chat13 Hybrid Possibility Client Server CONTROL MESSAGES

Netprog: Chat14 Hybrid Clients connect to server and gather control information: –List of other clients. –List of chat groups. Messages are sent directly (not through server). –Could use connectionless protocol (UDP or transaction based TCP).

Netprog: Chat15 Internet Relay Chat IRC is a widely used multi-user chat system. –Supports many chat groups (channels). –Extensive administrative controls. –Distributed service architecture. –Still in use today, although WWW based chat is now more common.

Netprog: Chat16 Client IRC Architecture Client Server Client Server Client

Netprog: Chat17 Server Topology Servers are connected in a spanning tree –Single path between any 2 servers. –New servers can be added dynamically support for preventing cycles in the server graph. A collection of servers operates as a unified system, users can view the system as a simple client/server system.

Netprog: Chat18 Server Databases Each server keeps track of –all other servers –all users (yes, really all users!) –all channels (chat groups) Each time this information changes, the change is propagated to all participating servers.

Netprog: Chat19 Clients A client connects to the system by establishing a TCP connection to any server. The client registers by sending: –(optional) password command –a nickname command –a username command.

Netprog: Chat20 Nicknames and user names A nickname is a user supplied identifier that will accompany any messages sent. –Wizard, kilroy, gargoyle, death_star, gumby The username could be faked, some implementations use RFC931 lookup to check it. Users can find out the username associated with a nickname.

Netprog: Chat21 Collisions If a client requests a nickname that is already in use, the server will reject it. If 2 clients ask for the same nickname on 2 different servers, it is possible that neither server initially knows about the other. In this case both requests for the nickname are rejected.

Netprog: Chat22 Nickname Collision Server A Server A Server B Server B IRC Network Client I want to be satan Client I want to be satan

Netprog: Chat23 Nickname Propagation The command used to specify a nickname is forwarded from the server to all other servers (using the spanning tree topology). The command is the same, but extra information is added by the original server: –server name connected to client with nickname. –Hop count* from the server connected to the client. *hop count is IRC server count (not IP!)

Netprog: Chat24 Channels 2 kinds of channels –local to a server - start with ‘&’ character –global, span the entire IRC network -start with the ‘#’ character. Users can JOIN or PART from a channel. A channel is created when the first user JOINS, and destroyed when the last user PARTS.

Netprog: Chat25 Channel Operators The user that creates a channel becomes the channel operator and can set various channel properties (modes): –invite-only –moderated –private –secret

Netprog: Chat26 Channel Op commands A Channel Op can: –give away channel op privileges –set channel topic (just a string) –kick users out of the channel. –Invite a client to a channel –change channel mode

Netprog: Chat27 Messages All messages are text. A message can be sent to nicknames, channels, hosts or servers. There are two commands for sending messages: –PRIVMSG: response provided. –NOTICE: no response (reply) generated. Avoids loops when clients are automatons

Netprog: Chat28 Other Stuff Special class of users known as Operators. –Operators can remove users! Servers can be told to connect to another server (operators create the spanning tree). The tree can be split if a node or network fails - there are commands for dealing with this.

Netprog: Chat29 Problems Scalability: works well with quite a large IRC network, but needs to be changed to get much bigger. –Currently every server needs to know about every other server, every channel and every user. –Path length is determined by operators, an optimal tree could be generated automatically.

Netprog: Chat30 Problems Supporting a cyclic network (instead of a tree) could minimize disruptions. Need a better scheme for nicknames, too many collisions (everyone wants to be satan!) Current protocol means that each server must assume neighbor server is correct. Bad guys could screw things up.