It's OK connecting computers together in a local environment, but it's much more fun (and potentially quite dangerous) communicating with other computers around the globe. But how does that even work? We are learning ...
So that we can ...
The Internet (with a capital 'I') is defined as 'A publicly accessible network of networks'. The term internet (with a lower case 'i') literally derives from inter (between) and net (network) and can be used to describe any group of networks whether public or private.
Early attempts to link computers together were driven by the need to share resources between powerful mainframe computers and terminals in research institutes. The Internet, as we know it, began life in the late 1960s as ARPANET, part of an effort to connect together American military computer systems in the United States of America as a secure way of transferring sensitive data during the Cold War. ARPANET was the first network to implement the TCP/IP Protocol.
During the 1980s, the network was expanded to include universities and research centres. The Internet uses a globally unique address space of IP Addresses based on TCP/IP (Transmission Control Protocol / Internet Protocol) to allow public access to services like web pages.
Yes, the structure of the Internet today is extremely complicated. The physical components of the Internet are owned by many hundreds of companies, some of whom have resources all over the world. For the purposes of routing traffic from one place to another, however, the Internet is divided into physical Autonomous Systems, each allocated an Autonomous System Number (ASN). AS Numbers are assigned in blocks by the Internet Assigned Numbers Authority (IANA) to the five Regional Internet Registries (RIR) who manage allocation to organisations in their regions. We'll explore the RIRs in more detail later in this topic.
Click to enlarge (Source)
As of May 2017, the three biggest companies (full list) who manage the physical Internet infrastructure are ...
These, along with the hundreds of other companies involved, provide the backbone of the Internet.
If you really want one, have a look here ...
Circuit switching
In the infancy of analogue communication, clients were connected to other clients using circuit switching in a telephone exchange.
In a circuit switched network, physical connections were made between nodes in a network either by a human (telephone operator), mechanically, or more recently, electronically.
Telephone Operator - an early 'switch' (1:32)
Circuit switching is a connection-oriented service where the 'caller' must first establish a physical connection to the 'callee' before any communication can begin. This is a time consuming and resource heavy operation involving routing the 'call' to a locally available node or switch allocating network resources as required. These resources could be frequency bands in Frequency Division Multiplexing (FDM) or time slots in Time Division Multiplexing (TDM) schemes. The connection stays active during the duration of the communication, even if the connection is idle.
A stylised circuit switched network. The dotted lines show potential connections.
In a circuit switched network various technologies are used to minimise the connection time and handle network interruptions, therefore, they are still useful in situations where a long lasting connection is required. Don't get confused with virtual circuits - these are packet switched networks which emulate circuit switched networks.
Yes, but even though circuits switched networks have these advantages (high capacity, reliability, quality of service, simple user control), they also suffer from some serious disadvantages as well ...
Whilst there is no real choice for voice communication (other than VOIP), data transfer does not require this dedicated line approach since, it doesn't really matter what order the data arrives at the destination as long as it's put back into order before it's delivered to the receiver. In the mid 1960s, computer scientists in America (Kleinrock and Baran) and the UK (Davies) began development of a packet switched network later to become the basis for the ARPANET.
Packet Switching
In a packet switched network, there is no need to establish a circuit before transmission begins. Packet switching is a connectionless service.
OK, OK, there are always exceptions to the rules.
The data is broken up into small chunks called packets before 'hopping' between special switches, called routers. The routers use dynamic routing algorithms to send the packets on the next step depending on the network load.
Apart from the actual data (the important stuff), the packets also contain lots of other information which enable them to make their way towards their destination and be reassembled correctly when they get there. These 'headers' are added by software on the sending computer as the packet is prepared for transmission and stripped off when the packet is received.
Yes, OK, this looks a little complicated doesn't it? I've tried to give you the essence of the structure of these little 'boxes' that are travelling around the Internet. Points to note ...
Routing
Packets are routed across the global Internet using a combination of their destination IP address and their hardware MAC addresses. Packets will only be routed outside their local network if the destination IP address is considered not to be part of the local network. The host / router knows, through use of routing tables, where the packets should be sent. If the local host / router does not know of the destination for a packet, it sends the packet to the default gateway which passes the packet onto the next router in the network. All this might seem a little confusing, so there are a number of ways in which you can 'see' the route that the packets are taking across the Internet. For instance, if we want to trace the route taken from our computer to google.co.uk , here are three ways we could achieve this ...
Finally, the diagram shows the relationship between some of the routers you might have seen in the trace operations. Hierarchically, the closest router to your computer is likely to be a 'Residential / SOHO (Small Office / Home Office) routers'. Next in the line are your Internet Service Providers (ISP) 'Edge' routers (which you can see named in the traces) which connect their equipment to the 'Core Routers' on the Internet Backbone. The core routers are insane!
When I showed you the Ethernet frame structure, I mentioned the use of Internet Protocol (IP) addresses and Media Access Control (MAC) addresses and their role in controlling the destination / routing of packets. We've seen list of IP addresses in the 'traceroute' results from the previous task but, what actually are they?
Don't panic!
IP Addresses
Every device connected to the public Internet needs an identifier. IP (Internet Protocol) addresses are numerical addresses which are used to uniquely identify every piece of hardware within the global address space of the system. Internet Protocol addresses come in two flavours - IPv4 and IPv6 (the 'v' stands for 'version').
An example of an IPv4 address
The IPv4 address is normally written in dotted decimal notation where each octet is represented by a decimal number between 0 and 255 (although some values are restricted - see later). IPv4 provides 232 individual addresses within the address space or 4,294,967,296 unique addresses. In IPv4, we can miss out leading zeros from the decimal octet value if we need to, so, we would write 196.168.1.207 instead of 192.168.001.207 (obviously).
An example of an IPv6 address. I've split the binary version onto two lines 'cause it wouldn't fit!
An IPv6 address has a very different format. There are 128 bits grouped in 16s and written as hexadecimal. So, there are 2128 or 340,282,366,920,938,463,463,374,607,431,768,211,456 IPv6 addresses (so we'll never run out, nanobot). You'll notice in this particular address, there are lots of zeros. There are two alternative ways we can write this address, either suppressing leading zeros and writing it as
fe80:0:0:0:f026:992e:167b:39ad or by compressing them and writing it as fe80::f026:992e:167b:39ad (which is OK as long as we only do it once per IPv6 address).The IP addresses of my local Ethernet port
So here is a screenshot of the IP address allocation on the Ethernet adapter in my laptop. Notice that IPv4 and IPv6 addresses as you would expect. The IPv6 address is followed by '
%13 ' which is simply an identifier for the adapter (scope ID) on Windows machines (on a Linux machine, it would be %eth0 or similar) which is required because multiple adapters can have the same type of IPv6 address and this helps with routing.
Subnets
All IP addresses are split into two parts - a network identifier and a host / interface identifier. Device IP addresses with the same network identifier are said to be on the same subnetwork or subnet which is useful for administration and routing purposes. IPv4 addresses use a subnet mask or CIDR (Classless Inter-Domain Routing) notation to identify which part of the IP address is the network ID and which part is the host / interface ID.
IP Address : 11000000.10101000.00000001.11001111 (192.168.1.207) Subnet Mask : 11111111.11111111.11111111.00000000 ( 255.255.255.0) (N.N.N.H) Network ID : 11000000.10101000.00000001.00000000 (192.168.1.0) (N.N.N.0) Host ID : 00000000.00000000.00000000.11001111 (0.0.0.207) (0.0.0.H) The '1' in the network mask indicates which bit in the IP address are to be treated as the network ID. A '0' in the subnet mask indicate which bits are treated as the host / interface ID. In practice, we perform a bitwise AND operation on the IP address using the subnet mask to give the network ID.
Alternatively, you can write the IP address in CIDR notation as
192.168.1.207/24 which tells you that the left most 24 bits form the Network ID and the remaining 8 bits represent the host / interface ID. Since the introduction of CIDR in 1993, the network mask must be contiguous. CIDR prefixes can range anywhere between The length of the host ID part of the IP address determines how many hosts / interfaces are available on the network. For instance, for my home network ...
First host : 11000000.10101000.00000001.00000000 (192.168.1.0) Last host : 11000000.10101000.00000001.11111111 (192.168.1.255) Actually, host 0 and host 255 are not allowed so that leaves us with 254 available hosts / interfaces.
Good question, but not entirely on the specification so this is extension work. In IPv6, there is no concept of network classes, merely scopes which identify the type of address and fixed portions of the address that represent the global network identifier and the private network identifier. There are always 64 bits available for the host identifier.
Some IPv6 address prefixes are reserved for special purposes ...
All other IPv6 addresses starting with
2 (0010 ) or 3 (0011 ) are unique global unicast addresses (i.e. public ones).No, probably not ... yet.
Public and Private IP Addresses
There are certain IPv4 addresses that are reserved and never publicly issued. These are called non-routable IP addresses and form a private address space (as opposed to a public address space) for use internally in private networks. You'll probably find that you have a
192.168.x.x or a 172.16.x.x network at home or in school.
Also, any IP address where the host ID is 0 or 255 is reserved and not available for use either. Routers flatly refuse to route requests to these addresses outside their local network. In other words, if I try to send a packet to 192.168.12.105, a router will never route the packet onto the public Internet. This behaviour reserves IP addresses in these ranges for use internally in as many locations as are necessary.
What's the point?
What seems like a long time ago, I mentioned routing as a method for passing a packet through a network towards it's ultimate destination. Routing only occurs if the packet needs to pass out of the local network and the router is responsible for forwarding the packet in that instance.
The end-to-end principle The end-to-end principle basically pushes the ultimate responsibility for packet delivery out to the edges of the Internet. The Internet itself runs on the IP protocol which provides unreliable packet delivery (i.e. doesn't care) whereas the machines communicating at the edge of the Internet run the TCP protocol, a connection-oriented, guaranteed delivery service. What is the end to end principle? (4:50) So, the end-to-end principle ...
The end-to-end principle
All this talk of IP addresses and no one seems to have explained where they come from? Since the Internet is publicly accessible, it makes sense that the allocation of IP addresses should be centrally managed, and indeed it is. The boss is called IANA or the Internet Assigned Numbers Authority. Underneath that lie five Regional Internet Registries (RIR) who work under the supervisory umbrella of the Number Resources Organisation (NRO).
Until October 2016, IANA was managed under the stewardship of the Internet Corporation for Assigned Names and Numbers (ICANN). All the RIRs serve 'members' or Local Internet Registries (LIR). Two of the RIRs have special members called National Internet Registries (NIR) for management of IP address allocation at a country level. LIRs can be Internet Service Providers (ISP) or organisations which manage their own IP Addresses such as banks, governments or universities. History of the RIRs (2:56)
One man
In the early days of the ARPANET and the fledgling Internet, it fell to one man to manage, organise and catalogue the allocation of internet numbers. For 30 years, the 'Czar' of assigned numbers, Jon Postel, personally issued internet numbers to members of the internet community and, allegedly, recorded them in a scrappy notebook.
Jon Postel is the Internet Assigned Number Authority, no joke.
In the early days of the Internet, 'services' (i.e. computers running useful software remotely) were accessed by their IP Address. When there were only a few services available, this wasn't really an issue but as the Internet grew, humans (inherently bad at remembering lists of numbers) needed a more user friendly way of remembering where their favourite service was located, so, in 1983, the Domain Name System (DNS) was invented. DNS Explained (6:03) You can think of the DNS as a big address book where the service names are mapped to an IP address. These 'service names' not only tell us where a resource is located on the Internet but what it's called as well. In fact, as part of the effort to conserve the ever dwindling IPv4 address space, multiple services running on a private IP address space can be mapped to a single public IP address using Network Address Translation (NAT).
URLs and URNs Uniform Resource Names (URN) tell us what a resource is called. Uniform Resource Locators (URL) tell us what a resource is called and where it is located. Together, URNs and URLs are called Uniform Resource Identifiers (URI). We are most commonly used to using URLs to access resources on the Internet from web servers (let's call them 'web pages' for the sake of familiarity). The structure of a WWW URL is fairly simple ... The most important distinction is between a Domain Name and a Fully Qualified Domain Name (FQDN) which includes the host name. We can identify the components of a URL from the DNS Hierarchy (my best shot at it in any case) ... In the diagram, TLD stands for Top Level Domain and SLD stands for Second Level Domain.
Even though this is not strictly on the specification of any examination board, it's still a subject that crops up a lot in conversation so (in my humble opinion), it's important that I devote at least a little real estate to it. Interesting facts about the darkness of the net and the darkness of the web ...
You could seriously spend the rest of your career on this topic alone. There are millions of hours of extension work should you wish to partake. However, here are some selections ... How about these?
END OF TOPIC ASSESSMENT
|