Application. Transport. Network. Link. Physical

Similar documents
CNT 6885 Network Review on Transport Layer

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

CC451 Computer Networks

Chapter 3 Transport Layer

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

Suprakash Datta. Office: CSEB 3043 Phone: ext Course page:

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

CS 4390 Computer Networks. Transport Services and Protocols

CSE 4213: Computer Networks II

Chapter 6 Transport Layer

Chapter 3 Transport Layer

Lecture 8. TCP/IP Transport Layer (2)

Chapter 3: Transport Layer. Chapter 3 Transport Layer. Chapter 3 outline. Transport services and protocols

Transport Layer. Chapter 3: Transport Layer

Lecture 5. Transport Layer. Transport Layer 1-1

CSEN 503 Introduction to Communication Networks. Mervat AbuElkheir Hana Medhat Ayman Dayf. ** Slides are attributed to J. F.

Chapter 3 Transport Layer

Chapter 3 Transport Layer

CSC 401 Data and Computer Communications Networks

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

CMPE 80N: Introduction to Networking and the Internet

Chapter III: Transport Layer

Transport protocols. Transport Layer 3-1

RSC Part III: Transport Layer 3. TCP

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3- parte B outline

Announcement. Homework 1 due last night, how is that? Will discuss some problems in the lecture next week

Chapter III: Transport Layer

CMSC 332 Computer Networks Transport Layer

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, Development of reliable protocol Sliding window protocols

CC451 Computer Networks

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, steam: r Development of reliable protocol r Sliding window protocols

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

Lecture 11. Transport Layer (cont d) Transport Layer 1

CSCE 463/612 Networks and Distributed Processing Spring 2018

CSC 4900 Computer Networks: Transport Layer

Master Course Computer Networks IN2097

Computer Communication Networks Midterm Review

CSC 4900 Computer Networks: TCP

Chapter 3: Transport Layer Part A

CSC358 Week 4. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

LECTURE 3 - TRANSPORT LAYER

Chapter III: Transport Layer

Chapter 3: Transport Layer

COSC4377. Useful Linux Tool: screen

Lecture 9: Transpor Layer Overview and UDP

Development of reliable protocol Sliding window protocols. C = channel capacity in bps I = interrupt/service time + propagation delay

By Ossi Mokryn, Based also on slides from: the Computer Networking: A Top Down Approach Featuring the Internet by Kurose and Ross

CS Lecture 1 Review of Basic Protocols

Transport Layer Overview

Chapter 3 Transport Layer

Foundations of Telematics

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Mid Term Exam Results

CSC 8560 Computer Networks: TCP

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

Computer Networking: A Top Down Approach

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

Data Communications & Networks. Session 9 Main Theme Network Congestion Causes, Effects, Controls, and TCP Applications. Dr. Jean-Claude Franchitti

TSIN02 - Internetworking

Computer Networks & Security 2016/2017

NT1210 Introduction to Networking. Unit 10

TSIN02 - Internetworking

Computer Networking Introduction

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

Different Layers Lecture 20

CS 43: Computer Networks. 19: TCP Flow and Congestion Control October 31, Nov 2, 2018

CSE 3214: Computer Network Protocols and Applications Transport Layer (Part 2) Chapter 3 outline. UDP checksum. Port numbers

CSCD 330 Network Programming

TCP: Overview RFCs: 793,1122,1323, 2018, 2581

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

Internet and Intranet Protocols and Applications

CS 3516: Computer Networks

Chapter 3 Transport Layer

TCP reliable data transfer. Chapter 3 outline. TCP sender events: TCP sender (simplified) TCP: retransmission scenarios. TCP: retransmission scenarios

Different Layers Lecture 21

Input ports, switching fabric, output ports Switching via memory, bus, crossbar Queueing, head-of-line blocking

Course on Computer Communication and Networks. Lecture 5 Chapter 3; Transport Layer, Part B

TDTS06: Computer Networks

CSCI Topics: Internet Programming Fall 2008

TSIN02 - Internetworking

OSI Transport Layer. objectives

Chapter 3: Transport Layer

Lecture 2 Communication services The Trasport Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

10 minutes survey (anonymous)

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

Transport Layer. <protocol, local-addr,local-port,foreign-addr,foreign-port> ϒ Client uses ephemeral ports /10 Joseph Cordina 2005

Transport services and protocols. Chapter 3 outline. Internet transport-layer protocols Chapter 3 outline. Multiplexing/demultiplexing

Chapter 3 Transport Layer

TSIN02 - Internetworking

Go-Back-N. Pipelining: increased utilization. Pipelined protocols. GBN: sender extended FSM

CS450 Introduc0on to Networking Lecture 14 TCP. Phu Phung Feb 13, 2015

CSCD 330 Network Programming

Protocoles et Interconnexions

Chapter 3 Transport Layer

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

Transcription:

Transport Layer ELEC1200 Principles behind transport layer services Multiplexing and demultiplexing UDP TCP Reliable Data Transfer TCP Congestion Control TCP Fairness *The slides are adapted from ppt slides (in substantially unaltered form) available from Computer Networking: A Top-Down Approach, 4 th edition, by Jim Kurose and Keith Ross, Addison-Wesley, July 2007. Part of the materials are also adapted from ELEC315 and MIT 6.02 course notes. 1

Internet protocol stack application: supporting applications HTTP, SMTP, FTP, DNS transport: process-process data transfer TCP, UDP : routing of datagrams from source to destination IP, routing protocols link: data transfer between neighboring elements 802.11, Ethernett : bits on the wire Application Transport Network Link Physical 2

Transport services and protocols application transport provide logical communication data link between app processes running on different hosts transport protocols run in end systems send side: breaks app messages into segments, passes to layer rcv side: reassembles application transport segments into messages, data link passes to app layer more than one transport t protocol available to apps Internet: TCP and UDP 3

Internet transport-layer protocols reliable, in-order delivery (TCP) congestion control flow control connection setup unreliable, unordered d delivery: UDP no-frills extension of best-effort IP services not available: delay guarantees bandwidth guarantees application transport data link data link data link data link data link data link data link application transport data link 4

Multiplexing/demultiplexing Demultiplexing at rcv host: delivering received segments to correct socket = socket = process Multiplexing at send host: gathering data from multiple l sockets, enveloping data with header (later used for demultiplexing) Socket: a door between application process and end-end- transport protocol (UDP or TCP) application P3 P1 P1 application P2 P4 application transport link transport link transport link host 1 host 2 host 3 5

How demultiplexing works host receives IP datagrams each datagram has source 32 bits IP address, destination IP address source port # dest port # each datagram carries 1 transport-layer segment each segment has source, destination port number other header fields host uses IP addresses & port application numbers to direct segment to data appropriate socket (message) TCP/UDP segment format 6

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: nl 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 7

UDP: more often used for streaming multimedia apps 32 bits loss tolerant source port # dest port # rate sensitive other UDP uses Length, in bytes of UDP segment, including header length DNS SNMP reliable transfer over UDP: Application add reliability at data application layer (message) application-specific ifi error recovery! checksum UDP segment format 8

UDP checksum Goal: detect errors (e.g., flipped bits) in transmitted segment 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? More later. 9

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 socket door point-to-point: t i t: full duplex data: one sender, one receiver bi-directional data flow in same connection reliable, in-order byte in same connection stream: no message boundaries pipelined: TCP congestion and flow control set window size send & receive buffers application writes data TCP send buffer segment application reads data TCP receive buffer socket door 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 10

TCP segment structure URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) Internet checksum (as in UDP) 32 bits source port # dest port # head len sequence number acknowledgement number not used UAP R S F checksum Receive window Urg data pnter Options (variable length) application data (variable length) counting by bytes of data (not segments!) # bytes rcvr willing to accept 11

Principles of Reliable data transfer important in app., transport, link layers top-10 list of important ing topics! characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt) 12

Stop-and-wait & 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 13

Stop-and-wait protocol first bit transmitted, t = 0 last bit transmitted, t = L / R RTT sender receiver first packet bit arrives last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R Assume L/R = 0.008 ms and RTT = 30 ms U sender = L / R RTT + L / R =.008 30.008 = 0.00027 Transport Layer 14

Pipelining: increased utilization sender first packet bit transmitted, t = 0 last bit transmitted, t = L / R receiver RTT ACK arrives, send next packet, t = RTT + L / R first packet bit arrives last packet bit arrives, send ACK 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! U sender = 3 * L / R RTT + L / R =.024 30.008 = 0.0008 15

Principles of Congestion Control Congestion: informally: too many sources sending too much data too fast for to handle manifestations: lost packets (buffer overflow at routers) long delays (queueing in router buffers) a top-10 problem! 16

Approaches towards congestion control Two broad approaches towards congestion control: End-end congestion control: no explicit feedback from congestion inferred from end-system observed loss, delay approach taken by TCP Network-assisted congestion control: routers provide feedback to end systems single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) explicit rate sender should send at 17

TCP congestion control: additive increase, multiplicative decrease Approach: increase transmission ss rate (window size), probing for usable bandwidth, until loss occurs rate = CongWin RTT Bytes/sec additive increase: increase CongWin by 1 MSS every RTT until loss detected multiplicative decrease: cut CongWin in half after congestion loss window Saw tooth behavior: probing for bandwidth size congestion n window 24 Kbytes 16 Kbytes 8 Kbytes time Transport Layer 17

TCP Fairness Fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K TCP connection 1 TCP connection 2 bottleneck router capacity R 19

Why is TCP fair? Two competing TCP connections: Additive increase gives slope of 1, as throughout (rate) increases Multiplicative decrease decreases throughput proportionally R equal bandwidth share loss: decrease window by factor of 2 congestion avoidance: additive i increase loss: decrease window by factor of 2 congestion avoidance: additive increase Connection 1 throughput h R Transport Layer 20

Fairness (more) Fairness and UDP Multimedia apps often do not use TCP do not want rate throttled by congestion control Instead use UDP: pump audio/video at constant rate, tolerate packet loss Fairness and parallel TCP connections nothing prevents app from opening parallel connections between 2 hosts. Web browsers do this Example: link of rate R supporting 9 connections; new app asks for 1 TCP, gets Research area: TCP rate R/10 friendly new app asks for 11 TCPs, gets R/2! 21

Summary Principles behind transport layer services: multiplexing, demultiplexing reliable data transfer flow control congestion control Internet provides two transport protocols UDP TCP 22