400 likes | 415 Views
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.
E N D
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 discard else 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 2 LAN 1
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 • Each routing entry contains a cost • <destination, next hop, # hops> • Neighbors periodically exchange routing table entries • 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)
Crossbar buffers buffers Issues in Point-to-Point Networks • Congestion occurs when everyone sends to the same output link on a switch
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: 1 checksum: fa73cd10
Transmission Control Protocol • Fragments the byte stream into packets and hands them to IP
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
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
Scenarios • If Y crashes between 2 and 5 • Y will wake up and check the log • When X sends Y the commit message, Y will commit • Y can also timeout and ask X the current status