Presentation is loading. Please wait.

Presentation is loading. Please wait.

Andy Wang Operating Systems COP 4610 / CGS 5765

Similar presentations


Presentation on theme: "Andy Wang Operating Systems COP 4610 / CGS 5765"— Presentation transcript:

1 Andy Wang Operating Systems COP 4610 / CGS 5765
Network Protocols Andy Wang Operating Systems COP 4610 / CGS 5765

2 Protocol An agreement between two parties as to how information is to be transmitted A network protocol abstracts packets into messages

3 Physical Reality vs. Abstraction
Physical 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

4 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

5 Internet Protocol (IP)
Provides unreliable, unordered, machine-to-machine transmission of arbitrary-size messages

6 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

7 Unreliable Data Protocol (UDP)
Provides unreliable, unordered, user-to-user communication Built on the top of IP

8 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

9 Reliable Message Delivery
Built on top of unreliable delivery Problem: Network infrastructure can garble messages Packets can be dropped if network buffers are full

10 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)

11 A Minor Problem A sender may send twice, if the first acknowledge is lost The receiver needs to discard duplicate packets

12 Implications A sender needs to buffer messages that are not yet acknowledged The receiver must track messages that could be duplicates

13 Transmission Control Protocol (TCP)
Provides a reliable byte stream between two processes on different machines over the Internet sequence number: 1 checksum: fa73cd10

14 Transmission Control Protocol
Fragments the byte stream into packets and hands them to IP

15 TCP Message Categories
Sender Sent and acknowledged Sent and not acknowledged Not yet sent Receiver Forwarded to application Received and buffered Not yet received

16 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

17 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

18 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

19 The Byzantine Generals’ Problem
Two generals are on the tops of two mountains… They communicate only through messengers… They need to coordinate the attack… If they attack at the same time, they win… If they attack at different times, they will…die…

20 The Byzantine Generals’ Problem
Question: can they guarantee a synchronized attack?

21 The Byzantine Generals’ Problem Illustrated
General X 11am OK? So, 11am it is. General Y 11am sounds good Yeah, what if you don’t get this ack?

22 The Byzantine Generals’ Problem
Over an unreliable network, we cannot guarantee that two computers will synchronize

23 Distributed Transaction
Multiple machines agree to do something atomically, but not necessarily at exactly the same time Mechanism: two-phase commit

24 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

25 Scenarios If X crashes between 1 and 2 If X crashes before step 4
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

26 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


Download ppt "Andy Wang Operating Systems COP 4610 / CGS 5765"

Similar presentations


Ads by Google