COMP1321COMP1321
Digital InfrastructuresDigital Infrastructures
Richard HensonRichard Henson
NovemberNovember 20132013
Week 7: Peripherals, Storage & Week 7: Peripherals, Storage & Device CommunicationDevice Communication
Objectives:Objectives:explain the organisation of data on a hard diskexplain the organisation of data on a hard diskexplain the difference in communication explain the difference in communication
involving peripheral and intelligent devicesinvolving peripheral and intelligent devicesproduce a simple algorithm describing point-produce a simple algorithm describing point-
point communication between intelligent point communication between intelligent devicesdevices
Hard Disk Cataloguing Hard Disk Cataloguing and Indexingand Indexing
o Catalogue essential for saving and locating files on the disk
o Disk divided into cylinders sectors through all the platter surfaces
(typically four) disks have very many cylinders
o When data saved, filename (label) starting address (location) essential
What is a “Peripheral” anyway?
Digital device Generally not “intelligent” Controlled from the CPU, via connection
through motherboard CPU needs unique instructions for each
peripheral…system software known a “driver”
Control of Peripherals Input (e.g. keyboard):
communication between motherboard and peripheral to establish
» electrical connection» logical connection
Communication channel opened…» operating system call (e.g. INT 21)» data received into RAM…» flow rate & processing controlled via
CPU» data passed on the requesting
application
CPU
Motherboard
keyboard
Control of Peripherals Output (e.g. screen):
communication between motherboard and peripheral to establish
» electrical connection» logical connection
communication channel opened…» data sent into RAM… » operating system call (e.g. INT 21)» flow rate & processing controlled via
CPU» data passed from RAM to remote
peripheral
CPU
Motherboard
screen
Intelligent Devices
Can process data independentlycommunication channel with CPU more
sophisticatedcontrol software at each end of the
communication
Dumb peripherals controlled from CPUdependent on driver software installed on
the computer…
The principle of “Handshaking”
First communication process:makes sure devices in electrical & logical
contactIf so… establishes an agreed common set
of rules (protocol) for sending and receiving data
Why “handshaking”?
Replicates what humans do…equivalent of two multi-lingual people
walking up to one another, greeting each other, and deciding which language they will use to communicate:
» English, French, Chinese?» Smoke Signals, Semaphores, Morse Code?
Establishing a point-point Communications Channel
For any two computers to communicate digitally, they need to “understand” each other’s signals
$%^&£(?
eh?
Establishing a point-point Communications Channel
Need a common “language”: i.e. a programmed set of rules and
procedures Incorporated into software
known as a “communications “protocol”
$%^&£(?
eh?
Establishing a point-point Communications Channel
Each computer needs a copy of the protocol rules: to send valid data to understand what the other computer is
sending
$%^&£(?
eh?
What is needed for a Communications Protocol? All the instructions for the CPU to organize
the sending/receiving of data…and ways to manage that data even when in
electronic format (i.e. 1= higher voltage, 0= lower voltage)
At communication endpoints…synchronizing speed of sending/receivingerror checkingdata compression
Essentials for Communications Protocols
Need to agree a standard set of codes First standard goes back to early 1960s
set of control codes built into ASCII characters Next
the rules and procedures needed for effective and reliable communication between devices need to be converted into a computer language - something a CPU can understand…
The ASCII control codes then need to be incorporated into a computer program written in that language, which can be shared between the sender and receiver
Point-Point ProtocolPoint-Point Protocol
Device A
Device B
conversions conversions
Electrical signals
Protocol for Comms mgt
Protocol for Comms mgt
Development of Communication Protocols
Problem…Different manufacturers have historically
produced their own unique protocols, serve their own specific purposessome common ground…
» mostly used ASCII for control codes» IBM used a system called EBCDIC (!)
Gradually, attempts at universal protocols started to emerge…e.g. the people creating the Internet produced
TCP/IP in 1972
A simple point-to-point communications protocol
Basis of a very simple algorithm that could be translated into a program for managing communications between individual devicesASCII control codes (0-31) for communications
between devicesASCII character codes (32-127) to carry data
Data sent in “blocks” or “packets” Assumes half duplex transmission Such a program would normally be written in
“C”
Point-to-point algorithm - Stage 1
Purpose: Sender needs to make sure that the receiver is actually “there” (i.e. switched on and working properly)
Action: sends a small amount of “standard” data - usually one byte, known in ASCII terms as SYNASCII code 22 (binary 00010110)
Point-to-point - Stage 2 Purpose: Receiver needs (if it can!) to
reply to the senders ACK signal Action
EITHER replies with a positive acknowledgment ACK, “I’m ready!” ASCII code 6 (binary 00000110)
OR replies with a negative acknowledgement NAK, “Not ready!” ASCII code 21 (binary 00010101)
Point-to-Point: Stage 3 Purpose
the sender reacts to the reply (or not) from the receiver by either closing down or sending a “preamble”
Action IF the sender EITHER does not receive
acknowledgement OR receives a NAK response… THEN it closes down the communication, with an error
message
ELSE, it sends out a further set of data, known as a preamble…
Point-to-point - Stage 4 Purpose
synchronise protocols
Action: the receiver:1. processes the preamble (containing data
telling the receiver what comms protocol, error control, flow rate, encryption method, etc. the sender would like to use)
2. passes a short message back to the sender indicating whether it will be able to understand and handle such data
Point-to-point – Stage 5
Purpose: establish or close down the communications channel
Action: If the response received by the sender is negative (ie can’t handle the data):THEN the communication is closed down
with an error message (e.g. NAK)ELSE, a communications “channel” is
established
Point-to-point - Stage 6
Purpose: sending data & error checking info in blocks/packets according to the format agreed in the preambleit would take much too long to send and
receive data one byte at a time!
Action: Sender sends one block/packet followed by
error checking info
Point-to-point - Stage 7
Purpose: using results of processing the error checking info to request next packet or resending of same packet
Action:Receiver compares error checking info with
that already obtained in the block/packet» if an error is detected request to resend
block/packet» else request to send NEXT packet
Point-to-point - Stage 8 Purpose: sending the rest of data… Action: process or sending/resending
continues (loops…) until all the data is satisfactorily received
Note: a poor communications environment will result in a lot of errors/resendingwhich will slow down communications… BUT the data will still get through…
Point-to-point - Stage 9
Purpose: close down the communications channel
Action: when no further data is available to send and the
final packet/block has been acknowledged… the sender sends an EOT (end of transmission)
byte ASCII 4 binary 00000010 this terminates the communications channel!
Techniques for Detecting/Managing Errors
Many error detection and correcting techniques are availableprocess normally involves
» sending of the main block» Sending of further information» calculation based on recreating the additional
information from the main block» comparison of the two
choice must be appropriate for speed, cabling, protocol type, etc
Flow Control A feedback mechanism between sender and
receiver so that the receiver can inform the sender if it is not keeping up
Usually achieved by “synchronization” bits or byte (ASCII SYN)a pause in the communication can occur if necessary
» e.g. if buffer becomes full» gives time for buffer to empty…
sender will not send any more data until it gets the “all clear” from the receiver
Further point-point issues Programming code could be added to the
basic algorithm which would enable:a series of protocols to be tested during
handshakingpackets to travel through analogue as well as
digital mediapackets to be converted from one format to
another before/after transmissionextra processing to check for virus footprints
So what about networks?
All this is needed just to send data from one computer to another, without any routing!
If the computer is on a network, the following additional factors immediately need to be taken into consideration:naming of computersaddressing (if on a different network or segment)
More factors for a network protocol?
Logging on/off and access rights Packet switching or circuit switching Navigation:
type of routing algorithm if circuit switchingcreation of packets if packet switchingmopping up lost packets
Packet reassembling at destination… CONCLUSION: A NETWORK PROTOCOL IS A
COMPLEX PIECE OF PROGRAMMING