The Transport Layer introduction fundamental problems in networking

Slides:



Advertisements
Similar presentations
Transport Layer Transport Layer. Reliable data transfer: getting started send side receive side rdt_send(): called from above, (e.g., by app.).
Advertisements

EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
1 Transport Layer goals: r understand principles behind transport layer services: m multiplexing/demultiplexing m reliable data transfer m flow control.
Reliable Data Transfer#1#1 Reliable Data Transfer.
Gursharan Singh Tatla Transport Layer 16-May
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
The Transport Layer  introduction  fundamental problems in networking  communicating reliably over an unreliable channel  congestion and flow control.
3: Transport Layer 3a-1 8: Principles of Reliable Data Transfer Last Modified: 10/15/2015 7:04:07 PM Slides adapted from: J.F Kurose and K.W. Ross,
14-1 Last time □ Mobility in Cellular networks ♦ HLR, VLR, MSC ♦ Handoff □ Transport Layer ♦ Introduction ♦ Multiplexing / demultiplexing ♦ UDP.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
1 of 44 Week 2 Lecture 2 – Network Layers Transport Layer – Example: TCP/UDP.
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!
CS 3830 Day 15 Introduction 1-1. Announcements r Quiz 3: Wednesday, Oct 10 r Prog3 due (in 1DropBox) on Wednesday, Oct 10 r Prog4: m Parts A and B m Work.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
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,
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Principles of reliable data transfer 0.
Ch 3. Transport Layer Myungchul Kim
Ch 3. Transport Layer Myungchul Kim
Roadmap  Introduction to Basics  Computer Network – Components | Classification  Internet  Clients and Servers  Network Models  Protocol Layers.
OSI Model OSI MODEL. Communication Architecture Strategy for connecting host computers and other communicating equipment. Defines necessary elements for.
OSI Model OSI MODEL.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Chapter 3 Transport Layer
Introduction to Networks
Chapter 3 Transport Layer
The Transport Layer Implementation Services Functions Protocols
Transport Layer Slides are originally from instructor: Carey Williamson at University of Calgary Very minor modification are made Notes derived from “Computer.
Lecture (2).
Chapter 3 outline 3.1 Transport-layer services
Chapter 3 outline 3.1 transport-layer services
Process-to-Process Delivery, TCP and UDP protocols
CMPT 371 Data Communications and Networking
Chapter 6: Transport Layer (Part I)
Internet Protocol: Connectionless Datagram Delivery
Session 8 INST 346 Technologies, Infrastructure and Architecture
Reliable Data Transfer Reliable Data Transfer.
Chapter 3 Transport Layer
Introduction to Networks
Introduction of Transport Protocols
Chapter 3: Transport Layer
Transport Layer Unit 5.
Transport Layer Our goals:
EEC-484/584 Computer Networks
Chapter 3: Transport Layer
Process-to-Process Delivery:
CS412 Introduction to Computer Networking & Telecommunication
Chapter 3 Transport Layer
EEC-484/584 Computer Networks
EEC-484/584 Computer Networks
EEC-484/584 Computer Networks
CPEG514 Advanced Computer Networkst
Net 323 D: Networks Protocols
OSI Model OSI MODEL.
Chapter 3 outline 3.1 transport-layer services
EEC-484 Computer Networks
8: Principles of Reliable Data Transfer
Chapter 3: Transport Layer
EEC-484/584 Computer Networks
Chapter 3: Transport Layer
Chapter 5 Transport Layer Introduction
EEC-484/584 Computer Networks
Chapter 3: Transport Layer
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
CS 5565 Network Architecture and Protocols
Transport Layer 9/22/2019.
Transport Layer Our goals:
Chapter 3: Transport Layer
Presentation transcript:

The Transport Layer introduction fundamental problems in networking communicating reliably over an unreliable channel congestion and flow control setting up/tearing down a connection multiplexing and addressing fragmentation and reassembly quality of service implementation issues case studies: TCP, UDP, ATM, XTP Tannenbaum: 6.1, 3.3, 3.4, 3.5.1, 6.2, 6.3, 3.2, 6.4, 6.5 Ross/Kurose: 3

Transport Layer: many interesting issues many fundamentally important networking issues show up how to provide reliable communication over an unreliable channel why/how/when should a send restrain itself: flow and congestion control how to agree to communicate (and stop) in presence of lost, delayed, reordered messages how to deal with large data: fragmentation and reassembly how to guarantee performance when resources statistically shared

Transport Layer: services provided end-host to end-host delivery of data aspects of transport service: error detection and recovery: errors (lost or corrupted data) detected at receiver? Detected error corrected? timing: timing between data at sender preserved when delivered at receiver? framing: data unit boundaries (e.g., “message”) preserved? common transport service models: connectionless: datagram, no promises, error detection optional, no error recovery, no timing connection-oriented: error recovery, no timing circuit-like: timing preserved, no error recovery, optional error detection

Internet, OSI, ATM service models Note: why multiple protocols for same service? ATM: OSI:

Reliable Communication over an unreliable channel Goal: design a simple “reliable” data transfer protocol that: reliably delivers data between upper layer applications/protocols uses a network layer that is “unreliable”

Interaction with upper and lower layers sender upper layer: transport layer invoked from above by call to rdt_send(data) rdt: reliable data transfer data: to be delivered to receiver upper layer receiver upper layer: transport layer delivers data to upper layer via call to deliver_data(data) sender lower layer: call to udt_send(packet) will pass packet to lower layer udt: unreliable data transfer

Interaction with upper and lower layers receiver lower layer: delivers packet to transport layer via call to rdt_rcv(packet) Notes: data is unit of data crossing upper boundary packet is unit of data crossing lower boundary packet = data with some added fields

Reliable data transfer: medium assumptions Assumptions about network layer service underlying medium (network) connecting sender and receiver may have many links, routers, networks! can packets be lost, corrupted, delayed, reordered by network? A first set of media assumptions no loss, no corruption, no reordering

Reliable data transfer: medium assumptions A first try at a protocol (rdt1.0) rdt_send(data) { make_packet(packet,data); udt_send(packet); } rdt_rcv(packet) extract(packet,data); deliver_data(data);

How to specify a protocol? How to describe/specify a protocol? English (why a good/bad idea)? programming language or pseudocode (good/bad?) graph-based methods: Petri net models and finite state machines A finite state machine (FSM) consists of: set of states for each protocol entity each entity has its own set of states state “records” all relevant past history of entity entity response to each “event” in state must be uniquely defined set of labeled directed arcs between states represent changes in state arc labelling:

FSM for rdt1.0

A second set of media assumptions packets sent to network can be corrupted but neither lost nor reordered any part of packet can be corrupted corrupt(P), notcorrupt(P) return T if packet is (is not) corrupt Questions: how does rdt1.0 fail under new media assumptions? new protocol mechanisms required (rdt2.0) checksum ACK, NACK

Protocol rdt2.0

Q: will rdt2.0 always work given assumptions?

Protocol rdt2.1 approaches to fix rdt2.0 1. 2. 3.

Protocol rdt2.1: sender

Protocol rdt2.1: receiver

A third set of media assumptions packets sent to network layer can be lost, corrupted, but not reordered new protocol mechanisms required (rdt3.0): 1. 2. 3.

Protocol rdt3.0: sender

Operation of rdt3.0: no errors

Operation of rdt3.0: lost packets

The Alternating bit protocol protocol rdt3.0 known as Alternating Bit (AB) protocol stop and wait ARQ ARQ: automatic repeat/request half-duplex-like communication user of timers sequence numbers error detection bits required to provide reliable communication in presence of lost or corrupted packets Q: what if channel can reorder packets??

Pipelined error recovery protocols large bandwidth-delay product: propagation delays long with respect to packet transmission time e.g.: 1 Gbit/sec link, 1Kbyte packet implies 8 microsecs to transmit into wire t_trans = (8Kbits/packet)/(10**9 bits/sec) = 8 microsecs cross country speed of light propagation delay is 15 msecs channel utilization: fraction of time sender (channel at sender) is busy transmitting U_sender = 0.008msecs/30.016msecs = 0.000266 sender only busy .02% of time! Sender throughput is 266Kbits/sec even with 1G link protocol (not channel capacity) constrains performance (throughput)

Pipelined error recovery protocols solution to low throughput with long propagation delays: pipelining allow multiple unacknowledged packets to be in-transit between sender and receiver