The Transport Layer De/Multiplexing, Reliability

Slides:



Advertisements
Similar presentations
Transport Layer3-1 Transport Overview and UDP. Transport Layer3-2 Goals r Understand transport services m Multiplexing and Demultiplexing m Reliable data.
Advertisements

Introduction 1-1 Chapter 3 Transport Layer Intro and Multiplexing Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley.
CPSC 441: Intro, UDP1 Transport Layer Instructor: Carey Williamson Office: ICT Class Location:
Computer Communication Digital Communication in the Modern World Transport Layer Multiplexing, UDP
Chapter 3: Transport Layer
Transport Layer3-1 Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
Lecture 8 Chapter 3 Transport Layer
CPSC 441: Intro, UDP1 Instructor: Anirban Mahanti Office: ICT Class Location: ICT 121 Lectures: MWF 12:00 – 12:50 Notes.
1 Internet transport-layer protocols r reliable, in-order delivery (TCP) m congestion control m flow control m connection setup r unreliable, unordered.
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 Electronic Mail: SMTP, POP3, IMAP DNS Socket programming with TCP.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
8-1 Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer m flow.
Transport Layer Transport Layer. Transport Layer 3-2 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet,
Previous Lecture r P2P file sharing r Socket programming with TCP r Socket programming with UDP.
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Review: –What is AS? –What is the routing algorithm in BGP? –How does it work? –Where is “policy” reflected in BGP (policy based routing)? –Give examples.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 12 Omar Meqdadi Department of Computer Science and Software Engineering University.
CS 1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Jack Lange.
Network LayerII-1 RSC Part III: Transport Layer 1. Basic Concepts Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are,
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 All.
Transport Layer and UDP Tahir Azim Ref:
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 Part.
Chapter 3 Transport Layer
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
Transport Layer3-1 Chapter 3 Transport Layer These ppt slides are originally from the Kurose and Ross’s book. But some slides are deleted and added for.
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 A.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley,
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
Transport Layer1 Ram Dantu (compiled from various text books)
1 Transport Layer Lecture 7 Imran Ahmed University of Management & Technology.
Lecture91 Administrative Things r Return homework # 1 r Review some problems in homework # 1 r Questions about grading? Yona r WebCT for CSE245 is working!
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July A.
Transport Layer Goals: Overview:
Transport Layer 3-1 Chapter 3 Outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP.
Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
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,
Transport Layer 3-1 Internet Transport Layer Lecture 8 Dr. Najla Al-Nabhan.
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.
MULTIPLEXING/DEMULTIPLEXING, CONNECTIONLESS TRANSPORT.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
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.
Introduction 1-1 source application transport network link physical HtHt HnHn M segment HtHt datagram destination application transport network link physical.
2: Transport Layer 11 Transport Layer 1. 2: Transport Layer 12 Part 2: Transport Layer Chapter goals: r understand principles behind transport layer services:
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
CSEN 404 Transport Layer I Amr El Mougy Lamia Al Badrawy.
Chapter 3 Transport Layer
Chapter 3 Transport Layer
Introduction to Networks
Chapter 3 Transport Layer
Transport Layer Slides are originally from instructor: Carey Williamson at University of Calgary Very minor modification are made Notes derived from “Computer.
Chapter 3 outline 3.1 Transport-layer services
06- Transport Layer Transport Layer.
Chapter 3 Transport Layer
CS 1652 Jack Lange University of Pittsburgh
Introduction to Networks
Transport Layer Our goals:
September 19th, 2013 CS1652 Jack Lange University of Pittsburgh
Transport Layer Our goals:
Chapter 3 Transport Layer
Chapter 5 Transport Layer Introduction
Chapter 5 Transport Layer Introduction
Chapter 3: Transport Layer
Transport Protocols: TCP Segments, Flow control and Connection Setup
Computer Networks Protocols
Chapter 3 Transport Layer
Transport Layer Our goals:
Presentation transcript:

The Transport Layer De/Multiplexing, Reliability CS 352, Lecture 6 http://www.cs.rutgers.edu/~sn624/352-S19 Srinivas Narayana (slides heavily adapted from text authors’ material)

This lecture: Transport Application HTTPS … FTP HTTP SMTP DNS TCP UDP IP 802.11 X.25 ATM Transport Network Host-to-Net

Transport services and protocols application transport network data link physical Provide logical communication between app processes running on different hosts Transport protocols run @ hosts send side: breaks app messages into segments, passes to network layer recv side: reassembles segments into messages, passes to app layer More than one transport protocol available to apps Internet: TCP and UDP application transport network data link physical

Transport vs. network layer Household analogy: 12 kids sending letters to 12 kids processes = kids app messages = letters in envelopes hosts = houses transport protocol = Alice and Bob who de/mux to in-house siblings network-layer protocol = postal service Network layer: logical communication between hosts Transport layer: logical communication between processes relies on and enhances, network layer services

Internet transport-layer protocols application transport network data link physical Reliable, in-order delivery (TCP) congestion control flow control connection setup Unreliable, unordered delivery: UDP no-frills extension of “best- effort” IP Services not available: delay guarantees bandwidth guarantees network data link physical network data link physical logical end-end transport network data link physical network data link physical network data link physical network data link physical application transport network data link physical

Layering: in terms of packets send(data) receive(data) Other apps Other apps Application port port Operating System IP Data Port # Src, Dst IP addr Host-to-Net Addresses (S, D)

UDP: User Datagram Protocol [RFC 768] “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 Why is there a UDP? no connection establishment (which can add delay) simple: no connection state at sender, receiver small segment header no congestion control: UDP can blast away as fast as desired

UDP’s uses Often used for streaming multimedia apps loss tolerant Delay sensitive Other UDP uses: need “lightweight” DNS SNMP If you want reliable transfer over UDP, you must add reliability at application layer Can implement application-specific error recovery 32 bits source port # dest port # length checksum Length, in bytes of UDP segment, including header Application data (message) UDP segment format

How demultiplexing works 32 bits Host receives IP datagrams Datagram contains a transport- level segment each segment has source IP address, destination IP address each segment has source, destination port number Host uses IP addresses & port numbers to direct segment to appropriate socket source port # dest port # other header fields application data (message) TCP/UDP segment format

Connectionless demultiplexing Create sockets with host-local port numbers to receive data // Example: Java UDP socket DatagramSocket socket1 = new DatagramSocket(12534); When creating data to send into UDP socket, you must specify (dest IP address, dest port number) When host receives UDP segment: checks destination port number in segment directs UDP segment to socket with that port number IP datagrams with different source IP addresses and/or source port numbers directed to same socket

UDP client + server (Python API) UDPsender(): try: ssd=socket.socket(socket.AF_INET, socket.SOCK_DGRAM) except socket.error as err: exit() # Define the port on which you want to send to the receiver RPort = 50007 hisip=socket.gethostbyname(“ilab.cs.rutgers.edu”) receiver_binding=(hisip, RPort) MESSAGE="hello world" msg=MESSAGE.encode('utf-8’) ssd.sendto(msg, receiver_binding) # no “connection” to other side needed before sending data! # Close the sender socket ssd.close() UDPreceiver(): try: rsd=socket.socket(socket.AF_INET, socket.SOCK_DGRAM) except socket.error as err: exit() # Define the port on which you want to receive from the server Rport = 50007 myip = socket.gethostbyname(socket.gethostname()) # connect to the server on local machine server_binding=(myip, Rport) rsd.bind(server_binding) data, addr = rsd.recvfrom(1024) # no need to “accept” a connection from other side before receiving data! print(data.decode("utf-8")) # Close the receiver socket rsd.close()

UDP Checksum compute checksum of received segment Problem: detect “errors” (e.g., flipped bits) in transmitted segment Solution principle: compute a function over data, store it along with data. 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.

UDP checksum Example Note: when adding numbers, a carryout from the most significant bit needs to be added to the result Example: add two 16-bit integers 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 wraparound sum checksum

Internet Checksum Example Complement of the sum is stored in the checksum field At the receiver, all the byte fields are added along with the checksum Sum + checksum must be all 1s All 1s, No error else discard packet UDP checksum is optional in IPv4 UPD checksum is mandatory in IPv6

UDP summary A thin shim around best-effort IP Provides basic multiplexing/demultiplexing for applications Basic error detection (bit flips) using checksums

Reliable data transfer

Reliable Data Transfer Problem: Reliability Applications want an abstraction of a reliable link even though packets can be corrupted or get lost. Where can packets be corrupted or lost? In the network At the receiver Solution: keep track of packets reaching other side

Reliability support Sender needs to know if a packet was corrupted or lost How? Acknowledgements (ACKs) Positive ACKs and negative ACKs (NAKs) Sender needs to retransmit on receiving a negative ACK But what if packets are lost? Timeouts Remember, ACKs can also get lost!

Reliable delivery algorithms for transport Consider a series of increasingly complex (and realistic) networks “Stop and wait” protocols An ideal network without bit errors or packet loss Channels with bit errors Channels with packet losses Pipelined data transfer (“sliding window protocols”) Go Back N Selective Repeat

Transport in an ideal network Assumptions: Error free transmission link, Infinite buffer at the receiver No acknowledgement of frames necessary Since the data link is error-free and the receiver can buffer as many frames as it likes, no frame will ever be lost

Stop-and-wait: normal operation Packet Length = L; Bandwidth =R; RTT = 2*Prop Delay sender receiver first packet bit transmitted, t = 0 last packet bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R

Stop-and-wait: packet corrupted Packet Length = L; Bandwidth =R; RTT = 2*Prop Delay sender receiver first packet bit transmitted, t = 0 last packet bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK NACK ACK arrives, send next packet, t = RTT + L / R

Stop-and-wait: packet lost sender receiver first packet bit arrives Timeout last packet bit arrives, send ACK

Stop-and-wait: ACK lost! sender receiver Timeout Packet retransmission

Stop-and-wait: ACKs may be delayed! sender receiver Timeout Timeout too short Duplicate Transmission

Stop-and-wait: Detecting duplicates sender receiver Timeout Timeout too short Duplicate Transmission Ack0 1 Ack1

Performance of stop and wait example: 1 Gbps link, 1.5 ms end to end prop. delay, 1 KB packet: T transmit = 8kb/pkt 10**9 b/sec = 8 microsec U sender: utilization – fraction of time sender busy sending 1KB pkt every 3 msec -> 330kB/sec throughput over 1 Gbps link network protocol limits use of physical resources! L (packet length in bits) R (transmission rate, bps)

Bandwidth-delay product Continuously send data until first ACK How much? BW*RTT Known as Bandwidth delay product Number of packets N = BW*RTT/Packet size

Pipelined protocols Pipelining: sender allows multiple, “in-flight”, yet-to- be-acknowledged pkts

Pipelining Example: increased utilization sender receiver first packet bit transmitted, t = 0 last bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK last bit of 2nd packet arrives, send ACK last bit of 3rd packet arrives, send ACK ACK arrives, send next packet, t = RTT + L / R Increase utilization by a factor of 3!

Reliable transmission & Flow Control What to do when there is a packet loss? On the link (in the network) At the receiver (buffer overflow) Need to recoup losses What happens if the packet is lost in the network? A random event, retransmit What happens if the sender tries to transmit faster than the receiver can accept? Data will be lost unless flow control is implemented

Flow control in an ideal network (cont’d) Slow Joe Fast Frank Infinite bucket