• No se han encontrado resultados

E. Situación Actual de los Procedimientos en el Área de Desarrollo de

11. Procedimiento de Elaboración de Acreditaciones y Bases de Datos para el

This chapter discusses basic models used to structure communication systems and architectures. The ISO/OSI reference model introduced in Section 3.1.1 failed in practice because of its complexity, especially that of its application-oriented layers. Nevertheless, it still has some fundamental

significance for the logical classification of the functionality of telecommunication systems. Though it was less successful in proliferating than expected, this model offers the proposed structure of telecommunication systems in similar form in the field of telematics.

Currently, the technologies and protocols of the Internet (TCP/IP reference model; see Chapter 13) have made inroads and are considered the de facto standards. The architecture of the Internet can easily be paralleled to the ISO/OSI reference model, as far as the four lower layers are concerned. The other layers are application-specific and cannot be compared to the ISO/OSI model.

However, the architecture and protocols of the Internet also represent a platform for open systems (i.e., no proprietary solutions supported by specific manufacturers are used in the network). In addition, the development process for new protocols in the Internet by the Internet Engineering Task Force (IETF) is open for everyone and is designed so that the best and most appropriate technical proposals are accepted.

3.1 Layer-Based Communication Models

Telecommunication systems bridge the spatial distance between distributed computers. The

implementation of this task is extremely complex for a number of reasons, so it is not recommended to use a monolithic architecture, which could prove very inflexible and difficult to maintain. This is the reason why communication systems are normally developed as layered architectures, where each layer assumes a specific task, offering it in the form of services. The ISO/OSI reference model is probably the best known example of such a layered architecture.

To solve its task, a layer, N, must use only the services provided by the next lower layer (N ?1). More specifically, layer N expands the properties of layer N ?1 and abstracts from its weaknesses. For this purpose, the instance of layer N communicates with the instances of the same layer on other

computers. This means that the entire functionality of the communication system is available in the top layer. In contrast to a monolithic structure, layering a communication system means a more expensive implementation, but it offers invaluable benefits, such as the independent development of single partial components, easy exchange of single instances, better maintainability, and higher flexibility. Figure 3-1 shows the principles of communication in a layered system.

Figure 3-1. Communication in layered systems. [View full size image]

We can deduce two central terms for layer-oriented communication models from the current section, which will be discussed in more detail in Section 3.2:

• Communication between two instances of the same layer on different computers is governed by predefined rules. These rules are called protocols.

• The set of functions offered by a layer, N, to its higher-order layer (N + 1), is called its service. The interface through which this service is offered is called service interface.

This means that an instance is the implementation of a communication protocol and the service provided within one layer on a computer. The theoretical basis of services and protocols are discussed in Section 3.2.

3.1.1 The ISO/OSI Reference Model

At the end of the seventies, experts observed increasingly that the interconnection of several computer networks was difficult (because of vendor-specific properties of these networks), if not impossible, so it was found hard to ensure interoperability between the large number of networks in place. This situation led to the proposal to create a uniform and standardized platform for computer-based communication networks.

Open vendor-independent communication required the definition and observance of general standards. The ISO/OSI reference model (in short, ISO/OSI model) proposed by the International Organization for Standardization (ISO) for open systems communication (OSI) [ITU-94] describes a general

abstract model for communication between computer-assisted systems based on digital data. It serves as a framework for the development of communication standards to achieve open communication systems. This reference model has the character of a functional standard for other standards, i.e., it does not represent a specification for implementation, but refers merely to the mutual use of standardized methods for the exchange of data.

The ISO/OSI model consists of seven layers (see Figure 3-2), where one layer offers specific services to its higher-order layer. The ISO/OSI model does not describe a real implementation of a specific system, but merely defines the tasks of each layer. For this reason, it has become the basic model for telecommunication systems during the past decade. That's why the ISO/OSI model is often referred to as the basic reference model. In fact, knowledge of the ISO/OSI is normally the basis for the design and structuring of modern computer networks, although it is not a perfect model. It has certain strengths and weaknesses, as we will see later when comparing it to the more streamlined TCP/IP model.

Figure 3-2. The ISO/OSI basic reference model.

The seven layers of the ISO/OSI reference model and their purposes are as follows:

• Physical layer: The physical layer handles the transmission of single bits over a physical medium. More specifically, (unstructured) bit sequences are converted to physical signals and transmitted over a physical medium (copper cables, fiber glass, wireless, etc.). The physical layer defines special coding methods, hardware connections, and media types.

• Data link layer: This layer specifies how data should be transmitted between two stations directly connected over a medium. The sending system organizes the data in frames and transmits them back to back. If errors occur, then the data link layer is responsible for detecting such errors and retransmitting the data frames. Moreover, the data flow between the two systems should be regulated so that the receiver does not get overloaded (flow control). Examples of data-link-layer protocols are HDLC (High-level Data Link Control), SLIP (Serial Line IP), and PPP (Point-to-Point Protocol); the latter two offer the described functions to only a limited extent.

In local networks, the data link layer often assumes the task to regulate access to a shared medium. In such cases, the data link layer is divided into the Medium Access Control (MAC) layer and the Logical Link Control (LLC) layer.

• Network layer: The network layer is responsible for establishing connectivity between all systems of a telecommunication network. For this reason, the network layer deals mainly with switching and forwarding of data (e.g., routing, adapting data units to the admissible size of the respective data link layer (fragmenting), or ensuring various service qualities). Within the scope of this book, we will mainly discuss the Internet protocols Versions 4 and 6.

• Transport layer: The transport layer regulates the transport of data between applications (i.e., between the sender and the receiver application). Among other things, it is responsible for addressing applications, for controlling the data flow between the end systems, and for securing both the correctness and the order of data.

• Session layer: The session layer handles the structured exchange of messages over transport links. For example, it can control within a session whether the transfer of data should be concurrently in both directions or only one of the communicating partners should have the right to transmit. In the latter case, the session layer manages the right to transmit.

• Presentation layer: The presentation layer regulates the presentation of transmitted data in a form independent of the communicating computer systems. Many operating systems use different forms of representation for characters (e.g., ASCII, Unicode), numbers (big-endian, little-endian), and so on. To ensure that this data can be exchanged between the systems involved, the representation layer transmits it in a standardized form (e.g., by using Abstract Syntax Notation (ASN.1) or Basic Encoding Rules (BER)).

• Application layer: This layer uses specific protocols for different applications, using the

lower-level layers to fulfill their tasks? for example, the application layer includes protocols for electronic mail, file transferred, and remote procedure call.

3.1.2 The TCP/IP Reference Model

The naming convention for the Internet reference model is based on the two most important Internet protocols? the Transmission Control Protocol (TCP) and the Internet Protocol (IP). The 7-layer ISO/OSI reference model described earlier was devised before internetworking was invented. Furthermore, the 7-layer reference model devotes an entire layer to session protocols, which have become much less important as computer systems have changed from large mainframe systems to private workstations. As a result, researchers who developed TCP/IP invented a new layering model. This section describes the new layering model briefly.

The TCP/IP layering model, which is also called Internet Reference Model, contains the following layers (shown in Figure 3-3):

• Application layer: The application layer combines all application-specific tasks (i.e., the properties of layers 5 to 7 of the ISO/OSI model). The protocols of the application layer include Telnet (for virtual terminals), FTP (file transfer), and SMTP (to transmit e-mail). More recent protocols include DNS (Domain Name System) and HTTP (Hypertext Transfer Protocol).

• Transport layer: As in the ISO/OSI model, the transport layer of the TCP/IP reference model allows end-system applications to communicate. The TCP/IP reference model defines two basic protocols for this purpose: the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP). TCP is a reliable connection-oriented protocol and can transmit a byte stream without errors over the Internet to another computer. UDP is unreliable and connectionless, but is preferred over the more complex TCP in many situations (e.g., to transmit multimedia data).

• Internet layer: The Internet layer of the TCP/IP reference model defines the Internet Protocol (IP), including two auxiliary protocols, the Internet Control Message Protocol (ICMP) and the Internet Group Management Protocol (IGMP). The main purpose of the Internet layer is to forward IP packets from the sender to the receiver over the network, where routing of the packets plays an important role. The Internet Control Message Protocol (ICMP) is an integral part of each IP implementation; it serves to transmit diagnostics and error information for the Internet Protocol. The Internet Group Management Protocol (IGMP) is used to manage communication groups.

• Interface layer: This layer combines the two lower layers of the ISO/OSI reference model. It handles network adapters and their drivers, which are used to exchange data packets in a specific maximum length over a local area network (Ethernet, Token Ring, etc.) or over a wide area network (ISDN, ATM).

Figure 3-3. Comparing the ISO/OSI reference model and the TCP/IP reference model.

3.2 Services and Protocols

Services and protocols were briefly discussed in Section 3.1; they are basic elements of layered communication systems. This section describes the meaning of these two terms and the functionality of services and protocols. These two terms serve as a theoretical basis for further explanations in this book, where we will focus on services and protocols used in real-world systems.

We know from the models described in the previous sections that modern telecommunication systems consist of several layers. Each layer has different purposes (depending on the reference model) and offers services to the next higher layer. For example, the IP layer in the TCP/IP reference model offers the following services: forwarding data units (without guarantees) from a local computer to another computer, specified by its IP address. This service is used by the transport layer (e.g., by TCP) and expanded so that a byte stream can be transmitted free from errors and in the correct order.

We can say that a service describes the set of functions offered to the next higher layer. In addition, a service defines single service elements, used to access the entire range of services. In other words, the service definition defines the extent and type of service and the interface used to call that service. The definition of a service refers only to the interaction between two neighboring layers and the interfaces concerned. The literature describes this often as vertical communication. Exactly how a layer provides its service is not part of the service definition; it only deals with what an implementation has to offer the service user at the interface.

To be able to use the services of a layer, the participating systems have to overcome the spatial separation and coordinate their communication. This is achieved by use of communication protocols, which run by instances of a layer in the communicating systems. A protocol regulates the behavior of the distributed instances and defines rules for their coordination. For example, it defines messages to be exchanged between the instances to regulate distributed handling between these instances. More specifically, a layer, N, provides its service by distributed algorithms in the respective instances of layer N and by exchanging protocol messages about their coordination. (See Figure 3-1.) Coordination between the instances by protocol messages is also called horizontal communication. The service of the lower layer (N ?1) is used to exchange protocol messages.

The specification of a service describes the behavior of a layer versus the next higher layer (vertical communication), but says nothing about how a service is implemented. It merely defines the format and dynamics at the interfaces to the layer that uses the service. A service is rendered by instances of a layer, which use protocols to coordinate themselves (horizontal communication). The protocol specification describes the syntactic and dynamic aspects of a protocol. The protocol syntax describes the format of the protocol data units (PDUs) to be exchanged and the protocol dynamics describe the behavior of the protocol. The goal of this book is to explain how all of these elements can be designed and implemented in a communication system. Using Linux as our example operating system, we will see what the interfaces between the different layers can look like and what design decisions play a role, mainly from the perspective of efficiency and correctness of the protocols. In addition, we will see how different protocols use their instances, to show the technologies used to implement network protocols.

3.2.1 Interplay of Layers, Instances, and Protocols

After our brief introduction to services and protocols in the previous sections, this section describes the horizontal and vertical processes involved when protocol instances provide a service. The description of these processes forms the basis for understanding how network protocols work, mainly the principles of horizontal and vertical communication. The terms introduced earlier will help us better classify and distinguish structures and parameters involved in the interaction of different layers at the interfaces.

Instances are the components offering services within a layer. To offer a service, the instances of a layer communicate (horizontally). This communication is realized by exchanging protocol data units (PDUs) of layer N. However, data is not exchanged directly between the two instances, but indirectly, over the next lower layer. This means that the instance of layer N uses the service of layer (N ?1) to exchange a PDU with its partner instance. Figure 3-4 shows the interplay of layers and the elements involved.

Figure 3-4. Data units for vertical and horizontal communication.

• Protocol Data Unit (PDU): A PDU is a message exchanged between two instances of a layer to coordinate their behavior. It represents the basic element of horizontal communication. A PDU consists of the following two elements:

o The Protocol Control Information (PCI) contains control information used to coordinate

the two protocol instances and is also called the packet header. A PCI carries protocol-specific data and is created by the sending instance, depending on its state. The information is then evaluated and removed from the PDU in the receiver instance.

o The Service Data Unit (SDU) contains the payload to be transmitted at the order of

the higher-level layer. The SDU of layer N normally consists of the PCI of layer (N + 1) and an SDU of layer (N + 1) (i.e., of the (N + 1) PDU).

In certain states of a protocol, it can happen that the PDU does not contain any SDU at all (e.g., to establish a connection or in pure acknowledgment packets). In such cases, merely information needed to coordinate the protocols, but no payload, is exchanged.

• Interface Control Information (ICI) is created by an instance and forwarded to the next lower layer together with a PDU (vertical communication). This information is needed by the service-rendering layer (N ?1) to offer that service. For example, an ICI can contain the address of the partner instance that should receive the (N) PDU. The (N) PDU are pure

payload data for layer (N ?1), so that it cannot evaluate the elements of the (N) PCI included in the (N) PDU, but has to rely on the ICI contents.

• The Interface Data Unit (IDU) of layer (N ?1) is composed of the PDU and the ICI of layer N. The IDU is delivered to layer (N ?1) at the service access point and forms the basis for horizontal communication.

Note that, in the case of a vertical communication between two layers, this communication can take place only in defined service access points (SAPs), serving to distinguish different service users. SAPs are identified by service-access-point addresses, based on the rule that a service access point addresses exactly one service user. The principle of a service access point will come up often in the following chapters in connection with different environments (e.g., IP address for IP, ports for TCP, etc.).

The further course of this book will show how the dynamic aspects of a network protocol can be implemented (i.e., which programming elements there are and how they can be used in Linux. In addition, we will introduce interfaces and data structures of different instances and explain which parameters play a role as interface control information for different protocols. In this connection, we will explain that the theoretical model of a communication instance described above and the strict separation of the individual layers have to be given up if we want to achieve better performance of the entire protocol stack. When compared with a standard telecommunication work (e.g., [Tane97]), this book deals not only with the specification of protocols and their horizontal communication, but also with vertical communication and implementation aspects of different network protocols.

Chapter 4. Managing Network Packets in the

Documento similar