Download slides 1

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

IEEE 802.1aq wikipedia , lookup

Distributed operating system wikipedia , lookup

Point-to-Point Protocol over Ethernet wikipedia , lookup

Lag wikipedia , lookup

Multiprotocol Label Switching wikipedia , lookup

Remote Desktop Services wikipedia , lookup

TCP congestion control wikipedia , lookup

AppleTalk wikipedia , lookup

Asynchronous Transfer Mode wikipedia , lookup

Network tap wikipedia , lookup

Piggybacking (Internet access) wikipedia , lookup

List of wireless community networks by region wikipedia , lookup

Computer network wikipedia , lookup

RapidIO wikipedia , lookup

Airborne Networking wikipedia , lookup

Net bias wikipedia , lookup

Distributed firewall wikipedia , lookup

Zero-configuration networking wikipedia , lookup

IEEE 1355 wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Internet protocol suite wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Packet switching wikipedia , lookup

UniPro protocol stack wikipedia , lookup

Deep packet inspection wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Transcript
Introduction to Networking
Announcements
• Homework 4 due today, Thursday, October 30th
• Prelim II will be Thursday, November 20th, in class
• Nazrul will teach next two Tuesday’s, November 4th and 11th
– Make sure to attend class and to vote Nov 4th
2
Goals for today
• Introduction to Networking
– Motivated by distributed systems
• Overview
–
–
–
–
–
Layered Architecture
ISO and Internet Protocols
Addressing
Routing
Circuit vs Packet Switching
3
Centralized vs Distributed Systems
Server
Client/Server Model
Peer-to-Peer Model
• Centralized System: System in which major functions are
performed by a single physical computer
– Originally, everything on single computer
– Later: client/server model
• Distributed System: physically separate computers working
together on some task
– Early model: multiple servers working together
• Probably in the same room or building
• Often called a “cluster”
– Later models: peer-to-peer/wide-spread collaboration
4
Distributed Systems
Definition:
Loosely coupled processors interconnected by network
• Distributed system is a piece of software that ensures:
– Independent computers appear as a single coherent system
• Lamport: “A distributed system is a system where I can’t
get my work done because a computer that I’ve never
heard of has failed”
5
Why use distributed systems?
• These are now a requirement:
–
–
–
–
–
–
Economics dictate that we buy small computers
Cheap way to provide reliability
We all need to communicate
It is much easier to share resources
Allows a whole set of distributed applications
A whole set of future problems need machine communication
• Collaboration: Much easier for users to collaborate through network
resources (such as network file systems)
– …
6
Distributed Systems: Issues
• The promise of distributed systems:
– Higher availability: one machine goes down, use another
– Better durability: store data in multiple locations
– More security: each piece easier to make secure
• Reality has been disappointing
– Worse availability: depend on every machine being up
• Lamport: “a distributed system is one where I can’t do work because some
machine I’ve never heard of isn’t working!”
– Worse reliability: can lose data if any machine crashes
– Worse security: anyone in world can break into system
• Coordination is more difficult
– Must coordinate multiple copies of shared state information (using only a
network)
– What would be easy in a centralized system becomes a lot more difficult
7
Distributed Systems Goals
• Connecting resources and users
• Transparency: the ability of the system to mask its complexity
behind a simple interface
–
–
–
–
–
Location: Can’t tell where resources are located
Migration: Resources may move without the user knowing
Replication: Can’t tell how many copies of resource exist
Concurrency: Can’t tell how many users there are
Parallelism: System may speed up large jobs by splitting them into
smaller pieces
– Fault Tolerance: System may hide various things that go wrong in the
system
• Openness: portability, interoperability
• Scalability: size, geography, administrative
• Transparency and collaboration require some way for
different processors to communicate with one another
8
Software Concepts
System
Description
Main Goal
Distributed OS
Tightly coupled OS for
multiprocessors and
homogeneous m/cs
Hide and manage
hardware resources
Networked OS
Loosely coupled OS for
heterogeneous computers,
LAN/WAN
Offer local services to
remote clients
Middleware
Additional layer atop NOS
implementing general-purpose
services
Provide distribution
transparency
Machine C
Machine B
Machine A
Distributed Applications
Middleware
Local OS
Local OS
Local OS
9
Network
Some Applications
•
•
•
•
•
•
•
Air traffic control
Banking, stock markets
Military applications
Health care, hospital automation
Telecommunications infrastructure
E-commerce, e-cash
…
10
Few Challenges
•
No shared clocks
– How to order events
•
No shared memory
– Inconsistent system state
•
•
Scalability
Fault tolerance
– Availability, recoverability
•
•
•
Consensus
Self management
Security
11
Networking
• Middleware gives guarantees not provided by networking
• How do you connect computers?
– Local area network (LAN)
– Wide area network (WAN)
• Let us consider the example of the Internet
12
Internet: Example
• Click -> get page
• specifies
- protocol (http)
- location
(www.cnn.com)
13
Internet: Locating Resource
• www.cnn.com
– name of a computer
– Implicitly also a file (index.html)
• Map name to internet protocol (IP) address
– Domain name system (DNS)
cnn.com?
cnn.com?
host
com
local
a.b.c.d
a.b.c.d
14
Internet: Connection
• Http (hyper-text transport protocol) sets up a connection
– TCP connection (transmission control protocol)
– between the host and cnn.com to transfer the page
• The connection transfers page as a byte stream
– without errors: flow control + error control
Host
www.cnn.com
Page; close
15
Internet: End-to-end
• Byte stream flows end to end across many links/switches:
– routing (+ addressing)
• That stream is regulated and controlled by both ends:
– retransmission of erroneous or missing bytes; flow control
end-to-end pacing and
error control
CNN.COM
routing
HOST
16
Internet: Packets
• The network transports bytes grouped into packets
• Packets are “self-contained”; routers handle them 1 by 1
• The end hosts worry about errors and pacing
– Destination sends ACKs; Source checks losses
A | B | # , CRC | bytes
CNN.COM: A
HOST: B
C
B: to
C
17
Internet: Bits
• Equipment in each node sends packets as string of bits
• That equipment is not aware of the meaning of the bits
• Frames (packetizing) vs. streams
01011...011...110
01011...011...110
Transmitter
Physical Medium
Receiver
Optical
Copper
Wireless
18
Internet: Points to remember
• Separation of tasks
–
–
–
–
–
–
send bits on a link: transmitter/receiver [clock, modulation,…]
send packet on each hop [framing, error detection,…]
send packet end to end [addressing, routing]
pace transmissions [detect congestion]
retransmit erroneous or missing packets [acks, timeout]
find destination address from name [DNS]
• Scalability
– routers don’t know full path
– names and addresses are hierarchical
19
Internet : Challenges
•
•
•
•
•
•
Addressing ?
Routing ?
Reliable transmission ?
Interoperability ?
Resource management ?
Quality of service ?
20
Concepts at heart of the Internet
•
•
•
•
•
Protocol
Layered Architecture
Packet Switching
Distributed Control
Open System
21
Protocol
• Two communicating entities must agree on:
– Expected order and meaning of messages they exchange
– The action to perform on sending/receiving a message
22
Layered Architectures
• How computers manage complex protocol processing?
– Break-up design problem into smaller problems
• More manageable
• Decompose complicated jobs into layers
– each has a well defined task
– Specify well defined protocols to enact.
• Modular design:
– easy to extend/modify.
• Difficult to implement
– careful with interaction of layers for efficiency
23
Layered Architecture
network
users
Applications
Web, e-mail, file transfer, ...
Middleware
Reliable/ordered transmission, QOS,
security, compression, ...
Routing
Physical Links
End-to-end transmission,
resource allocation, routing, ...
Point-to-point links,
LANs, radios, ...
24
The OSI Model
• Open Systems Interconnect (OSI)
– standard way of understanding conceptual layers of network comm.
– This is a model, nobody builds systems like this.
• Each level
– provides certain functions and guarantees
– communicates with the same level on remote notes.
• A message
– generated at the highest level
– is passed down the levels, encapsulated by lower levels
– until it is sent over the wire.
• On the destination
– Encapsulated message makes its way up the layers
– until the high-level message reaches its high-level destination.
25
OSI Levels
Node A Application
Application
Presentation
Presentation
Session
Session
Transport
Transport
Network
Network
Data Link
Data Link
Physical
Physical
Network
Node B
26
OSI Levels
• Physical Layer
– electrical details of bits on the wire
• Data Link Layer
– sending “frames” of bits and error detection
• Network Layer
– routing packets to the destination
• Transport Layer
– reliable transmission of messages, disassembly/assembly, ordering,
retransmission of lost packets
• Session Layer
– really part of transport, typ. Not impl.
• Presentation Layer
– data representation in the message
• Application
– high-level protocols (mail, ftp, etc.)
27
The ISO Network Message
28
The Internet Protocol Layers
29
Internet protocol stack
network
users
Application
HTTP, SMTP, FTP, TELNET, DNS, …
Transport
TCP, UDP.
Network
IP
Physical
Point-to-point links,
LANs, radios, ...
30
Air travel
Passenger Origin
Passenger Destination
Ticket (purchase)
Ticket (complain)
Baggage (check)
Baggage (claim)
Gates (load)
Gates (unload)
Runway (take off)
Runway (landing)
Airplane routing
31
Protocol stack
user X
English
user Y
e-mail client
SMTP
e-mail server
TCP server
TCP
TCP server
IP server
ethernet
driver/card
IP
IEEE 802.3 standard
electric signals
IP server
ethernet
driver/card
32
Protocol interfaces
user X
user Y
e-mail client
TCP server
e-mail server
s = open_socket();
socket_write(s, buffer);
…
TCP server
IP server
IP server
ethernet
driver/card
ethernet
driver/card
33
Socket
• A communication end-point unique to a machine
• An Internet socket is composed of the following:
– Protocol (TCP, UDP, etc)
– Local IP address
• Address of local machine
– Local port
• Identifier for local process on local machine
– Remote IP address
• Address of remote machine
– Remote port
• Identifier for remote process on remote machine
34
Addressing
• Each network interface has a hardware MAC address
– Multiple interfaces  multiple addresses
• Each application communicates via a port
– Port is a logical connection endpoint
– Allows multiple local applications to use network resources
– Up to 65,535
• < 1024 : used by privileged applications
• 1024 ≤ available for use ≤ 49151
• 49152 ≤ Dynamic ports/private ports ≤ 65535
– http ports 80 and 8080
– ssh 20, telnet 23, ftp 21, etc
• Think of a telephone network …
35
Addressing and Packet Format
• The ``Data'' segment contains higher
level protocol information.
Start (7 bytes)
– Which protocol is this packet destined for?
Destination (6)
– Which process is the packet destined for?
Source (6)
– Which packet is this in a sequence of
packets?
Length (2)
– What kind of packet is this?
• This is the stuff of the OSI reference
model.
Msg Data (1500)
Checksum (4)
36
Ethernet packet dispatching
• An incoming packet comes into the Ethernet controller.
• The Ethernet controller reads it off the network into a
buffer.
• It interrupts the CPU.
• A network interrupt handler reads the packet out of the
controller into memory.
• A dispatch routine looks at the Data part and hands it to a
higher level protocol
• The higher level protocol copies it out into user space.
• A program manipulates the data.
• The output path is similar.
• Consider what happens when you send mail.
37
Hi Dad.
Example: Mail
To: Dad
Hi Dad.
SrcAddr: 128.95.1.2
DestAddr: 128.95.1.3
SrcPort: 110,
DestPort: 110Bytes: 1-20
Hi Dad.
To: Dad
Mail Composition And Display
User
Mail Transport Layer
Kernel
To: Dad
Hi Dad.
SrcAddr: 128.95.1.2
DestAddr: 128.95.1.3
SrcPort: 110,
DestPort: 110Bytes: 1-20
To: Dad
Network Transport Layer
Hi Dad.
SrcEther: 0xdeadbeef
DestEther: 0xfeedface
SrcAddr: 128.95.1.2
DestAddr: 128.95.1.3
SrcPort: 100
DestPort: 200Bytes: 1-20
Hi Dad.
Link Layer
To: Dad
Hi Dad.
SrcEther: 0xdeadbeef
DestEther: 0xfeedface
SrcAddr: 128.95.1.2
DestAddr: 128.95.1.3
SrcPort: 100
DestPort: 200Bytes: 1-20
To: Dad
Network
Hi Dad.
38
Protocol encapsulation
user X
“Hello”
user Y
e-mail client
“Hello”
e-mail server
TCP server
“Hello”
TCP server
IP server
“Hello”
IP server
“Hello”
ethernet
driver/card
ethernet
driver/card
39
End-to-End Argument
• What function to implement in each layer?
• Saltzer, Reed, Clarke 1984
– A function can be correctly and completely implemented only with
the knowledge and help of applications standing at the
communication endpoints
– Argues for moving function upward in a layered architecture
• Should the network guarantee packet delivery ?
– Think about a file transfer program
– Read file from disk, send it, the receiver reads packets and writes
them to the disk
40
End-to-End Argument
• If the network guaranteed packet delivery
– one might think that the applications would be simpler
• No need to worry about retransmits
– But need to check that file was written to the remote disk intact
• A check is necessary if nodes can fail
– Consequently, applications need to perform their retransmits
• No need to burden the internals of the network with
properties that can, and must, be implemented at the
periphery
41
End-to-End Argument
• An Occam’s razor for Internet design
– If there is a problem, the simplest explanation is probably the correct
one
• Application-specific properties are best provided by the
applications, not the network
– Guaranteed, or ordered, packet delivery, duplicate suppression,
security, etc.
• The internet performs the simplest packet routing and
delivery service it can
– Packets are sent on a best-effort basis
– Higher-level applications do the rest
42
Two ways to handle networking
• Circuit Switching
– What you get when you make a phone call
– Dedicated circuit per call
• Packet Switching
– What you get when you send a bunch of letters
– Network bandwidth consumed only when sending
– Packets are routed independently
• Message Switching
– It’s just packet switching, but routers perform store-and-forward
43
Circuit Switching
• End-to-end resources reserved for “call”
–
–
–
–
Link bandwidth, switch capacity
Dedicated resources: no sharing
Circuit-like (guaranteed) performance
Call setup required
44
Packet Switching
• Each end-to-end data stream divided into packets
– User’s packets share network resources
• Compared to dedicated allocation
– Each packet uses full link bandwidth
• Compared to dividing bandwidth into pieces
– Resources are used as needed
• Compared to resource reservation
• Resource contention:
– Aggregate demand can exceed amount available
– Congestion: packets queue, wait for link use
– Store and forward: packets move one hop at a time
• Transmit over link
• Wait turn at next link
45
Routing
• Goal: move data among routers from source to dest.
• Datagram packet network:
–
–
–
–
Destination address determines next hop
Routes may change during session
Analogy: driving, asking directions
No notion of call state
• Circuit-switched network:
– Call allocated time slots of bandwidth at each link
– Fixed path (for call) determined at call setup
– Switches maintain lots of per call state: resource allocation
46
Packet vs. Circuit Switching
• Reliability: no congestion, in-order data in circuit-switch
• Packet switching: better bandwidth use
• State, resources: packet switching has less state
– Good: less control plane processing resources along the way
– More data plane (address lookup) processing
• Failure modes (routers/links down)
– Packet switch reconfigures sub-second timescale
– Circuit switching: more complicated
• Involves all switches in the path
47
A small Internet
W
w,e5
b,e4
B
V
Scenario:
A wants to send data to B.
R
r3
r1,e1
r2,e2
a,e3
A
48
Packet forwarding
Host A
Host B
Router R
Router W
HTTP
HTTP
TCP
TCP
IP
IP
ethernet
eth
IP
link
link
IP
eth
ethernet
49
Summary (1/2)
• Network: physical connection that allows two computers to
communicate
– Packet: unit of transfer, sequence of bits carried over the network
• Protocol: Agreement between two parties as to how
information is to be transmitted
• Internet Protocol (IP)
– Used to route messages through routes across globe
– 32-bit addresses, 16-bit ports
• Reliable, Ordered, Arbitrary-sized Messaging:
– Built through protocol layering on top of unreliable,
50
Summary(2/2)
• Layering
– building complex services from simpler ones
• End-to-end argument
– Application-specific properties are best provided by the applications,
not the network
• Packet vs Circuit Switching
– Post card (packet) vs phone call (circuit)
– Bandwidth and congestion
• Packet - better bandwidth usage, but potentially congested links
• Circuit - no congenstion, but potentially lower link utilization
– Failures and reconfiguration
• Packet - Failed routed detected and routed around
• Circuit - reconfigure entire path if any router fails
51