Presentation6

Download Report

Transcript Presentation6

COMP1321
Digital Infrastructures
Richard Henson
November 2015
Week 6: Peripherals, Storage &
Device Communication

Objectives:
explain the difference in communication
involving peripheral and intelligent devices
produce a simple algorithm describing pointpoint communication between intelligent
devices
What is a “Peripheral”
anyway?
Digital…
 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 by CPU
data passed on the requesting
application
CPU
Motherboard
ASCII
code
keyboard
Control of Peripherals

Output (e.g. screen):
 communication between
motherboard and peripheral to
establish
» electrical connection
» logical connection
CPU
Motherboard
 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
screen
Intelligent/Dumb Devices

Intelligent
 can process data independently
communication channel with CPU more
sophisticated
control software at each end of the
communication

Dumb
 controlled from CPU
dependent on driver software installed
on the computer…
Principle of “Handshaking”

First stage of communication:
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 encryption/compression & vice versa
Essentials for a
Communications Protocol


Agree a standard set of codes
First standard… ASCII, early 1960s
 set of control codes built into ASCII characters
Instructions, ASCII characters
and control codes
Rules and procedures for effective and
reliable communication between
devices converted into a language the
CPU can understand…
The ASCII control codes then need to be
incorporated into code written in that
language
code can be shared between the sender and
receiver
Point-Point Protocol
Protocol for
Comms mgt
Device
A
Protocol for
Comms mgt
Electrical signals
conversions
Device
B
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



Half duplex transmission
Data sent in “blocks” or “packets”
Programs 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
acknowledgement 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
 sender reacts to the reply (or not) from the
receiver by either closing down or sending a
“preamble”

Action
 IF 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 (receiver)
1. processes the preamble
contains data telling the it which comms
protocol, error control, flow rate, encrypt,
etc. the sender would like to use
2. passes short message back to the
sender
indicates whether it will be able to
understand and handle data in that form
Point-to-point – Stage 5
Purpose: (sender) establish or close
down the communications channel
 if response received is negative (ie
receiver can’t handle data in that format):

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
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