EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.

Slides:



Advertisements
Similar presentations
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
Advertisements

Transport Layer3-1 Homework r Chapter 2#10,13-18 r Due Wed September 17.
Transport Layer3-1 Pipelined protocols Pipelining: sender allows multiple, “in-flight”, yet-to- be-acknowledged pkts m range of sequence numbers must be.
Introduction 1 Lecture 12 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Transport Layer 4 Slides from Kurose and Ross
Chapter 3 outline 3.1 transport-layer services
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
The Future r There will be a Wireshark TCP homework up on the wiki later today. It will be due Wednesday. r The next test is coming soon – next Wednesday????
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
1 Outline r Transport-layer services r Multiplexing and demultiplexing r Connectionless transport: UDP r Principles of reliable data transfer.
EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer3-1 Data Communication and Networks Lecture 6 Reliable Data Transfer October 12, 2006.
Announcement Project 1 due last night, how is that ? Project 2 almost ready, out tomorrow, will post online –Much harder than project 1, start early!
Announcement Project 1 due last night, how is that ? Homework 1 grade, comments out –Will be discussed in the next lecture Homework 2 out Project 2 almost.
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 9.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
Transport Layer3-1 Reliable Data Transfer. Transport Layer3-2 Principles of Reliable data transfer r important in app., transport, link layers r top-10.
1 Outline r Transport-layer services r Multiplexing and demultiplexing r Connectionless transport: UDP r Principles of reliable data transfer.
Announcement Project 2 out –Much harder than project 1, start early! Homework 2 due next Tu.
EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
3-1 Sect. 3.4 Principles of reliable data transfer Computer Networking: A Top Down Approach Featuring the Internet, 1 st edition. Jim Kurose, Keith Ross.
CPSC 441: Reliable Transport1 Reliable Data Transfer Instructor: Carey Williamson Office: ICT Class.
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Announcement Homework 1 graded Homework 2 out –Due in a week, 1/30 Project 2 problems –Minet can only compile w/ old version of gcc (2.96). –Only tlab-login.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley,
2: Application Layer 1 1DT066 Distributed Information System Chapter 3 Transport Layer.
Some slides are in courtesy of J. Kurose and K. Ross Review of Previous Lecture r Transport-layer services r Multiplexing and demultiplexing r Connectionless.
9/30/ /2/2003 The Transport Layer September 30-October 2, 2003.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 
Transport Layer1 Reliable Transfer Ram Dantu (compiled from various text books)
CSCI 3335: C OMPUTER N ETWORKS C HAPTER 3 T RANSPORT L AYER Vamsi Paruchuri University of Central Arkansas Some.
2: Transport Layer 21 Transport Layer 2. 2: Transport Layer 22 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Transport Layer 3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m sockets m reliable data transfer m.
15-1 Last time □ Reliable Data Transfer ♦ Provide rdt over unreliable network layer ♦ FSM model ♦ rdt 1.0: rdt over reliable channels ♦ rdt 2.0: rdt over.
Transport Layer 3-1 From Computer Networking: A Top Down Approach Featuring the Internet by Jim Kurose, Keith Ross Addison-Wesley, A note on the use of.
rdt2.2: a NAK-free protocol
Part 3: Transport Layer: Reliable Data Transfer CSE 3461/5461 Reading: Section 3.4, Kurose and Ross 1.
Transport Layer3-1 rdt2.1: sender, handles garbled ACK/NAKs Wait for call 0 from above sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_send(data)
Transport Layer 3-1 Chapter 3 outline 3.4 Principles of reliable data transfer.
September 24 th, 2013 CS1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights.
1 John Magee 10 February 2014 CS 280: Transport Layer: Reliable Data Transfer Most slides adapted from Kurose and Ross, Computer Networking 6/e Source.
Prof. Younghee Lee 1 1 Computer Networks u Lecture 5: Transport services and protocols Prof. Younghee Lee * Some part of this teaching materials are prepared.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Transport Layer Our goals:
9: Pipelined Protocols and RTT Transport Layer 3-1 Slides adapted from: J.F Kurose and K.W. Ross,
Important r Midterm will be on m FRIDAY, Feb. 12th 1.
Quiz #1. Transport Layer 3-2 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March.
Introduction 1 Lecture 11 Transport Layer (Reliable Data Transfer) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
Application Layer 2-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
1 COMP 431 Internet Services & Protocols The Transport Layer Pipelined Transport Protocols Jasleen Kaur March 29, 2016.
Chapter 3 Transport Layer
Chapter 3 outline 3.1 transport-layer services
Last time Reliable Data Transfer
rdt2.2: a NAK-free protocol
EEC-484/584 Computer Networks
EEC-484/584 Computer Networks
EEC-484/584 Computer Networks
rdt2.2: a NAK-free protocol
rdt2.2: a NAK-free protocol
EEC-484 Computer Networks
rdt2.2: a NAK-free protocol
rdt2.2: a NAK-free protocol
9: Pipelined Protocols and RTT
Chapter 3 Transport Layer
Lecture 5 – Chapter 3 CIS 5617, Spring2019 Anduo Wang
rdt2.2: a NAK-free protocol
Presentation transcript:

EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer Networking book)

10/3/2015 EEC-484/584: Computer Networks Outline Reminder  No class next Monday (Columbus Day) Reliable data transfer Pipelining protocols UDP Wenbing Zhao

rdt3.0: channels with errors and loss New assumption: underlying channel can also lose packets (data or acks)  Checksum, seq. #, Acks, retransmissions will be of help, but not enough Approach: sender waits “reasonable” amount of time for ACK Retransmits if no ACK received in this time If pkt (or ACK) just delayed (not lost):  Retransmission will be duplicate, but use of seq. #’S already handles this  Receiver must specify seq # of pkt being acked Requires countdown timer Wenbing Zhao 10/3/2015 EEC-484/584: Computer Networks

rdt3.0 sender sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) start_timer rdt_send(data) Wait for ACK0 rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,1) ) Wait for call 1 from above sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt) start_timer rdt_send(data) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,0) ) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1) stop_timer udt_send(sndpkt) start_timer timeout udt_send(sndpkt) start_timer timeout rdt_rcv(rcvpkt) Wait for call 0from above Wait for ACK1  rdt_rcv(rcvpkt)    Wenbing Zhao 10/3/2015 EEC-484/584: Computer Networks

rdt3.0 in action Wenbing Zhao 10/3/2015 EEC-484/584: Computer Networks

rdt3.0 in action Wenbing Zhao 10/3/2015 EEC-484/584: Computer Networks

Performance of rdt3.0 rdt3.0 works, but performance stinks ex: 1 Gbps link, 15 ms prop. delay, 8000 bit packet: m U sender : utilization – fraction of time sender busy sending m 1KB pkt every 30 msec -> 33kB/sec thruput over 1 Gbps link m network protocol limits use of physical resources! Wenbing Zhao 10/3/2015 EEC-484/584: Computer Networks

Pipelined Protocols Pipelining: sender allows multiple, “in-flight”, yet-to-be- acknowledged pkts  range of sequence numbers must be increased  buffering at sender and/or receiver Two generic forms of pipelined protocols: go-back-N, selective repeat 10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks Pipelining: Increased Utilization first packet bit transmitted, t = 0 senderreceiver RTT last bit transmitted, t = L / R first packet bit arrives last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R last bit of 2 nd packet arrives, send ACK last bit of 3 rd packet arrives, send ACK Increase utilization by a factor of 3! 10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks Pipelining Protocols 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 timer for oldest unacked packet  If timer expires, retransmit all unacked packets Selective Repeat: big pic Sender can have up to N unacked packets in pipeline Rcvr acks individual packets Sender maintains timer for each unacked packet  When timer expires, retransmit only unack packet 10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks Go-Back-N Sender: k-bit seq # in pkt header “window” of up to N consecutive unack’ed pkts allowed r ACK(n): ACKs all pkts up to, including seq # n - “cumulative ACK” m may receive duplicate ACKs (see receiver) r timer for oldest in-flight pkt r timeout(n): retransmit pkt n and all higher seq # pkts in window 10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks GBN: Sender Extended FSM Wait start_timer udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) … udt_send(sndpkt[nextseqnum-1]) timeout rdt_send(data) if (nextseqnum < base+N) { sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) // start timer if first unacked pkt start_timer nextseqnum++ } else refuse_data(data) base = getacknum(rcvpkt)+1 If (base == nextseqnum) // no more unacked pkts stop_timer else start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) base=1 nextseqnum=1 rdt_rcv(rcvpkt) && corrupt(rcvpkt)  10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks GBN: Receiver Extended FSM ACK-only: always send ACK for correctly-received pkt with highest in-order seq #  may generate duplicate ACKs  need only remember expectedseqnum out-of-order pkt:  discard (don’t buffer) -> no receiver buffering!  Re-ACK pkt with highest in-order seq # Wait udt_send(sndpkt) default rdt_rcv(rcvpkt) && notcurrupt(rcvpkt) && hasseqnum(rcvpkt,expectedseqnum) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(expectedseqnum,ACK,chksum) udt_send(sndpkt) expectedseqnum++ expectedseqnum=1 sndpkt = make_pkt(expectedseqnum,ACK,chksum)  10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks GBN in action 10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks Selective Repeat Receiver individually acknowledges all correctly received pkts  Buffers pkts, as needed, for eventual in-order delivery to upper layer Sender only resends pkts for which ACK not received  Sender timer for each unacked pkt Sender window  N consecutive seq #’s  Again limits seq #s of sent, unacked pkts 10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks Selective Repeat: Sender, Receiver Windows 10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks Selective Repeat data from above : if next available seq # in window, send pkt timeout(n): resend pkt n, restart timer ACK(n) in [sendbase,sendbase+N-1]: mark pkt n as received if n smallest unACKed pkt, advance window base to next unACKed seq # Sender pkt n in [rcvbase, rcvbase+N-1] r send ACK(n) r out-of-order: buffer r in-order: deliver (also deliver buffered, in-order pkts), advance window to next not- yet-received pkt pkt n in [rcvbase-N,rcvbase-1] r ACK(n) otherwise: r ignore Receiver10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks Selective Repeat In Action 10/3/2015 Wenbing Zhao

EEC-484/584: Computer Networks Selective Repeat: Dilemma Example: seq #’s: 0, 1, 2, 3 window size=3 receiver sees no difference in two scenarios! incorrectly passes duplicate data as new in (a) Q: what relationship between seq # size and window size? 10/3/2015 Wenbing Zhao

10/3/2015 EEC-484/584: Computer Networks Non-Sequential Receive Problem The problem is caused by the overlap of sequence number between the new receiving window and the old receiving window Overlap Wenbing Zhao

10/3/2015 EEC-484/584: Computer Networks Non-Sequential Receive Problem Solution:  make sure no overlap when receiver advances its window  Make window size w =1/2 range of seq numbers No Overlap Wenbing Zhao

10/3/2015 EEC-484/584: Computer Networks UDP: User Datagram Protocol “No frills,” “bare bones” Internet transport protocol “Best effort” service, UDP segments may be:  Lost  Delivered out of order to app Connectionless:  No handshaking between UDP sender, receiver  Each UDP segment handled independently of others Wenbing Zhao

10/3/2015 EEC-484/584: Computer Networks Why is There a UDP? No connection establishment (which can add delay) Simple: no connection state at sender and receiver Small segment header No congestion control: UDP can blast away as fast as desired Wenbing Zhao

10/3/2015 EEC-484/584: Computer Networks UDP Often used for streaming multimedia apps  Loss tolerant  Rate sensitive Other UDP uses  DNS  SNMP Reliable transfer over UDP: add reliability at application layer source port #dest port # 32 bits Application data (message) UDP segment format length checksum Length, in bytes of UDP segment, including header Wenbing Zhao

10/3/2015 EEC-484/584: Computer Networks UDP Checksum Sender: treat segment contents as sequence of 16-bit integers checksum: addition (1’s complement sum) of segment contents sender puts checksum value into UDP checksum field Receiver: compute checksum of received segment check if computed checksum equals checksum field value:  NO - error detected  YES - no error detected. But maybe errors nonetheless? Goal: detect “errors” (e.g., flipped bits) in transmitted segment Wenbing Zhao

10/3/2015 EEC-484/584: Computer Networks TCP: Overview Full duplex data:  Bi-directional data flow in same connection  MSS: maximum segment size Connection-oriented:  Handshaking (exchange of control msgs) init’s sender, receiver state before data exchange Flow controlled:  Sender will not overwhelm receiver Point-to-point:  One sender, one receiver Reliable, in-order byte steam:  No “message boundaries” Pipelined:  TCP congestion and flow control set window size Send & receive buffers Wenbing Zhao

10/3/2015 EEC-484/584: Computer Networks TCP: Overview TCP connection is byte stream, not message stream, no message boundaries TCP may send immediately or buffer before sending Receiver stores the received bytes in a buffer Wenbing Zhao

10/3/2015 EEC-484/584: Computer Networks Wenbing Zhao TCP Segment Structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement number Receive window Urg data pnter checksum F SR PAU head len not used Options (variable length) URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) # bytes rcvr willing to accept counting by bytes of data (not segments!) Internet checksum (as in UDP) A TCP segment must fit into an IP datagram!

10/3/2015 EEC-484/584: Computer Networks Wenbing Zhao The TCP Segment Header Source port and destination port: identify local end points of the connection  Source and destination end points together identify the connection Sequence number: identify the byte in the stream of data that the first byte of data in this segment represents Acknowledgement number: the next sequence number that the sender of the ack expects to receive  Ack # = Last received seq num + 1  Ack is cumulative: an ack of 5 means 0-4 bytes have been received TCP header length – number of 32-bit words in header

10/3/2015 EEC-484/584: Computer Networks Wenbing Zhao The TCP Segment Header URG – indicates urgent pointer field is set Urgent pointer – points to the seq num of the last byte in a sequence of urgent data ACK – acknowledgement number is valid SYN – used to establish a connection  Connection request: ACK = 0, SYN = 1  Connection confirm: ACK=1, SYN = 1 FIN – release a connection, sender has no more data RST – reset a connection that is confused PSH – sender asked to send data immediately

10/3/2015 EEC-484/584: Computer Networks Wenbing Zhao The TCP Segment Header Receiver window size – number of bytes that may be sent beyond the byte acked Checksum – add the header, the data, and the conceptual pseudoheader as 16-bit words, take 1 ’ s complement of sum  For more info: Options – provides a way to add extra facilities not covered by the regular header  E.g., communicate buffer sizes during set up

10/3/2015 EEC-484/584: Computer Networks Wenbing Zhao TCP Sequence Numbers and ACKs Sequence numbers:  byte stream “number” of first byte in segment’s data ACKs:  seq # of next byte expected from other side  cumulative ACK Host A Host B Seq=42, ACK=79, data = ‘C’ Seq=79, ACK=43, data = ‘C’ Seq=43, ACK=80 User types ‘C’ host ACKs receipt of echoed ‘C’ host ACKs receipt of ‘C’, echoes back ‘C’ time simple telnet/ssh scenario