Tuesday, 26 February 2013

Blog Bulletin - What I've been doing recently...

Oh my gosh! It's been more than a month since I last posted on my blog and promised that I would finish my Copter game soon...

Well, guess what? Yeeeeaaaaahhhh... Still haven't completed it. Yes, I know, I did say that I had almost finished... But I have set myself a deadline - I must finish my Copter game by the 31st March 2013.

In technology lessons, we've moved on to networks, IP addresses and protocols. Last lesson, we looked at IP addresses, the TCP/IP protocol and domain name servers. We wrote a few paragraphs explaining what those things are. OK, so "few" is a rather subjective word, and, as you've probably already guessed, I interpreted it to mean "at least 3 pages". So.... Here's a very entertaining and informative mini-essay on domain name servers, IP addresses and the TCP/IP protocol...


Domain Name Server, IP Addressing and the TCP/IP Protocol

Note to Self:

This is not directly related to DNS and IP addressing, but REMEMBER: 2n+2n-1+2n-2+2n-3+…+1=2n+1-1

E.g. Convert the binary number 1111111111 (10 1s) to decimal:

There are ten 1s, so 1111111111 is 210-1 = 1023 in decimal.

What is an IP address?

IP addresses are like telephone numbers or house addresses for computers. Each machine on a network has an IP address that uniquely identifies it, as no two computers have the same IP address. Nowadays, computers on most networks, and all computers on the internet use the TCP/IP protocol as the standard for how to communicate on the network. There are two standards for IP addresses: IPv4 and the newer standard, IPv6.

IPv4:

IPv4 is the IP address standard that most people are familiar with. If you asked a random person on the street what something like “216.27.61.137” was, they would probably say “IP”. All computers with an IP address (or many IP addresses) have an IPv4 address. Each IPv4 address is made up of four decimal numbers separated by dots, such as the example given, each of which is the base-10 representation for an eight-digit binary number. 4 x 8 = 32, so each IPv4 address has 32 binary bits. As each bit can take one of two values, 0 and 1, there are altogether 232 = just under 4.3 x 109, or 4.3 billion unique IPv4 addresses. Of course, the internet is currently growing at a staggering rate, so although 4.3 billion IP addresses may seem like a lot, it really isn’t. In fact, pretty soon the number of available unique IPv4 addresses will run out, considering that at the moment, [stats here!!]. In order to provide machines with a wider range of IP address options and postpone the day all IP addresses are taken and a global technological apocalypse occurs, some nerds invented IPv6, which offers much more addresses.

IPv6:

IPv6 uses even more binary bits – 128 of ‘em, in fact. An IPv6 address consists of eight groups of hexadecimal (base-16) numbers separated by colons, such as 2001:cdba:0000:0000:0000:0000:3257:9652. If there is a group of numbers that consists solely of four 0s, that group can be omitted and replaced with a colon, “:”. If there is more than one of them, you can remove them all and replace them with a single colon. Therefore, the IPv6 example can be written like this to save space: “2001:cdba::3257:9652”.

An IP address can be either dynamic or static. A static address is one that you configure yourself by editing your computer's network settings. This type of address is rare, and it can create network issues if you use it without a good understanding of TCP/IP. Dynamic addresses are more common and are assigned by the Dynamic Host Configuration Protocol (DHCP), a service running on the network.

To find out your computer's IP address, open up command prompt, type “ipconfig”, and hit ENTER. The originally blank, black, ominous command prompt screen will now be littered with colourfully white text that gives you loads of information about your IP address.

Here is my computer's IP address:

192.168.1.4 

...What's YOUR computer's IP address??!! (God, that sounded cheesy...)

Say your computer is connected to a server. If you're really bored and want to play around with command prompt try typing “ping [IP address of server]” (no, seriously, “ping”) and hitting ENTER. Four packets of data (see next section) will be sent to the server and in reply, the server will send four packets of data back to your computer. Pretty cool, huh?

Websites also 'have' at least one IP address; technically, the IP address belongs to the server, which is why some websites like google.com 'have' several (Google has loads of servers).

TCP/IP protocol:

TCP/IP stands for Transmission Control Protocol / Internet Protocol.

A protocol is like a computer language. Protocols are used by computers to communicate with each other.

Now, many people get confused by what TCP/IP means. It is, in fact, a whole group of protocols, including the TCP, IP, HTTP and DNS protocols. Let's use an analogy to understand how TCP/IP works better.

Dave wants to send a letter to his brother Squeak, who lives a long way away on the moon. OK, so, what does he do once he's written the letter?

1.      He puts it in an envelope

2.      He writes his brother's address on the envelope (25 Cheese Lane, Crater #605, Moony, Eclipseshire)

3.      He then puts it in the nearby postbox

4.      As his brother lives on a different planet/satellite/space thing, Intergalactic Mail provides a “Make Sure He Got It” service. They will send Dave a letter to confirm that his brother has received his letter when the letter reaches its destination. 

Now, back to the 21st century. Let's say you're on the computer, and you're about to go onto the BBC website (yay, BBC!)

1.      The data to request the BBC website is split into smaller chunks, which are then transformed into what's called packets (this process is known as “packaging”; it's a bit like putting the letter in the envelope)

2.      The BBC website (or rather, the BBC server) has an IP Address, which is “put on” the packet (writing the address on the envelope)

3.      The packets travel through the Local Area Network, or LAN (think of the LAN as a motorway on Earth). This is the network that connects servers and computers in your home with one another. Unfortunately, like on a real motorway, accidents do happen; in fact, they happen all the time. Packets get destroyed. They explode. Spiral into oblivion. Get lost. Forever. **Sniff**

4.      The packets that survive the journey through the LAN reach the router, which sends them on their way through wires and other “roads” that connect routers on the World Wide Web (The intergalactic highway that connects Earth with the moon). The packets reach the BBC's server, where they're unpacked and the data they're carrying is read.

5.      The server then “fills” the packets with the data that the original data requested (the letter to confirm that Dave has received the letter), in this case data to load the BBC website, and sends them on their way back to your computer.

And that, ladies and gentleman, is how TCP/IP works! Simple really.

Here is the link to a YouTube video about TCP/IP that is incredibly useful and easy to understand – check it out: http://www.youtube.com/watch?v=HOaIqQAeaik

Domain Name Server:

The Domain Name System (not server), or DNS, is one of those hypercool (a French word :)) protocols in the TCP/IP suite. Its job is to translate plain old URLs into phenomenally awesome IP addresses (resolve a domain name to an IP address).

You see, we humans find it easier to remember names and words than a bunch of seemingly random numbers. The IP address of clubpenguin.com (aaahh, childhood memories....) is 204.75.167.126, and you can directly type “http://204.75.167.1261” in the address bar, but “clubpenguin.com” is much easier to remember.

So, you've just typed “http://clubpenguin.com”in the address bar and the Club Penguin website just loaded. But what went on behind the scenes in those milliseconds that it took your browser to load the site?

Well, straight after you hit ENTER, your computer contacted a Domain Name Server, or DNS server (aaahh! Why's there a double 's'?), which looked up the domain name “clubpenguin.com” in a virtual 'phone book' , or database, of IP addresses. If the domain name is not in its cache, it contacts another DNS server. Google has a DNS server, as does Norton ConnectSafe, DNS Advantage, Securly... (Source: http://pcsupport.about.com/od/tipstricks/a/free-public-dns-servers.htm)