Warning: foreach() argument must be of type array|object, bool given in /var/www/html/web/app/themes/studypress-core-theme/template-parts/header/mobile-offcanvas.php on line 20

Design and describe an application-level protocol to be used between an automatic teller machine and a bank's centralized computer. Your protocol should allow a user's card and password to be verified, the account balance (which is maintained at the centralized computer) to be queried, and anprotocol entities should be able to handle the all-too-common case in which there is not enough money in the account to cover the withdrawal. Specify your protocol by listing the messages exchanged and the action taken by the automatic teller machine or the bank's centralized computer on transmission and receipt of messages. Sketch the operation of your protocol for the case of a simple withdrawal with no errors, using a diagram similar to that in Figure \(1.2\). Explicitly state the assumptions made by your protocol about the underlying end-to-end transport service.

Short Answer

Expert verified
The protocol involves card verification, balance inquiry, and withdrawal processing with error handling for insufficient funds, using specific message types and assuming a reliable transport service.

Step by step solution

01

Define the Protocol Requirements

The protocol must perform three main functions: verify a user's card and password, query the account balance, and handle withdrawal requests including those where insufficient funds are available.
02

Define Message Types

Identify and create messages used in the communication. For example: (1) CardVerificationRequest, (2) CardVerificationResponse, (3) BalanceQueryRequest, (4) BalanceQueryResponse, (5) WithdrawalRequest, (6) WithdrawalResponse, (7) InsufficientFundsResponse, (8) Acknowledgment.
03

Card Verification Process

When a user inserts their card and enters their password, the ATM sends a CardVerificationRequest message to the bank's computer, including the card details and password. Upon receiving the request, the bank's computer checks the details and sends back a CardVerificationResponse message indicating success or failure.
04

Query Account Balance

After successful verification, the ATM sends a BalanceQueryRequest to the bank's computer. The bank processes the request and replies with a BalanceQueryResponse containing the user's current account balance.
05

Handle Withdrawal Request

The user enters the withdrawal amount, and the ATM sends a WithdrawalRequest message to the bank, including the amount. The bank checks the account balance and sends a WithdrawalResponse if there are sufficient funds or InsufficientFundsResponse if not.
06

Acknowledge Transactions

Each message interchange ends with an Acknowledgment message, confirming receipt of the previous message to ensure reliability.
07

Sketch Interaction Diagram

Draw a sequence diagram showing messages exchanged between the ATM and bank computer for a typical transaction. Include card verification, balance query, successful withdrawal, and acknowledgments.
08

Assumptions About Transport Service

Assume a reliable underlying transport service, such as TCP, that guarantees message delivery, order, and is secure against data corruption during transmission.

Unlock Step-by-Step Solutions & Ace Your Exams!

  • Full Textbook Solutions

    Get detailed explanations and key concepts

  • Unlimited Al creation

    Al flashcards, explanations, exams and more...

  • Ads-free access

    To over 500 millions flashcards

  • Money-back guarantee

    We refund you if you fail your exam.

Over 30 million students worldwide already upgrade their learning with Vaia!

Key Concepts

These are the key concepts you need to understand to accurately answer the question.

Automatic Teller Machine
An Automatic Teller Machine, commonly known as an ATM, is a specialized computer system that allows users to perform banking transactions without human assistance. ATMs are widely used for actions like cash withdrawals, balance inquiries, and sometimes deposits. Their primary goal is to facilitate convenient and secure financial transactions for users anywhere and at any time.

ATMs communicate with bank servers over a network. They authenticate a user's identity by reading information from a bank card and validating it with a password or PIN. After authentication, the ATM proceeds with further transactions like displaying the account balance or processing withdrawals.

For designing a protocol between an ATM and a centralized bank server, the main tasks involve ensuring secure communication, real-time processing of transactions, and quick handling of errors like insufficient funds.
Centralized Computer
The centralized computer in a banking context refers to a main server or set of servers that handle all of an institution’s financial transactions. It maintains records of customer accounts, processes transaction requests, and ensures data integrity and security.

One of the crucial tasks of the centralized computer is processing queries and commands sent from external devices like ATMs. This includes validating user credentials, checking account balances, and responding to withdrawal requests.

Communication with the centralized computer is a vital aspect of the application-level protocol. It must securely and efficiently manage inputs from many ATMs, providing timely responses to each one while maintaining consistent and accurate account data.

In a typical setup, the centralized computer utilizes robust security measures to protect data during transmission and storage, often employing encryption and secure channels.
Message Types
The design of the protocol relies heavily on well-defined message types that facilitate effective communication between the ATM and the centralized computer. Here are the essential message types to understand in this context:

  • **CardVerificationRequest**: Sent when a user inputs their card and PIN for verification.
  • **CardVerificationResponse**: Indicates whether the provided card details and PIN are correct.
  • **BalanceQueryRequest**: Initiated by the ATM to inquire about the user's account balance.
  • **BalanceQueryResponse**: Provides account balance information back to the ATM.
  • **WithdrawalRequest**: Specifies the user-requested withdrawal amount sent from the ATM to the bank.
  • **WithdrawalResponse**: Confirms the success of a withdrawal request, or indicates a failure due to insufficient funds.
  • **InsufficientFundsResponse**: Used when the account does not have enough money to process a requested withdrawal.
  • **Acknowledgment**: Ensures that a message was received and processed correctly.
Having distinct message types allows for organized and clear communication, ensuring both parties can react appropriately to each step of the transaction process.
Card Verification
Card verification is a critical initial step in any ATM transaction. It involves validating the user's credentials against the bank's records using the card's information and the entered PIN.

Once a user inserts their card, the ATM sends a **CardVerificationRequest** to the bank's centralized computer, containing card details and the entered PIN. The server checks these against the information stored in its database.

The bank’s centralized computer then sends back a **CardVerificationResponse**, which can either confirm that the credentials match or indicate a failure if they do not match. A successful verification is necessary before any account information can be accessed or transactions can be processed.
Transport Service Assumptions
Designing an efficient and secure protocol also requires making assumptions about the underlying transport service.

For sending messages between an ATM and a bank’s centralized server, it’s assumed that the transport layer provides a reliable service. This often means using TCP (Transmission Control Protocol), which ensures that
  • Messages are delivered without loss.
  • Messages are received in the same order they were sent.
  • Data is protected from corruption during transmission.
Assuming TCP also means our protocol doesn't need additional error correction features, as TCP handles these aspects. This allows developers to focus on the transaction logic and security features directly relevant to the application level.

One App. One Place for Learning.

All the tools & learning materials you need for study success - in one app.

Get started for free

Most popular questions from this chapter

List six access technologies. Classify each one as home access, enterprise access, or wide-area wireless access.

Suppose two hosts, A and B, are separated by 20,000 kilometers and are connected by a direct link of \(R=2\) Mbps. Suppose the propagation speed over the link is \(2.5 \cdot 10^{8}\) meters/sec. a. Calculate the bandwidth-delay product, \(R \cdot d_{\text {prop }}\) b. Consider sending a file of 800,000 bits from Host A to Host B. Suppose the file is sent continuously as one large message. What is the maximum number of bits that will be in the link at any given time? c. Provide an interpretation of the bandwidth-delay product. d. What is the width (in meters) of a bit in the link? Is it longer than a football field? e. Derive a general expression for the width of a bit in terms of the propagation speed \(s\), the transmission rate \(R\), and the length of the link \(m\).

(a) Visit the site www.traceroute.org and perform traceroutes from two different cities in France to the same destination host in the United States. How many links are the same in the two traceroutes? Is the transatlantic link the same? (b) Repeat (a) but this time choose one city in France and another city in Germany. (c) Pick a city in the United States, and perform traceroutes to two hosts, each in a different city in China. How many links are common in the two traceroutes? Do the two traceroutes diverge before reaching China?

What is the difference between a virus and a worm?

What is the transmission rate of Ethernet LANs?

See all solutions

Recommended explanations on Computer Science Textbooks

View all explanations

What do you think about this solution?

We value your feedback to improve our textbook solutions.

Study anywhere. Anytime. Across all devices.

Sign-up for free