p1 : Distributed Bitcoin Miner /640 9/26/16

Size: px
Start display at page:

Download "p1 : Distributed Bitcoin Miner /640 9/26/16"

Transcription

1 p1 : Distributed Bitcoin Miner /640 9/26/16

2 P0 Reference to last year s p0 will be posted Should be structurally identical

3 Timeline Part A Checkpoint (Due 10/4) Part A (Due 10/13) Part B (Due 10/20)

4 Part A: LSP Protocol You will implement the Live Sequence Protocol Has some features of both UDP and TCP + more

5 LSP Features client-server communication model can maintain multiple connections Communication is sent in discrete UDP-sized packets Messages are sent in order and exactly once

6 Messages Consist of: Message type : connect, data, or ack Connection ID : number that identifies the clientserver connection Sequence Number : number identifying the message s order Payload: sequence of bytes (the actual data)

7 Messages type MsgType int const ( MsgConnect MsgType = iota // Conn request from client. MsgData // Data message from client or server. MsgAck // Acknowledgment from client or server. ) type Message struct { Type MsgType // One of the message types listed above. ConnID int // Unique client-server connection ID. SeqNum int // Message sequence number. Payload []byte // Data message payload. }

8 Messages Messages are marshaled using Go s Marshal function in the json package and sent as a UDP packet

9 Establishing a Connection Client (Connect, 0, 0) Client begins by sending a connection request (must have ID 0 and sequence number 0)

10 Establishing a Connection Client (Connect, 0, 0) (Ack, id, 0) generates a unique identifier for this Client- connection (you can just generate ID s sequentially)

11 Sending data and Client maintain independent sequence numbers (Data, id, i, hello ) (Ack, id, i) (Data, id, i+1, hi ) Client (Ack, id, i+1) (Data, id, j, hi ) (Ack, id, j)

12 Maintaining Order UDP Packets aren t guaranteed to arrive in order LSP.Read()//blocks LSP.Read() LSP.Read()

13 Maintaining Order UDP Packets aren t (Data, id, i, 440 ) guaranteed to arrive in order LSP.Read()//returns 440 LSP.Read()//blocks LSP.Read()

14 Maintaining Order UDP Packets aren t (Data, id, i, 440 ) guaranteed to arrive in order (Data, id, i+2, fun ) LSP.Read()//returns 440 LSP.Read()//blocks LSP.Read() i + 2 : fun

15 Maintaining Order UDP Packets aren t (Data, id, i, 440 ) guaranteed to arrive in order (Data, id, i+2, fun ) LSP.Read()//returns 440 LSP.Read()//returns is LSP.Read()//returns fun (Data, id, i+1, is ) i + 2 : fun

16 Sliding Window Like TCP, LSP uses a sliding window protocol Given a window size ω, we can send up to ω messages without acknowledgement. If the oldest unacknowledged message has sequence number n, then only messages with sequence numbers n + ω - 1 (inclusive) may be sent

17 Sliding Window Client ω = 3 Client messages queue = h -> e -> l -> l -> o

18 Sliding Window Client ω = 3 (Data, id, i, h ) Client messages queue = e -> l -> l -> o Oldest Seq # without Ack = i Window = [i, i+2]

19 Sliding Window Client ω = 3 Client messages queue = l -> l -> o (Data, id, i, h ) (Data, id, i+1, e ) Oldest Seq # without Ack = i Window = [i, i+2]

20 Sliding Window Client ω = 3 Client messages queue = l -> o (Data, id, i, h ) (Data, id, i+1, e ) (Data, id, i+2, l ) Oldest Seq # without Ack = i Window = [i, i+2]

21 Sliding Window Client ω = 3 Client messages queue = l -> o Oldest Seq # without Ack = i (Data, id, i, h ) (Data, id, i+1, e ) (Data, id, i+2, l ) block Window = [i, i+2]

22 Sliding Window Client ω = 3 Client messages queue = l -> o Oldest Seq # without Ack = i (Data, id, i, h ) (Data, id, i+1, e ) (Data, id, i+2, l ) (Ack, id, i+1) Window = [i, i+2]

23 Sliding Window Client ω = 3 Client messages queue = l -> o Oldest Seq # without Ack = i Window = [i, i+2] (Data, id, i, h ) (Data, id, i+1, e ) (Data, id, i+2, l ) (Ack, id, i+1) block

24 Sliding Window Client ω = 3 Client messages queue = l -> o Oldest Seq # without Ack = i+2 Window = [i+2, i+4] (Data, id, i, h ) (Data, id, i+1, e ) (Data, id, i+2, l ) (Ack, id, i+1) (Ack, id, i)

25 Sliding Window Client ω = 3 Client messages queue = (Data, id, i, h ) (Data, id, i+1, e ) (Data, id, i+2, l ) Oldest Seq # without Ack = i+2 Window = [i+2, i+4] (Ack, id, i+1) (Ack, id, i) (Data, id, i+3, l ) (Data, id, i+4, o )

26 Epoch events We still need to deal with dropped packets On both the clients and servers, we have a simple time trigger to fire epoch events periodically. Epoch events should fire at a fixed rate, with time between epochs = δ. When an epoch event fires, clients and server take actions in case of dropped packets or lost connection

27 Client Epoch Actions If connection request has not been acknowledged, resend connection (Connect, 0, 0) Client request } δ (Connect, 0, 0) (Ack, id, 0) (Connect, 0, 0)

28 Client Epoch Actions For every unacknowledged data message sent, resend (Data, id, i, data ) Client (Data, id, i+1, dayda ) (Ack, id, i+1) } δ (Data, id, i, data ) (Data, id, i+1, dayda ) Note that message i+1 is duplicated on the server

29 Client Epoch Actions If no data message has been received since the last epoch, send ack with sequence number 0 (Data, id, j, hi ) (Ack, id, j) Client } δ (Ack, id, 0)

30 Epoch Actions Similarly on the server, for each client connection For each data message that has been sent, but not yet acknowledged, resend the data message If no data message has been received from the client, then send an ack with sequence number 0

31 Epoch events Notice this design ensures that at least one message is transmitted in each direction between client and server on every epoch We can keep track of epochs passed since the last message was received. If this goes over a limit K, we can assume the connection is lost

32 Checkpoint (due 10/4) Assume no packet loss (no need to implement epoch) Messages sent in order No need to implement sliding window protocol Race conditions will not be checked

33 Checkpoint (due 10/4) Client (Data, id, i, hello ) (Ack, id, i) A simple read/write server (Data, id, i+1, hi ) Pretty much implement this picture (Ack, id, i+1) (Data, id, j, hi ) (Ack, id, j)

34 What you ll be writing client_impl.go func NewClient(hostport string, params *Params) (Client, error) *should block until connection with server is established ConnID() int *returns connection ID Read() ([]byte, error) *blocks until data is received and ready to be returned or if connection is lost Write(payload []byte) error *should never block Close() error *blocks until all pending messages are sent and acked, or if connection is lost

35 What you ll be writing server_impl.go func New(port int, params *Params) (, error) *should not block Read() (int, []byte, error) *should block until data is received from some client and is ready to be returned or if connection is lost Write(connID int, payload []byte) error *should not block CloseConn(connID int) error *should not block Close() error *blocks until all pending messages are sent and acked, or if connection is lost

36 lspnet Contains every UDP operation needed. net package is not allowed! import github.com/cmu440/lspnet addr, err := lspnet.resolveudpaddr("udp", hostport) udpconn, err := lspnet.listenudp("udp", addr) n, cliaddr, err := udpconn.readfromudp(buffer[0]:) udpconn.writetoudp(msg, cliaddr)

37 Implementation notes Individual project No locks and mutexes There s no limit on message queue size, so don t use buffered channel to store pending messages. Instead use something like linked list

38 Bitcoin miner Goal: given a message M and an unsigned integer N, find unsigned integer n which when concatenated with M generates the smallest hash value, for all 0 n N. This n is called the nonce This takes a long time for large values of N. Instead, distribute more manageable workloads

39 Bitcoin miner Client message, N minhash, n message, 0, N/2 minhash, n message, N/2, N minhash, n Miner Miner

P1 : Distributed Bitcoin Miner / /19/2018

P1 : Distributed Bitcoin Miner / /19/2018 P1 : Distributed Bitcoin Miner 15-440/15-640 09/19/2018 Overview Debugging Tips P0 Solution P1 Part A Debugging Tips Logging Add log statements around points of inter-thread communications Channel Connection

More information

1 Logistics. 2 Overview. Randy Bryant is the lead person for this assignment.

1 Logistics. 2 Overview. Randy Bryant is the lead person for this assignment. 15-440, Fall 2011 Project Assignment P1: Distributed Password Cracker Assigned: Sept. 6 Part A Due: Thurs., Sept. 22, 10:00 PM Part B Due: Thurs., Sept. 29, 10:00 PM Randy Bryant (Randy.Bryant@cs.cmu.edu)

More information

Basic Reliable Transport Protocols

Basic Reliable Transport Protocols Basic Reliable Transport Protocols Do not be alarmed by the length of this guide. There are a lot of pictures. You ve seen in lecture that most of the networks we re dealing with are best-effort : they

More information

file:///c:/users/hpguo/dropbox/website/teaching/fall 2017/CS4470/H...

file:///c:/users/hpguo/dropbox/website/teaching/fall 2017/CS4470/H... 1 of 9 11/26/2017, 11:28 AM Homework 3 solutions 1. A window holds bytes 2001 to 5000. The next byte to be sent is 3001. Draw a figure to show the situation of the window after the following two events:

More information

COMPUTER NETWORK. Homework #2. Due Date: April 12, 2017 in class

COMPUTER NETWORK. Homework #2. Due Date: April 12, 2017 in class Computer Network Homework#2 COMPUTER NETWORK Homework #2 Due Date: April 12, 2017 in class Question 1 Suppose a process in Host C has a UDP socket with port number 6789. Suppose both Host A and Host B

More information

ERROR AND FLOW CONTROL. Lecture: 10 Instructor Mazhar Hussain

ERROR AND FLOW CONTROL. Lecture: 10 Instructor Mazhar Hussain ERROR AND FLOW CONTROL Lecture: 10 Instructor Mazhar Hussain 1 FLOW CONTROL Flow control coordinates the amount of data that can be sent before receiving acknowledgement It is one of the most important

More information

CSCI Topics: Internet Programming Fall 2008

CSCI Topics: Internet Programming Fall 2008 CSCI 491-01 Topics: Internet Programming Fall 2008 Transport Layer Derek Leonard Hendrix College October 15, 2008 Original slides copyright 1996-2007 J.F Kurose and K.W. Ross 1 Chapter 3: Roadmap 3.1 Transport-layer

More information

Network Protocols. Sarah Diesburg Operating Systems CS 3430

Network Protocols. Sarah Diesburg Operating Systems CS 3430 Network Protocols Sarah Diesburg Operating Systems CS 3430 Protocol An agreement between two parties as to how information is to be transmitted A network protocol abstracts packets into messages Physical

More information

6.033 Lecture 12 3/16/09. Last time: network layer -- how to deliver a packet across a network of multiple links

6.033 Lecture 12 3/16/09. Last time: network layer -- how to deliver a packet across a network of multiple links 6.033 Lecture 12 3/16/09 Sam Madden End to End Layer Last time: network layer -- how to deliver a packet across a network of multiple links Recall that network layer is best effort, meaning: - packets

More information

RSC Part III: Transport Layer 3. TCP

RSC Part III: Transport Layer 3. TCP RSC Part III: Transport Layer 3. TCP Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part of the companion slides to the book Computer Networking: A Top Down

More information

The Transport Layer: TCP & Reliable Data Transfer

The Transport Layer: TCP & Reliable Data Transfer The Transport Layer: TCP & Reliable Data Transfer Smith College, CSC 249 February 15, 2018 1 Chapter 3: Transport Layer q TCP Transport layer services: v Multiplexing/demultiplexing v Connection management

More information

EECS 122, Lecture 19. Reliable Delivery. An Example. Improving over Stop & Wait. Picture of Go-back-n/Sliding Window. Send Window Maintenance

EECS 122, Lecture 19. Reliable Delivery. An Example. Improving over Stop & Wait. Picture of Go-back-n/Sliding Window. Send Window Maintenance EECS 122, Lecture 19 Today s Topics: More on Reliable Delivery Round-Trip Timing Flow Control Intro to Congestion Control Kevin Fall, kfall@cs cs.berkeley.eduedu Reliable Delivery Stop and Wait simple

More information

Chapter 3 Transport Layer

Chapter 3 Transport Layer Chapter 3 Transport Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

More information

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 23-1 PROCESS-TO-PROCESS DELIVERY 23.2 The transport

More information

The Transport Layer Reliability

The Transport Layer Reliability The Transport Layer Reliability CS 3, Lecture 7 http://www.cs.rutgers.edu/~sn4/3-s9 Srinivas Narayana (slides heavily adapted from text authors material) Quick recap: Transport Provide logical communication

More information

ECE 435 Network Engineering Lecture 10

ECE 435 Network Engineering Lecture 10 ECE 435 Network Engineering Lecture 10 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 28 September 2017 Announcements HW#4 was due HW#5 will be posted. midterm/fall break You

More information

NWEN 243. Networked Applications. Layer 4 TCP and UDP

NWEN 243. Networked Applications. Layer 4 TCP and UDP NWEN 243 Networked Applications Layer 4 TCP and UDP 1 About the second lecturer Aaron Chen Office: AM405 Phone: 463 5114 Email: aaron.chen@ecs.vuw.ac.nz Transport layer and application layer protocols

More information

Homework 2 COP The total number of paths required to reach the global state is 20 edges.

Homework 2 COP The total number of paths required to reach the global state is 20 edges. Homework 2 COP 5611 Problem 1: 1.a Global state lattice 1. The total number of paths required to reach the global state is 20 edges. 2. In the global lattice each and every edge (downwards) leads to a

More information

COMP 431 Internet Services & Protocols. Transport Layer Protocols & Services Outline. The Transport Layer Reliable data delivery & flow control in TCP

COMP 431 Internet Services & Protocols. Transport Layer Protocols & Services Outline. The Transport Layer Reliable data delivery & flow control in TCP COMP 431 Internet Services & Protocols Transport Layer Protocols & Services Outline The Transport Layer Reliable data delivery & flow control in TCP Jasleen Kaur Fundamental transport layer services» Multiplexing/Demultiplexing»

More information

Operating Systems and Networks Project 1: Reliable Transport

Operating Systems and Networks Project 1: Reliable Transport Spring Term 2016 Operating Systems and Networks Project 1: Reliable Transport Assigned on: 22 April 2016 Due by: 13 May 2016 1 Introduction In this project, your task is to implement a reliable sliding

More information

Lab 2: Implementing a Reliable Transport Protocol (30 points)

Lab 2: Implementing a Reliable Transport Protocol (30 points) Lab 2: Implementing a Reliable Transport Protocol (30 points) Overview In this laboratory programming assignment, you will be writing the sending and receiving transport-level code for implementing a simple

More information

Distributed Systems 8. Remote Procedure Calls

Distributed Systems 8. Remote Procedure Calls Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier

More information

The Transport Layer Multiplexing, Error Detection, & UDP

The Transport Layer Multiplexing, Error Detection, & UDP CPSC 852 Internetworking The Transport Layer Multiplexing, Error Detection, & UDP Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu http://www.cs.clemson.edu/~mweigle/courses/cpsc852

More information

Networking Technologies and Applications

Networking Technologies and Applications Networking Technologies and Applications Rolland Vida BME TMIT Transport Protocols UDP User Datagram Protocol TCP Transport Control Protocol and many others UDP One of the core transport protocols Used

More information

CSE 489/589 Programming Assignment 2

CSE 489/589 Programming Assignment 2 CSE 489/589 Programming Assignment 2 Objective In a given simulator, implement three reliable data transport protocols: Alternating-Bit (ABT), Go-Back-N (GBN), and Selective- Repeat (SR). 2 Outline Part

More information

Lecture 7: Flow Control"

Lecture 7: Flow Control Lecture 7: Flow Control" CSE 123: Computer Networks Alex C. Snoeren No class Monday! Lecture 7 Overview" Flow control Go-back-N Sliding window 2 Stop-and-Wait Performance" Lousy performance if xmit 1 pkt

More information

TCP : Fundamentals of Computer Networks Bill Nace

TCP : Fundamentals of Computer Networks Bill Nace TCP 14-740: Fundamentals of Computer Networks Bill Nace Material from Computer Networking: A Top Down Approach, 6 th edition. J.F. Kurose and K.W. Ross Administrivia Lab #1 due now! Reminder: Paper Review

More information

Correcting mistakes. TCP: Overview RFCs: 793, 1122, 1323, 2018, TCP seq. # s and ACKs. GBN in action. TCP segment structure

Correcting mistakes. TCP: Overview RFCs: 793, 1122, 1323, 2018, TCP seq. # s and ACKs. GBN in action. TCP segment structure Correcting mistakes Go-back-N: big picture: sender can have up to N unacked packets in pipeline rcvr only sends cumulative acks doesn t ack packet if there s a gap sender has r for oldest unacked packet

More information

Announcements Computer Networking. Outline. Transport Protocols. Transport introduction. Error recovery & flow control. Mid-semester grades

Announcements Computer Networking. Outline. Transport Protocols. Transport introduction. Error recovery & flow control. Mid-semester grades Announcements 15-441 Computer Networking Lecture 16 Transport Protocols Mid-semester grades Based on project1 + midterm + HW1 + HW2 42.5% of class If you got a D+,D, D- or F! must meet with Dave or me

More information

Administrivia. Remote Procedure Calls. Reminder about last time. Building up to today

Administrivia. Remote Procedure Calls. Reminder about last time. Building up to today Remote Procedure Calls Carnegie Mellon University 15-440 Distributed Systems Administrivia Readings are now listed on the syllabus See.announce post for some details The book covers a ton of material pretty

More information

Preview Test: HW3. Test Information Description Due:Nov. 3

Preview Test: HW3. Test Information Description Due:Nov. 3 Preview Test: HW3 Test Information Description Due:Nov. 3 Instructions Multiple Attempts Not allowed. This test can only be taken once. Force Completion This test can be saved and resumed later. Question

More information

Transport Protocol (IEX-TP)

Transport Protocol (IEX-TP) Transport Protocol (IEX-TP) Please contact IEX Market Operations at 646.568.2330 or marketops@iextrading.com, or your IEX onboarding contact with any questions. Version: 1.1 Updated: December 22, 2014

More information

9th Slide Set Computer Networks

9th Slide Set Computer Networks Prof. Dr. Christian Baun 9th Slide Set Computer Networks Frankfurt University of Applied Sciences WS1718 1/49 9th Slide Set Computer Networks Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

More information

Internetworking Models The OSI Reference Model

Internetworking Models The OSI Reference Model Internetworking Models When networks first came into being, computers could typically communicate only with computers from the same manufacturer. In the late 1970s, the Open Systems Interconnection (OSI)

More information

Error Detection Codes. Error Detection. Two Dimensional Parity. Internet Checksum Algorithm. Cyclic Redundancy Check.

Error Detection Codes. Error Detection. Two Dimensional Parity. Internet Checksum Algorithm. Cyclic Redundancy Check. Error Detection Two types Error Detection Codes (e.g. CRC, Parity, Checksums) Error Correction Codes (e.g. Hamming, Reed Solomon) Basic Idea Add redundant information to determine if errors have been introduced

More information

CSC209H Lecture 9. Dan Zingaro. March 11, 2015

CSC209H Lecture 9. Dan Zingaro. March 11, 2015 CSC209H Lecture 9 Dan Zingaro March 11, 2015 Socket Programming (Kerrisk Ch 56, 57, 59) Pipes and signals are only useful for processes communicating on the same machine Sockets are a general interprocess

More information

CSE 473 Introduction to Computer Networks. Midterm Exam Review

CSE 473 Introduction to Computer Networks. Midterm Exam Review CSE 473 Introduction to Computer Networks Midterm Exam Review John DeHart 10/12/2015 1. (10 points). A user in Chicago, connected to the internet via a 100 Mb/s (b=bits) connection retrieves a 250 KB (B=bytes)

More information

QUIZ: Longest Matching Prefix

QUIZ: Longest Matching Prefix QUIZ: Longest Matching Prefix A router has the following routing table: 10.50.42.0 /24 Send out on interface Z 10.50.20.0 /24 Send out on interface A 10.50.24.0 /22 Send out on interface B 10.50.20.0 /22

More information

Practice Problems: P22, 23, P24, P25, P26, P27, P28, P29, P30, P32, P44 and P45. Hand-in the following: P27, P28, P32, P37, P44

Practice Problems: P22, 23, P24, P25, P26, P27, P28, P29, P30, P32, P44 and P45. Hand-in the following: P27, P28, P32, P37, P44 Practice Problems: P, 3, P4, P5, P6, P7, P8, P9, P30, P3, P44 and P45. Hand-in the following: P7, P8, P3, P37, P44 Chapter-3 Assigned/ Practice - Problems Problem a) Here we have a window size of N=3.

More information

1. (10 points): For each of the following, choose exactly one best answer.

1. (10 points): For each of the following, choose exactly one best answer. IS 450/650 Final Exam Martens 20 December 2010 Answer all twelve questions. Write your name on the first sheet. Short answers are better than long ones. No electronics. 1. (10 points): For each of the

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Transport Layer Pipelined Reliable Data Transfer Protocols: Go-Back-N and Selective Repeat Sec 3.4.2-3.4.3 Prof. Lina Battestilli Fall 2017 Transport Layer

More information

IIP Wireless. Presentation Outline

IIP Wireless. Presentation Outline IIP Wireless Improving Internet Protocols for Wireless Links Markku Kojo Department of Computer Science www.cs cs.helsinki.fi/research/.fi/research/iwtcp/ 1 Presentation Outline Project Project Summary

More information

Lecture 5: Flow Control. CSE 123: Computer Networks Alex C. Snoeren

Lecture 5: Flow Control. CSE 123: Computer Networks Alex C. Snoeren Lecture 5: Flow Control CSE 123: Computer Networks Alex C. Snoeren Pipelined Transmission Sender Receiver Sender Receiver Ignored! Keep multiple packets in flight Allows sender to make efficient use of

More information

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Announcements No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Copyright c 2002 2017 UMaine School of Computing and Information S 1 / 33 COS 140:

More information

Lecture 11: Transport Layer Reliable Data Transfer and TCP

Lecture 11: Transport Layer Reliable Data Transfer and TCP Lecture 11: Transport Layer Reliable Data Transfer and TCP COMP 332, Spring 2018 Victoria Manfredi Acknowledgements: materials adapted from Computer Networking: A Top Down Approach 7 th edition: 1996-2016,

More information

Problem 7. Problem 8. Problem 9

Problem 7. Problem 8. Problem 9 Problem 7 To best answer this question, consider why we needed sequence numbers in the first place. We saw that the sender needs sequence numbers so that the receiver can tell if a data packet is a duplicate

More information

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Announcements No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Copyright c 2002 2017 UMaine Computer Science Department 1 / 33 1 COS 140: Foundations

More information

Chapter 3 Transport Layer

Chapter 3 Transport Layer Chapter 3 Transport Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and delete

More information

Project 2: Part 1: RPC and Locks

Project 2: Part 1: RPC and Locks Project 2: Part 1: RPC and Locks Due: 11:59PM Thursday, October 14, 2010 1 Introduction In this series of labs, you will implement a fully functional distributed file server with the Frangipani architecture

More information

Outline. Connecting to the access network: DHCP and mobile IP, LTE. Transport layer: UDP and TCP

Outline. Connecting to the access network: DHCP and mobile IP, LTE. Transport layer: UDP and TCP Outline Connecting to the access network: DHCP and mobile IP, LTE Transport layer: UDP and TCP IETF TCP/IP protocol suite User application, e.g., http with Mozilla Communication for each process on computer

More information

CSE/EE 461. Sliding Windows and ARQ. Last Time. This Time. We finished up the Network layer Internetworks (IP) Routing (DV/RIP, LS/OSPF)

CSE/EE 461. Sliding Windows and ARQ. Last Time. This Time. We finished up the Network layer Internetworks (IP) Routing (DV/RIP, LS/OSPF) CSE/EE 46 Sliding Windows and ARQ Last Time We finished up the Network layer Internetworks (IP) Routing (DV/RIP, LS/OSPF) It was all about routing: how to provide end-to-end delivery of packets. Application

More information

Computer Networks. Project 2. Project Assigned: November 14 Checkpoint: November 21 12:01 AM Due: December 04 12:01 AM. Networks - Project 2 1

Computer Networks. Project 2. Project Assigned: November 14 Checkpoint: November 21 12:01 AM Due: December 04 12:01 AM. Networks - Project 2 1 Computer Networks Project 2 Project Assigned: November 14 Checkpoint: November 21 12:01 AM Due: December 04 12:01 AM Networks - Project 2 1 Overview In this programming assignment, you will be writing

More information

The GBN sender must respond to three types of events:

The GBN sender must respond to three types of events: Go-Back-N (GBN) In a Go-Back-N (GBN) protocol, the sender is allowed to transmit several packets (when available) without waiting for an acknowledgment, but is constrained to have no more than some maximum

More information

C08a: Data Link Protocols

C08a: Data Link Protocols CISC 7332X T6 C08a: Data Link Protocols Hui Chen Department of Computer & Information Science CUNY Brooklyn College 10/16/2018 CUNY Brooklyn College 1 Data Link Layer Responsible for delivering frames

More information

Lecture 08: The Transport Layer (Part 2) The Transport Layer Protocol (TCP) Dr. Anis Koubaa

Lecture 08: The Transport Layer (Part 2) The Transport Layer Protocol (TCP) Dr. Anis Koubaa NET 331 Computer Networks Lecture 08: The Transport Layer (Part 2) The Transport Layer Protocol (TCP) Dr. Anis Koubaa Reformatted slides from textbook Computer Networking a top-down appraoch, Fifth Edition

More information

32 bits. source port # dest port # sequence number acknowledgement number not used. checksum. Options (variable length)

32 bits. source port # dest port # sequence number acknowledgement number not used. checksum. Options (variable length) Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connectionoriented transport: TCP segment

More information

EE 122: Error detection and reliable transmission. Ion Stoica September 16, 2002

EE 122: Error detection and reliable transmission. Ion Stoica September 16, 2002 EE 22: Error detection and reliable transmission Ion Stoica September 6, 2002 High Level View Goal: transmit correct information Problem: bits can get corrupted - Electrical interference, thermal noise

More information

Announcements Computer Networking. What was hard. Midterm. Lecture 16 Transport Protocols. Avg: 62 Med: 67 STD: 13.

Announcements Computer Networking. What was hard. Midterm. Lecture 16 Transport Protocols. Avg: 62 Med: 67 STD: 13. Announcements 15-441 Computer Networking Lecture 16 Transport Protocols Mid-semester grades Based on (ckpt 1 & ckpt2) + midterm + HW1 + HW2 NOTE: GRADES DO NOT REFLECT LATE PENALTIES! 25.4% of class If

More information

Lecture 12: Transport Layer TCP again

Lecture 12: Transport Layer TCP again Lecture 12: Transport Layer TCP again COMP 332, Spring 2018 Victoria Manfredi Acknowledgements: materials adapted from Computer Networking: A Top Down Approach 7 th edition: 1996-2016, J.F Kurose and K.W.

More information

Computer Networking Introduction

Computer Networking Introduction Computer Networking Introduction Halgurd S. Maghdid Software Engineering Department Koya University-Koya, Kurdistan-Iraq Lecture No.11 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and

More information

UNIT IV -- TRANSPORT LAYER

UNIT IV -- TRANSPORT LAYER UNIT IV -- TRANSPORT LAYER TABLE OF CONTENTS 4.1. Transport layer. 02 4.2. Reliable delivery service. 03 4.3. Congestion control. 05 4.4. Connection establishment.. 07 4.5. Flow control 09 4.6. Transmission

More information

Communication Networks

Communication Networks Communication Networks Prof. Laurent Vanbever Exercises week 4 Reliable Transport Reliable versus Unreliable Transport In the lecture, you have learned how a reliable transport protocol can be built on

More information

Transport Protocols for Networked Games

Transport Protocols for Networked Games Transport Protocols for Networked Games 1 TCP or UDP? 2 Why use TCP? TCP provides reliable, in-order delivery TCP goes through most firewalls, UDP does not TCP manages connection for us 3 Why not to use

More information

RPC and Threads. Jinyang Li. These slides are based on lecture notes of 6.824

RPC and Threads. Jinyang Li. These slides are based on lecture notes of 6.824 RPC and Threads Jinyang Li These slides are based on lecture notes of 6.824 Labs are based on Go language Why Golang? (as opposed to the popular alternacve: C++) good support for concurrency good support

More information

Chapter 3 outline. 3.5 connection-oriented transport: TCP segment structure reliable data transfer flow control connection management

Chapter 3 outline. 3.5 connection-oriented transport: TCP segment structure reliable data transfer flow control connection management Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP segment

More information

CS519: Computer Networks. Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing

CS519: Computer Networks. Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing : Computer Networks Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing Recall our protocol layers... ... and our protocol graph IP gets the packet to the host Really

More information

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls Problems with sockets Distributed Systems Sockets interface is straightforward [connect] read/write [disconnect] Remote Procedure Calls BUT it forces read/write mechanism We usually use a procedure call

More information

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski Operating Systems 18. Remote Procedure Calls Paul Krzyzanowski Rutgers University Spring 2015 4/20/2015 2014-2015 Paul Krzyzanowski 1 Remote Procedure Calls 2 Problems with the sockets API The sockets

More information

Performance of TCP Protocol Running over Wireless LAN Network using the Snoop Protocol

Performance of TCP Protocol Running over Wireless LAN Network using the Snoop Protocol ENSC 833 Network Protocols And Performance Final Project Presentations - Spring 2001 Performance of TCP Protocol Running over Wireless LAN Network using the Snoop Protocol Chi-ho Ng and Jack Chow cng@sierrawireless.com

More information

Section #6 Handout. B has processed this packet and updated its position of its sliding window. Everything is in terms of bytes.

Section #6 Handout. B has processed this packet and updated its position of its sliding window. Everything is in terms of bytes. 1. TCP Sequence Numbers Section #6 Handout A TCP connection has been established between hosts A and B. B receives a packet from A with the following field values shown below, Sequence: 101 Acknowledgement:

More information

Computer Networking. Reliable Transport. Reliable Transport. Principles of reliable data transfer. Reliable data transfer. Elements of Procedure

Computer Networking. Reliable Transport. Reliable Transport. Principles of reliable data transfer. Reliable data transfer. Elements of Procedure Computer Networking Reliable Transport Prof. Andrzej Duda duda@imag.fr Reliable Transport Reliable data transfer Data are received ordered and error-free Elements of procedure usually means the set of

More information

Chapter III: Transport Layer

Chapter III: Transport Layer Chapter III: Transport Layer UG3 Computer Communications & Networks (COMN) Mahesh Marina mahesh@ed.ac.uk Slides thanks to Myungjin Lee and copyright of Kurose and Ross TCP: Overview RFCs: 793,1122,1323,

More information

Persistence Schemes. Chakchai So-In Department of Computer science Washington University

Persistence Schemes. Chakchai So-In Department of Computer science Washington University Persistence Schemes Chakchai So-In Department of Computer science Washington University Outline Problems Goals General Ideas Transport persistence Future schemes/ Related Work Conclusions 4/5/2007 Washington

More information

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1 OSI Transport Layer Network Fundamentals Chapter 4 Version 4.0 1 Transport Layer Role and Services Transport layer is responsible for overall end-to-end transfer of application data 2 Transport Layer Role

More information

ETSF10 Internet Protocols Transport Layer Protocols

ETSF10 Internet Protocols Transport Layer Protocols ETSF10 Internet Protocols Transport Layer Protocols 2012, Part 2, Lecture 2.1 Kaan Bür, Jens Andersson Transport Layer Protocols Process-to-process delivery [ed.4 ch.23.1] [ed.5 ch.24.1] Transmission Control

More information

Intro to LAN/WAN. Transport Layer

Intro to LAN/WAN. Transport Layer Intro to LAN/WAN Transport Layer Transport Layer Topics Introduction (6.1) Elements of Transport Protocols (6.2) Internet Transport Protocols: TDP (6.5) Internet Transport Protocols: UDP (6.4) socket interface

More information

TCP (Part 2) Session 10 INST 346 Technologies, Infrastructure and Architecture

TCP (Part 2) Session 10 INST 346 Technologies, Infrastructure and Architecture TCP (Part 2) Session 10 INST 346 Technologies, Infrastructure and Architecture Muddiest Points Reading pseudocode Reading finite state diagrams What parts of rdt are in TCP? Goals for Today Finish up TCP

More information

Internet transport-layer protocols. Transport services and protocols. Sending and receiving. Connection-oriented (TCP) Connection-oriented

Internet transport-layer protocols. Transport services and protocols. Sending and receiving. Connection-oriented (TCP) Connection-oriented Transport services and protocols Internet -layer protocols logical communication between processes protocols run in end systems send side: breaks app messages into segments, passes to layer rcv side: reassembles

More information

Principles of Reliable Data Transfer

Principles of Reliable Data Transfer Principles of Reliable Data Transfer 1 Reliable Delivery Making sure that the packets sent by the sender are correctly and reliably received by the receiver amid network errors, i.e., corrupted/lost packets

More information

Transport Layer: outline

Transport Layer: outline Transport Layer: outline Transport-layer services Multiplexing and demultiplexing Connectionless transport: UDP Principles of reliable data transfer Connection-oriented transport: TCP Segment structure

More information

Transport Layer (TCP/UDP)

Transport Layer (TCP/UDP) Transport Layer (TCP/UDP) Where we are in the Course Moving on up to the Transport Layer! Application Transport Network Link Physical CSE 461 University of Washington 2 Recall Transport layer provides

More information

Building up to today. Remote Procedure Calls. Reminder about last time. Threads - impl

Building up to today. Remote Procedure Calls. Reminder about last time. Threads - impl Remote Procedure Calls Carnegie Mellon University 15-440 Distributed Systems Building up to today 2x ago: Abstractions for communication example: TCP masks some of the pain of communicating across unreliable

More information

Cooperative Multitasking

Cooperative Multitasking Cooperative Multitasking Cooperative Multitasking let's make the controller for the lamp in an LCD projector Lamp off Fan off evbutton Lamp on Fan on evtimeout Lamp off Fan on evbutton Code for LCD Projector

More information

CSE 123: Computer Networks Alex C. Snoeren. HW 1 due NOW!

CSE 123: Computer Networks Alex C. Snoeren. HW 1 due NOW! CSE 123: Computer Networks Alex C. Snoeren HW 1 due NOW! Automatic Repeat Request (ARQ) Acknowledgements (ACKs) and timeouts Stop-and-Wait Sliding Window Forward Error Correction 2 Link layer is lossy

More information

Flow control: Ensuring the source sending frames does not overflow the receiver

Flow control: Ensuring the source sending frames does not overflow the receiver Layer 2 Technologies Layer 2: final level of encapsulation of data before transmission over a physical link responsible for reliable transfer of frames between hosts, hop by hop, i.e. on a per link basis

More information

Transport: How Applications Communicate

Transport: How Applications Communicate Transport: How Applications Communicate Week 2 Philip Levis 1 7 Layers (or 4) 7. 6. 5. 4. 3. 2. 1. Application Presentation Session Transport Network Link Physical segments packets frames bits/bytes Application

More information

Chapter 3 Transport Layer

Chapter 3 Transport Layer Chapter 3 Transport Layer A note on the use of these Powerpoint slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see the animations;

More information

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Transport Layer. Gursharan Singh Tatla.   Upendra Sharma. 1 Transport Layer Gursharan Singh Tatla mailme@gursharansingh.in Upendra Sharma 1 Introduction The transport layer is the fourth layer from the bottom in the OSI reference model. It is responsible for message

More information

Chapter 3 Transport Layer

Chapter 3 Transport Layer Chapter 3 Transport Layer Part b Connection-Oriented Transport Transport Layer 3-1 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4

More information

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers Overview 15-441 Computer Networking TCP & router queuing Lecture 10 TCP & Routers TCP details Workloads Lecture 10: 09-30-2002 2 TCP Performance TCP Performance Can TCP saturate a link? Congestion control

More information

CSC 4900 Computer Networks: TCP

CSC 4900 Computer Networks: TCP CSC 4900 Computer Networks: TCP Professor Henry Carter Fall 2017 Project 2: mymusic You will be building an application that allows you to synchronize your music across machines. The details of which are

More information

Computer Network. Direct Link Networks Reliable Transmission. rev /2/2004 1

Computer Network. Direct Link Networks Reliable Transmission. rev /2/2004 1 Computer Network Direct Link Networks Reliable Transmission rev 1.01 24/2/2004 1 Outline Direct link networks (Ch. 2) Encoding Framing Error detection Reliable delivery Media access control Network Adapter

More information

Transport Layer Marcos Vieira

Transport Layer Marcos Vieira Transport Layer 2014 Marcos Vieira Transport Layer Transport protocols sit on top of network layer and provide Application-level multiplexing ( ports ) Error detection, reliability, etc. UDP User Datagram

More information

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 9

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 9 CMPE 150/L : Introduction to Computer Networks Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 9 1 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3

More information

Computer Networking Introduction

Computer Networking Introduction Computer Networking Introduction Halgurd S. Maghdid Software Engineering Department Koya University-Koya, Kurdistan-Iraq Lecture No.10 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and

More information

Reliable Data Transfer

Reliable Data Transfer Reliable Data Transfer Kai Shen Reliable Data Transfer What is reliable data transfer? guaranteed arrival no error in order delivery Why is it difficult? unreliable underlying communication channel, which

More information

CS4700/CS5700 Fundamentals of Computer Networks

CS4700/CS5700 Fundamentals of Computer Networks CS4700/CS5700 Fundamentals of Computer Networks Lecture 14: TCP Slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang Alan Mislove amislove at ccs.neu.edu Northeastern

More information

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 21: Network Protocols (and 2 Phase Commit)

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 21: Network Protocols (and 2 Phase Commit) CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2003 Lecture 21: Network Protocols (and 2 Phase Commit) 21.0 Main Point Protocol: agreement between two parties as to

More information

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol Transport Layer Transport Layer The transport layer is responsible for the delivery of a message from one process to another Types of Data Deliveries Client/Server Paradigm An application program on the

More information

10 minutes survey (anonymous)

10 minutes survey (anonymous) 10 minutes survey (anonymous) v Comments/Suggestions to my lecture/lab/ homework/exam v If you like this course, which part do you like? v If you don t like it, which part do you not like? Thanks! Transport

More information