Download presentation
Presentation is loading. Please wait.
Published byCynthia Francis Modified over 8 years ago
1
Computer Networks Group Universität Paderborn Konzepte und Methoden der Systemsoftware Kapitel 9: Rechnernetze Holger Karl
2
SS 06, v 1.1KMS - Kap. 9: Rechnernetze2 Goals of this chapter Previous chapter has introduced the notion of “channel objects” to abstract away how data is exchanged between two processes This abstraction is OK for two processes on the same machine – but what about communication across machine boundaries? This chapter treats this problem – it starts from the simple case of two directly connected devices and generalizes to larger networks Goal is to provide a rough understanding on Which typical problems in computer networks exist, Why they occur, How a solution could look like. Details on solutions will be treated in a separate lecture
3
SS 06, v 1.1KMS - Kap. 9: Rechnernetze3 Overview Examples Direct connection between two devices Multiple devices Errors
4
SS 06, v 1.1KMS - Kap. 9: Rechnernetze4 How to bridge across devices with a channel object? Channel objects used as a “bridge” Need some functionality on “both sides” of such a bridge – stubs How to organize these stubs?
5
SS 06, v 1.1KMS - Kap. 9: Rechnernetze5 Basic example 1: World Wide Web What happens when you enter http://www.uni-paderborn.de into a Web browser? http://www.uni-paderborn.de ??
6
SS 06, v 1.1KMS - Kap. 9: Rechnernetze6 Basic example 2: Telephony What happens when picking up a telephone and making a phone call? How to find the peer’s phone? How to transmit speech? What are the crucial differences between transferring a Web page and a phone call? Web: Bunch of data that has to be transmitted correctly Phone: Continuous flow of information, must arrive in time, limited amount of errors acceptable ?
7
SS 06, v 1.1KMS - Kap. 9: Rechnernetze7 What to communicate: Information, data Data A formalized representation of facts, concepts, ideas, descriptions, … Example: text, speech Information A human interpretation of data, conferring meaning to data In this sense, a human-oriented term Only data can be communicated, information is restored by the human receiver Human to human, machine to machine, human to machine Information Facts, concepts, ideas, … Data Formalized representation of information Conventions for representation Abstract world
8
SS 06, v 1.1KMS - Kap. 9: Rechnernetze8 Overview Examples Direct connection between two devices Signals Low-level communication properties Duplex Multiple devices Errors
9
SS 06, v 1.1KMS - Kap. 9: Rechnernetze9 Simplest communication: Direct physical connection Web example: Browser (i.e. client) and server Simplest case: directly connect them by a (pair of) cable Server provides data, client consumes it Telephony: Connect two telephones via a (pair of) cable Client Server
10
SS 06, v 1.1KMS - Kap. 9: Rechnernetze10 Conventions for representation What good is a physical connection? – Signals Data has to be represented by signals Signal: Representation of data by characteristic changes (in time and/or space) of physical variables Material example: Letters on paper Immaterial example: Acoustic waves when speaking Current or voltage in a wire Immaterial signals in physical media enable data communication between remote senders and receivers Information Data Conventions for representation Abstract world Signals Physical world
11
SS 06, v 1.1KMS - Kap. 9: Rechnernetze11 Bits and signals What should be communicated: Data, represented as bits What can be communicated between remote entities: Signals Needed: a means to transform bits into signals And: from signals back into bits at the receiver A simple convention for a copper wire: A “1” is represented by current A “0” is represented by no current (Not practical, more sophisticated conversions necessary) Questions: How to detect bits, decide on their length, handle errors?
12
SS 06, v 1.1KMS - Kap. 9: Rechnernetze12 Low-level properties of communication Transmitting signals on a physical carrier results in some low-level properties Propagation delay d: How long does it take for a signal to reach receiver? Propagation speed v: How fast does a signal travel in the medium? Electromagnetic waves in vacuum speed of light v=c, in copper v¼ 2/3 c d = distance / v Data rate r: With which data rate (in bits/second) can a sender transmit? (EOT – SOT) = Data size / data rate Error rate: What is the rate of incorrect bits arriving at the receiver? Also: what error patterns? Message Sequence Charts (MSC) Start of transmission End of transmission Delay d Time Distance
13
SS 06, v 1.1KMS - Kap. 9: Rechnernetze13 How can a wire store data – bandwidth-delay product What happens in the first d seconds after transmission starts? Bits are transmitted and propagate towards the receiver Sender keeps sending bits First bit arrives after d seconds In this time, sender has transmitted d*r bits Where are they? Stored in the wire! d*r is the product of delay and data rate Commonly called bandwidth/delay product Crucial property of high-performance networks Start of transmission Time Delay d Example (transcontinental): Data rate 100 Mbit/s Delay 6000km/(2/3c) ¼ 0.03 s d*r ¼ 3 Mbit (in the wire)
14
SS 06, v 1.1KMS - Kap. 9: Rechnernetze14 Two physical connections for two-way communication? Two-way communication Telephony: Both parties want to say something WWW: Server needs to know which webpage shall be delivered Different cases possible: Simplex: Only one party transmits Example: Radio broadcast; many recipients at the same time Half duplex: Parties alternatively send data Example: Conversation Full duplex: Both parties send all the time A B
15
SS 06, v 1.1KMS - Kap. 9: Rechnernetze15 How to realize duplexing Simplex operation: trivial Half duplex Two pairs of cables, one for each direction – wasteful Use one cable intelligently – participants alternatively transmit, wait their time until it is their turn Both sending at the same time would not work, signals interfere Problem: How can one node decide that the other is done sending? Time A ! B B ! AA ! B B ! A Time division duplex – TDD
16
SS 06, v 1.1KMS - Kap. 9: Rechnernetze16 How to realize duplexing Full duplex Two pairs of cables would work, but still overhead (installation, maintenance, …) – does it work with one cable also? Exploit some properties of the physical medium Here: transmissions in different frequencies do not interfere Idea: use different frequencies for transmission in different directions Time A ! B B ! A Frequency Frequency Division Duplex – FDD
17
SS 06, v 1.1KMS - Kap. 9: Rechnernetze17 How to realize duplexing A ! B AB B ! A AB Data to be transmitted TDD can realize full duplex if transmission over medium is at least twice as fast as data is to be transmitted Full duplex by time division duplexing? Sounds like a contradiction: both A and B always have data to send, but have to take turns? “Having data to send” corresponds to a certain data rate – bits per second How about intermediately storing data when the other station is currently sending? Then quickly send all stored & new data
18
SS 06, v 1.1KMS - Kap. 9: Rechnernetze18 Lessons learned from duplexing It is useful to distinguish between Requirements on what should be possible Rules and methods how to implement such requirements Example: Implement a “full duplex” requirement using TDD This distinction will become very important Formalized later as service versus protocol Buffering is an important means to decouple different dynamics in time Questions of buffer overflow have to be considered
19
SS 06, v 1.1KMS - Kap. 9: Rechnernetze19 Overview Examples Direct connection between two devices Multiple devices Multi-hop connections Switching Forwarding Multiplexing Multiple access Routing Errors
20
SS 06, v 1.1KMS - Kap. 9: Rechnernetze20 But there are more than two computers/telephones Connect each telephone/computer with each other one? With four computers: With eleven computers: …
21
SS 06, v 1.1KMS - Kap. 9: Rechnernetze21 Beirut connections Connecting many phones in real life
22
SS 06, v 1.1KMS - Kap. 9: Rechnernetze22 Beirut connections
23
SS 06, v 1.1KMS - Kap. 9: Rechnernetze23 Put some structure into a network Pair wise connecting all entities does not work Need some structure Distinguish between “end systems/terminals/user devices” on one hand, “switching elements/routers” on the other hand
24
SS 06, v 1.1KMS - Kap. 9: Rechnernetze24 Typical network structures for local installations “Busses” All nodes connected to a single wireline Cheap, but relatively inefficient, error-prone “Rings” Nodes connected to a ring- shape network Can compensate for a single break of pairwise connection “Star” All nodes directly connected to a central cabling “hub” Again error-prone, but easy to administer, manage
25
SS 06, v 1.1KMS - Kap. 9: Rechnernetze25 How to communicate over a switching element Using switching elements, there is no longer a direct physical connection between two terminals – How to send signals nonetheless? Option 1: Have the switching element dynamically, on demand configure an electrical circuit between terminals Act as a real switch – compare “Fräulein vom Amt” Resulting circuit lasts for duration of communication Circuit switching http://www.wdrcobg.com/switchboard.html
26
SS 06, v 1.1KMS - Kap. 9: Rechnernetze26 Circuit switching – evaluation Advantages of circuit switching Simple Once circuit is established, resources are guaranteed to participating terminals Once circuit is established, data only has to follow the circuit Disadvantages Resources are dedicated – what if there is a pause in the communication? Circuit has to be set up before communication can commence Alternatives?
27
SS 06, v 1.1KMS - Kap. 9: Rechnernetze27 Packet switching Avoid setting up a circuit for a complete communication Instead: chop up data into packets Packets contain some actual data that is to be delivered to the recipient (can have different size) Also need administrative information, e.g., who the recipient is Sender then occasionally sends out a packet, instead of a continuous flow of data Problems: How to detect start and end of a packet, which information to put into a packet, … Packet 1 Packet 2 Packet 3
28
SS 06, v 1.1KMS - Kap. 9: Rechnernetze28 Packet switching II Switches take on additional tasks Receive a complete packet Store the packet in a buffer Find out the packet’s destination Decide where the packet should be sent next to reach its destination Information about the network graph necessary Forward the packet to this next hop of its journey Also called “store-and- forward” network To X Buffer To Y To Z To Y To Z Pick next hop To Y To X To Z
29
SS 06, v 1.1KMS - Kap. 9: Rechnernetze29 Multiplexing Previous example had two packets at the head of the queue destined for terminal Z Similar situation: a switching element has only a single outgoing connection Such a special case is called a multiplexer Organizing the forwarding of packets over such a single, shared connection is called multiplexing Multiplexers in general need buffer space as well
30
SS 06, v 1.1KMS - Kap. 9: Rechnernetze30 Multiplexing II Obvious option: Time Division Multiplexing (TDM) Serve one packet after the other; divide the use of the connection in time Alternative: Frequency Division Multiplexing (FDM) Use different frequencies to transmit several packets at the same time To Z (in frequency 1) (in frequency 2)
31
SS 06, v 1.1KMS - Kap. 9: Rechnernetze31 Multiplexing III Some other alternatives exist Code Division Multiplexing (CDM), Space Division Multiplexing (SDM) Mostly relevant in wireless communication only, not covered here Obvious parallels/relations to duplex operation! Multiplexing describes how to operate several pairs of communicating entities Duplexing describes how a given pair of communicating entities can exchange data Question: How to combine different duplex and multiplexing schemes?
32
SS 06, v 1.1KMS - Kap. 9: Rechnernetze32 Mutliplexing & virtualization In essence, mutiplexing serves one particular purpose: It abstracts away that a physical connection has to be shared with other contending entities, each sending a logical flow It allows the entities connected to the switch to “imagine” that they alone are using the physical connection At somewhat lesser properties Multiplexing virtualizes the actual, physical connection It needs a peer entity, a demultiplexer, to restore the original flows This concept of virtualizing and enriching the properties of a simpler subsystem is a pivotal technique for communication networks As it is in software engineering, operating systems, etc. It allows us to think in terms of increasingly more complex communication systems, build one atop the other
33
SS 06, v 1.1KMS - Kap. 9: Rechnernetze33 Multiplexing & shared resources Multiplexing can be viewed as a means to regulate the access to a resource that is shared by multiple users The switching element/its outgoing line With the switching element as the controller Are there other examples of “shared resources”? Classroom, with “air” as physical medium A shared copper wire, as opposed to direct connection Characteristic: a broadcast medium! Virtually shared, but exclusively controlled! Shared!
34
SS 06, v 1.1KMS - Kap. 9: Rechnernetze34 Broadcast medium and multiple access Common characteristic of a broadcast medium: Only a single sender at a time! Exclusive access is necessary There are some exceptions using CDMA, but that’s advanced material Exclusive access is simple to achieve with a multiplexer What if no multiplexer is available? Exclusive access has to be ensured by all participants working together The problem of multiple access to a shared medium Medium access for short Rules have to be agreed upon Classroom approach: only speak when asked to, central instance
35
SS 06, v 1.1KMS - Kap. 9: Rechnernetze35 An intermediate summary So far, we have a rough idea about Converting bits to signals and back again Duplexing, switching, multiplexing Packets as unit of data transport Multiple access of several entities to a shared medium In essence, we know how to connect several entities into a flat or hierarchical network Missing piece for hierarchical networks: How to know where to send a packet For circuit switching: how to setup the circuit
36
SS 06, v 1.1KMS - Kap. 9: Rechnernetze36 Forwarding and next hop selection Recall: A switching element/a router forwards a packet onto the next hop towards its destination How does a router know which of its neighbors is the best possible one towards a given destination? What is a “good” neighbor, anyway? A Z ? ? ? ? U V W X Y P M
37
SS 06, v 1.1KMS - Kap. 9: Rechnernetze37 Options for next hop selection Some simple options: Flooding – send to all neighbors Hot potato routing – send to a randomly chosen neighbor Simple options not convincing Try to find good, i.e., short routes – few hops Try to learn about the structure of the network, interpreted as a graph Construct routing tables For each switching element separately Separate entry for each destination Contains information about the (conjectured) shortest distance to a given destination via each neighbor MPZ U234 V323 X432 Y443 Destination Neighbor Routing table of W
38
SS 06, v 1.1KMS - Kap. 9: Rechnernetze38 Routing tables Criteria Good/perfect estimate of real distances, absence of loops, … Constructing routing tables Initially, typically empty – how should a new node know anything? Passive: observe ongoing traffic (e.g., from hot potato routing) and try to extract information, successively improve table correctness Actively exchange information between routers to try to learn network structure – routing protocols Problem: Size! In large networks, maintaining routing entries for all possible destinations quickly becomes infeasible Solution: hierarchy – treat “similar” nodes identically (divide et impera) ! internetworking
39
SS 06, v 1.1KMS - Kap. 9: Rechnernetze39 Overview Examples Direct connection between two devices Multiple devices Errors
40
SS 06, v 1.1KMS - Kap. 9: Rechnernetze40 Handling errors, overload, … So we are done building a network – unless something goes wrong! Source of errors/abnormal situations Conversion from signals to bits can fail Access to a shared medium might not work Packets can be lost, e.g., because buffers overflow Packets can be misrouted (because of incorrect routing tables), delayed, reordered Receiver might not be able to keep up with incoming stream of packets Routers can fail, resulting in incorrect routing tables … and many more
41
SS 06, v 1.1KMS - Kap. 9: Rechnernetze41 Handling errors, overload, … Error control at various abstraction levels needed Between two direct neighbors, over a given connection Between end systems, to compensate for errors not detected locally – e.g., incorrect order of packets Overload control Protect the network against buffer overflows, regulate the number of packets injected into the network – Congestion control Protect end system against too many packets coming in – Flow control Where and how to implement error and overload control is a principal architectural decision Main options: in the end system or in the network Big difference between telephony system and Internet Telephony carriers are (traditionally) interested in network-based solutions to be able to charge for it
42
SS 06, v 1.1KMS - Kap. 9: Rechnernetze42 Intermediate summary: Basic required functions Bit-to-signal and signal-to-bit conversion Grouping bits into packets Accessing a shared medium Switching, duplexing, multiplexing Controlling errors on a connection between two systems Forwarding incoming packets, consulting routing tables Constructing routing tables, maintaining them Controlling errors not detectable between two neighboring systems Protecting the network against overload Protecting end systems against overload Ensuring correct order and possibly timeliness of packets Making these functions accessible from application programs Controlling the actual hardware that connects a wire to a computer … and more!
43
SS 06, v 1.1KMS - Kap. 9: Rechnernetze43 System structure Any chance to build a single, monolithic system/piece of software that realizes all these functions, from wire to application? – No way! To give an idea: Size of telecommunication and astronautic software (Siemens telephony switches)
44
SS 06, v 1.1KMS - Kap. 9: Rechnernetze44 System structure – layers Only feasible option: Build “virtual” subsystems of increasing capabilities and abstraction levels Example: Multiplexing abstracted away the physical connections capability to support a single transmission into a logical link that can be used by several entities Subsystems are called layers Each layer uses capabilities of a “lower” subsystem, adds own rules and procedures, to provide a more useful, advanced service Services expose a well defined interface to higher layers Services are accessible at their Service Access Point (SAP) A service is a promise what is going to happen to data when delivered to the SAP
45
SS 06, v 1.1KMS - Kap. 9: Rechnernetze45 Service Service: Any act or performance that one party can offer to another that is essentially intangible and does not result in the ownership of anything. Its production may or may not be tied to a physical product. D. Jobber, Principles and Practice of Marketing Focus is on the output, the result of the service NOT the means to achieve it
46
SS 06, v 1.1KMS - Kap. 9: Rechnernetze46 Overview Structuring communication systems into layers Services Service primitives Properties of service primitives Example: sockets Protocols Reference models Standardization
47
SS 06, v 1.1KMS - Kap. 9: Rechnernetze47 Services and layers Layers provide services to their users, at their interface Convention: consecutive numbering, higher numbers for more abstract layers/services Service can be accessed at different places by different users Layer 0 “Physical connection” Service Access Point (SAP) of Layer 0: Imperfect transmission of electromagnetic current Layer 1 “Bit ! Current/Current ! Bit conversion” Service Access Point (SAP) of Layer 1: Transmission of bit sequences (possibly erroneous) Uses
48
SS 06, v 1.1KMS - Kap. 9: Rechnernetze48 Service primitives Service primitives: set of operations available at the interface of a service (“channel object API”) Formal definition of the service Example for Bit Transmission Layer SEND_BIT – sender can ask for the delivery of a bit to the receiver RECEIVE_BIT – receive can wait for the arrival of a bit (blocking) INDICATE_BIT – indicate to the receiver that bit is now available (asynchronous) Many different ways to structure service primitives conceivable Already covered: Request, Indication, Response, Confirmation Unit of data: individual bytes, messages
49
SS 06, v 1.1KMS - Kap. 9: Rechnernetze49 Service primitives – correctness requirements For both message and byte stream oriented (set of) service primitives, correctness requirements are important Completeness: All data that is sent is eventually delivered Correctness: If data is delivered, its is correct, i.e., the data that has been actually sent Messages are not modified, original version is delivered Byte sequence is free of errors In order: Byte sequence/sequence of messages is delivered in the order it has been sent Dependable: secure, available, … Confirmed: Reception of data is acknowledged to the sender Not all requirements are always necessary
50
SS 06, v 1.1KMS - Kap. 9: Rechnernetze50 Connection-oriented vs. connection-less service Recall telephony vs. postal service Service can require a preliminary setup phase, e.g., to determine receiver ! connection-oriented service Three phases: connect, data exchange, release connection Alternative: Invocation of a service primitive can happen at any time, with all necessary information provided in the invocation ! connection-less service Note: This distinction does NOT depend on circuit or packet switching – connection-oriented services can be implemented on top of packet switching (and vice versa, even though a bit awkward) Connection-oriented services must provide primitives to handle connection CONNECT – setup a connection to the communication partner LISTEN – wait for incoming connection requests INCOMING_CONN – indicate an incoming connection request ACCEPT – accept a connection DISCONNECT – terminate a connection
51
SS 06, v 1.1KMS - Kap. 9: Rechnernetze51 Typical examples of services Datagram service Unit of data are messages Correct, but not necessarily complete or in order Connection-less Usually insecure/not dependable, not confirmed Reliable byte stream Byte stream Correct, complete, in order, confirmed Sometimes, but not always secure/dependable Connection-oriented Almost all possible combinations are conceivable!
52
SS 06, v 1.1KMS - Kap. 9: Rechnernetze52 BSD sockets as service interface for computer networks We’ve already covered BSD sockets as one service interface for intra-device channel objects They should also apply to inter-device channel objects – and they do! Model the network service like the access to a file Sending data = Writing to a file Receiving data = Reading from a file Opening a file = Connecting to a communication peer Files – in UNIX – are treated via so-called file handles By analogy, file handles will represent communication peers ! Same thing as treated already!
53
SS 06, v 1.1KMS - Kap. 9: Rechnernetze53 Datagram communication over sockets Simplest possible service: unreliable datagrams Sender int s = socket (…); sendto (s, buffer, datasize, 0, to_addr, addr_length); to_addr and addr_length specify the destination Receiver int s = socket (…); bind (s, local_addr, …); recv (s, buffer, max_buff_length, 0); Will wait until data is available on socket s and put the data into buffer
54
SS 06, v 1.1KMS - Kap. 9: Rechnernetze54 Byte streams over a connection-oriented socket For reliable byte streams, sockets have to be connected first Receiver has to accept connection Client int s = socket (…); connect (s, destination_addr, addr_length); send (s,buffer, datasize, 0); Arbitrary recv()/send() close (s); Connected sockets use a send without address information Server int s = socket (…); bind (s, local_addr, …); listen (s, …); int newsock = accept (s, *remote_addr, …); recv (newsock, buffer, max_buff_length, 0); Arbitrary recv()/send() close (newsock);
55
SS 06, v 1.1KMS - Kap. 9: Rechnernetze55 Sockets – UNIX domain or cross-device? The previous two slides looked almost identical to the sockets example in the previous chapter How does the service (behind the interface) know what type of function is required? Solution: socket creation function makes the difference! UNIX domain stream: socket (AF_LOCAL, SOCK_STREAM, 0); UNIX domain datagram: socket (AF_LOCAL, SOCK_DGRAM, 0); Cross-device socket, stream: socket (AF_INET, SOCK_STREAM, 0); Cross-device socket, datagram: socket (AF_INET, SOCK_DGRAM, 0); Anything else: Identical (more or less)!
56
SS 06, v 1.1KMS - Kap. 9: Rechnernetze56 Overview Structuring communication systems into layers Services Protocols Reference models Standardization
57
SS 06, v 1.1KMS - Kap. 9: Rechnernetze57 Layer 0 ”Physical connection” Layers are distributed Previous example: “Bit sequence layer” has to be present at both transmitter (bit ! electrical current) and at receiver (electrical current ! bit) Pair of copper wires Layer 1 “Bit ! Current conversion” Layer 1 “Current ! Bit conversion” Sender Receiver SAP of Layer 1 Bits SAP of Layer 1 “Stubs” for channel objects
58
SS 06, v 1.1KMS - Kap. 9: Rechnernetze58 Distributed layers need to follow rules – protocols Distributed parts of the layer 1 implementation have to follow the same set of rules – protocols Suppose sender represented a “1” by “current there”; receiver by “no current” Layer 0 ”Physical connection” Pair of copper wires Layer 1 “Bit ! Current conversion” Layer 1 “Current ! Bit conversion” Sender Receiver SAP of Layer 1 Bits SAP of Layer 1 Identical rules of operation Matching rules of operation
59
SS 06, v 1.1KMS - Kap. 9: Rechnernetze59 Protocols Protocols are a set of rules Describe how two (or more) remote parts of a layer cooperate to implement the service of the given layer Behavior, packet formats, … These remote parts are called peer protocol entities or simply peers Use the service of the underlying layer to exchange data with peer Layer n SAP n Layer n SAP n Layer n+1 SAP n+1 Layer n+1 SAP n+1 Use Protocol Use Protocol is implementation of the service Not visible to service user
60
SS 06, v 1.1KMS - Kap. 9: Rechnernetze60 Protocol specification The formal behavior, the rules which constitute the protocol have to be precisely specified One popular method: (Extended) Finite State Machine (FSM) A protocol instance/protocol engine at each entity Protocol instance has several states E.g., for a protocol implementing a connection oriented service: IDLE, CONNECTED, RELEASING_CONNECTION Events/transitions between states Message arrivals Real time / timer events Transition can have conditions Actions during transition are Send new message Set timer, delete timer, … STATE1 STATE2 Condition | Event ; Action
61
SS 06, v 1.1KMS - Kap. 9: Rechnernetze61 Protocols and FSMs Finite state machines implement actual behavioral rules of a protocol Have to communicate with their remote peer Cannot do so directly, have to use service of the underlying communication layer Via service primitives, which can also provide arriving data to the protocol E.g., indications from lower layer are events to higher layer protocol engine Layer n Use service primitives Layer n+1
62
SS 06, v 1.1KMS - Kap. 9: Rechnernetze62 Protocols and messages When using lower-layer services to communicate with the remote peer, administrative data is usually included in those messages Typical example Protocol receives data from higher layer Adds own administrative data Passes the extended message down to the lower layer Receiver will receive original message plus administrative data Encapsulating Header or trailer Layer n Layer n+1 Packet arriving at Layer n+1’s SAP Extended packet passed to layer n Delivered by layer n Packet delivered to Layer n user
63
SS 06, v 1.1KMS - Kap. 9: Rechnernetze63 Protocol stacks Typically, there are several layers and thus several protocols in a real system Layers/protocols are arranged as a (protocol) stack One atop the other, only using services from directly beneath This is called strict layering Layer 1 Physical medium (layer 0) Layer 1 L1 protocol Layer 2 L2 protocol Layer 3 L3 protocol Layer 4 L4 protocol Layer 1 Physical medium (layer 0) L1 protocol Layer 2 L2 protocol Layer 3 L3 protocol Layer 4 L4 protocol Layer 1 Layer 2 Layer 3 Layer 4 Cross-layer communication Object of current research Not considered here
64
SS 06, v 1.1KMS - Kap. 9: Rechnernetze64 Layers do not care about distributed lower layers A given layer n+1 does not care about that its lower layer is actually distributed, has remote FSMs, … Layer n+1 imagines layer n as something that “just works”, has service access points where they are necessary (a “channel object”!) In reality, layer n of course is distributed in turn, relying on yet lower layers At the end, the physical medium (layer 0) is transporting data/signals Layer n-1 Ln-1 protocol Layer n Ln protocol Layer n+1 Ln+1 protocol SAP n SAP n-1 Layer n-1 Layer n Layer n+1 SAP n SAP n-1
65
SS 06, v 1.1KMS - Kap. 9: Rechnernetze65 Analogy: Nested layers as nested translations Layers rely on services of lower layers Intermediate representation of data changes Vertical vs. horizontal communication Vertical: always real Horizontal: may be real or virtual Horizontal communication Horizontal (real!) communication Vertical comm.
66
SS 06, v 1.1KMS - Kap. 9: Rechnernetze66 Overview Structuring communication systems into layers Services Protocols Reference models ISO/OSI TCP/IP Standardization
67
SS 06, v 1.1KMS - Kap. 9: Rechnernetze67 How to structure functions/layers in real systems? Many functions have to be realized How to actually group them so as to obtain a real, working communication system? Layering structure and according protocols define the communication architecture Two main reference models exist ISO/OSI reference model (International Standards Organization Open Systems Interconnection) TCP/IP reference model (by IETF – Internet Engineering Taskforce)
68
SS 06, v 1.1KMS - Kap. 9: Rechnernetze68 ISO/OSI reference model Basic design principles One layer per abstraction Each layer has a well-defined function Choose layer boundaries such that information flow across the boundary is minimized (minimize inter-layer interaction) Enough layers to keep separate things separate, few enough to keep architecture manageable Result: 7-layer model Not strictly speaking an architecture, because protocol details are not specified Only general duties of each layer are defined
69
SS 06, v 1.1KMS - Kap. 9: Rechnernetze69 ISO/OSI 7-layer reference model (two entities) Network protocol Data link protocol Physical layer protocol PDU: Protocol Data Unit
70
SS 06, v 1.1KMS - Kap. 9: Rechnernetze70 ISO/OSI 7-layer reference model (complete network) End-to-end Chained, local layers
71
SS 06, v 1.1KMS - Kap. 9: Rechnernetze71 7 layers in brief Physical layer: Transmit raw bits over a physical medium Data Link layer: Provide a (more or less) error-free transmission service for data frames over a shared medium Network layer: Solve the forwarding and routing problem for a network Transport layer: Provide (possibly reliable, in order) end- to-end communication, overload protection, fragmentation Session layer: Group communication into sessions which can be synchronized, checkpointed, … Presentation layer: Ensure that syntax and semantic of data is uniform between all types of terminals Application layer: Actual application, e.g., protocols to transport Web pages
72
SS 06, v 1.1KMS - Kap. 9: Rechnernetze72 ISO/OSI reference model – Critique The reference model as such, in its structuring of functions into layers, is very influential until today Actual protocols developed for it are irrelevant in practice ISO failed in gaining actual market acceptance for its model Bad timing – competing approaches already in market, lack of industry support Bad technology – too big, too complex; some design flaws Bad implementations – initial implementations low quality Bad politics – ISO/OSI conceived of as a bureaucratic thing
73
SS 06, v 1.1KMS - Kap. 9: Rechnernetze73 TCP/IP reference model Historically based on the ARPANET, later to become the Internet Started out as little university networks, which had to be interconnected In effect, only really defines two layers Internet layer: packet switching, addressing, routing & forwarding. Particularly for hierarchically organized networks (“networks of networks”) – Internet Protocol (IP) defined Transport layer: two services & protocols defined Reliable byte stream: Transport Control Protocol (TCP) Unreliable datagram: User Datagram Protocol (UDP) In addition, (de)multiplexing Lower and higher layers not really defined “Host to host” communication assumed as a given Applications assumed
74
SS 06, v 1.1KMS - Kap. 9: Rechnernetze74 TCP/IP protocol stack Nothing stated by TCP/IP model
75
SS 06, v 1.1KMS - Kap. 9: Rechnernetze75 TCP/IP – Suite of protocols Over time, a suite of protocols has evolved around the core TCP/IP protocols So-called “hourglass model”: Thin waist of the protocol stack at IP, above the technological layers
76
SS 06, v 1.1KMS - Kap. 9: Rechnernetze76 Naming & addressing in the TPC/IP reference model Names: Data to identify an entity Exist on different levels Alphanumerical names for machines: info-stud.uni-paderborn.de Numeric names for a network device Depends on standard, e.g. Ethernet: 48 bits, hexadecimal notation, example: 08:00:20:ae:fd:7e Usually called an address (partially justifiable, but actually a bit sloppy) Names for service access points in an end system: Name of end system plus a numerical identifier for the SAP (a port number): www.google.de:80www.google.de:80 Some of these port numbers are assigned “by convention” for standard SAPs, 80 = web server Used to distinguish multiple processes/their sockets in a single end system
77
SS 06, v 1.1KMS - Kap. 9: Rechnernetze77 Naming & addressing in the TPC/IP reference model Address: Data how/where to find an entity Address of a network device in an IP network: An IP address IPv4: 32 bits, structured into 4x8 bits Example: 131.234.20.99 (dotted decimal notation) Address of a network: Some of the initial bits of an IP address Note: Other networks (notably, POTS/GSM) have very different naming/addressing architectures! E.g., a much clearer separation between identity and location of entities, cryptographic protection, …
78
SS 06, v 1.1KMS - Kap. 9: Rechnernetze78 Mapping Needed: Mapping from name to address Realized by separate protocols From alphanumerical name to IP address: Domain Name System (DNS) From MAC name/address to IP address: Reverse Address Resolution Protocol Often also useful: Mapping from IP address to MAC name/address: Address Resolution Protocol (ARP) wwwcs.uni-paderborn.de:80 131.234.25.27:80 08:00:20:ae:fd:7e Web server process’ service access point DNS ARP/RARP
79
SS 06, v 1.1KMS - Kap. 9: Rechnernetze79 TCP/IP reference model – Critique No clear distinction between service, protocol, interface Reliable byte stream is equated with TCP, although there is a clear difference Particularly below IP Very specialized stack, does not allow a generalization to other technologies/situations Great void below IP Many ad hoc, wildly hacked solutions in may places, without careful design Mobility support is a typical area where problems result later on
80
SS 06, v 1.1KMS - Kap. 9: Rechnernetze80 ISO/OSI versus TCP/IP ISO/OSI: Very useful model, non-existing protocols TCP/IP: Non-existing model, very useful protocols Hence: Use a simplified ISO/OSI model, but treat the TCP/IP protocol stack in the context of this model With suitable add-ons especially for the lower layers
81
SS 06, v 1.1KMS - Kap. 9: Rechnernetze81 Some example protocols A communication architectures needs standard protocols in addition to a layering structure And: some generic rules & principles which are not really a protocol but needed nonetheless Example principle: end-to-end Example rule: Naming & addressing scheme Popular protocols of the 5-layer reference model Data link layer: Ethernet & CSMA/CD Network layer: Internet Protocol (IP) Transport layer: Transmission Control Protocol (TCP)
82
SS 06, v 1.1KMS - Kap. 9: Rechnernetze82 Medium Access à la Ethernet Access to a shared medium – a resource management problem (Betriebsmittelverwaltung) First idea: Just start transmission whenever anything to say Problem: Collision, message is lost Better idea: Listen first – when nobody says anything, start own transmission, else wait Carrier Sense Multiple Access (CSMA) Problem: What happens if two people start listening at about the same time? ! Collision! Even better: Check whether a collision happened during transmission; if so, abort transmission Carrier Sense Multiple Access with Collision Detection (CSMA/CD) ! Ethernet (IEEE 802.3) is CSMA/CD plus other rules…
83
SS 06, v 1.1KMS - Kap. 9: Rechnernetze83 Repairing errors: Repeat packet What happens if a packet is lost on the way? Idea 1: Have the receiver tell the sender that the packet was lost But how would the receiver know that a packet was on the way in the first place? ! Doesn’t work! Idea 2: Turn idea 1 upside down – receiver tells sender when a packet has arrived An acknowledgement When packet lost, acknowledgement will not arrive ! Sender can wait for acknowledgment, when it not arrives at expected time, resend the packet A timeout is used, forming an Automated Repeat Request (ARQ) protocol Packet ACK
84
SS 06, v 1.1KMS - Kap. 9: Rechnernetze84 Problem: How can different error situations be distinguished? How to tell apart: Looks the same for the sender, but receiver will get different sequences Receiver needs to know whether a packet is a new one or one that is repeated Introduce sequence numbers to identify packets
85
SS 06, v 1.1KMS - Kap. 9: Rechnernetze85 Internet protocol (IP) Network is structured hierarchically to assist in routing/forwarding “autonomous networks”, “sub-networks”, … Separate sub-protocols for routing table computation E.g., Border Gateway Protocol (BGP) between different high-level network regions Relatively complicated in detail Basic idea based on e.g. Dijkstra’s all-pairs shortest-path algorithm Forwarding Consult routing tables Relatively straightforward
86
SS 06, v 1.1KMS - Kap. 9: Rechnernetze86 IP packet format IP packet header: Payload follows 32 Bit
87
SS 06, v 1.1KMS - Kap. 9: Rechnernetze87 Transmission control protocol Offered service: Connection-oriented, reliable byte-stream transmission, provides flow & congestion control Essential protocol mechanisms Connection establishment via handshaking Reliability via acknowledgements, timer, retransmissions Flow control: Receiver can announce how much data it can consume; sender must not send more than this amount Congestion control: If packets are lost in the network, network is assumed to overloaded ! reduce sending rate Basic idea: Network is dumb, only offers best-effort forwarding of packets Added properties (e.g., reliability) have to be implemented in the end system
88
SS 06, v 1.1KMS - Kap. 9: Rechnernetze88 Overview Structuring communication systems into layers Services Protocols Reference models Standardization
89
SS 06, v 1.1KMS - Kap. 9: Rechnernetze89 Standardization To build large networks, standardization is necessary Traditional organization from a telecommunication/ telephony background Well established, world-wide, relatively slow “time to market” Internet Mostly centered around the Internet Engineering Task Force (IETF) with associated bodies (Internet Architectural Board IAB, Internet Research Task Force IRTF, Internet Engineering Steering Group IESG) Consensus oriented, heavy focus on working implementations Hope is quick time to market, but has slowed down considerably in recent years Manufacturer bodies
90
SS 06, v 1.1KMS - Kap. 9: Rechnernetze90 Standardization – Traditional organizations ITU – International Telecommunication Union (formerly CCITT und CCIR) CCITT – Consultative Committee on International Telegraphy and Telephony (Comité Consultatif International Télégraphique et Téléphonique) CCIR – Consultative Committee on International Radio CEPT – Conférence Européenne des Administrations des Postes et des Télécommunications ISO – International Organization for Standardization DIN – Deutsches Institut für Normung German partner organization of ISO
91
SS 06, v 1.1KMS - Kap. 9: Rechnernetze91 ISO standardization work WG-Meetings: Every 6-9 months National organizations have time to accept proposed concepts Then: actual standarization process DP: Draft Proposal DIS: Draft International Standard IS: International Standard Move a proposal to a higher level by incorporating all dissenting voices and international consensus Very slow process ISO Technical Committee (TC) Technical Committee (TC) SubCommittee (SC) SubCommittee (SC) Working Group (WG) Working Group (WG)....
92
SS 06, v 1.1KMS - Kap. 9: Rechnernetze92 IETF – http://www.ietf.orghttp://www.ietf.org IETF is organized in areas and Working Groups Volunteers from industry, academia, government organizations participate Drafts/proposal can be made by anybody An „on-demand“ process To move beyond draft status, two independent, interoperating implementations are required Informal voting in working groups „Humming“ Three meetings a year Result: RFC – request for comment, the actual standard FYI – informal or informational In June 2005, there are 4114 RFCs That‘s what the Internet is build on Proposal, draft Proposed Standard Draft Standard Full Standard Experimental Informal
93
SS 06, v 1.1KMS - Kap. 9: Rechnernetze93 Conclusions To keep complexity of communication systems tractable, division in subsystems with clearly assigned responsibilities is necessary – layering Each layer (and the communication system as a whole) offers a particular service Services become more abstract and more powerful the higher up in the layering hierarchy To provide a service, a layer has to be distributed over remote devices Remote parts of a layer use a protocol to cooperate Make use of service of the underlying layer to exchange data Protocol is a horizontal relationship, service a vertical relationship Two important reference models how to group functionalities into layers, which services to offer at each layer, how to structure protocols
94
SS 06, v 1.1KMS - Kap. 9: Rechnernetze94 Conclusions Communication networks have to solve many problems and need a lot of functionality The most basic of these problems, and an idea about their solution, should have become clear How to group these functions, how to solve these problems, will be the topic of the remainder of this course
95
SS 06, v 1.1KMS - Kap. 9: Rechnernetze95 An experiment: Constructing a spanning tree Nodes communicate wirelessly with each other Goal: Construct a spanning tree, root node attached to laptop LEDs encode level in the tree: Red: Root node Yellow: 1 hop to root Green: 1 hops to root Cyan: 3 hops to root Purple: 4 hops or more
96
SS 06, v 1.1KMS - Kap. 9: Rechnernetze96 Lehrveranstaltungen FG Rechnernetze Projektgruppe KMS IV Rechnernetze V Mobil- kommunikation Leistungs- bewertung/ Simulation Seminar VII VI Proseminar Ad hoc/ Sensor- netze Seminar VIII Advanced Internet Advanced Wireless Analyse- methoden für Netze FestnetzDrahtlos/mobil Methodik Legende:
97
SS 06, v 1.1KMS - Kap. 9: Rechnernetze97 Combinations of duplexing & multiplexing
98
SS 06, v 1.1KMS - Kap. 9: Rechnernetze98
99
SS 06, v 1.1KMS - Kap. 9: Rechnernetze99
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.