Computer Networks and Communications [Δίκτυα Υπολογιστών και Επικοινωνίες] Lectures 4-7: What is the Internet? (2) Univ. of the Aegean Financial and Management Engineering Dpt Petros KAVASSALIS 1 What you will learn in this course A set of fundamental concepts for understanding Data Networks and the Internet What is the Internet? Internet architecture and layers Internet applications and services New concepts in the evolution of the Internet The Internet goes Wireless… Familiarization with the structure and organization of Digital Networks Business and Social Networks Electronic Markets and Online Feedback Mechanisms <pkavassalis@atlantis-group.gr> 2 Who am I? PhD in Economics and Management (Univ. Paris Dauphine & Ecole polytechnique) Research experience Ecole polytechnique, Paris MIT Center of Technology Policy and Industrial Development, MIT CTPID (MIT Internet Telecommunications Convergence Consortium) Current positions Univ. of the Aegean (FME): Assoc. Professor RACTI: Director of ATLANTIS Group <pkavassalis@atlantis-group.gr> 3 Communication tools e-mail: pkavassalis [at] atlantis-group.gr Course web site: see fme website <pkavassalis@atlantis-group.gr> 4 Course Textbook [http://books.google.gr/books?id=Pdz64SJRBAC&dq=tanenbaum+networks&printsec=frontcover&source=bn&hl=el&ei=mldSfH9L4S2jAeJ5L3ZBQ&sa=X&oi=book_result&resnum=4&ct=result] <pkavassalis@atlantis-group.gr> 5 Supplementary Texts & References William Stallings, Computer Networking with Internet Protocols, Prentice Hall, 2004 James F. Kurose and Keith W. Ross, Computer Networking: A Top-Down Approach, Addison-Wesley, 2008 <pkavassalis@atlantis-group.gr> 6 Students evaluation Class Participation (20%) + Assignments (20%) + Final Exam (60%) <pkavassalis@atlantis-group.gr> 7 Reminder (1): Overview of the Internet The structure of the Internet is roughly hierarchical Petros KAVASSALIS <petros@cfp.mit.edu> 8 Reminder (2): Transmission of packets When a process on some host has a message to be sent to a process on some other host: The sending host first cuts the message into packets, each one bearing its number in the sequence These packets are then injected into the network one at a time in quick succession The packets are transported individually over the network and deposited at the receiving host, where they are reassembled into the original message and delivered to the receiving process Petros KAVASSALIS <petros@cfp.mit.edu> 9 Routing of packets Routing decisions are made locally When a packet arrives at router A,itis up to A to decide if this packet should be sent on the line to B or the line to C How A makes that decision is called the routing algorithm. Petros KAVASSALIS <petros@cfp.mit.edu> 10 Probing the Internet The program begins by walking through the Domain Name System (DNS), system that stores names for computers and then uses a program that tests to see whether the computer is currently online [I will come later] Tools used to probe the Internet are also available to users One of the simplest probing tools is a program known as ping: Example: ping www.fme.aegean.gr/ Example: ping www.nytimes.com The ping program sends a message to the specified computer and then waits a short time for a response. If a response arrives, ping reports to the user that the computer is alive otherwise, ping reports that the computer is not responding Petros KAVASSALIS <petros@cfp.mit.edu> 11 An example of “ping” Please ping a website Petros KAVASSALIS <petros@cfp.mit.edu> 12 How to interpret “ping” Ping sends one request each second and produces one line of output for each response received The output tells the size of the packet received, the sequence number, and the round-trip time in milliseconds When the user interrupts the program, ping produces a summary that specifies the number of packets sent and received packet loss and the minimum / mean / maximum round-trip times * But when no response is received, ping can neither help determine the reason nor to determine the cause of the problem Petros KAVASSALIS <petros@cfp.mit.edu> 13 Tracing a route Traceroute used to determine the intermediate computers along the path to a remote destination Ex: traceroute www.aegean.gr Traceroute provides more information than ping Each line corresponds to each of intermediate computersand one corresponds to the final destination itself Traceroute cannot be used for all destinations NW administrators may choose to disable it to prevent outsiders from obtaining detailed information about their architecture Petros KAVASSALIS <petros@cfp.mit.edu> 14 An example of “traceroute” Please try! Petros KAVASSALIS <petros@cfp.mit.edu> 15 How to interpret “traceroute” A treceroute table illustrates another features of traceroute: a report of packet loss Traceroute sends three probes for each intermediate computer When the three responses arrive, traceroute prints the name of the intermediate computer, and gives the minimum, average, and maximum round-trip times. The line with asterisks indicates two of three probes received no response (i.e., packets were lost) If all probes are going to be received successfully, we can conclude that the loss was a temporary condition probably caused by congestion on one of the paths between the source and destination Petros KAVASSALIS <petros@cfp.mit.edu> 16 Reminder: How do loss and delay occur? Packets queue in router buffers packet arrival rate to link exceeds output link capacity packets queue, wait for turn packet being transmitted (delay) A B packets queueing (delay) free (available) buffers: arriving packets dropped (loss) if no free buffers Petros KAVASSALIS <petros@cfp.mit.edu> 17 The Internet: change view IP (spanning-layer) separates information bitways from applications Applications may work over multiple substrates (network techs) and these substrates do not prespecify the development of new applications [I will come back!] Petros KAVASSALIS <petros@cfp.mit.edu> 18 What is a protocol? Human protocols Machine protocols “what’s the time?” “I have a question” Introductions (“this is…”) Specific msgs sent Specific actions taken when msgs received, or other events Petros KAVASSALIS <petros@cfp.mit.edu> Machines “talk each other” (rather than humans) All communication activity in Internet governed by protocols Protocols define format, order of msgs sent and received among network entities, and actions taken on msg transmission, receipt 19 Human and Computer protocols Make possible a series of interactions http:www.atlantis-group.gr Petros KAVASSALIS <petros@cfp.mit.edu> 20 Layers: in general To reduce their design complexity, most networks are organized as a stack of layers or levels, each one built upon the one below it The number of layers, the name of each layer, the contents of each layer, and the function of each layer differ from network to network The purpose of each layer is to offer certain services to the higher layers, shielding those layers from the details of how the offered services are actually implemented. In a sense, each layer is a kind of virtual machine, offering certain services to the layer above it Petros KAVASSALIS <petros@cfp.mit.edu> 21 Layers: an example from another industry ticket (purchase) ticket (complain) ticket baggage (check) baggage (claim baggage gates (load) gates (unload) gate runway (takeoff) runway (land) takeoff/landing airplane routing airplane routing airplane routing departure airport airplane routing airplane routing intermediate air-traffic control centers arrival airport Layers: each layer implements a service via its own internal-layer actions relying on services provided by layer below Petros KAVASSALIS <petros@cfp.mit.edu> 22 Layers in the communication industry Petros KAVASSALIS <petros@cfp.mit.edu> 23 An example: file transfer (1) An example: file transfer (I am going to send to one of you my presentation) There must be a data path between our computers Also need: Source to activate Communications Path or inform network of destination Source must check destination is prepared to receive File transfer application on source must check destination file management system will accept and store file for his user May need file format translation Petros KAVASSALIS <petros@cfp.mit.edu> 24 An example: file transfer (2) Instead of implementing the complex logic for this as a single module, the task is broken up into subtasks, implemented separately In a protocol architecture, the modules are arranged in a vertical stack, each layer in the stack performs a related subset of the functions It relies on the next lower layer to perform more primitive functions It provides services to the next higher layer The peer layers communicate using a set of rules or conventions (known as a protocol, see next page) Petros KAVASSALIS <petros@cfp.mit.edu> 25 Layers and protocols Layer n on one machine carries on a conversation with layer n on another machine The rules and conventions used in this conversation are collectively known as the layer n protocol A protocol is an agreement between the communicating parties on how communication is to proceed Petros KAVASSALIS <petros@cfp.mit.edu> 26 Layers and interfaces (1) Between each pair of adjacent layers is an interface The interface defines which primitive operations and services the lower layer makes available to the upper one When network designers decide how many layers to include in a network and what each one should do, one of the most important considerations is defining clean interfaces between the layers Petros KAVASSALIS <petros@cfp.mit.edu> 27 Layers and interfaces (2) Implementing interfaces Requires that each layer perform a specific collection of wellunderstood functions In addition to minimizing the amount of information that must be passed between layers, clear-cut interfaces also make it simpler to replace the implementation of one layer with a completely different implementation (e.g., all the telephone lines are replaced by satellite channels) because all that is required of the new implementation is that it offer exactly the same set of services to its upstairs neighbor as the old implementation did It is common that different hosts use different implementations. Petros KAVASSALIS <petros@cfp.mit.edu> 28 Protocol The key features of a protocol are: Syntax: Concerns the format of the data blocks Semantics: Includes control information for coordination and error handling Timing: Includes speed matching and sequencing Petros KAVASSALIS <petros@cfp.mit.edu> 29 Network architecture A set of layers and protocols is called a network architecture The specification of an architecture must contain enough information to allow an implementer to write the program or build the hardware for each layer so that it will correctly obey the appropriate protocol. Neither the details of the implementation nor the specification of the interfaces is part of the architecture because these are hidden away inside the machines and not visible from the outside. It is not even necessary that the interfaces on all machines in a network be the same, provided that each machine can correctly use all the protocols. A list of protocols used by a certain system, one protocol per layer, is called a protocol stack Petros KAVASSALIS <petros@cfp.mit.edu> 30 A network architecture Petros KAVASSALIS <petros@cfp.mit.edu> 31 Physical layer Concerned with physical interface between computer and network Concerned with issues like: characteristics of transmission medium signal levels data rates other related matters Petros KAVASSALIS <petros@cfp.mit.edu> 32 Network Access layer Exchange of data between an end system and attached network Concerned with issues like : destination address provision invoking specific services like priority access to & routing data across a network link between two attached systems Allows layers above to ignore link specifics Petros KAVASSALIS <petros@cfp.mit.edu> 33 Network layer (IP) Routing functions across multiple networks For systems attached to different networks IP protocol Spanning layer (spans over undelying networks) Implemented in end systems and routers routers connect two networks and relays data between them Petros KAVASSALIS <petros@cfp.mit.edu> 34 Transport layer Common layer shared by all applications Provides reliable delivery of data In same order as sent Commonly uses TCP UDP for delay sensitive applications Petros KAVASSALIS <petros@cfp.mit.edu> 35 Application layer Provide support for user applications Need a separate module for each type of application Examples instant messaging remote login p2p file sharing multi-user network games streaming stored video clips voice over IP real-time video conferencing grid computing Petros KAVASSALIS <petros@cfp.mit.edu> 36 TCP/IP in practice Petros KAVASSALIS <petros@cfp.mit.edu> 37