M4 Standards and Protocols – Part 1 Introduction

Hardware Standards

Hardware standards are what allows a factory Indonesia to make a disk drive which you can connect to a motherboard made in Shenzhen. The same motherboard will contain RAM made in Dublin.  We do this all the time, and it all works.

Standards, in the form of documented interfaces such as SATA (for disk drives),  DDR (for RAM), and USB (for a host of peripherals) are what allow devices made by manufacturers all over the world to talk to each other.

Software Standards

File formats are standards. JPG as an imaging standard exists and is successful because cell phones and cameras take pictures in JPG format, computers have viewing programs which display JPG images, and web browsers display JPG images as well. To the extent that all of these devices work with each other, the standard is successful.

Networking Standards

Computers use a host of standards to communicate with other computers. Standards exist for sending data through a wire. How many wires you need and what information is on each wire is part of the Ethernet standard. Sending information wirelessly? Another standard – wireless G. More standards exist defining the format of the data on the wire or sent through the air.

Internet Standards

A variety of standards exist which enable computers and devices all of the world to communicate through the internet. “Internet”  short for internetwork literally means a network of networks.

Many different definitions of the internet exist, from pictures of banks of servers, to miles of  cables, to reams of marketing hype. The definition of the internet we use, the definition which allows us to better understand the internet and to use it for our own purposes is this:

The Internet is a Collection of Standards

If you understand the standards, you can make the internet sit up and beg. 

How Software Standards Are Developed

http://www.joelonsoftware.com/items/2008/03/17.html

In the article, Joel introduces the idea of a “protocol”. Try to understand what a protocol is, because we will be talking a lot about protocols in this class. Also, understand the idea of protocol negotiation as described in the article.

Protocols become important when we use machines or software developed by different manufacturers or software developers to communicate with each other. Some examples of when you need protocols:

  • A record of medical treatment created at Kaiser Permanente in San Diego is submitted to the government for reimbursment to a computer in Washington DC.
  • You are creating an Excel Spreadsheet of a stocks history as recorded and displayed on the internet using Google financials.
  • You want to display when the next city bus is arriving near your office on the company’s web page.

Protocol

When two entities communicate, the part of the message which is concerned about how they communicate, is the protocol.

E.g. “Please turn out the light sir.”

Protocol: “please” and “sir”

Message: “turn out the light”

What do you do? What do I do?

 Symetrical vs. Asymetrical protocols

 Terms used in describing computer to computer protocols.

Is the protocol Asymmetric or Symmetric?

In a symmetric protocol the exchanges between the computers are the same on both sides. In an asymmetric protocol the two computers have different roles in the exchange. E.g. in a classroom the protocol between the professor and the students is asymmetric, but the protocol between the students is symmetric.

Is the protocol a Client-Server Protocol?

Client-Server protocols – a relationship between two machines where one machine (the server) provides services to the other machine (the client), usually at the request of the client. This relationship is very common in computing. A web server provides web pages which are displayed on a web browser. The web server is the program which provides web pages, in the case of say, CNN, this consists of hundreds of computers in Atlanta which send out the CNN web pages. The client, in this case is the web browser running on your computer: Firefox, Internet Explorer, Safari or Chrome are all web clients.

Internet Protocols

Protocols used in computer to computer communications

Client – Server

– one machine (the client) wants something from the other machine (the server).

e.g. MS Outlook is an email client.

MS Exchange (another Microsoft product) is an email server.

An alternative to client/server protocols are peer to peer protocols. Instant Messaging (IM) is peer-to-peer.

Consider symmetry. Client server protocols are asymmetrical. Different software exist on both machines, because the machines are performing different tasks. Think of pitcher-catcher. Peer to peer protocols are symmetrical, the same on both sides. Think of two children on a see-saw.

Major internet Protocols

DNS – Domain Naming System – TCP/IP sends packets to “hosts” (usually computers) which are identified by a number of the form:

nnn.nnn.nnn.nnn, e.g. 112.160.001.002

DNS – servers translate meaningful names you type in, into TCP/IP numbers.

HTTP – hypertext transfer protocol – the protocol defining the web.

  • The computer which runs cnn.com is an HTTP server.
  • Your computer, running Safari or Internet Explorer, or Firefox, is an HTTP client.

To get a flavor of what these protocols look like – type DNS rfc, or TCP/IP RFC, or HTTP rfc into google.

An RFC is a “request for comment” document, and is circulated before standards and protocols are adopted on the internet. RFC documents, after a period of time where comments are solicited and the documents changed, become the applicable standards. Oddly, they are still called RFC’s.

Summary of common internet protocols and the programs which use them

Protocol Purpose Sample Program
SMTP Send Mail Outlook
POP3 Receive Mail Outlook
HTTP Send and Receive Web Pages Internet Explorer, Safari Apache, IIS
Telnet Pretend to be A terminal Telnet

 

 

What is networking

Three things you can do with two computers.

  • Share Devices – common to share a hard drive, or a printer.
    • Protocol to share a device – SMB – windows, NFS – Unix
  • Operate Remotely – be here, and operate a computer that is located over there.
    • Protocols – telnet, Windows Remote Access
  • Send a stream of data from one computer to another.
    • Email – SMTP