The Architecture of the Internet

Connor Doherty
3 min readApr 22, 2017

--

The internet is a collection of lots of small networks routing information between each other by using standardized protocols. Here are details about how some of these components work to create the internet.

The Network

Your computer connects to the network

Your device connects to a local area network (LAN), this LAN then connects to an ISP (internet service provider). From here the large communication company’s agree to allow communication between their networks at places known as NAP (network access point). Fiber optic trunk lines carry massive amounts of data and connect to NAPs around the world which are known as Backbones.

Your requests get routed to the right machine

With all of these connections established information can be routed between connected machines. To make this happen an IP (Internet Protocol) address, a unique identifying address, is assigned to every machine on the internet. DNS (domain name system) maps domain name to a IP address automatically. Routers make sure info doesn’t go where it isn’t needed, and ensure it gets to its intended destination. TCP (Transmission Control Protocol) manages the assembling of a message into smaller packets that are transmitted over the Internet and received by a TCP layer that reassembles the packets into the original message.

Sending & Receiving

All computers on the internet are either servers or clients. Server machines that provide services to other machines have static IP addresses that do not change very often. Clients connect to a service at a specific IP address and on a specific port number (one for each service that is available on the server).

Your computer uses HTTP protocol to send and get info from a server machine

Once a client has connected to a service on a particular port every web service on the Internet conforms to the hypertext transfer protocol (HTTP), which sets standards for how the server and client will communicate with each other.

Uses HTTPS for secure connections

HTTPS abides by the HTTP communication standards within a connection encrypted by Transport Layer Security or Secure Sockets Layer (both frequently referred to as SSL). The SSL connection uses one of several encryption methods to ensure the authenticity and privacy of each request.

Server Processing of the Request

An HTTP request is started by the client. Once the request reaches the server it is the servers logic that determines what the response will be. Generally the response will either be HTML or JSON.

The most basic processing on the server side is to map the incoming URL to a directory structure that mirrors the URL structure. For example if a request for http://example.com/folder1/page1.html the server will map to and return file /httpdocs/folder1/page1.html.

With modern web apps there the request becomes more complicated when received. For example in http://example.adserver.com?ct=12u3128390&page_url=examplepage&user_id=21u14089923 a query string is used to pass additional information, this information can be used by the server to run complex rules and algorithms before returning the final response. One popular use in advertising would be to take the user id, pair it with existing information about the user to send back more related ads.

Rendering the Information

The networking layer receives and passes information (usually in 8kb chunks) to the rendering engine.

Parsing HTML & CSS

HTML into DOM nodes to create the ‘content tree’. CSS is also parsed to create the ‘render tree’ .

Next the layout process takes place, giving each node the exact coordinates where it should appear on the screen. When a layout is changed the effective areas mark themselves and/or their child nodes as needing to be redrawn. This prevents having to completely redraw each time. These processes occur in bits not in a synchronous manner.

Parsing JavaScript

The javascript engine interprets and executes JavaScript. The most popular JS engine is Google’s V8, used in Chrome & node.js. V8 is the fastest because it translates JavaScript code into machine code. Other engines compile JavaScript code into byte code or another intermediate code type.

With the content parsed you are able to interact with the content until you decide to take an action; this begins the process to get new information again.

--

--