network protocols l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Network Protocols PowerPoint Presentation
Download Presentation
Network Protocols

Loading in 2 Seconds...

play fullscreen
1 / 26

Network Protocols - PowerPoint PPT Presentation


  • 135 Views
  • Uploaded on

Network Protocols. Andy Wang Operating Systems COP 4610 / CGS 5765. Protocol. An agreement between two parties as to how information is to be transmitted A network protocol abstracts packets into messages . Physical Reality vs. Abstraction. Arbitrary-Size Messages.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Network Protocols' - ohanzee


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
network protocols

Network Protocols

Andy Wang

Operating Systems

COP 4610 / CGS 5765

protocol
Protocol
  • An agreement between two parties as to how information is to be transmitted
  • A network protocol abstracts packets into messages
arbitrary size messages
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
Internet Protocol (IP)
  • Provides unreliable, unordered, machine-to-machine transmission of arbitrary-size messages
process to process communications
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
Unreliable Data Protocol (UDP)
  • Provides unreliable, unordered, user-to-user communication
  • Built on the top of IP
ordered messages
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
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
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 Minor Problem
  • A sender may send twice, if the first acknowledge is lost
  • The receiver needs to discard duplicate packets
implications
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
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
Transmission Control Protocol
  • Fragments the byte stream into packets and hands them to IP
tcp message categories
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
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
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
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
the byzantine generals problem
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…
the byzantine generals problem20
The Byzantine Generals’ Problem
  • Question: can they guarantee a synchronized attack?
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?

The Byzantine Generals’ Problem Illustrated
the byzantine generals problem22
The Byzantine Generals’ Problem

Over an unreliable network, we cannot guarantee that two computers will synchronize

distributed transaction
Distributed Transaction
  • Multiple machines agree to do something atomically, but not necessarily at exactly the same time
  • Mechanism: two-phase commit
scenarios
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
scenarios26
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