330 likes | 396 Views
COMP1321 Digital Infrastructures. Richard Henson November 2013. Week 7: Peripherals, Storage & Device Communication. Objectives: explain the organisation of data on a hard disk explain the difference in communication involving peripheral and intelligent devices
E N D
COMP1321Digital Infrastructures Richard Henson November2013
Week 7: Peripherals, Storage & Device Communication • Objectives: • explain the organisation of data on a hard disk • explain the difference in communication involving peripheral and intelligent devices • produce a simple algorithm describing point-point communication between intelligent devices
Hard Disk Cataloguing and Indexing • Catalogue essential for saving and locating files on the disk • Disk divided into cylinders • sectors through all the platter surfaces (typically four) • disks have very many cylinders • When data saved, filename (label) starting address (location) essential
Addressing and the Hard Disk • I cylinders as addresses for file data..
Linked Lists and Files on Disk • Pointers provide next (cylinder) address on disk
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 independently • communication channel with CPU more sophisticated • control software at each end of the communication • Dumb peripherals controlled from CPU • dependent on driver software installed on the computer…
The principle of “Handshaking” • First communication process: • makes sure devices in electrical & logical contact • If 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 $%^&£(? eh? • For any two computers to communicate digitally, they need to “understand” each other’s signals
Establishing a point-point Communications Channel $%^&£(? eh? • Need a common “language”: • i.e. a programmed set of rules and procedures • Incorporated into software • known as a “communications “protocol”
Establishing a point-point Communications Channel $%^&£(? eh? • Each computer needs a copy of the protocol rules: • to send valid data • to understand what the other computer is sending
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/receiving • error checking • data 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 Protocol Protocol for Comms mgt Protocol for Comms mgt Device A Electrical signals Device B conversions conversions
Development of Communication Protocols • Problem… • Different manufacturers have historically produced their own unique protocols, • serve their own specific purposes • some 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 devices • ASCII control codes (0-31) for communications between devices • ASCII 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 SYN • ASCII 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, itsends 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 preamble • it 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/resending • which 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 available • process 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 handshaking • packets to travel through analogue as well as digital media • packets to be converted from one format to another before/after transmission • extra 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 computers • addressing (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 switching • creation of packets if packet switching • mopping up lost packets • Packet reassembling at destination… • CONCLUSION: A NETWORK PROTOCOL IS A COMPLEX PIECE OF PROGRAMMING