Hi, I'm David Clinton, and we're here to talk about SSH,
the Secure Shell, and Telnet,
a couple of widely used and enormously useful UNIX and
Linux-based remote communication protocols.
While we will briefly discuss their basic function and purpose,
this course won't be a full-featured guide covering all the
cool things you can do with SSH and Telnet,
but instead it'll focus on helping you quickly understand the way the
protocols work under-the-hood so that you'll be in a better position
to troubleshoot when things go wrong.
We'll be working with the OpenSSH implementation of the SSH protocol.
It can't hurt to spend just a minute defining some terms.
A Communication Protocol is a set of accepted rules that establish the
synchronization methodology and syntax that parties to a communication
session will use to govern their exchanges.
Widely adopted protocols allow hardware manufacturers to design
products that can reliably talk to other network devices and
software developers to anticipate the kind of connectivity needs
their software will likely face.
The Open Systems Interconnection Model, OSI,
is common and useful conceptualization of network connectivity that
divides the entire process into seven distinct layers,
each representing a specific functional step within the larger process.
So, for example,
if I would load a JPEG image into my browser while visiting
a site hosted somewhere on the internet,
the image is actually loaded by the browser and made intelligible for the user,
me, in this case, on the application layer,
layer 7.
The image was converted to a readable format for the
browser on the presentation layer, layer 6,
where data transformations like encryption and the
processing of media files take place.
The ongoing connection itself,
through which my computer communicates with the remote webserver,
is managed on layer 5, the session layer,
through the HTTP protocol.
SSH and Telnet also operate on layer 5.
While the session itself is maintained by layer 5,
it doesn't actually do anything.
You can think of it as a phone call where no one is saying anything.
Getting the JPEG file to my computer, therefore,
will require a data transfer riding on top of the
session on the transport layer, using, in this particular case,
the TCP protocol.
Those four layers are, as a group, referred to Host Layers,
while the remaining three are called Media Layers,
or in other words, the layers that provide the actual connectivity.
Layer 3, the network layer,
is the infrastructure made up of devices like routers or IPv4 and
ICMP protocols that makes address assignments,
routing between network nodes, and control of moving network traffic possible.
When I type the website URL into the browser's navigation bar,
actual routing of the request to the web server's host is done on layer 3.
Once a packet's destination is known,
the data link layer is responsible for the actual transmission of data
frames and the handling of acknowledgements of reception.
In this context, by the way,
a data frame is an individual unit of data that's accompanied by a
link layer header and separated by an interframe gap.
A stream of these frames, when transmitted over media like Ethernet or PPP,
can be reassembled at their destination into a single resource,
like that JPEG for which I've been waiting so patiently.
Finally, the data transmission itself in the form of some kind of electrical,
light, or radio signal is carried through a network medium,
like cable or Wi-Fi, on the physical layer.
Each packet will then be directed or transformed in some way
through the layers on my client computer,
but in reverse order.
As I said,
the OSI model is a tool for visualizing and clarifying the role of each
component participating in network communications.
For the purposes of this course,
while it's certainly useful to remain aware that both
SSH and Telnet operate on layer 5,
it's also good to know the larger context within which each protocol operates. So let's move on to SSH.