Sei sulla pagina 1di 52

Like other utility networks ( e.g. water supply, electricity, transportation) communications networks provide a service.

The concept of a service has fallen prey to misuse in numerous contexts. A an exercise perform an Internet search ( e.g. in Google type define: service in the search bar) and see how many different contexts exist. For our purposes think of a service as a capability that has been enabled through an infrastructure implemented the arbitrary interconnection and coordination of arbitrary entities or groups of entities. An entity can be considered to be some elemental unit that provided some functions or subset of functions that are necessary for the realization the service. Note: We will revisit the concept of a service at several levels and in several contexts throughout this course and in each instance we will test the validity of the above definition.

The unique capability of modern communication networks are able to facilitate communication at extremely high speeds, has promoted extensive changes in the manner in which we communicate. In the current reality, users can instantaneously gather information in large volumes and exercise actions at considerable distances. These unique capabilities have provided the feedstock for the development of current network-based services and the evolution of many future network-based services. Current services include e-mail, instant messaging, information sharing and various forms of electronic commerce. Audio streaming, ubiquitous commerce, and interactive network gaming hint at the tremendous potential for future media-rich network-based services. In this course we will briefly examine the salient characteristics of current and emerging services and use these as the drive for our study of network design. This approach is important as it helps to explain how the design or architecture of a network is influenced by the services it supports. We will begin with a first look at the development of network architectures and their characteristic services.

While all communications services involve the transfer of information, the details of how and in what form the information is transferred varies with each individual service. This is the underlying principle behind our previous postulate that: The design or architecture of a network is influenced by the services it supports. To investigate in more detail we will examine three example networks: telegraph networks, telephone networks, and computer networks

In 1837 Samuel Morse provided the basis for telegram service the transmission of text messages over long distances. Messages were encoded using sequences of dots and dashes, which were communicated using long and short pulses of electrical current over a copper wire digital transmission system In the 1850s intercontinental links (via submarine cables) and networks of telegraph stations developed. To transfer messages across the network end addresses were needed, and these were used to route the messages to their ultimate destination. This is similar to the manner in which a postal address is used to deliver mail. Using the destination address, the message was relayed from one telegram station to another until it arrived at its destination. At each hop the message had to be completely received (and thus stored) by the operator before it could be forwarded to the next switching point. This iterative store-and-forward process was known as message switching. For single message transmission over telegraph links, the transmission rates were of the order of bits/second (b.p.s.). Compared to todays standards this is extremely slow. But consider the following facts: A skilled telegraph operator transmitted about 25-30 words per minute. Assuming an average of 5 characters per word, and 8 bits per character, A skilled operator transmitted about 20 bits per second If one considers the nature of the information exchanged, namely text messages, the requirements are extremely small, even by todays standards. To increase the rate of transmission eventually multiplexing was utilized to allow several transmissions to share the same telegraph circuit. Transmission speeds were increased to the order of hundreds of b.p.s. From a service architecture point of view, the telegraph service provided the capability to transmit text messages over long distances In order to provide this service, key elements of the telegraph network architecture included the following key elements/functions: A digital transmission system. A framing method for demarcating message beginnings and ends, as well as for grouping dots and dashes into characters and groups of characters into words to construct meaningful messages ( Meaningful as far as the sender and receiver of the messages are concerned!!!) . A system for specifying the destination address of messages. A routing procedure for determining the message switching path through the network based upon the destination address.

In 1875 Alexander Graham Bell discovered a mechanism for the direct transmission of voice signals over wires, leading to the birth of the telephone. This provided the basis for the evolution of telephone servicethe twoway real-time transmission of voice signals over wires. This service is fundamentally different to telegraph service. While the telegraph service required operators who were experts with knowledge of Morse code, telephones were relatively simple to use (All you needed to do was talk into the receiver!!!). Thus telephone services were targeted as direct services to end users, as opposed to the telegram service where one needed to interface with the network indirectly through a telegraph operator. This led to rapid deployment of telephones. (Not as rapid as current mobile phone growth rates, but still large given the time period.) As voice was converted to analog electric signals, the transmission system was analog in nature. (For those interested in what this means, read Section 3.2 Analog and Digital Data Transmission in Data and Computer Communications 6th or 7th Edition, by William Stallings.)

In the old network, each user needed to be linked to each other user by dedicated lines. Consider that to fully link a group of N users to each other N(N-1)/2 links were needed. This is called a full mesh network topology (figure a) and is extremely costly. (A topology refers to the manner in which entities are connected. We will revisit this later in the course.) As an example consider the approximate 495, 000 links required to link only 1000 users in a full mesh!!! Can you imagine linking the entire population of the world today with a full mesh network topology???. Thus telephone switches were introduced to allow users to be connected on demand. The switch took many forms over the years ranging from a human operator switching calls (figure b) to various forms of automated switching equipment (figure c).

As the network grew the question arose as to the most efficient way to arrange the switches for efficient and scalable operation. As opposed to a flat network, a hierarchical switching approach was used. This was accompanied by a hierarchical telephone numbering system. As an example, consider the fictitious phone number 1-123-4567890 (If you dial it and someone answers please let me know), where each group of digits represents a different switching level in the entire network and is used for appropriate routing within the network. We are accustomed to using the right-most 2 groups of digits to identify the central office/exchange (with the triad of digits) and a specific line in the central office switch that connects to the user (with the quartet of digits).

Telephone networks are connection-oriented. This means that before information can be transmitted a connection must be established. All connection-oriented services are characterized by three phases: Connection setup to negotiate parameters for information transfer Information transfer speaks for itself Connection termination dont forget this step This network involves the setting up of dedicated end-to-end connections for data transfer. This is called circuit switching. In circuit switching the routing decision id made during path setup in the initial phase. Prior to this (and before the connection is terminated) all information flows continuously across the same path in the network from start to end. No additional address information is needed during information transfer. In contrast, note that in the telegraph case the addressing is required for forwarding at each hop in the telegraph network (i.e. routing decisions are made at each hop in the network as the information is transmitted.) As with telegraph networks increases capacity was obtained through the use of digital transmission techniques. Eventually digital switches were also developed. This evolution of the network facilitated a phenomenal increase in the capabilities of the network. New services such as credit-card calls, 800 numbers, voice mail, call forwarding, call id, and call screening were possible.

From a service architecture point of view, basic telephone voice service provides for the real-time transfer of voice signals between humans. In order to provide this service, key elements of the telephone network architecture included the following key elements/functions: A Digital or Analog Transmission System. Telephone switches (analog or digital) to transfer the incoming transmissions to appropriate output transmission links. A telephone numbering system to identify end users (their telephones actually). A user-to-network signaling system to allow users to indicate to the network that they require a connection, to specify the end-user that they want to connect to, and to indicate call termination. A routing procedure that identifies the dedicated path along the network for the call duration, based upon the destination number. A network signaling system for distributing control messages to switches within the telephone network. These key elements in conjunction with the digital transmission and switching elements (as opposed to analog transmission and switching elements) provide the architecture for the additional services mentioned before.

Computer Networks and Packet Switching Network Evolution- SAGE SABREARPANET INTERNET Services transfer of packets of information across networks?? How is packet transfer realised?? Lets look at a few examples of computer networks to get a better picture

Terminal-Oriented Networks In the early networks, computers were costly and as opposed to the networks of today, early networks were characterized by more cost-effective terminals ( consisting of a data input and output device, e.g. a keyboard and a printer or monitor.) connected to a central computer (figure a). Generally terminals were located in close proximity to the computer (such as in an adjacent room). If longer distance access was required, modems were used to provide access through the telephone network (figure b). In most terminal-oriented network applications terminals would generate data in a burst manner ( i.e. the message transmissions would be separated by arbitrarily long idle times.) Thus it was not costeffective to provide individual lined to each terminal and various systems were developed to address this issue. Two key approaches involved medium access control and statistical multiplexing. Both approaches allowed several terminals to share a single communications line. A more general statement would be that N terminals shared M lines, where, N > M. Medium access control via polling, involved arbitration for link usage via a poll-response mechanism. The central computer would poll each terminal separately. Although all terminals are connected to the same line, only the polled terminal is allowed to transmit any available information on the link.

10

In statistical multiplexing, messages from each terminal are encapsulated inside a frame that consists of a header and/or trailer in addition to the user message. Specific terminals are identified by an address field also included within the frame that identifies each terminal uniquely. A framing method is also needed to demarcate the start-points and end-points of each frame. The messages from each terminal are then sent to the multiplexer and transmitted serially (i.e. one at a time) over the single link to the central computer. The central computer performs required processing on each frame and sends results back to each terminal along the single line. (If all messages go back on a singular link, how does the multiplexer figure out which reply is for which terminal?) Answer: The terminal address field in the frame sent to the computer would be used in frames. Would there be need for an address for the computer itself? Justify your answer. Dealing with errors Note that terminal oriented networks involve computer-computer communications (Despite the end user being human). Computers are very great for data processing but they are not that brightconsequently they require precise instructions to operate. Early transmission lines were very error-prone (i.e. due to interference, noise, signal distortion, etc For further discussion read Section 3.3 Transmission Impairments in Data and Computer Communications 6th or 7th Edition, by William Stallings.) As such error control techniques were developed to provide error-free communication of information. This usually involved use of a CRC field included in the frame. This involved additionally and specially assigned bits that were used to detect errors in frames and request retransmission. We will return to this in more detail later in the course.

11

The figure above illustrates a more evolved form of terminal-oriented networks on a much larger scale than those shown before. From a service architecture point of view, terminal-oriented networks provided a means to transfer messages to and from a central computer to a set of terminals. In order to provide this service, key elements of this network architecture included the following key elements/functions: A Digital or Analog Transmission System. A framing method for the transmission of information between terminals and the central computer. This frame included addressing information for terminal identification, extra bits for error control and a means of delimiting the start-points and end-points of frames. For devices connected to the same communications link ( e.g. medium access by polling) a medium access control mechanism was necessary to coordinate transmissions along the shared communication line.

12

The basic service provided by computer networks is the transfer of messages from any computer on the network to any other arbitrary computer on the network. In principle this is similar to message switching as discussed previously. However, for interactive applications message transit times should be short (else what is the point). Long messages impose long waiting times for interactive traffic that may contain short messages. Thus in packet switching networks, a packet transfer service is offered, where packets can be of variable size up to the upper bound. User messages that are greater that this size must be segmented, transmitted through the packet-switching network, and reassembled. We will now briefly examine 3 computer-to-computer networks ( the ARPANET, Local Area Networks, the Internet)

13

The ARPANET began as a test-bed for interconnecting host computers across a wide area network (WAN). A WAN is loosely defined a a network that spans an area larger than a city and can even be global in nature. The ARPANET packet transmission service could be described as connectionless in nature. As opposed to the connection-oriented service of the circuit-switching telephone network, connectionless service did not require the connection setup or disconnection phases. It consists of only one phase. Information Transfer As no connection setup is required, packets can be transmitted immediately, without delays incurred due to connection setup. As communication was between computers, framing and error control was also necessary. Each packet is thus individually routed through the network using destination address information contained within the packet. As routing between endpoints depended upon the intermediate packet switches, the routing algorithms used could be defined as distributed. The distributed approach allowed for some resilience in the event of network failure. However this approach was not without issues. In particular due to limited buffer space and processing abilities two key issues were evident. Limited buffer space in packet switches led to the need for end-to-end congestion control mechanisms to prevent limit the number of packets that an end-machine/host can have in transit. Additionally limited buffer space and processing power in end systems/hosts led to the need for flow control mechanisms to prevent the sending host from sending information faster than the receiving host can deal with. These computer networks developed to support multiple-user applications such as e-mail, remote access and file transfer. From a service architecture point of view, the ARPANET provided for the transfer of messages between hosts using a connectionless packet-switching network. In order to provide this service, key elements of this network architecture included the following key elements/functions: High-Speed Digital Transmission System Framing Method (error control) Addressing Method and Routing Procedures Message Segmentation and Reassembly End-to-End Congestion Control Flow Control Applications that rely upon message transfer between computers While this architecture contains most of the elements of a computer network architecture, it still misses two elements that exist in modern architecturesmedium access control and internetworking. Lets examine these through two final example networks

14

As low cost computers increased in prevalence a new networking model started to evolve. Networks of computers than covered a limited distance, Local Area Networks, (LANs) facilitated sharing of expensive devices and resources such as printers and disk drives (At the time they were expensive!!!) In principle the devices shared a common broadcast medium, using similar principles to terminal-oriented networks medium access control. Over such short distances complex error control became unnecessary, and high speed, low cost and relatively error free communication was possible. Additionally, local machines were constantly being moved around. This created an administrative problem with respect to addressing end stations. This issue was addressed by assigning globally unique addresses to physical network interface cards, and by broadcasting all messages to all machines on the LAN. Thus as a machine was moved it would always carry its address with it ( i.e. in its network interface hardware). Also once on the same LAN it would always receive messages since all messages were broadcast ( i.e. all stations could receive the messages). Note though, although all machines were able to receive all messages, only those to which messages were specifically addressed would act upon messages received. (Ethically speaking, of course!!!) From a service architecture point of view, LANS provided for the transfer of messages between hosts and other devices attached to the LAN. In order to provide this service, key elements of this network architecture included the following key elements/functions: High-Speed Digital Transmission System that may support broadcast transmissions An addressing method that provides each station with a unique address and supports broadcast transmissions. A framing method to delineate individual transmissions and a medium access control procedure to coordinate transmissions into the shared broadcast medium.

15

As computers and network presence increased, many approaches to network implementation developed. Despite the fact that the basic elements of the network architecture were evident in all approaches the specifics of implementation varied. Consequently the need to inter-network these different networks arose. This was realized through gateways which served to transfer messages between possibly different networks. This is the final piece of the puzzle. From a service architecture viewpoint, the service provided by the Internet, is the transfer of packets across multiple, possible dissimilar networks. This is the true power of the Internet connected networks could consist of various types of LANS, packet-switching networks, or even individual point-to-point linksdifferent networks can coexist and interwork effectively.(Leon-Garcia & Widjaja, 2004). The key elements of the Internet architecture are captured in the Federal Networking Council definition below (www.itrd.gov/fnc/Internet_res.html), which defines the Internet as a global information system that: a. b. c. Is logically linked by a global unique address space based upon the Internet Protocol (IP) or its subsequent extensions/follow-ons. Is able to support communications using the Transmission Control Protocol/ Internet Protocol (TCP/IP) suite or its subsequent extensions/ follow-ons, and/or other IP-compatible protocols. Provides, uses, or makes accessible, either publicly or privately, high-level services layered on the communications and related infrastructure

This leads to essential elements of a Network architecture

16

Future Network Architectures and their Services In addition to the above, many other considerations have surfaced based upon the challenges of todays networks and applications. We need ubiquitous networks that allow us to access on-demand services through a multitude of interconnected networks of non-homogeneous network types. Key considerations can grouped to include the following, in addition to the essential elements outlined previously: Mobility and Wireless Networks Real-time Multimedia transfer Convergence of Circuit Switching and Packet Switching philosophies (ATM) Optical Networks Whats next ???? The complexity of network solutions increases as these demands themselves increase in number and sophistication. Protocol Hierarchies 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. 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. We will now examine the development of the above concepts in more detail

17

Protocols Basically, a protocol is an agreement between the communicating parties on how communication is to proceed. As an analogy: When a woman is introduced to a man, she may choose to stick out her hand. He, in turn, may decide either to shake it or kiss it, depending, for example, on whether she is an American lawyer at a business meeting or a European princess at a formal ball. Violating the protocol will make communication more difficult, if not completely impossible. The entities comprising the corresponding layers on different machines are called peers. The peers may be processes, hardware devices, or even human beings. In other words, it is the peers that communicate by using the protocol. Lets look at some examples of protocols

18

Note the similarities between the human and computer network protocols. In each case messages are exchanged, and they follow a particular sequence. (We humans call this sequence manners) Note in both the human and computer network protocols have an equivalence for greeting each other before exchanging data. Note that messages are exchanged in a common language as well (It would be awful if the guy spoke Spanish and the girl spoke only English!!!) The order of messages and the valid messages that can be exchanged are also an issue. Protocols address these issues and more. A lot of this course involves the study of networking protocols, so please do not worry. You will be fully able to explain the concept of protocolsand a lot more actually!!! However, let us continue defining key concepts for our study of networking protocols.

19

Recall the numerous network architecture elements for the Internet. Each individual element can be further subdivided into many smaller components that must be addressed. We can easily end up with millions of questions that address some subset of the big problem of getting two computers (or other devices) to communicate with each other over arbitrary distances. These illustrate many key questions that must be answered. How do we deal with all these issues? All at once? Or take a few at a time? Usually we take some subset of these elements and work on them at a time. The order in which we work on them is extremely important as well. So how do we know which subset to address and when? Layering our elements helps us in this respect Let us examine this in more detail.

20

Why Layers? Early applications were intertwined with signalling Ex: a certain voltage level meant something at the application level Ex: the press of a button was represented by a certain bit sequence Because of this intermingling of application with signalling system and media, applications were inflexible. They had to be redesigned for different media and signalling systems. Consider the case where we have m different applications that need to be designed for n different media/signalling systems. We would need m x n different definitions. With the every increasing number of network specifications and network applications, this is an impossible task.

21

At the minimum, we would need to separate applications dependant functionality such as presentation and user interface information, from network related functionality such as routing and signalling. This gives us two layers, an application layer and a network layer. Further analysis shows that the network layer functionality can be further split up, and the same can be done for the application layer. Indeed we can go beyond splitting up our initial single layer scenario into many more layers. Question...How much layers are optimal? This is not such an easy question to answer. It depends upon what functionality is placed in which layer, and what metrics are used for defining optimality. As we will see several layered approaches exist to date, and each has advocates justifying the choice of layers, the amount of layers, and other salient features However, let us investigate the layered approach in more detail with another example

22

Consider the following 3-layer model of communication between two philosophers at locations A and B. We can treat the philosophers as peer processes in layer 3 (we will examine processes in more detail later in the course). The philosopher at location A speaks two languages, of which one is English. The philosopher at location B speaks Chinese and French. Philosopher A wants to tell Philosopher B that he likes rabbits. Since they have no common language, how would they communicate? Think of two different computing systems trying to communicate? How would they? One solution would be to use a translator. With reference to the diagram they each engage a translator (which we can treat as peer processes at layer 2). Thus each philosopher can request translation services from the layer below . Note that several limitations exist to the choice of translators. First, If translator A needs to communicate with Translator B they must have a common language ( Even if they speak 100000 languages, they must have at least one in common!!!). If they did not they how would they communicate? We would need another layer of translation and so on until one layer had translators that had a common language for communication. This may involve a lot of layers of translation!!!! Lets avoid this problem and assume that the layer directly below the philosophers can communicate in the common language of Dutch. Note that these translators may liase with other translators so you must identify the language they are communicating to ensure that they agree to use this common language. This is part of their layer 2 communication protocol. Alternatively assume that at each location, layer 2 consists of a number of translators, and you need to know which translator to send the message to for translation. This raises another problem. How do we identify that Dutch is required? Well as shown in the diagram the layer 3 message is encapsulated by placing additional layer 2 information about the common language used by the translators. Now that we have answered how the two philosophers can exchange messages given that they speak different languages, we can attack another problem How do we actually convey the messages over an arbitrary distance? The translators need to exchange messages between each other. The simplest answer is that they rely upon the services of a lower layer. The services required can be any general communications service. Examples include telephone, post, facsimile...etc depending upon service requirements of the translators at layer 2. These requirements include issues such as how fast the messages must be exchanged, how much they cost per message, what level of reliability or security is needed, etc As shown in the diagram, the layer one service chosen is facsimile. How do we identify locations A and B to send the fax? Via fax numbers. Thus the layer one process (secretary) appends its own information to the layer two data in order to send it. Note that both ends agree upon faxing as their layer one protocol in order to transmit the message. (Try receiving a fax from a friend and pick up the phone to receive the message. Trust me this does not work!!! So both ends must agree on transmitting and receiving in the same manner.)

23

So in a nutshell to exchange the message from Philosopher A to Philosopher B, the following steps occur: 1. Philosopher A passes a message (in English) across the 2/3 interface to his translator, saying ''I like rabbits' 2. The translators agree upon a neutral language known to both of them, Dutch, so the message is converted to ''Ik vind konijnen leuk.' 3. The translator then gives the message to a secretary for transmission by fax (the layer 1 protocol). 4. When the message arrives, it is translated into French and passed across the 2/3 interface to Philosopher B. Note that each protocol is completely independent of the other ones as long as the interfaces are not changed. The translators can switch from Dutch to say, Finnish, at will, provided that they both agree, and neither changes his interface with either layer 1 or layer 3. Thus layers can change their protocols as long as the services provided to the higher layer or the services required from the lower layer (across the relevant interface) do not change. Similarly, the secretaries can switch from fax to e-mail or telephone without disturbing (or even informing) the other layers. Each process may add some information intended only for its peer (e.g. language for layer 2 or fax # for layer 1). This information is not passed upward to the layer above. Try to explain the above example in terms of protocols, layers, services, and interfaces Now using the previous examples, let us formalize the concepts that with a few definitions. 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

24

In reality, no data are directly transferred from layer n on one machine to layer n on another machine: Each layer passes data and control information to the layer immediately below it, iteratively until the lowest layer is reached Below layer 1 is the physical medium through which physical communication occurs. In all other layers logical/virtual communication occurs between peer layers.

Between each pair of adjacent layers is an interface, that defines which primitive operations and services the lower layer makes available to the upper one. Each layer: is functionally dependent has a well defined interface to the previous layer communicates indirectly with its peer layer at the opposite end of a communications channel using a protocol specific to that layer communicates with its peer layer via an interface with the layer immediately below, unless it is the bottom layer, in which case it communicates directly with its peer. Advantages of using layers: Layers divide complex operations into more manageable groups which are easily implemented and tested It is possible to change one layer without affecting all the others, providing the same interfaces are supported It is possible to mix and match different technologies and suppliers for different layers if they support standard interfaces

Lets continue with a few more definitions

25

At each peer layers communicate via layer n entities. These may be software processes or even hardware implementation (in the data comms case). They communicate (virtually) by exchanging messages through a peer interface. As we discussed in previous slides the format, sequencing and, syntax of these messages is defined in the layer n protocol. Each message is referred to as a protocol data unit or PDU. Since peer layers do not communicate directly they must rely upon the services of adjacent lower layers to implement their particular protocols. Lets examine this in a bit more detail

26

Services provided by lower adjacent layers facilitate communication between peer layers The three basic elements of layer services are: service user - the layer (above) that requests services from an adjacent layer (below) service provider - the layer (below) that provides services to service users (above) service access point (SAP) - a conceptual location at which one layer can request the services of another layer layers can provide services to multiple service users

27

How is the service implemented? One aspect of this question can be answered by considering the figure above. Three layers are shownLayers N+2, N+1, and N. A layer N+2 entity wants to pass a layer N+2 PDU to its peer entity. In actuality it does this by passing it to a layer N+1 entity via a service request through the Layer N+2/N+1 interface. The unit of data passed to the layer below for service, is known as the service data unit or SDU. This layer N+2 PDU is the layer N+1 SDU, since it is the unit of data that the entity at layer N+1 must provide the service on. Additionally there must be a way for the layer N+2 entity to specify what services it wants the layer N+1 entity to perform on the layer N+1 SDU. This is conceptually done by passing additional information created by the layer N+2 entity across the interface to for service specification. This information is known as the N+2/N+1 Interface Control Information (ICI). The layer N+1 entity processes the ICI from above, and uses it to construct a layer N+1 header which it appends to the Layer N+1 SDU. This collectively forms the data unit that is to be exchanged between layer N+1 peer entities. It is thus the Layer N+1 PDU. This PDU is then passed to the Layer N entity and becomes the Layer N SDU. Additionally layer N+1/N ICI is passed across the n+1/N interface for construction of the Layer N header. This header is appended to the layer N SDU to create the Layer N PDU. This process iterates to the lowest layer. Note that the data for a particular layer is the SDU for that layer and thus is passed unchanged from the layer above. Note that for all layers (generally denoted as layer N) the peer layer N entities generally only utilize the information in the layer N headers for delivering the required services to the layer above. (In practice some layers can depend upon information from other layers. This violates the ideal layering concept, but it does this for optimization of its service delivery mechanism. Nothing in life is perfect, but this is what makes life exciting!!!) Now take some time to digest these concepts, and make sure that you can explain the above diagram and also grasp all of the terms used. Once you have done that we can move on to other aspects of how services are implemented in layered architectures

28

Recall that a protocol is a set of rules governing the format and meaning of the data units, packets, or messages that are exchanged by the peer entities within a layer. Entities use protocols to implement their service definitions. This means that entities deliver services to layers above by their own peer communications. These peer communications are governed by the specified peer protocols. Note that entities are free to change their protocols at will, provided they do not change the service visible to their users. In this way, the service and the protocol are completely decoupled. In laymans terms to understand the above statement, consider ordering food at a restaurant (at this time preparing notes I am getting hungry!!!). If you order some food, you may not care how it is prepared as long as it tastes great, is healthy, is prepared as quickly as possible, is aesthetically pleasing, affordable, and so onYou do not know how the food is prepared, how many people prepared it, which stove they used, where they got their raw ingredients from, and so on. Similarly, in layered architectures the details of the implementation of the service are generally hidden from the service user. Thus you can change various aspects of the implementation as long as the user gets the same service. Now lets sum all of this up

29

Very Important Concepts to Note!!! Peer entities communicate with each other using protocols. They communicate by exchanging messages known as protocol data units (PDUs). At the nth layer, peer entities are said to exchange layer n-PDUs. Considering the layer above, layer n+1-PDUs is passed to the nth layer below through a service access point (SAP). At this point it becomes a layer n service data unit (SDU). Interface control information is also passed to layer n from layer n+1. This information is used to form a layer n protocol header. This layer n protocol header is concatenated to the layer n SDU to form a layer n PDU. The process of adding a layer n protocol header to a layer n SDU is known as encapsulation. In a nutshell encapsulation involves the addition of relevant data to control protocol operation. Thus each layer has its own header. Some layers also have trailers. We will examine this further, later on. With reference to above diagram we have left out two itemsthe peer interface and the service interface. We discussed the peer interface previously. Lets turn out attention to the service interface.

30

So far we have represented the interface as a line separating adjacent layers. It is so much more. Because of out necessary abstraction, the interface defines all the valid exchanges that can occur between adjacent layers. Valid exchanges include definitions of data and data structure as well as the service requests, type of services, and service responses that can be exchanged. As an example, an Application Programming Interface allows application programs (e.g. Telnet, FTP, HTTP Browsers) to access various resources through a predefined and preferably consistent interface. Two popular examples are the Berkeley socket interface (widely used on UNIX machines) and Windows sockets or Winsock (used on MS Windows machines). So what makes an interface an interface? Lets see

31

Interface definitions include the set of valid services that can be requested by higher adjacent layers. They consists of a set of simple operations known as service primitives. Service Primitives are simple commands/ program functions that can conceptually be considered to be the building blocks of more complex functionality (i.e. services). In essence the programmer would appropriately combine primitives according to syntax in order to implement services. The interface is defined by the list of allowable primitives, service function calls and associated function parameters that are passed between adjacent layers. Lets look at two examples of service construction using the primitives listed in the table above. The term socket will be defined later on. For know think of it as an end point or gateway for communications between end devices on the network.

32

Connection-oriented service consists of three phases: connection establishment, data transfer, and connection termination. These phases must always be in that order, and must necessarily consist of all three. To implement these services, we may use the sequence of primitives shown above. Note that the above by no means represents correct syntax for any programming interface. It just outlines how a connection-oriented service may be implemented by appropriate use of primitives

33

Now examine the connection-less service model. In this case there is only one phasedata transfer. Note the use of primitives to implement this service. Note the similarities in the primitives used for both service models.

34

Now that we have discussed the concept of layered architectures, one additional point to mention involves the question of partitioning functionality into particular layers. The layered architecture is used to deal with all the elements of a network architecture (see slide 1). Assigning functionality to various layers so that lower layers provide necessary services to higher layers is very involved. There are many performance and functional issues to examine in this regard. For our purposes we will not delve into this much further, but examine the work of many before us to address this problem We will first consider the OSI layer

35

Having a model in mind helps you understand how the pieces of the networking puzzle fit together. The most commonly used model is the Open Systems Interconnection (OSI) reference model. The OSI model, first released in 1984 by the International Standards Organization (ISO), provides a useful structure for defining and describing the various processes underlying networking communications. The OSI model is a blueprint for vendors to follow when developing protocol implementations. The OSI model organizes communication protocols into seven levels. Each level addresses a narrow portion of the communication process. The Open Systems Interconnection (OSI) model describes how computer services and protocols can be standardized to allow computers to share information. It was developed in the 1980s by the International Standardization Organization (ISO). Its goal is to enable the interconnection of all types of network nodes, and indeed networks, despite differences in hardware, media, programming language, operating system, or application software. The OSI (Open Systems Interconnect) model uses the concept of seven stacked layers to manage the execution of communications and application tasks in a data communications network. These layers, implemented on each network machine, are: the Application, Presentation, Session, Transport, Network, Data Link and Physical layers. Each layer in the OSI implements specific functions. The lower three layers, listed below, deal mostly with network-dependent (hardware) functions. Transmissions of bits, frames, and packets over LANs, MANs, and WANs are handled by these layers. The upper four layers, listed below, deal more with application-oriented (user or software) functions. Network operating systems applications such as Windows NT, Novell NetWare, and UNIX function at these upper layers.

36

It is important to remember that the OSI model is not a blueprint for how to design something. It does not tell you how your network card or router or hub is supposed to operate. Instead, the OSI model is a framework in which various networking components can be placed into context. Many networking professionals rely on the OSI model when troubleshooting in unfamiliar situations. These professionals may be dealing with systems not familiar to them, but by referring to the OSI model they are able to at least narrow down the issues at hand. Lets explore the functions assigned to each of the specific layers in the OSI model. Before we do this let us first examine how the layered approach of the OSI model facilitates end-end communication between any two devices or network users in general...

37

First, recall that the various functions required to enable the interconnection of networks are partitioned into categories or layers. Direct communication between layers on a single machine can only be executed between adjacent layers. Layer N, then, can only communicate directly with layers N-1 and N+1. Data originating at layer 7, say, and bound for layer 1 must follow the route: layer 7 to layer 6 to layer 5 to layer 4 to layer 3 to layer 2 to layer 1. Network architecture standards define rules, protocols which allow peer layers in different machines to communicate with each other. However, this communication is only effected directly (physically) between two peer layers on different machines at the lowest level (Physical layer). Protocols implemented between any other layers must be effected by physical data transfer down the stack to the physical layer on the source machine, directly across to the destination machines physical layer and then up the stack to the destination layer. So lets go up the stack to explore the functions of the various layers, recognizing that physical communications occurs between adjacent layers and virtual (logical) communications occurs between peer layers. Well start with layer 1, the Physical layer. So we can put it all together: When data is transferred from one host through the network to another host, it begins its flow from the upper most (application) layer and continues through the layer stack of that host until it reaches the physical media. At each layer, information which would be required by the peer layer on the other host is added. This information would be framing, addressing data and is added as a header. Some layers also add a trailer. At the destination host, the data travels up to the application layer. As it travels up, each layer performs is function on the data using information sent by its peer in the header. It then strips its header and sends the data up.

38

The physical layer defines the electrical, mechanical, procedural, and functional specifications for activating, maintaining, and deactivating the physical link between communicating network systems. In the OSI model, the physical layer receives a frame from the data link layer. It converts the bits in the digital data to an electromagnetic signal compatible with the transmission facilities. Although the OSI Physical layer does not define the media used, this layer is concerned with all aspects of transmitting and receiving data on the network media. By not defining the media, this layer is not responsible for saying whether a cable should be made of silver, copper, or gold. Specifically, the Physical layer is concerned with transmitting and receiving bits. This layer defines several key characteristics of the Physical network, including the following: Physical structure of the network (physical topology) Mechanical and electrical specifications for using the medium (not the medium itself ) Bit transmission, encoding, and timing Although the Physical layer does not define the physical medium, it defines clear requirements that the medium must meet. Physical layer specifications define characteristics such as voltage levels, timing of voltage changes, physical data rates, maximum transmission distances, and physical connectors. These specifications differ depending on the physical medium. Ethernet for UTP, for example, has different specifications from coaxial ethernet.

39

As you learned in the preceding slide, the OSI Physical layer is concerned with moving messages between two machines. Network communication, however, is considerably more involved than moving bits from one device to another. In fact, dozens of steps must be performed to transport a message from one device to another. Real messages consist not of single bits but of meaningful groups of bits. The Data Link layer receives messages, called frames, from upper layers. A primary function of the Data Link layer is to disassemble these frames into bits for transmission and then to reconstruct the frames from the bits received. The Data Link layer has other functions as well, such as network device identification through physical device addressing, error control, and flow control for a single link between network devices. In most LANs, the functions of the data link layer are split between two sublayers: The Logical Link Control Layer which is in charge of establishing and maintaining links between communicating devices as well as defining how data is transferred over the physical link, and The Media Access Control Layer which defines how devices access a shared media when multiple computers are trying to access the shared medium simultaneously Flow Control vs Error Control Flow control and error control are defined as follows: Flow control - Flow control determines the amount of data that can be transmitted in a given time period. Flow control prevents the transmitting device from overwhelming the receiver. Error control - Error control detects errors in received frames and requests retransmission of frames. Error control of network communications often occurs at several different layers in the OSI model. At the Data Link layer, however, error control consists simply of confirmation that the receiving computer got all the packets the sending computer transmitted. Data Link Addressing The data link uses physical addressing. Physical device addresses are unique addresses associated with the networking hardware in the computer. In most cases, the physical device address is burned into the NIC (network interface card) at the time the card is manufactured. Physical Link addresses are often referred to as MAC addresses. We will examine this in more detail later in the course

40

The Data Link layer deals with communication between devices on the same network. Physical device addresses are used to address data frames, and each device is responsible for monitoring the network and receiving frames addressed to that device. The Network layer handles communication with devices on logically separate networks that are connected to form internetworks. Because internetworks can be large and can be constructed of different types of networks, the Network layer utilizes routing algorithms that guide packets from their source to their destination networks. (Routing algorithms will be discussed later in the course.) Within the Network layer, each network in the internetwork is assigned a network address that is used to route packets. The Network layer manages the process of addressing and delivering packets on internetworks. In addition to determining the best route for data to travel across the network from a specific source to destination (via routing algorithms), addressing locations on the internetwork, and actually moving the data across the network (packet forwarding) the network layer is also responsible for fragmenting data from the transport layer into packets or datagrams for transmission. Logical vs Physical Addressing You have already encountered the Data Link layers physical device addresses that uniquely identify each device on a network. On larger networks, it is impractical to deliver network data solely by means of physical addresses. (Imagine if your network adapter had to check every packet sent from anywhere on the Internet to look for a matching physical address.) Larger networks require a means of routing and filtering packets to reduce network traffic and minimize transmission time. The Network layer uses logical network addresses to route packets to specific networks on an internetwork. Logical network addresses are assigned during configuration of the networks. A network installer must make sure that each network address is unique on a given internetwork. The rules for governing how these addresses are assigned are discussed in greater detail

41

The Transport layer, the next layer of the OSI model, can implement procedures to ensure the reliable delivery of messages to their destination devices. The term reliable does not mean that errors cannot occur; instead, it means that if errors occur, they are detected. If errors such as lost data are detected, the Transport layer either requests retransmission or notifies upper-layer protocols so that they can take corrective action. This layer also handles what type of connection will be created. The Transport layer enables upper-layer protocols to interface with the network but hides the complexities of network operation from them. One of the functions of the Transport layer is to break large messages into segments suitable for network delivery. Transport Layer Connection Services Some services can be performed at more than one layer of the OSI model. In addition to the Data Link and Network layers, the Transport layer can take on some responsibility for connection services. The Transport layer interacts with the Network layers connection-oriented and connectionless services and provides some of the essential quality control features. Some of the Transport layers activities include the following: Repackaging - When large messages are divided into segments for transport, the Transport layer must repackage the segments when they are received before reassembling the original message. Error control - When segments are lost during transmission or when segments have duplicate segment IDs, the Transport layer must initiate error recovery. The Transport layer also detects corrupted segments by managing end-toend error control using techniques such as checksums. End-to-end flow control - The Transport layer uses acknowledgments to manage end-to-end flow control between two connected devices. Besides negative acknowledgments, some Transport layer protocols can request the retransmission of the most recent segments.

42

Session Layer Session Administration The next OSI layer, the Session layer, manages dialogs between two computers by establishing, managing, and terminating communications. Dialogs can take three forms: Simplex dialogs (one-way data transfers only). An example is a fire alarm, which sends an alarm message to the fire station but cannot (and does not need to) receive messages from the fire station; Half-duplex dialogs (two-way data transfers in which the data flows in only one direction at a time). When one device completes a transmission, this device must turn over the medium to the other device so that this second device has a turn to transmit; Full-duplex dialogs (two-way simultaneous data transfers by providing each device with a separate communication channel.) Voice telephones are fullduplex devices, and either party to a conversation can talk at any time. Most computer modems can operate in full-duplex mode. Costs rise for half- and full-duplex operation because the more complex dialog technologies are naturally more expensive. Designers of communications systems, therefore, generally use the simplest dialog mode that satisfies the communication requirements. Half-duplex communication can result in wasted bandwidth during the intervals when communication is turned around. On the other hand, using full-duplex communication generally requires a greater bandwidth than half-duplex communication.

43

A session is a formal dialog between a service requester and a service provider. Sessions have at least four phases: Connection establishment - In this phase, a service requester requests initiation of a service. During the setup process, communication is established and rules are agreed upon. Data transfer - With all the rules agreed upon during setup, each party to the dialog knows what to expect. Communication is therefore efficient, and errors are easy to detect. Connection release - When the session is completed, the dialog is terminated in an orderly fashion. Error Correction - Error Correction is also done at the Session layer. It checks for errors in the reassembled packets received from the Transport layer. The connection establishment phase establishes the parameters for the communication session and is comprised of several tasks, including the following: Specification of required services that are to be used; User login authentication and other security procedures; Negotiation of protocols and protocol parameters; Notification of connection IDs; Establishment of dialog control, as well as acknowledgment of numbering and retransmission procedures. The Session layer can also incorporate protocols to resume dialogs that have been interrupted (Think of download managers such as GetRight). After a formal dialog has been established, devices recognize a lost connection whenever the connection has not been formally released. The Session layer also marks the data stream with checkpoints and monitors the receipt of those checkpoints. In the event of a failure, the sending PC can retransmit, starting with the data sent after the last checkpoint, rather than resend the whole. Therefore, a device realizes that a connection has been lost when the device fails to receive an expected acknowledgment or data transmission. Within a certain time period, two devices can reenter the Session that was interrupted but not released. The connection release phase is an orderly process that shuts down communication and releases resources on the service provider.

44

The Presentation layer deals with the syntax, or grammatical rules, needed for communication between two computers. The Presentation layer converts system-specific data from the Application layer into a common, machine-independent format that supports a more standardized design for lower protocol layers. The Presentation layer also attends to other details of data formatting, such as data encryption and data compression. On the receiving end, the Presentation layer converts the machine-independent data from the network into the format required for the local system. This conversion could include the following: Data formatting - This is the organization of the data. This topic is actually broken down into four subtopics: Bit-order translation - When binary numbers are transmitted through a network, they are sent one bit at a time. The transmitting computer can start at either end of the number. Some computers start at the most significant digit (MSD); others start at the least significant digit (LSD). Essentially this has to do with whether information is read from right to left or from left to right. Byte-order translation - Complex values generally must be represented with more than one byte, but different computers use different conventions to determine which byte should be transmitted first. Intel microprocessors, for example, start with the least significant byte and are called little endian. Motorola microprocessors, on the other hand, start with the most significant byte and are called big endian. Byte-order translation might be needed to reconcile these differences when transferring data between a computer with an Intel processor and a Motorola processor. Character code translation - Different computers use different binary schemes for representing character sets. For instance: ASCII, the American Standard Code for Information Interchange, is used to represent English characters on all microcomputers and most minicomputers; EBCDIC, the Extended Binary Coded Decimal Interchange Code, is used to represent English characters on IBM mainframes; and Shift-JIS is used to represent Japanese characters. File syntax translation - File formats differ between computers. For instance, Macintosh files actually consist of two related files called a data fork and a resource fork. PC files, on the other hand, consist of a single file. Encryption - Encryption puts data into a form unreadable by unauthorized users.

45

The highest layer in the OSI stack is the Application layer. Its functions are primarily to handle the management of the OSI network and provide the representation of a connection to an end user such as HTTP. Note that this layer does not include the actual application software but it does include the technologies necessary to allow software to access network resources. The Application layer of the OSI reference model is concerned with providing services on the network, including file services, print services, application services such as database services, messaging services, and directory services among others. A common misunderstanding is that the Application layer is responsible for running user applications such as word processors. This is not the case. The Application layer, however, does provide an interface whereby applications can communicate with the network. It is this interface that is often referred to as the Application Programming Interface (API). The Application layer also advertises the available services that your computer has to the network. An example of this is when you double-click on the Network Neighborhood Icon in Windows XP or Windows 2000. The resulting picture shows a list of computers that have services available to network users. (The security service of these computers determines whether or not a user has access.) Thus the application layer provides a means for the user to access information on the network through an application. is the main interface for the user to interact with the application and therefore the network. is the OSI layer closest to the end user, which means that both the OSI application layer and the user interact directly with the software application. interacts with software applications that implement a communicating component. Actual application programs fall outside the scope of the OSI model. Application layer functions typically include: identifying communication partners - the application layer determines the identity and availability of communication partners for an application with data to transmit determining resource availability - the application layer must decide whether sufficient network resources for the requested communication exist synchronizing communication - all communication between applications requires cooperation that is managed by the application layer

46

The above diagram illustrates the basis for one use of the OSI model comparison of different network architectures. Note that each network architecture shown has its own approach to layering in terms of the number of layers required as well as which functions are placed at which layer, and which functions are excluded or added the OSI model provides a frame of reference by which all of these approaches can be contrasted or compared. Lets now turn our attention to another network architecture which has gained popularity historically.

47

TCP/IP is actually an entire group of protocols working together to provide multiple, interrelated applications and services. Groups of protocols that work together, such as TCP/IP, NetWare's IPX/SPX, and AppleTalk, are known as protocol suites. They are also sometimes referred to as protocol stacks.

48

Operation of TCP/IP TCP/IP does not define a subnetwork protocol IP is implemented in all end and intermediate hosts (intermediate hosts include routers, switches) Provides a method for addressing and routing packets between hosts TCP is only implemented at end hosts (end hosts include PDAs, laptops, PCs, gateway machines, etc) Ensures reliable delivery of data between end hosts Applications protocols exists only on end hosts Provide a means by which users/programs can access the facilities of the protocol stack TCP/IP Addressing Every entity must have a unique address. THE TCP/IP model uses hierarchical addressing. This means that there are several different levels of addressing in order to reach the ultimate end communicators. There are three levels of addressing: Application processes are identified as unique entities within hosts through port numbers Hosts have unique global internet addresses (IP Addresses) Hosts have unique subnetwork addresses (A prefix of the IP Address)

49

There are differences between the TCP/IP protocol suite and the OSI model. The differences stem largely from the way the OSI and TCP/IP were developed. TCP/IP was developed in the late 1970's to address the lack of standards between different systems connected to the ARPANET. The OSI model was developed several years later to address similar issues with increasingly popular local area networks. Differences include the following: The TCP/IP is a 5-layer protocol stack. (It was initially considered to consist of 4 layers, but then the Host-to-Network was split into the data link and physical layers) Note that strictly speaking the TCP/IP protocol only has four layers. The TCP/IP specifications do not specify on protocols at the Physical layer. This freedom has resulted in TCP/IP being able to operate over almost every Physical Layer network standard. The TCP/IP application layer combines the functions of the OSI application, presentation and session layers. The OSI model supports both connectionless and connection-oriented communication in the network layer, but only connection-oriented communication in the transport layer. The TCP/IP model has only one mode in the network layer (connectionless) but supports both modes in the transport layer, giving the users a choice. The data link and physical layers are unspecified. TCP/IP supports most LAN technologies (e.g., Ethernet, Token Ring, FDDI). Whereas OSI is considered the de jure (by law) protocol standard, TCP/IP is considered the de facto protocol standard. The focus in the OSI world is largely on the specification of the standard whereas in the TCP/IP world the focus is typically on the implementation of the standard Similarities include the following: Both are based on the concept of a stack of independent protocols. The functionality of the layers is roughly similar: E.g. in both models the layers up through and including the transport layer are there to provide an end-to-end, networkindependent transport service to processes wishing to communicate. These layers form the transport provider. In both models, the layers above transport are application-oriented users of the transport service. For further reading on comparison of TCP/IP to the OSI model please review section 1.4 in the Tanenbaum.

50

Hybrid Model Neither the OSI model and its protocols nor the TCP/IP model and its protocols are perfect. However, despite its problems, the OSI model (minus the session and presentation layers) has proven to be exceptionally useful for discussing computer networks while the OSI protocols have not become popular. The reverse is true of TCP/IP: the model is practically nonexistent, but the protocols are widely used. We will use a hybrid model for this course The Internet Model. Note the PDU terminology for each layer Layer Application Transport Network Data-link PDU Designation message segment packet frame

And the physical layer just sends bitsIn the rest of the course we will examine the internal workings of each of these layers in more detail, starting with the Application layer and moving downwards Lets now see how data is actually passed through the network architecture

51

In your own words explain as clearly as you can the entire sequence in which data is exchanged from source to destination in the diagram above

52

Potrebbero piacerti anche