Network Protocols Sarah Diesburg Operating Systems CS 3430.
-
Upload
beverley-carr -
Category
Documents
-
view
220 -
download
0
Transcript of Network Protocols Sarah Diesburg Operating Systems CS 3430.
Distributed Systems
Allow physically separate computers to work together
+ Easier and cheaper to mass-produce simple computers Off-the-shelf components
+ A company can incrementally increase the computing power
Promises of Distributed Systems Higher availability
If one machine goes down, use another Better reliability
A user is able to store data in multiple locations More security
Each simple component is easier to make secure
Reality of Distributed Systems Worse availability
A system may depend on many or all machines being up
Worse reliability One can lose data if any machine crashes
Worse security Security is as strong as the weakest component
Coordination is difficult because machines can only use the network medium
Network Technologies
Definitions Network: physical connection that allows two
computers to communicate Packet: a unit of transfer
A sequence of bits carried over the network Protocol: An agreement between two parties as
to how information is to be transmitted
Broadcast Networks
A broadcast network uses a shared communication medium e.g. wireless, Ethernet, cellular phone network The sender needs to specify the destination in the
packet header So the receiver knows which packet to receive
If a machine were not the intended destination Discard the packet
Arbitration
Concerns the way to share a given resource In Aloha network (1970s)
Packets were sent through radios on Hawaiian Islands
Aloha Network
Arbitration: blind broadcast, with a checksum at the end of a packet
Packets might become garbled in the case of simultaneous transmissions
Aloha Network
Arbitration: blind broadcast, with a checksum at the end of a packet
Packets might become garbled in the case of simultaneous transmissions
Aloha Network
Arbitration: blind broadcast, with a checksum at the end of a packet
Packets might become garbled in the case of simultaneous transmissions
Blind Broadcast
Receiver:If a packet is garbled
discardelse
sends an acknowledgement
Sender:If the acknowledgement does not arrive
resend the packet
Ethernet (introduced in the early ‘80s) By Xerox First practical local area network
Uses wire (as opposed to radio) Broadcast network Key advance: a new way for arbitration
Ethernet’s Arbitration Techniques Carrier sensing: Ethernet does not send
unless the network is idle Collision detection: sender checks if packet
is trampled If so, abort, wait, and retry
Adaptive randomized waiting: a sender picks a bigger wait time (plus some random duration) after a collision
The Internet
A generalization of interconnected local area networks
Uses machines to interconnect various networks Routers, gateways, bridges, repeaters Act like switches Packets are copied as they
transmitted across different networks
LAN 1
LAN 2
Routing
Concerns how a packet can reach its destination
Typically, a packet has to go through multiple hops before getting to a destination Each hop is a router, which directs a packet to
the next hop Routing is achieved through routing tables
Routing Table Updates
1. Each routing entry contains a cost <destination, next hop, # hops>
2. Neighbors periodically exchange routing table entries
3. If the neighbor has a cheaper route, use that one instead
Point-to-Point Networks
Instead of sharing a common network medium, all nodes in the network can be connected directly to a router/switch
Point-to-Point Networks
+ Higher link performance (no collisions)
+ Greater aggregate bandwidth than a single link
Point-to-Point Networks
+ Network capacity can be upgraded incrementally
+ Lower latency (no arbitration)
Issues in Point-to-Point Networks Congestion occurs when everyone sends to
the same output link on a switch
buffers buffers
Crossbar
Networking:Physical Reality vs. AbstractionPhysical reality: packets
Abstraction: messages
Limited size Arbitrary size
Unordered Ordered
Unreliable Reliable
Machine-to-machine Process-to-process
Only on local area network
Routed anywhere
Asynchronous Synchronous
Insecure Secure
Arbitrary-Size Messages
Can be built on top of limited-size ones By splitting a message into fix-sized packets
Checksum can be computed on each fragment or the whole message
Internet Protocol (IP)
Provides unreliable, unordered, machine-to-machine transmission of arbitrary-size messages
Process-to-Process Communications Built on top of machine-to-machine
communications through the use of port addresses
Each message contains the destination port to talk to the correct process
Unreliable Data Protocol (UDP) Provides unreliable, unordered, user-to-user
communication Built on the top of IP
Ordered Messages
Built on top of unordered ones Use sequence numbers to indicate the
order of arrival Specific to a connection
If packet 3 arrives before packet 2, wait for packet 2.
Always deliver packets in order, to user applications
Reliable Message Delivery
Built on top of unreliable delivery
Problem: Network infrastructure can garble messages Packets can be dropped if network buffers are full
Solution
Checksum each message At a receiver, discard messages with
mismatching checksums A receiver acknowledges if a packet is
received properly A sender resends the same message after
not hearing the acknowledgment for some time (a timeout period)
A Minor Problem
A sender may send twice, if the first acknowledge is lost
The receiver needs to discard duplicate packets
Implications
A sender needs to buffer messages that are not yet acknowledged
The receiver must track messages that could be duplicates
Transmission Control Protocol (TCP) Provides a reliable byte stream between two
processes on different machines over the Internet
sequence number: 1checksum: fa73cd10
TCP Message Categories
Sender Sent and acknowledged Sent and not acknowledged Not yet sent
Receiver Forwarded to application Received and buffered Not yet received
More on the Sequence Number Need a way to recycle sequence numbers
Each TCP packet has a time-to-live field If the packet is not delivered in X seconds
The packet is dropped Sequence numbers can be reused
An epoch number used to identify which set of sequence numbers is being used Incremented at each boot Stored on disk
Congestion
Implications of timeout period at a sender Too long unnecessary waiting Too short a message is transmitted when an
acknowledgement is in transit Network congestion delayed
acknowledgement timeout data retransmission more congestion
TCP Solution
Slow start: TCP starts by sending a small amount of data If no timeout, more data is sent If timeout, TCP reduces the amount of data being
sent
Distributed Transaction
Multiple machines agree to do something atomically, but not necessarily at exactly the same time
Mechanism: two-phase commit
Two-Phase Commit
Account X Account Y
Phase 1: ask if each can commit
1. Begin transaction
Ask Y for $1
Enough cash
2. Write “Y = Y - $1”
Ready to commit
Phase 2: commit
3. Write “X = X + $1”
4. Commit
Ask Y to commit
5. Commit
Scenarios
If X crashes between 1 and 2 Y will wake up and do nothing X will timeout and abort the transaction
If X crashes before step 4 X will wake up and abort the transaction
If X crashes between 4 and 5 Y will timeout and ask X for the transaction