CS-1030 Final Essay

             Most people take each day at a time hoping for something better come ‘tomorrow’.  Life can spring some pretty strange or even terrible things at you in a blink of an eye.  So it would probably be a safer world if each individual took personal inventory of how they would react in a disaster or if a pedestrian suddenly crosses in front of their car while talking on the phone.   These are some of the things I and other peer students may ponder about during a class of CS-1030, things that students wouldn't normally associate to a CS class.  Many students like myself feel like sleeping in right through any 'early morning' class; this one we have been going to at 7:00 AM since the Fall Semester began.  Yet, instead many of us have chosen to beat the odds and go anyway.   

 

 Many of us have probably looked like

this in the morning

        There was much to gain from each class as long as I could keep my brain awake long enough to last an hour and twenty minutes.  Some of the items I would include would be some protocol acronyms like ARP (Address Reserve Protocol), and TCP/IP (Transmission Control Protocol / Internet Protocol)... This could be enough to make anyone's brain go schizo, but then again I have I always liked acronyms.  Other acronyms to add to the fray would be OUI (Organizational Unique Identifier), NIC (Network Interface Card), APIPA (Automatic Private IP Adressing), and DHCP (Dynamic Host Configuration Protocol) just to name a few.   

 Notably there was a class period when my brain never fully engaged until the last few minutes of class.  That class period we discussed subnetting, network address, broadcast address and how to determine the different Network Classes, etc.  My brain felt similar to the dog Brian in this short clip.

         The one phrase that essentially threads each class period together would be "do we care"; do we care about:

·         our identity being stolen - both physical and online

·         our data being lost

·         our lives going to waste after a disaster strikes - how to prepare

·         how much time we spend using technology

·         the history of  technology and where it is headed

·         how vulnerable our personal information is

·         how networking really works behind the scenes

·         how easy it is for a broadcast signal to get interference

·         how to choose the best channel for ‘your’ access point or router

·         what level of competence we are at

     These are some of the things one should expect to touch base with in this 

     CS- 1030 class.  Also, if properly motivated one could learn a great deal while expanding the brain's capacity to convert number systems.  I learned how to convert binary to hexadecimal, and decimal including in their inverse.  While making these conversions I used a chart graph to make it more feasible like the following:

        It was interesting to learn about the said Web Inventor Sir Tim Berners Lee who has been recognized for 29 different honorary titles.  He has played a major role in what modern society is since he invented the World Wide Web.  Information has gone into overdrive ever since.   It is great to communicate with my wife through software like Skype when she is on the other side of the world.  Things like this wouldn't be possible without the Web and Internet as a resource.   To better protect myself while using these powerful resources I have increased my knowledge about both the usefulness and uselessness of antivirus software.  Since antivirus software can only deal with known threats it becomes difficult to keep up with the 'worm' tide.  

 Self Study-Topics: To add to what is above

History of the Internet

    There were so many players involved in the history of the internet, it is hard to pin down where to begin.  According to Wikipedia there hasn't been nearly enough documentation created to make a clear timeline as to who did what when.  So it basically runs off of an honor code of sorts from word of mouth for much of what we know as the history of the internet at this point.  As stated on Wikipedia the Internet has many precursors that date back to the 19th century that include telegraph systems and telex machines.

Each of these networks played a major role in founding the internet:

    Then came the crucial TCP/IP - which was the only set of protocols to be approved on the ARPANET.  In 1994, Classless Inter-Domain Routing was introduced to support better conservation of address space which allowed use of route aggregation to decrease the size of routing tables.  This stated on Wikipedia.

   It has always been fascinating to see what the history is behind technological advances.  There has been a lot of things that have gone into the development of the Internet to bring it to the stage it is today.  I'm not sure how life would be exactly without it bringing forth the Web.  It affects every facet of my life in work, school, and play.  

Unicode and Character Sets
    Historically when things were starting out while Unix and The C Programming Language were being invented and written; things were simple.  At that time all that mattered was unaccented English letters which is called ASCII.  It represented every character using a number between 32 and 127.  Using 8-bit bytes you end up with one bit to use for other other purposes.  This worked fine in the English world.  Then came the OEM character set which addressed the language problem a little at least for European languages.  Which eventually got codified in the ANSI standard to agree on all the characters below 128.  Unicode came along in effort to deal with the disagreements but ironically was ignored for a time because too many programmers couldn't agree and it just got worse.  
    The basics of character code is that an octet represents 8 bits that has a numerical value between 0 and 255; which includes the zero and 255.  

Why there are Standards
     A study was done among 800 responses to having software standards.  It was balanced among IT and non-IT respondents.  Also the most cited standards that respondents saw as required for compliance is XML.  The biggest reason for respondents to not want to comply with standards was because there weren't enough people to adopt the standards.  Also was due to the cost and difficulty in achieving compliance.  A statement given from pesc.org conveys some benefits, "Portability of Data and leveraging IT investments for the future were overwhelmingly the most significant benefits in using standards for software development."  Another important point from pesc.org, "The increased value and liquidity of data and applications that result from standards has become much clearer to both IT and business buyers." pesc.org "Once again data portability and leveraging the underlying information systems was noted as the principle benefit offered by standards."
  
 When in doubt read more about the standards.  This section was pretty confusing for me and didn't really fuse into the realm of sense.  I know standards have their place in technology, but I will have to study it over again to make sense of it all.  

Domain Name System (DNS)
From Wikipedia, the free encyclopedia

"The Domain Name System (DNS) is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network. It associates various information with domain names assigned to each of the participating entities. Most importantly, it translates domain names meaningful to humans into the numerical identifiers associated with networking equipment for the purpose of locating and addressing these devices worldwide."

   The analogy that Wikipedia gives is that the DNS serves as the phone book for the Internet by translating human-friendly computer hostnames into IP addresses.  So what we see as a website name such as www.example.com gets turned into a set of numbers that a computer can understand like 192.0.32.10.  This idea goes back to the times of ARPANET which used a file called HOSTS.TXT which became unsustainable from the rapid growth of the network.  The most widely used DNS software on the internet is BIND (The Berkely Internet Name Domain).  

Domain name resolvers determine the appropriate domain name servers responsible for the domain name in question by a sequence of queries starting with the right-most (top-level) domain label.

File:An example of theoretical DNS recursion.svg

A DNS recursor consults three nameservers to resolve the address www.wikipedia.org.

The process entails:

  1. A network host is configured with an initial cache (so called hints) of the known addresses of the root nameservers. Such a hint file is updated periodically by an administrator from a reliable source.
  2. A query to one of the root servers to find the server authoritative for the top-level domain.
  3. A query to the obtained TLD server for the address of a DNS server authoritative for the second-level domain.
  4. Repetition of the previous step to process each domain name label in sequence, until the final step which returns the IP address of the host sought.

The diagram illustrates this process for the host www.wikipedia.org.

The Domain Name System is defined by Request for Comments (RFC) documents published by the Internet Engineering Task Force (Internet standards).

     OSI Model 

 As stated on Webopedia: 

"The OSI, or Open System Interconnection, model defines a networking framework to implement protocols in seven layers. Control is passed from one layer to the next, starting at the application layer in one station, and proceeding to the bottom layer, over the channel to the next station and back up the hierarchy."

  Each layer provides different functions in the OSI Model to link a revolving door of data being streamed from one layer to the next.  

Follow the link for more info.

http://www.webopedia.com/quick_ref/OSI_Layers.asp

  There is plenty of technical jargon to keep someone occupied.  For example in the Data Link Layer it has the MAC (Media Access Control) layer and the LLC (Logical Link Control) layer as sub layers within it.  

TCP Stack vs OSI

  There are plenty of similarities and differences between the two models.  First thing is "The adoption of TCP/IP does not conflict with the OSI standards because the two protocol stacks were developed concurrently." "In some ways, TCP/IP contributed to OSI, and vice-versa."  At the physical layer they both build off of the same standards.  At the data link layer OSI uses a protocol while TCP/IP doesn't.  At this layer it is provided to have error free transmission.  At the network layer the routing is facilitated from the source to the destination.  OSI uses CLNS (Connection Less Network Service) while TCP divides messages into datagrams up to 64k in length.  IP routes these datagrams through the network which could end up out of order because IP is not reliable in this aspect.  The transport layer provides the reliable connection between the source and the destination. Both OSI and IP are similar on this layer but have some specific differences in the size of packets they transfer, how they react and the type of mechanism used for the messages, etc.  "One difference between TP4 and TCP to be mentioned is that TP4 uses nine different TPDU (Transport Protocol Data Unit) types whereas TCP knows only one. This makes TCP simpler but every TCP header has to have all possible fields and therefore the TCP header is at least 20 bytes long whereas the TP4 header takes at least 5 bytes."  

   I found this section to be a little overwhelming in the information that is presented.  It did start sinking in how the differences and similarities would effect the data being transferred though.  

OSI and TCP/IP

osi.ppt osi.ppt
Size : 457.5 Kb
Type : ppt

A more in depth view of both OSI and TCP/IP 

 IPv4

    This is the internet protocol version that is the most widely used at this time.  To begin I will quote Wikipedia on the the IP classes: "Classful addressing prescribed only three possible subnet masks: Class A, 255.0.0.0 or /8; Class B, 255.255.0.0 or /16; and Class C, 255.255.255.0 or /24. For example, in the subnet 192.168.5.0/255.255.255.0 (192.168.5.0/24) the identifier 192.168.5.0 commonly is used to refer to the entire subnet. To avoid ambiguity in representation, the address ending in the octet 0 is reserved."  It is interesting how each class is defined and separated one from another.  Also now that the IPv4 addresses have been exhausted they have started to gradually migrate to IPv6; I won't get into detail about IPv6 except that it increases the address size to 128 bits from IPv4's 32-bit integer value.  

   Also Important to note is "Classless Inter-Domain Routing (CIDR) was designed to permit repartitioning of any address space so that smaller or larger blocks of addresses could be allocated to users. The hierarchical structure created by CIDR is managed by the Internet Assigned Numbers Authority (IANA) and the regional Internet registries (RIRs). Each RIR maintains a publicly-searchable WHOIS database that provides information about IP address assignments."  CIDR replaced the classful networking in 1993 to attack the problem of address depletion.  

Bit-wise representation (From Wikipedia.org)

In the following table:

  • n indicates a binary slot used for network ID.
  • H indicates a binary slot used for host ID.
  • X indicates a binary slot (without specified purpose)
Class A
  0.  0.  0.  0 = 00000000.00000000.00000000.00000000
127.255.255.255 = 01111111.11111111.11111111.11111111
                  0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH

Class B
128.  0.  0.  0 = 10000000.00000000.00000000.00000000
191.255.255.255 = 10111111.11111111.11111111.11111111
                  10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH

Class C
192.  0.  0.  0 = 11000000.00000000.00000000.00000000
223.255.255.255 = 11011111.11111111.11111111.11111111
                  110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH

Class D
224.  0.  0.  0 = 11100000.00000000.00000000.00000000
239.255.255.255 = 11101111.11111111.11111111.11111111
                  1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

Class E
240.  0.  0.  0 = 11110000.00000000.00000000.00000000
255.255.255.255 = 11111111.11111111.11111111.11111111
                  1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

How to find 'my IP address'
   Of the devices that I have, they covered all of the main classes from A to C.  I was able to see what my network looked like within and externally at more of a public level. Another resource that was given from the class was:

iPhone- download free app called 'SeeMyIP'

This app will show you your WiFi connection when connected to a wireless network.

After turning off your wireless device under Settings. You can then run the app again and you will get the IP address of your 3G data connection.

Windows 7 VideoApple OS X
  I have looked at my IP address in the past but not in as much detail; it was great to get a more in depth look at what happens behind the scenes.

MAC Address
   The best way to begin this section is to give a give a description from Wikipedia...

A Media Access Control address (MAC address) is a unique identifier assigned to network interfaces for communications on the physical network segment. MAC addresses are used for numerous network technologies and most IEEE 802 network technologies, including Ethernet. Logically, MAC addresses are used in the Media Access Control protocol sub-layer of the OSI reference model.

MAC addresses are most often assigned by the manufacturer of a network interface card (NIC) and are stored in its hardware, the card's read-only memory, or some other firmware mechanism. If assigned by the manufacturer, a MAC address usually encodes the manufacturer's registered identification number and may be referred to as the burned-in address. It may also be known as an Ethernet hardware address (EHA), hardware address or physical address. A network node may have multiple NICs and will then have one unique MAC address per NIC.

MAC addresses are formed according to the rules of one of three numbering name spaces managed by the Institute of Electrical and Electronics Engineers (IEEE): MAC-48, EUI-48, and EUI-64. The IEEE claims trademarks on the names EUI-48 and EUI-64, in which EUI is an acronym for Extended Unique Identifier.

The standard (IEEE 802) format for printing MAC-48 addresses in human-friendly form is six groups of two hexadecimal digits, separated by hyphens (-) or colons (:), in transmission order (e.g. 01-23-45-67-89-ab   or   01:23:45:67:89:ab ). This form is also commonly used for EUI-64. Another convention used by networking equipment uses three groups of four hexadecimal digits separated by dots (.) (e.g. 0123.4567.89ab ), again in transmission order[1].

Address details

MAC-48 Address.svg
This gives a brief overview of MAC address entails.  It is interesting to note that someone might end up with the same MAC address as you and never know because they bought a 'cheap' NIC card from the same manufacturer as you.  But a locally 
administered address can be assigned to a device by a network administrator which 
essentially overrides the burned-in address that the manufacturer assigns.  This assignment strangely brought to light other assignments as well.  

In Reflection:
   This class you could say brought to birds eye view a lot of subjects and gave an overall portrayal of each.  It is quite the task to fit so much subject material into one 
semester but I guess it did the job in helping plant the seed in future idea development 
within myself.  I will be able to use this information to better arm myself with 
knowledge and more importantly the ability to prepare for the unexpected.  I believe the
saying "sacrifice now or sacrifice later, but sacrifice you will" applies to much of the 
information presented in this class.  The choice is up to us when we want to sacrifice.