Embed Size (px)
Transcript of Lecture 01.ppt
Advanced Computer Networks
By Dr. Amir Qayyum
Lecture No. 1
*Instructors IntroductionPh.D. Mobile Wireless Net., Univ. of Paris-Sud, FranceElect. Engg.,U.E.T. LahoreM.S. Comp. Engg., E.S.I.M., FranceD.E.A. Parallel Comp. Arch., Univ. of Paris-Sud, FranceActive participant of MANET wg of IETF since 1997Co-author of an RFC on routing protocol for MANETsAssociated with INRIA, France as a research fellowWorked on Praxitele, PRIMA and IPANEMA projectsProtocol implement. experience at Enabling TechnologiesImplementation of RTP-RTCP/UDP-TCP/IP stack for a RISC based packet processor, including CRTP, PPP/MP, IPsec, QoS.Currently working at CARE Pvt. Ltd. and CASEDesign/development of long-range, secure mobile ad hoc networks
*Significance and Rationale of courseNetworks and telecommunication is getting more and more importanceFuture telecomm networks will be more oriented toward networks rather than communicationWidespread Internet, diffused in our daily life is a ground reality; its beneficial to understand itIts fun to play with protocols (software) and able to design exciting new type of networks
*Foundation Course in Network StreamThis Computer Networks course is a foundation course for Networks as the Area of SpecializationIt is a required pre-requisite course for the following advanced level courses in networkingPerformance Analysis of Communication NetworksIntegrated Services over Packet NetworksComputer Network SecurityMobile NetworkingIt is a recommended pre-requisite for the course:Network and System Programming
*Course MaterialReference booksMany textbooks on Networking may be consultedLot of research papers!Many will be made available on course web siteRFCs and Internet draftsRelated to TCP/IP suite and other protocolsWeb resourcesTutorials, white papers, reports, etc.
*Text BookLarry L. Peterson and Bruce S. Davies, Computer Networks: A Systems ApproachThird Edition , Morgan Kaufmann Publishers, San Mateo, California, USA
W. Richard Stevens, UNIX Network Programming, Volume 1, (Networking APIs: Sockets and XTI)Second Edition, Prentice HallRecommended ONLY for programming part
An undergraduate level course on computer networksGood knowledge of C language, preferably in Unix/Linuxe.g. C and Data Structures course
*Course EvaluationAssignmentsQuizzesResearch PapersTerm Projects / ReportsMidterm examFinal exam
*ExpectationsWhat do you want (or expect) to learn from
this course ?
*ExpectationsThis course IS about Network principles and conceptsGeneral purpose computer networksInternet perspectiveMajor components of the Internet protocol suiteNetwork softwareDesigning and building a system
*ExpectationsThis course IS NOT about Survey of existing protocol standardsSpecialized networks (e.g. CATV, telephone)OSI perspectiveNetwork hardwareData transmission on physical layerQueuing theory (we do survey, if time permits)
*ExpectationsWe will learn
networks are like they are
*Objectives: Principles and ConceptsAt the end of this course, you should be able to:Identify the problems that arise in networked communicationExplain advantages/disadvantages of existing solutions to these problems in different networking scenariosEvaluate novel approaches to these problemsUnderstand the components of Internet protocol suiteUnderstand the implications of a given solution for performance in various networking environments
*Objectives: ProgrammingAt the end of this course, you should be able to:Identify and describe the purpose of each component of the TCP/IP protocol suiteDevelop client-server applications using TCP/IPUnderstand the impact of trends in network hardware on network software issuesUnderstand over 1000 useful (or useless) VUAs
*Course ContentsOverviewIntroduction to network programmingDirect link networksPacket switchingInternetworkingEnd-to-end protocolsCongestion control and resource allocationEnd-to-end dataApplicationsPerformance analysis and queuing theory (?)
*IntroductionOutlineStatistical MultiplexingInter-Process CommunicationPerformance MetricsNetwork Architecture
*What is Your Over-ambitious Goal ?Build a computer network whichCan grow to global proportionsSupport diverse applications
Then think aboutUnderlying building blocksWhich available technologies to useIntegrating the blocks to communicateWhich software architecture to use
Network DesignBefore looking inside a computer network, first agree on what a computer network is?
*Computer Network ?Set of serial lines to attach terminals to mainframe ?Telephone network carrying voice traffic ?Cable network to disseminate video signals ?Specialized to handle:
*What Distinguishes a Computer Network ?GeneralityBuilt from general purpose programmable hardwareSupports wide range of applications
*Applications Users Contact with the NetworkMost people know the Internet through its applicationsWeb, email, streaming audio and video, chat, Applications present an intuitively simple interfaceTextual and graphical objectsSimple clicks to maneuver the applicationHowever, users are not aware of what happens in the network with their simple clicks !!!
*Applications Consumers of NetworksOn a simple click, several messages may be exchanged over the InternetIn a web browser, 17 messages may be exchangedup to six messages to translate the server namethree messages to set up a TCP connectionfour messages to send HTTP get request + responsefour messages to tear down the TCP connectionMoreover, millions of messages are exchanged each day by Internet nodes to make their presence and services known
*Applications the Driving ForceStreaming audio and video is an emerging applicationSource generates and sends the video stream in messages across the InternetVideo-on-demand: reads a preexisting movieOne-way data transferVideoconferencing: interactive sessionVery tight timing constraintsDiversity of applications that can be built on top of the Internet hint at the complexity of the Internet design
*Our Road Map Fortunately, we are not the first to build a computer network
Lets start exploring the path that others have already dig deep
By asking (and answering) why networks are designed the way they are
*Network OverviewWhat must a network provide ?ConnectivityCost-effective sharingFunctionalityPerformanceHow are networks designed and built ?LayeringProtocolsStandards
*PerspectiveFor network userConnectivity: for services required; error free delivery within acceptable time limitsFor network designerEfficiency: cost-effective design, fair allocation and efficient use of resourcesFor network operatorMaintenance: easy to administer, fault localization & isolation, usage accounting
*Building BlocksNodes: PC, special-purpose hardwareHostsSwitches
Links: coax cable, optical fiberPoint-to-point
*Why not connect each node with every other node ?Number of computers that can be connected becomes very limitedNumber of wires coming out of each node becomes unmanageableAmount of physical hardware/devices required becomes very expensiveSolution: indirect connectivity using intermediate data forwarding nodes
*Switched NetworksTwo or more nodes connected by a link
Circular nodes (switches) implement the networkSquared nodes (hosts) use the networkA network can be defined recursively as...
*Switched NetworksTwo or more networks connected by one or more nodes: internetworks
Circular nodes (router or gateway) interconnects the networksA cloud denotes any type of independent networkA network can be defined recursively as...
*A Network A network can be defined recursively as
Two or more nodes connected by a physical link ORTwo or more networks connected by one or more nodes
*Components of a Network
*Switching StrategiesCircuit switching: carry bit streamsestablishes a dedicated circuitlinks reserved for use by communication channelsend/receive bit stream at constant rateexample: original telephone networkPacket switching: store-and-forward messagesoperates on discrete blocks of datautilizes resources dynamically according to traffic demandsend/receive messages at variable rateexample: Internet
*What next ?Hosts are directly or indirectly connected to each other
Can we now provide host-host connectivity ?
Nodes must be able to say which host it wants to communicate with
*Addressing and RoutingAddress: byte-string that identifies a nodeUsually uniqueRouting: forwarding decisionsProcess of determining how to forward messages to the destination node based on its addressTypes of addressesunicast: node-specificbroadcast: all nodes on a networkmulticast: some subset of nodes on a network
*Wrap-upA network can be constructed from nesting of networks
An address is required for each node that is reachable on the network
Address is used to route messages toward appropriate destination