Continuing my series as I work through the CCNA syllabus. The introduction to the series can be found here.
I will be pretty much following the CCNA Composite Exam Blueprint point for point. One post per bullet point. I’m using Version 11 (640-802).
Models, abstractions and Standards
Here we hit the first bit of proper memory work on the CCNA exam. Cisco are pretty particular on their exams on making sure candidates know what’s is going on “End to End”. This starts here.
The bullet reads: Use the OSI and TCP/IP models and their associated protocols to explain how data flows in a network
Early in the history of computer networking, there were two competing standards to describe the interactions of different physical and software systems with the rest of the world. But why have the standards at all? Each application could include a full set of drivers to directly access the hardware on a given machine, and expect to talk only to itself. This would be terribly inefficient though. It would make it hard to get a diverse set of hardware, and even harder to write applications that talk to each other, or even multiple applications to do the same thing. Imagine a world where some website were only accessible via Firefox, and others that only Chrome would show. The answer to this problem is to abstract the different levels of interaction, and define how they communicate with each other. Applications can then work at a single level, talking up and down the stack using standard protocols, and everything works together.
As is often the case, two separate organisations saw this at a similar time, and stated creating their own standard. These were, the OSI model, and the TCP/IP model. The OSI model is no longer in use, and pretty much all networking deals with TCP/IP. But it is worth knowing what the OSI model is, and it is vital to be successful at CCNA.
The OSI Model
All People Seem To Need Domino’s Pizza Aren’t Mnemonics brilliant? There are seven layers to the OSI model, working from the Physical layer, the actual hardware that encodes bits and sends them to the remote site (I’m trying hard not to use the phrase “on a wire”, there don’t have to be wires involved) through to the Application layer where the data that you send and receive is presented to you. These layers are:
- Application – 7
- Presentation – 6
- Session – 5
- Transport – 4
- Network – 3
- Data – 2
- Physical – 1
The numbers are significant. Ever heard of a layer 3 switch? Yes, you have, I mentioned one in an earlier post. That Phrase “Layer 2″ comes from the OSI model. But more of that in a bit. What do the layers do?
Physical, as I have already mentioned is exactly as it says on the tin. The physical layer encodes bits on the “wire” be that varying the electrical current through Standard Twisted Pair (STP), optical flashes created by a LASER or semi-conductor diode, channelled down a fibre, or the radio or microwaves used by “wireless” networks. The physical layer is where your network card works, and where hubs work (because they don’t inspect packets).
Data, or Data Link. This is the layer where the hardware first starts making decisions. Switches are “Layer 2″ devices. The Job of the data layer is to take the information provided from layers above it, and decide when is is possible to transmit it. The standards that define this layer are Ethernet (IEEE 802.3), HDCL (the signalling mechanism used in Serial Connections), Frame Relay, and PPP (Point to Point Protocol, used to create links over Plain old Telephone Lines (POTs)). The Data link layer, puts a header which is used to define the address of the next machine the data is to be sent to (a MAC address in the case of Ethernet), and a footer, which contains a checksum, used to ensure the packet is not corrupted at the physical layer (as can happen on shared mediums such as ring networks, or WiFi.
Network: this layer defines the logical addresses of devices (generally in a globally unique way), the way packets are passed between different networks, and best-path determination between these networks. This is the routing layer, and the guts of how the Internet manages to be so big! The logical addresses at this layer can be any of a number of different standards, but the only one a CCNA needs to care about it IP. Your IP address is a layer 3 address.
Transport: this is the layer that focuses on making sure that data is delivered reliably. In some cases, such as UDP, and ICMP, the protocol is very light, and makes no attempt to ensure packets are resent if lost. In other cases, such as TCP, this layer handles flow control, retransmission of lost packets, and re-ordering of delayed packets to ensure the application gets exactly the information it needs. The final role of the Transport layer is to route the correct “stream” of data to the correct application process. The “Port” that data is sent to is defined at this layer.
The Session layer defines how to start, monitor and end “sessions”. A simple web page may contain text, images, video, sounds and style sheets that the browser needs to have to display the page. These are sent in various “sessions” that are held open for as long as it takes the client machines to receive all of the data that it needs.
The Presentation layer defines the encoding of information, images are stored at GIF, PNG, JPEG etc, text can be stored as ASCII, UTF-8, UTF-16, UNICODE.
Finally the application layer defines the interface between the Application and the underlying communications system. This also handles User Authentication if required. This is where protocols such as HTTP, and FTP are defined.
The TCP/IP Model
The TCP/IP model took a much simpler approach. The layers 5-7 are combined, as are layers 1-2, leaving simply “Network Access”, Internetwork (note the slightly different name, for the same functions as the Network Layer), Transport and Application layers. Some time later, the “Network Access” layer was split into Physical, and Data Link layers to more closely match the OSI model, and as the two functions started to be less intertwined.
So, there we have two models of the “Network” stack. A whole heap of terminology, which hopefully will be come clearer over time. The next post in the series will delve into the two models to show how data flows through a network, encapsulating and de-encapsulating as it goes.