1. Design and describe an application-level protocol to be used between an automatic teller machine and a bank’s centralized computer. You 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 an account withdrawal to be made (that is, money disbursed to the user). Your protocol 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 assumption made by your protocol about underlying end-to-end transport service. Answers:
Messages from ATM machine to Server
Msg name purpose
-------- -------
HELO Let server know that there is a card in the ATM
machine
ATM card transmits user ID to Server
PASSWD User enters PIN, which is sent to server BALANCE User requests balance
WITHDRAWL User asks to withdraw money
BYE user all done
Messages from Server to ATM machine (display)
Msg name purpose
-------- -------
PASSWD Ask user for PIN (password)
OK last requested operation (PASSWD, WITHDRAWL) OK ERR last requested operation (PASSWD, WITHDRAWL) in
ERROR
AMOUNT sent in response to BALANCE request
BYE user done, display welcome screen at ATM Correct operation:
client server
HELO (userid) --------------> (check if valid userid)
PASSWD --------------> (check password)
BALANCE -------------->
WITHDRAWL --------------> check if enough $ to cover
withdrawl
ATM dispenses $
BYE -------------->