Final Assignment CS1030
The History if the internet
The History of the internet started with an idea in 1957 after being forced to create a remote connection so that the developers were able to work directly in the computer; that’s when the idea of time sharing came up. They realize they could share the processing power of one computer with multiple users. One of the first groups that is considered to be the foundation of the internet was DARPA (Defense Advanced Research Project Agency), a scientific group that needed new tools to be able to transfer data in a more efficient way; they then decided to create a subgroup or a network called ARPANET. There were 3 other networks that were fundamental in the history of the internet and they were RAND (Rand Corporation), a military network in America, the NPL (National Physical Laboratory), which was the commercial network in England, and the CYCLADES (institut de Recherche d’Informatique et d’Automatique), which was the scientific network in France. While developing ARPANET in 1966, the network working group came up with the NCP (network control Protocol) that later was replaced by a more efficient TPC (Transmition Control Protocol). The difference between these two is that the TPC verifies the file that is being transferred. In commercial networks like NPL there was too much information flow, where TPC was able to better support it; here is when the birth of the Packet-switching transfer takes place.
In 1962, pressured by the cold war, the U.S. was trying to decentralize the network architecture to make it work even with the loss of a note. The U.S opted to use a distributed network which could cover longer distances with a minimum of interference. Another great discovery was made by the CYCLADES by putting a lot of emphasis on the communication with other networks; this lead to the creation of the name inter-net. Then, the CYCLADES idea was implemented by using computers that had a physical layer that enable a direct connection with the receiver and an end to end structure. Using this Model, the phone companies created the x.25 protocol that enables communication to the servers for a monthly charge. They wanted to connect the computers through gateways and the ISO (International Organization for Standardization) wanted to standardize the network, so the ISO created the OSI (Open System Interconnection) to be able to standardize the network from its ends and the channel’s divisions into separate layers. Finally in 1983, the TCP assimilated the preferences of the OSI reference model and create the TCP IP protocol which then guaranteed compatibility between networks. They eventually merged them, creating what we know nowadays as the internet. ARPANET ceased to exist in 1989 and one year after the Hypertext system is created and implemented by Tim Berners-Lee while working for CERN.
In 1991 The U.S gave a huge step in the commercial field giving green light to allow enterprises to use the internet for commercial purposes. In August of the same year The World Wide Web is publicly released first time allowing the number of hosts to break 1,000,000. In the next following years Browsers like Netscape are created as well as companies services are offer through the internet such as banks, pizza hut, etc. The registration of domains was free until 1995 then everyone had to pay an annual fee. By 1996 Nokia implemented the use of the internet on cell phones for first time and 3 years after Wi-Fi or wireless technology 802.11b was standardized. In 2005 YouTube was launched and there are an estimated 92 million websites online; not too long after, to be specific three years after Google reaches 1trillion URLs. It is incredible how revolutionary the internet has been in our lives and also how fast it has grown since it was release to the public in the 90s. I really appreciate the invention and development of the internet, especially in the education and research field because it allows us to reach information that we never could before. I think the greatness of the internet is the capability to share massive quantities of information and it is on us the use that we give it.
________________________________________________
Character Encoding Basics
A character encoding system
consists of a code that pairs each character from a given repertoire with a
bit-pattern. This pattern of 8 bits is
also known as an Octet or byte, which is a small unit of data with a numerical
value between 0 and 255. As I mentioned before an octet has 8 bits and each of
this bits represent a number. This is usually represented by a binary sequence
of number such as 2^0, 2^1, 2^2, 2^3,……..2^7, which completes the octet or the
byte. It is represented from right to left, having 2^0 starting on the right
and 2^7 ending on the left. For example you want to represent the number 127 it
will show as 01111111 or the number 254 will be 11111110. There are some other representations of encoding
such as hexadecimal (base 16), which is the same principle but base 16. In the
hexadecimal notation you are able to store far more information using the same
bits or space.
In the past, most computers "spoke" mainly English, with each character represented by a unique numeric value or code point. To be able to encode the whole set of characters needed to represent the English language as well as several control characters; a total of 128 distinct code points were needed. 26 Uppercase(A-Z), 26 lowercase (a-z), 10 digits (0-9), 32 punctuation marks (.,+={}), 1 space, 33 control characters (Tab, CR, ALT, so on); for a total of 128 characters. In the computer world where numeric values are represented by binary data, representing 128 different configurations requires 7 bits to represent each character (27 = 128). The 7-bit encoding system was then created, which was known as "ASCII."
In the past, most computers "spoke" mainly English, with each character represented by a unique numeric value or code point. To be able to encode the whole set of characters needed to represent the English language as well as several control characters; a total of 128 distinct code points were needed. 26 Uppercase(A-Z), 26 lowercase (a-z), 10 digits (0-9), 32 punctuation marks (.,+={}), 1 space, 33 control characters (Tab, CR, ALT, so on); for a total of 128 characters. In the computer world where numeric values are represented by binary data, representing 128 different configurations requires 7 bits to represent each character (27 = 128). The 7-bit encoding system was then created, which was known as "ASCII."
you can immediately see that the ASCII encoding system's 128-character limitation prevents representation of most languages other than English-including some Latin-based languages that use accented characters, such as Spanish, French and German. To overcome this limitation, several companies and standards bodies created new code pages using a whole byte (or 8 bits) to represent each character. In each of these new code pages, the set of characters encoded 32 through 127 was left intact, forming the original 7-bit set called "ASCII". Meanwhile, the characters numbered 128 through 255 were called "extended characters" and varied from one code page to another. Similarly, this set of extended characters is unique to a particular combination of languages. Therefore, distinct code pages were created to support several Latin-based Western European languages, as well as Greek, Arabic, Turkic, and other additional languages.
There were some others Coding techniques such as DBCS (Multibyte character set: in which the code points can be in 1,2 or more bytes) or MBCS (double-byte character set: in which the code points can be either in 1 or 2 bytes). These techniques were limited and they didn’t fulfill the needs of standardizing a universal code system. After realizing this, several leading IT companies jointly created the UNICODE Consortium.The resulting universal system known as "Unicode" is helping to standardize character encoding and to make multilingual computing a reality. Unicode originated though a
collaboration between Xerox and Apple; other companies like Microsoft and IBM
rapidly join them. Unicode is capable of addressing more than 1.1 million code points; the standard has provisions for 8-bit, 16-bit and 32-bit encoding forms. The Unicode has been a great fit for the age of the
Internet, since the worldwide nature of the Internet demands solutions that
work in any language.
__________________________________________________________
__________________________________________________________
Standards
The importance of having standards is to control and operate systems in a more safe and efficient way. By adopting and adapting standards we find that both software vendors and end users are acquiring some benefits caused by standardization, which are:
- more use of commercial off-the-shelf software in our system
- larger pool of skilled job applicants in the market; lower learning curve to make new staff productive
- shorter development times because we benefit from the analysis &
- design efforts of experts that is embodied in the standard (otherwise, we'd go through the same exercise ourselves)
- faster agreement on interface/exchange requirements with both suppliers & customers
- improved ability to distribute work between our staff and outside contractors.
Next, I will show you a chart that indicates the greatest benefits for consumers and developers, offered by approved standards in software development
In my opinion, like every thing in this world, standards have some threads as well. Probably the biggest thread to software standards is the proliferation of more software standards. Some people were thinking in the possibility that the government regulates the software standards, but most people conclude that the standards should be a free market action, off course, supervise by some type of body. Standards and software development must both be considered evolutionary in that neither can stand still waiting for the other in the early stages of a new technology or a new standard. In Other words they had to grow and develop together in order to find a perfect balance for the market; for example if there are delays in release cycles by the developers then the standards have to reach support and a critical mass in the market demand. Next I will show you a chart indicating the greatest shortcomings and threads to standards in a software vendor vs standards scale.
To conclude, standards have been ideal for enterprises and for everybody to be able to communicate or transfer/reading data between systems. Entrepreneurs and people overall don’t have the same points of view of and IT person, they are looking to standardize something more visible (easy to read, easy to operate) and something highly accessible (internet or web-based applications). In other words, the preferences favor practical and efficient standards not the wants that are more sophisticated used frequently by IT professionals, which required more skilled knowledge.
__________________________________________________________
__________________________________________________________
Domain Name System
In class we learn that the Domain Name System or DNS is a protocol that uses the TCP/IP protocol, which sets the standards for how computers exchange data on the internet and on private networks. Basically, what the DNS does is turning a domain name like google.com into an internet protocol (IP) address like 66.102.0.0; which is use to for computers to know each other on the network. It’s like an identification tracker for the internet.
For example, It's like when you enter a URL into a web browser, your DNS uses its resources to resolve the name into the IP address for the appropriate web server. All computers and other network devices on the Internet use an IP address to route requests to the desire sites. This is like dialing a phone number to connect to the person you're trying to call. If we did not have DNS we will have to memorize IPs or have a huge address book for all the domains we visit on daily basis. Instead, we just need to connect through a domain name server, which manages a massive data base that maps domain names to IP addresses. In my opinion the creation of DNS facilitated immensely the search of domains and standardized them for and easier use even for people that aren't computer savvies.
While working on the lab of CS-1030 I learned how to connect the modems, i also learn that the modem or router, which assigns your computer's network address, also sends some
important network configuration information to your computer or mobile
device. That configuration includes one or more DNS servers that the
device should use when translating DNS names to IP address. As I learned in class the primary job of a domain name server or DNS is to resolve (translate) a domain name into an IP address. DNS servers have to rely in network efficiency and internet protocols; this is why each device or machine has a unique IP address in the IPV4 and IPV6.
________________________________________________________________________________________
________________________________________________________________________________________
IPV4
While learning in class about IP addresses I found out that the IPV4 standard has four numbers separated by three decimals, as in: 71.2.251.41. Each of the numbers in an IPV4 number is called an "octet" because it's a base-10 equivalent of an 8-digit base-2 (binary) number used in routing network traffic. To be more specific on how it works I am going to show you the following example: if the octet written as 41, It’s binary value is 00101001. Each digit in the binary number is the placeholder for a certain power of two from 2^0 all the way to 2^7, reading from right to left. That means that in 00101001, you have one each of 2^0, 2^3 and 2^5. So, to get the base-10 equivalent, just add 2^0 + 2^3 + 2^5 = 1 + 8 + 32 = 41. There are only 256 possibilities for the value of each octet: the numbers 0 through 255.
We also review that the fisrt question we need to ask ourselves when we see an IP address is what class they are? IP addresses are classify in certain classes; class A, class B and class C.
We also review that the fisrt question we need to ask ourselves when we see an IP address is what class they are? IP addresses are classify in certain classes; class A, class B and class C.
As we can see in the picture above IP address classes are shown in the first octet or the last byte. They have different ranges. Class A ranges from 1 to 126 they can have 2^7 networks and 2^24 addresses per network. Class B ranges from 128 to 191, they can have 2^14 networks and 2^16 addresses per network. Class C ranges from 192 to 223, they can have 2^21 networks and 2^8 addresses per network. As you can see they all differ in size and number. Class A addresses are the largest, but there are
few of them and class C addresses are the smallest, but they are numerous.
All these classes also have private networks and their ranges are shown as follow:
All these classes also have private networks and their ranges are shown as follow:
Now, the second question you should ask yourself when you see an IP address is What is the default subnet mask for the corresponding class?
First of all, the subnet mask is a number that defines a range of IP addresses that can be used in a network. Also they are used to designate subnetworks, or subnets, which are typically local networks LANs that are connected to the Internet. For every IP address class there is a default subnet mask; for class A is 255.0.0.0, for class B is 255.255.0.0 and for class C is 255.255.255.0. The picture below shows more in detail the characteristics of default subnet masks.
First of all, the subnet mask is a number that defines a range of IP addresses that can be used in a network. Also they are used to designate subnetworks, or subnets, which are typically local networks LANs that are connected to the Internet. For every IP address class there is a default subnet mask; for class A is 255.0.0.0, for class B is 255.255.0.0 and for class C is 255.255.255.0. The picture below shows more in detail the characteristics of default subnet masks.
To finalize the third and last question is: Has my IP address been subnetted or supernetted?
Subnetting is a process that consists on breaking large networks into several smaller sub-networks; in other words, an increase in the number of 1`s in the bit mask increases the number of network id`s. for example: by subnetting a network with network id of 134.36, we will increase a number of 254 networks, with network id`s in the range of 134.36.1, 134.36.2, 134.36.3, up to 34.36.254
Supernetting is the opposite, which is taking one or more networks and combine them into a bigger one.
Check the picture below for a better understanding.
Subnetting is a process that consists on breaking large networks into several smaller sub-networks; in other words, an increase in the number of 1`s in the bit mask increases the number of network id`s. for example: by subnetting a network with network id of 134.36, we will increase a number of 254 networks, with network id`s in the range of 134.36.1, 134.36.2, 134.36.3, up to 34.36.254
Supernetting is the opposite, which is taking one or more networks and combine them into a bigger one.
Check the picture below for a better understanding.
________________________________________________________________________________________
How to find your IP address
Well, There are several ways to find your IP address. The following are a few examples of many way you can obtain the IP address.
__________________________________________________________
- If you have Windows Vista or more recent, you will need to go to Control Panel, then network and sharing center, then view status and finally details.there the IP address will be shown as IPV4.
- If you don't know the version of your Windows operating system, try by going to the Start buttom, then programs, then accessories and then command prompt. on the command window type "IPCONFIG" and the IP address will be displayed.
- You can go to whatismyipaddress.com. There this site will provide you the IP address
__________________________________________________________
MAC Address
I class we learned that the Media Access Control or (MAC) address is a 48-bit or 64-bit address associated with a network adapter. We also review the other terms for MAC addresses which are: the hardware address, the burned-in address (BIA), or the physical address. MAC addresses are expressed in hexadecimal notation in the following format: 01-23-45-67-89-AB, in the case of a 48-bit address, or 01-23-45-67-89-AB-CD-EF, in the case of a 64-bit address. Colons are sometimes used instead of dashes to separate each hexadecimal number..
I found out that there were two types of MAC addresses and they were the Universal Administered Address and the Locally Administered Address.
The Universal Administered Address is the most common one and it is assigned to the network adapter when it is manufactured. The first three octets define the manufacturer, while the second three octets vary and identify the individual adapter. Universally administered and locally administered addresses are distinguished by setting the second-least significant bit of the most significant byte of the address. As is shown in the picture, when the second bit of the most significant byte is 0, the MAC address is globally administered and when the bit is 1, then is locally administered.
During this lesson of MAC addresses, we were told that they are usually permanent, but they can be changed depending on the circumstances. Then we were showed a method of how to change the MAC address of the router. Not all routers are the same. in some router you are capable to let you modify the MAC address. In order to do that, first you need to type the default gateway in the address tab of the browser. Then, under the advanced setup option you will have an option to change the MAC address. Like I said before it all depends in the router you are using.
During Class we did a similar process, but that was for changing the IP address of the device.
__________________________________________________________________
The Universal Administered Address is the most common one and it is assigned to the network adapter when it is manufactured. The first three octets define the manufacturer, while the second three octets vary and identify the individual adapter. Universally administered and locally administered addresses are distinguished by setting the second-least significant bit of the most significant byte of the address. As is shown in the picture, when the second bit of the most significant byte is 0, the MAC address is globally administered and when the bit is 1, then is locally administered.
During this lesson of MAC addresses, we were told that they are usually permanent, but they can be changed depending on the circumstances. Then we were showed a method of how to change the MAC address of the router. Not all routers are the same. in some router you are capable to let you modify the MAC address. In order to do that, first you need to type the default gateway in the address tab of the browser. Then, under the advanced setup option you will have an option to change the MAC address. Like I said before it all depends in the router you are using.
During Class we did a similar process, but that was for changing the IP address of the device.
__________________________________________________________________
Open Systems Interconnection (OSI)
As I mentioned before in my research of the history of the internet, the Open Systems Interconnection or OSI was developed in 1984 by the International Organization for Standardization or ISO. This standard is composed of seven layers that define the different stages or sections that data goes through to go over the network from one point to another or from one device to another. In the following picture I am going to show you what the layers are and small description of each one.
Next, I am going to explain how each layer works and also keep in mine that ISO model is just a guideline and there are some other models that combine one or more ISO layers into one.
As I mentioned above Other models condense this seven layers into less layers, in the case of the TCP/IP there are only four layers used.
- Layer 1: Physical - This is the level of the actual hardware. It defines the physical characteristics of the network such as connections, voltage levels and timing.
- Layer 2: Data - In this layer, the appropriate physical protocol is assigned to the data. Also, the type of network and the Packet sequencing is defined.
- Layer 3: Network - The way that the data will be sent to the recipient device is determined in this layer. Logical protocols, routing and addressing are handled here.
- Layer 4: Transport - This layer maintains flow control of data and provides for error checking and recovery of data between the devices. Flow control means that the Transport layer looks to see if data is coming from more than one application and integrates each application's data into a single stream for the physical network.
- Layer 5: Session - Layer 5 establishes, maintains and ends communication with the receiving device.
- Layer 6: Presentation - Layer 6 takes the data provided by the Application layer and converts it into a standard format that the other layers can understand.
- Layer 7: Application - This is the layer that actually interacts with the operating system or application whenever the user chooses to transfer files,, read messages or perform other network-related activities.
As I mentioned above Other models condense this seven layers into less layers, in the case of the TCP/IP there are only four layers used.
TCP/IP
The Transmission Control Protocol/Internet Protocol or TCP/IP is a communication language or protocol used to transfer data using a specific procedures of formatting, addressing, transmitting, routing and receiving. As I mentioned before The TCP/IP has four abstraction layers. the following picture shows roughly how it works.
As you can see, the last three layers of the ISO are condensed into the fourth layer of the TCP/IP. The function of each TCP/IP layers is:
________________________________________________________________________________________
- Layer 1: Network Interface - This layer combines the Physical and Data layers and routes the data between devices on the same network. It also manages the exchange of data between the network and other devices.
- Layer 2: Internet - This layer corresponds to the Network layer. The Internet Protocol (IP) uses the IP address, consisting of a Network Identifier and a Host Identifier, to determine the address of the device it is communicating with.
- Layer 3: Transport - Corresponding to the OSI Transport layer, this is the part of the protocol stack where the Transport Control Protocol (TCP) can be found. TCP works by asking another device on the network if it is willing to accept information from the local device.
- Layer 4: Application - Layer 4 combines the Session, Presentation and Application layers of the OSI model. Protocols for specific functions such as e-mail (Simple Mail Transfer Protocol, SMTP) and file transfer (File Transfer Protocol, FTP) reside at this level.
________________________________________________________________________________________
OSI vs TCP/IP
Both models do not conflict with each other because they were developed concurrently; in other words the TCP/IP contributed to OSI and vice-versa. Despite that fact, there are several important differences between them and these differences arise from the basic requirements of the TCP/IP; which are: a common set of applications, dynamic routing and connection-less protocols at the networking level, universal connectivity, packet-switching.
The main differences I found between them is on the layers of transport (layer 4) and at the network layer (layer 3). OSI has both, the session layer and the presentation layer, whereas TCP/IP combines both into the application layer(as shown in the picture below). The requirement for a connection-less protocol also required TCP/IP to combine OSI’s physical layer and data link layer into a network level.
The main differences I found between them is on the layers of transport (layer 4) and at the network layer (layer 3). OSI has both, the session layer and the presentation layer, whereas TCP/IP combines both into the application layer(as shown in the picture below). The requirement for a connection-less protocol also required TCP/IP to combine OSI’s physical layer and data link layer into a network level.
Network Layer
The difference in this layer is that TCP divides messages in datagrams of up to 64k length. Each datagram consists of a header and a text part. Besides some other information, the header contains the source and the destination address of the datagram. IP routes these datagrams through the network using for example the protocol OSPF (Open Shortest Path First) or RIP (Route Information Protocol) for path calculation purposes. The service provided by IP is not reliable. Datagrams may be received in the wrong order or they may even get lost in the network.
Transport Layer
Iwhile researching the differences in the transport layers, it is a fact that the OSI transport layer protocol (TP4) and the internet transport protocol (TCP) have many similarities, however, they have some remarkable differences. Both protocols are built to provide a reliable connection oriented end-to-end transport service on top of an unreliable network service. The network service may loose packets, store them, deliver them in the wrong order or even duplicate packets. Both protocols have to be able to deal with the most severe problems For example if a sub-network stores valid packets and sends them at a later date. TP4 and TCP have a connect, transfer and a disconnect phase. The principles of doing this are also quite similar.
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.
Another difference that I found is the way both protocols react in case of a call collision. TP4 opens two bidirectional connections between the TSAPs whereas TCP opens just one connection.
However, TP4 uses a different flow control mechanism for its messages, it also provides means for quality of service measurement.
The difference in this layer is that TCP divides messages in datagrams of up to 64k length. Each datagram consists of a header and a text part. Besides some other information, the header contains the source and the destination address of the datagram. IP routes these datagrams through the network using for example the protocol OSPF (Open Shortest Path First) or RIP (Route Information Protocol) for path calculation purposes. The service provided by IP is not reliable. Datagrams may be received in the wrong order or they may even get lost in the network.
Transport Layer
Iwhile researching the differences in the transport layers, it is a fact that the OSI transport layer protocol (TP4) and the internet transport protocol (TCP) have many similarities, however, they have some remarkable differences. Both protocols are built to provide a reliable connection oriented end-to-end transport service on top of an unreliable network service. The network service may loose packets, store them, deliver them in the wrong order or even duplicate packets. Both protocols have to be able to deal with the most severe problems For example if a sub-network stores valid packets and sends them at a later date. TP4 and TCP have a connect, transfer and a disconnect phase. The principles of doing this are also quite similar.
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.
Another difference that I found is the way both protocols react in case of a call collision. TP4 opens two bidirectional connections between the TSAPs whereas TCP opens just one connection.
However, TP4 uses a different flow control mechanism for its messages, it also provides means for quality of service measurement.