Telematics and Application Protocols

Classified in Computers

Written at on English with a size of 14.11 KB.

Application Architecture Network

Telematics applications are the core of this field. The design of protocols and computer networks revolves around supporting these applications. Unlike telecommunications networks designed for voice communication, telematics networks prioritize data and information exchange over long distances.

These applications are primarily software-based. As mentioned previously, internet applications are distributed across end systems or hosts, forming a distributed system.

The distribution method determines the architecture and characteristics of applications within computer networks and distributed systems. One example is the client/server architecture.

Client/Server Architecture

In this model, a host acts as a server, running an application that receives service requests from client applications residing on other hosts. While servers should ideally always be on, clients don't need to be.

Following Kurose's criterion, we'll refer to the host running the client application as the client and the host running the server application as the server.

Early internet applications followed the client/server model. The World Wide Web (WWW) exemplifies this: a web browser (client) requests objects, typically HTML pages, from a web server (server). Examples of client applications include Mozilla Firefox, Microsoft Internet Explorer, Google Chrome, and Iceweasel. Server applications include Microsoft Information Server, Apache, and Jakarta Tomcat.

The WWW has had the most significant impact among early internet applications. Organizations strive to make their applications, resources, and services accessible through websites. Many internet users' first action is to launch a web browser, sometimes even mistaking the WWW for the internet itself.

Modern Architectures

Cutting-edge application architectures include peer-to-peer (P2P), computer clusters (also known as computer farms), and grid computing.

P2P

In P2P systems, terminals act as both clients and servers simultaneously. Each host is equal, hence the name peer-to-peer. This should not be confused with the Point-to-Point Protocol (PPP).

Cluster Computing

Cluster Computing is a distributed system architecture designed for high-performance applications, management services, and data storage. It's not just a distributed system but also a parallel computing system. A cluster consists of interconnected computers used as a unified computing resource [Jia 2005].

Cluster Computing addresses several distributed system challenges [Jia 2005]:

  • Fault Tolerance: Achieved through replication.
  • High Availability: Achieved through parallel computing mechanisms.
  • Scalability: Achieved through load balancing.
  • Data Consistency, Management Services, and Data Storage: Achieved through logs and Single System Image (SSI) implementation.

Server clusters help organizations overcome these challenges. In e-commerce websites using clustered web servers, if one server fails, another takes over seamlessly.

Parallelism in server clusters enhances performance by distributing application tasks across multiple servers.

Grid Computing

As organizations adopted distributed cluster systems for large-scale applications, the grid computing paradigm emerged. This paradigm aggregates isolated systems into a single computing resource, analogous to an electrical grid.

Grid computing, introduced by Ian Foster and Carl Kesselman in 1998 [Maozhen 2005], is a powerful development in wide area network distributed systems [Borja 2006, Jia 2005, Maozhen 2005, Prodan 2007]. Before grid computing, Cluster Computing was the primary system for high-performance distributed computing.

Grid computing addresses resource sharing in wide area networks, establishing virtual organizations for multi-disciplinary and multi-institutional collaboration. Participants in virtual organizations share resources to achieve common goals, leveraging the computing power and storage capacity of heterogeneous resources like computer clusters, supercomputers, and idle workstation processors.

Key differences between cluster and grid computing:

  • SSI is essential for clusters but not mandatory for grids, though grids can implement it.
  • Cluster Computing emphasizes parallel processing, while grid computing focuses on resource sharing.
  • Clusters typically have uniform hardware and software, while grids are heterogeneous.
  • Clusters are distributed in local area networks, while grids span wide area networks.

Basic functions of grid computing:

  • Resource discovery
  • Measurement and accounting
  • Data sharing
  • Resource management
  • Security
  • Reliability and availability
  • Virtual organizations
  • Monitoring
  • Policy implementation and enforcement

A variant of grid computing, the data grid, manages access to distributed data resources like databases, data warehouses, or file servers as a unified file system.

In essence, a grid is a high-performance distributed and parallel computing infrastructure, more powerful than a cluster due to its access to wide area network resources.

Communication Process

In operating systems, an executing program or application is a process. Operating systems facilitate inter-process communication within a computer. Telematics extends this to communication between processes on different networked computers, even with diverse operating systems.

Distributed processes communicate by exchanging messages. The message is the PDU at the application layer. This entire distributed system is defined by Coulouris as "one in which components located at networked computers (processes) communicate and coordinate their actions by passing messages" [Coulouris 2001].

Operating systems provide a programming interface for network applications. Processes use operating system primitives that abstract the concept of sockets. Sockets connect to the network to provide or use a service, much like plugging an electronic device into a power outlet.

Traditionally, network applications were written in C due to its close relationship with operating systems. These applications adhere to the system's programming interface, such as WinSock for Microsoft Windows or Berkeley sockets for FreeBSD Unix [Chapman 1998, FreeBSD 2009].

Historically, there wasn't a standardized library for socket use across different operating systems. Java, designed for network programming and operating system independence, gained popularity due to its simplified network application development [Caicedo 2007, Knudsen 2005, Elliotte 2004].

This text uses Java for network application examples and explains inter-process communication using Java's class library.

We'll demonstrate building a connection-oriented server and client using TCP, followed by a connectionless server and client using UDP.

UDP Server Example

Figure 2.4 (not included in the provided text) shows the source code for a UDP-based server process that receives a message containing an integer and a string from a client process and displays it on the screen.

Again, following Kurose's criterion, we distinguish between the client (host running the client application) and the server (host running the server application) [Kurose 2005].

Application Layer Protocols

This section covers key application protocols widely used in telematics.

1 The Web and HTTP

The WWW, or Web, is the most widely used distributed system on the internet. It relies on the HyperText Transfer Protocol (HTTP), defined in RFC 1945, 2068, and 2616 [RFC 1945, RFC 2068, RFC 2616].

The Web follows a client/server structure, with servers identified by ports 80 (HTTP) and 443 (HTTPS). HTTPS uses SSL for secure communication.

In Web terminology, an object is a file (e.g., web page, image, applet) identified by a Universal Resource Locator (URL).

Web pages typically consist of an HTML (or XHTML) file and referenced objects. URLs in HTML references have two parts: the hostname and the object's path. For example:

http://www.example.com/dir1/dir2/image.gif

Here, "www.example.com" is the hostname, and "/dir1/dir2/image.gif" is the path.

Web browsers are HTTP clients that display requested web pages. HTTP defines how clients request and servers transfer web pages.

HTTP uses TCP. The client initiates a connection, sends a request, the server responds, and the connection closes. HTTP is stateless; the server doesn't retain client state, requiring web applications to use session variables or cookies for transaction tracking.

HTTP 1.1 introduced persistent connections, unlike earlier versions. With non-persistent connections, the browser establishes a new connection for each object. Persistent connections allow multiple object requests over a single connection.

HTTP Request PDU

The HTTP request PDU (Figure 2.6, not included in the provided text) is ASCII text with lines ending in carriage return and line feed (CRLF). The first line is the request line, followed by header lines. The request line has three fields: method, URL, and protocol version.

Methods include GET, POST, and HEAD. GET requests an object specified by the URL. The version is typically HTTP/1.1 or HTTP/1.0.

The Host header specifies the target system. While seemingly redundant, it's essential for proxy cache servers [RFC 2616, Kurose 2005]. Other header lines are optional. The entity body is empty for GET requests but contains data for POST requests.

HTTP Response PDU

The HTTP response PDU (Figure 2.7, not included) has three sections: the status line, header lines, and the entity body containing the requested object.

The status line includes the protocol version, status code, and status message. Header lines provide information like connection status, date, and time. See [Kurose 2005, RFC 2616] for more details.

2 File Transfer (FTP)

Telematics addresses long-distance data transmission. Users often need to transfer files within and between computer systems. For example, a student might need to access a university file from home.

The File Transfer Protocol (FTP), defined in RFC 959 [RFC 959], operates over TCP. FTP uses two connections: one for control information (user authentication, directory navigation, file commands) and one for data transfer.

An FTP client initiates a control connection to the server's port 21, sends credentials, and then can issue commands. For file transfers, the server opens a data connection on port 20. After the transfer, the data connection closes. See [Kurose 2005, RFC 959] for a detailed overview.

3 Email on the Internet

Internet email relies on several protocols: Simple Mail Transfer Protocol (SMTP) for sending and forwarding, and Post Office Protocol version 3 (POP3) and Internet Mail Access Protocol (IMAP) for accessing emails.

SMTP

SMTP (RFC 2821 [RFC 2821]) is the primary internet messaging protocol. It predates HTTP and has inherent security challenges. Unlike HTTP's pull model, SMTP supports push, allowing servers to send information without prior client requests.

Figure 2.8 (not included) illustrates an SMTP session. The server (port 25) greets the client. The client identifies itself and specifies the sender and recipient. The message body is then transmitted, ending with a period. The session concludes with a quit command.

Postfix and Sendmail are common open-source SMTP servers, while Microsoft Exchange is a commercial counterpart.

POP3 and IMAP

POP3 (RFC 1939 [RFC 1939]) and IMAP (RFC 2060 [RFC 2060]) are used for retrieving emails. POP3 (port 110) is simple but limited. It involves authentication, retrieval, marking for deletion, and session termination. IMAP is more complex and feature-rich, supporting remote email directory management. See [Imap 2009] for a complete IMAP description.

Figure 2.9 (not included) shows the internet messaging system. A client sends an email via SMTP to a server, which forwards it to another server. The recipient accesses the message using a POP3 or IMAP client.

4 The Directory Service (DNS)

In TCP/IP networks, hosts are identified by IP addresses (four octets). The Domain Name System (DNS) translates human-readable names into IP addresses.

DNS runs over UDP, with servers typically using port 53. The Berkeley Internet Name Domain (BIND) is a common DNS server application [Binder 2009].

DNS servers form a distributed database. A client queries a DNS server for a name-to-IP translation. If the server doesn't have the mapping, it forwards the query to other servers. This hierarchical structure ensures scalability.

DNS servers are categorized as:

  • Root servers: 13 clusters labeled A through M.
  • Top-level domain (TLD) servers: Store mappings for TLDs like .com, .org, and country codes.
  • Authoritative servers: Managed by organizations for their own domains.

See RFCs 1934 and 1935 [RFC 1934, RFC 1935] for a complete DNS description.

5 P2P Networks

P2P networks are a significant area of research in telematics [Kurose 2005]. Architectures can be structured (e.g., CAN, Chord) or unstructured (e.g., Napster, Gnutella).

P2P networks have applications in various fields:

  • Financial services: Distributed computing for transactions.
  • Military applications: Fault tolerance through decentralization.
  • Healthcare: Distributed information sharing.
  • Neuroscience: Large-scale storage and processing.
  • Education and research: Resource and material sharing.

P2P systems can be built using frameworks like JXTA. Research continues on integrating P2P with databases, data mining, mobile computing, and ubiquitous computing.

Entradas relacionadas: