Friday, January 24, 2014

Having completed my CCNA and all my classes (and then some) at WGU I decided to jump in on my CCNP studies. For those of you that don't know, the CCNP consists of three exams: CCNP ROUTE, CCNP SWITCH, and CCNP TSHOOT. It's common practice to start with ROUTE/SWITCH and the do TSHOOT last.

I decided to start with ROUTE. Why? Because a friend of mine posted a pretty great OSPF topology he was running in GNS3 and I wanted to try my hand at it. Here is my study plan so far:

CBT Nuggets Videos for CCNP ROUTE

Cisco Press CCNP ROUTE Book, by Wendell Odom

GNS3 Labs

Online Research

That sums up my current plans for Cisco Certifications. I have around 40 days left in my college semester and after that things will be hectic for a while as I try to get another 20+ credits out of the way.

TCP Flags are used for a variety of reasons. The 3-way handshake is likely the most common and well known (SYN/ACK), however all flags have their place and can greatly improve the flow of data and operation of applications. There are 6 different TCP Flags:
Urgent, ACK, PUSH, Reset, SYN, and FIN
As there are 6 flags, the TCP Flag field is 6 bits long. Each Flag has a bit that is either "on" [1] or "off" [0]. This is how the flag type is identified. I will now briefly touch on each flag and its uses.

The Urgent Pointer is the flag used to expedite the processing of a segment. When a receiving host receives a segment with the Urgent Pointer indicated, it sends it right to the front of the queue. I like to think of the Urgent Pointer as the "VIP" of the flags. When trying to gain entrance everyone has to wait their turn. However, when the "VIP" shows up, they are quickly brought to the front of the line and allowed in.

The Synchronisation (SYN) flag... definitely the first I learned about. SYN is used to establish connections as part of the 3-way handshake. To review, that involves Host A sending a SYN, Host B sending a SYN ACK, and Host A sending an ACK back to establish the connection.

Acknowledgement (ACK) Flags are used to indicate the successful receipt of a packet. With TCP, just about any data that is sent will receive an ACK back.

The PUSH flag is used to give data precedence over other packets, similar to the Urgent pointer. This is especially useful for applications whose integrity is compromised by too much delay (VoIP, video/music streaming, etc).

The RST (reset) flag is used when a segment arrives that isn't meant for the current session. When a host receives such a segment it sends out a RST and rejects the connection. This lets the sending device know where the mistake was made and initiate the correct connection.

The FIN flag (for Finished) is pretty much the opposite of SYN. When tearing down a connection Host A sends a FIN ACK, host B then ACKs, followed by a FIN ACK, which host A ACKs in response to. This completes the teardown.
I find it notable that data may continue flowing until both sides have shut the connection down.