Introduction
San Skulrattanakulchai
September 6, 2018
What is the “Internet”?
- Internet = the world’s network of networks
- Two possible views of the internet:
- The core infrastructure linking the computing devices that are connected to it. This includes the network design and protocols: HTTP, SMTP, TCP, IP, Ethernet, etc.
- All the network applications running on hosts (end systems) that make use of the services provided by the infrastructure above: google search, firefox, facebook, etc.
- This course is about the first definition.
What does the internet do?
- Simply put, the internet (in fact, any network) exists for exactly one purpose: to allow one host to send data to another host.
- By design, the internet is a packet-switched network. (Cf. transportation network).
- Data is chopped into packets at the transmitting host.
- Each p cket is sent from the transmitting host to the receiving host via a route independently of any other packets.
- Data is assembled & reconstructed from the packets at the receiving end.
- Everything else (infrastructure design, protocols) exists just to make this possible, fault-tolerant, robust, scalable, etc.
Network of networks
- The internet consists of diverse networks:
- LANs
- WiFi networks
- telephone network
- cellular networks
- etc.
- We can’t study them all in this course. We will focus on the big picture of the internet, and not on these different networks.
Internet infrastructure
- 3 components
- hosts (or end-systems)
- switches/routers
- links
Architecture vs Engineering
- Network architecture deals with the what and where questions.
- in what form to send data, packets or files?
- where should a particular work be done, at the hosts or switches?
- Network engineering deals with the how question.
- how to implement the routing algorithm?
- how to design a LAN?
Goals
- For networks in general
- speed (measured in bits per second (bps))
- cost
- reliability (measured in mean time between failure (mtbf))
- others, specific to that particular kind of network
- These are mainly engineering questions.
- For the internet
- connectivity of different networks
- scalability to the entire world
- fault-tolerance (including recovery)
- support varied applications
- These are mainly architecture questions.
Protocol
- A protocol is the steps for conducting the communication pre-agreed upon by both parties.
Example phone conversation protocol:
Alice: Hi
Bob: Hi
Alice: Got the time?
Bob: 1:30
Example HTTP conversation protocol:
Alice: request connection
Bob: connected
Alice: give me https://gustavus.edu/mcs/cs-guide.php
Bob: here you are: ...
How programs use the network
sender:
while (condition) {
message = createMessage()
send(message, ...)
}
receiver:
while (condition) {
message = receive(message, ...)
}
Characteristics of the internet
- The internet has been and still is transforming the world:
- how we publish books
- how humans communicate
- how we conduct business
- how we shop
- etc.
Characteristics of the internet (continued)
- It’s creating lots of new problems for computer scientists to solve.
- routing algorithms, e.g. BGP
- communication protocols e.g. TCP
- load balancing algorithms
- streaming protocols
- determining the structure of the internet
- cost optimization
- DNS-related problems
- large-scale data processing
- etc.
Characteristics of the internet (continued)
- The internet is ginormous
- 3.8 billions users
- 1.24 trillion web pages
- In a second,
- > 6,000 tweets
- > 40,000 google queries
- > 2 million emails sent
Characteristics of the internet (continued)
- Diversity and range
- Communication latency (microseconds to seconds)
- Bandwidth: 1Kbps to 100Gbps
- Packet loss: 0-90%
- Technology: optical, wireless, satellite, copper
- End systems: sensors, cell phones, datacenters
- Applications: facebook, gaming, video streaming, …
- Users: naive, hackers, goverments, …
Characteristics of the internet (continued)
- Constant evolution
- Failure prone
- All these makes for many challenges to internet design.