The Internet
College Board
Internet, Word Wide Web, Local Area Network, HTTP, DNS, TCP, UDP, IP. Discussion focuses on Letters and Jig Saw puzzles as analogy for Source, Destination, and Packets.
Web browsers and servers use TCP/IP protocols to connect to the Internet. Common TCP/IP protocols are
-
HTTP - Hyper Text Transfer Protocol, HTTPS - Secure HTTP
-
HTTP takes care of the communication between a web server and the clients web browser. HTTP is used for sending requests from a web client to receive a response from the server. Response could be HTML or JSON.
-
HTTPS takes care of secure communication between a web server and a web browser. In our deployment process we used certbot to make HTTP communication secure all the time.
-
-
TCP/IP - Transmission Control Protocol, Internet Protocol
-
TPC/IP messages are broken up into small independent “packets” and sent between computers via the Internet.
-
IP is responsible for “routing” each packet to the correct destination. When an IP packet is sent from a computer, it arrives at an IP router. The IP router is responsible for “routing” the packet to the correct destination, directly or via another router.
-
-
Network Layer - The wireless and physical layers that move bits and bytes “11010001” across the internet.
Fault Tolerence
College Board
Know how to determine if vertex of graph has more than one connection. Multiple connections, in reference to a computing device, could be considered “Fault Tolerant”. Building “Fault Tolerant” systems makes the network or internet stronger.
- Understanding Computer, Routers, Systems, and Purpose are a pre-requisite to understanding Fault Tolerance systems. Regarding College Board videos, for clarification, a Router is typically used to connect computers. Here is an illustration that is very similar to the key components we have used in this class and should be familiar to those who have done deployment.
- As we are at school, using an HTTP client we request a page via LAN or Campus Network. This Network has a router and an ISP router that directs us to the public internet.
- DNS is used to translate https://nighthawkcodingsociety.com to an IP address, see What’s My DNS
- This targets the Web Server, the request is directed through a router to the Server running Nginx, which intern directs request to Gunicorn application hosting the Flask Website.
- Fault tolerant “routing” and “systems” on the internet is achieved by having redundancy in routing paths and computer functions. Networks and Systems become stronger because of many routes and redundancy of function. This AWS picture shows load balancing, multiple zones, redundant equipment, standby and fail over equipment and paths. This is much more than just having multiple connections, there is A LOT of planning in making fault tolerance. This is why there is such a rise in companies like AWS, Azure, Google Cloud, etc.
- The path the TCP/IP packet will follow might be different from other packets, for instance from the same HTTP communication. The routers in the network are responsible for the right addressing, depending on traffic volume, errors in the network, etc. Since the Internet is Fault Tolerant, there are many paths to a destination, similar to Google Maps providing alternate paths when we travel. Time can be seen with Ping. Routes and time can be see with TraceRoute command…
MacBook-Pro-3:~ johnmortensen$ traceroute yahoo.com
traceroute: Warning: yahoo.com has multiple addresses; using 74.6.231.20
traceroute to yahoo.com (74.6.231.20), 64 hops max, 52 byte packets
1 osync (192.168.1.1) 3.698 ms 2.227 ms 1.533 ms
2 142-254-184-101.inf.spectrum.com (142.254.184.101) 21.250 ms 16.529 ms 11.286 ms
3 76.167.26.181 (76.167.26.181) 35.013 ms 32.531 ms 45.001 ms
4 agg22.sndhcaax02r.socal.rr.com (72.129.1.142) 19.709 ms 26.443 ms 24.083 ms
5 agg22.tustcaft01r.socal.rr.com (72.129.1.2) 25.561 ms 22.516 ms 31.393 ms
6 bu-ether26.tustca4200w-bcr00.tbone.rr.com (66.109.3.232) 36.292 ms
209-18-43-72.dfw10.tbone.rr.com (209.18.43.72) 29.504 ms 37.647 ms
7 0.ae3.pr1.lax10.tbone.rr.com (107.14.19.56) 29.244 ms 22.536 ms
0.ae2.pr1.lax10.tbone.rr.com (107.14.19.54) 29.889 ms
8 xe-0-0-33-1.par2.lax.yahoo.com (216.115.96.14) 28.815 ms 21.496 ms 25.669 ms
9 unknown.yahoo.com (216.115.102.186) 20.551 ms 23.971 ms 35.320 ms
10 ae-9.pat2.pao.yahoo.com (209.191.64.246) 27.373 ms 27.639 ms 29.064 ms
11 ae-7.pat2.dnx.yahoo.com (209.191.65.9) 59.405 ms 67.980 ms 58.710 ms
12 ae-6.pat1.nez.yahoo.com (209.191.64.226) 74.793 ms
ae-5.pat2.nez.yahoo.com (209.191.64.224) 81.188 ms 77.055 ms
13 et-1-0-0.msr2.ne1.yahoo.com (216.115.105.183) 87.602 ms
et-1-0-0.msr1.ne1.yahoo.com (216.115.105.29) 78.726 ms
et-19-1-0.msr1.ne1.yahoo.com (216.115.105.27) 78.340 ms
14 unknown.yahoo.com (98.138.97.37) 75.661 ms 76.450 ms
et-19-1-0.clr1-a-gdc.ne1.yahoo.com (98.138.97.71) 81.867 ms
15 lo0.fab4-2-gdc.ne1.yahoo.com (98.138.51.3) 93.363 ms
lo0.fab3-2-gdc.ne1.yahoo.com (98.138.51.2) 96.854 ms
lo0.fab4-2-gdc.ne1.yahoo.com (98.138.51.3) 76.542 ms
16 usw2-1-lbd.ne1.yahoo.com (98.138.97.157) 78.076 ms 78.943 ms 75.405 ms
17 media-router-fp73.prod.media.vip.ne1.yahoo.com (74.6.231.20) 81.217 ms 77.895 ms 84.628 ms
Parallel and Distributed Computing
College Board
Single Core versus Multiple Cores allows allows parallel computing. Using multiple Cores allows a sequential job to be split up with minimum time being the length of longest job(s). What is best time for 30 seconds, 50 seconds, 40 seconds jobs on a two core computer?
- Distributed Computing - Bitcoin mining is an example of distributed computing. A tough digital computing puzzle illustrates need for CPU/GPU power. A distributed ledger amongst multiple miners is verified to avoid fraud. The result of this distributed computing network is a new financial economy.
-
Parallel Computing - Chrome, the browser most of us use to run our Web Application is a great example of a multi process architecture. There are two primary types of processes in Chrome : the browser process and the render process.
-
Browser process interacts with information from internet. This has multiple functions: Web contents represents a tab within the browser. Render View manages all IPC (Inter Process Communication), for instance the HTTP actions.
-
Render process is responsible for constructing a web page. Webkit is the engine and contains WebCore which constructs DOM (layout) and the JavaScript interpreter.
-