1 / 16

CENG415 – Communication Networks

CENG415 – Communication Networks. Lectures 8 Reliable Data Transfer – How?. Transport layer. We will cover Transport-layer services Multiplexing and demultiplexing Connectionless transport: UDP Principles of reliable data transfer Connection-oriented transport: TCP segment structure

meryle
Download Presentation

CENG415 – Communication Networks

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CENG415 – Communication Networks Lectures 8 Reliable Data Transfer – How?

  2. Transport layer We will cover • Transport-layer services • Multiplexing and demultiplexing • Connectionless transport: UDP • Principles of reliable data transfer • Connection-oriented transport: TCP • segment structure • reliable data transfer • flow control • connection management • Principles of congestion control • TCP congestion control

  3. Rdt 3.0 Remember that packets are numbered 0, 1, 0, 1, …

  4. Rdt 3.0 Receiver acknowledge the received message. Sender manage resending if needed

  5. Performance of RDT 3.0 Example to understand performance: • Link: 1Gbps • 15 ms end-to-end propagation delay • Packet of 1KB • Usender : Utilization – Is the portion of time sender is busy sending • It is taking the sender 30msec to send 1kB packet (round trip) before being able to send another packet. • The sender can send 33kB/sec over a link with throughput of 1Gbps • The link is used at 0.027% of its capacity

  6. rdt 3.0 stop and wait operation sender receiver first packet bit transmitted, t = 0 last packet bit transmitted, t = L / R first bit arrives RTT last bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R U is the efficiency OR channel utilization factor

  7. Pipelined protocols Pipelining: sender can send more than one packet at a time In fact, sender can send as much as possible of packets. • Range of sequence numbers must be increased • All packets still to be acknowledged • buffering at sender and/or receiver (at the transportation layer) What we send to the application layer should be ordered. However, packets might not arrive in order  buffering Two generic forms of pipelined protocols: • go-Back-N • Selective repeat

  8. Pipelining: Increased utilization sender receiver first packet bit transmitted, t = 0 last bit transmitted, t = L / R • Window: Number of bits that can be sent before waiting for ACK first packet bit arrives RTT last packet bit arrives, send ACK 1 last bit of 2nd packet arrives, send ACK 2 last bit of 3rd packet arrives, send ACK 3 ACK arrives, send next packet, t = RTT + L / R If L/R << RTT and Window = 3L, then ThroughputRt = R*U = (Window/RTT)

  9. Go-back-N Strategy to acknowledge packets Sender: • k-bit sequence number in packet header • “window” of up to N, consecutive unacknowledged packets allowed • ACK(n): ACKs all packets up to, including sequence number n • “cumulative ACK”. May receive duplicate ACKs (see receiver)

  10. Go-back-N • Sender: • Define: • base: First packet in the window (all packets from 1 to base -1) • are received and acknowledged • Window: number of packets that can be transmitted at the same time without being acknowledged • timer for each packet sent • If received ACK correspond to base • update base = base + 1 • Slide the window • timeout(n): retransmit pkt n and all higher seq # pkts in window

  11. Go-back-N • Receiver: • Deliver in order packets to the upper layer • Set lastdelivered to the sequence number of the last packet delivered to the upper layer • Set expectedseqnum= lastdelivered + 1 • Always send ACK for correctly-received packet with highest in-order sequence num (last packet delivered to the upper layer) • may generate duplicate ACKs • need only remember expectedseqnum • out-of-order packets: • discard (don’t buffer) -> no receiver buffering • Re-acknowledge packet with highest in-order sequence number

  12. Go-back-N

  13. 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 unACKedpkt • Sender window • N consecutive seq #’s • again limits seq #s of sent, unACKedpkts

  14. Selective repeat

  15. Selective repeat • Receiver • pkt n in [rcvbase, rcvbase+N-1] • send ACK(n) • out-of-order: buffer • in-order: • deliver (also deliver buffered, in-order pkts), advance window to next not-yet-received pkt • pkt n in [rcvbase-N,rcvbase-1] • ACK(n) • otherwise: • ignore Sender data from above : • if next available seq # in window, send pkt timeout(n): • resend pkt n, restart timer ACK(n) in [sendbase,sendbase+N]: • mark pkt n as received • if n smallest unACKedpkt, advance window base to next unACKedseq #

  16. Selective repeat

More Related