Professional Documents
Culture Documents
ACK: Slides use some material from Scott Shenker (UC Berkeley)
Administrivia
l Textbooks have been uploaded on LMS
l Tentative date and time for first tutorial: 24th Jan, 7:30-8:30pm
l On basics of Python
2
Goal of Today’s Lecture
l Introduce basic networking language
3
Specific questions for today’s lecture
l What are basic networking components?
l Who runs different networks on the Internet?
l What’s the purpose of the Internet?
l What are the fundamental challenges the Internet is solving?
l How does the Internet support so many diverse applications?
l What are packets?
l Why packets?
4
Basic Networking Components
l End-systems: they send/receive packets
l We will also sometimes use the term hosts for end-systems
5
car navigator
heart pacemaker
smartphone
end-system
iPad
Linux server MAC laptop
Windows PC
6
end-system switch
7
link
phone
lines
end-system switch
fibers
wireless
cable TV links
lines
8
Who runs the network?
link
phone company
end-system switch
university
cable company
9
What’s the purpose of the Internet?
link
end-system switch
path
packet
10
The Core Task of Internet
l Delivers packets between programs (applications) on different hosts
l This involves both the network and network stack
11
What are Packets?
12
Packets
l Packets are bags of bits with:
l Header: meaningful to network (and network stack)
l Can be more than one header!
l Body: meaningful only to application
Header Body
link
end-system switch
path
packet
14
What Must Header Contain For This?
15
What Must Header Contain For This?
l Packet must describe where it should be sent
16
Names vs Addresses
l Network address: where host is located
17
Packets Must Be Sent Along Path
link
end-system switch
path
packet
18
Fundamental Challenge #1
l Route packets through the network to destination
19
Routing Protocols (Conceptually)
l Gather information about the network topology
20
Control Plane vs Data Plane
l Control plane: mechanisms used to compute routing tables
l Inherently global: must know topology to compute
l Routing algorithm is part of the control plane
l Time scale: per network event
21
Fundamental Challenge #2
l How do you deliver packets reliably?
23
Other Important Challenges
l Congestion control
l Hosts on the Internet independently decide at what rate they will send packets
l How can you make sure that these independent decisions don’t overload
various links?
l Routing with autonomous control
l Internet is comprised of many different Internet Service Providers (ISPs)
l More generally called Autonomous Systems (ASes)
l They each get to make their own decisions about how to do routing
l How can you make sure that these independent decisions result in usable end-
to-end routes?
24
Other Important Challenges (Cont’d)
l How do securely communicate over an insecure medium?
l Messages between two hosts may be intercepted by an intruder
l Hosts want to ensure that they are indeed talking to the destination host
l And the sent messages are not altered by other parties
25
What Have We Missed?
l Consider when you access a web page
l Insert URL into browser (e.g., cnn.com)
l Packets sent to web site (reliably)
l Packets reach application on destination host
26
Mapping Names to Addresses
l URLs are based on the name of the host containing the content
(i.e., cnn.com names a host)
27
Finishing Our Story
l We now have the address of the web site
l So we can send packets to host
l When a packet arrives at a host, what does the host do with it?
l To which program (app) should the packet be sent?
l If the packet header only has the destination address, how does
the host know where to deliver the packet?
28
Of Sockets and Ports
l When a process wants access to the network, it opens a socket,
which is associated with a port number
29
Implications for Packet Header
l Packer header includes:
l Destination address and port
l Source address and port
30
Separation of Concerns
l Network
l Deliver packets from host to host (based on address)
l Applications
l Send and receive packets
l Understand content of packet bodies
instant
messaging
instant messaging
while (...) {
while (...) { message = receive( ... );
message = ...; }
send ( message, ... );
}
Talal
Talha
33
Summary
l Network(ed) applications:
l Exchange messages with other end-systems
35