Transport layer Internet layer

Similar documents
Goal and A sample Network App

Chapter 2 Application Layer. Lecture 4: principles of network applications. Computer Networking: A Top Down Approach

CMPE 80N: Introduction to Networking and the Internet

Introduction to the Application Layer. Computer Networks Term B14

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

The Transmission Control Protocol (TCP)

CSC 4900 Computer Networks: End-to-End Design

CMSC 322 Computer Networks Applications and End-To- End

Transport Layer TCP & UDP Week 7. Module : Computer Networks Lecturers : Lucy White Office : 324

Transport Layer. Chapter 3: Transport Layer

Different Layers Lecture 21

Chapter II: Application Layer

Client/Server Computing

TSIN02 - Internetworking

CS 640: Introduction to Computer Networks. Today s Lecture. Page 1

NT1210 Introduction to Networking. Unit 10

Chapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication

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

CS 3516: Advanced Computer Networks

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

Review of Previous Lecture

Transport Layer (TCP/UDP)

CSC 401 Data and Computer Communications Networks

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16

CS 4390 Computer Networks. Transport Services and Protocols

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

TSIN02 - Internetworking

Module 2 Overview of Computer Networks

Module 2 Overview of. Computer Networks

Hybrid of client-server and P2P. Pure P2P Architecture. App-layer Protocols. Communicating Processes. Transport Service Requirements

TSIN02 - Internetworking

Client/Server Computing & Socket Programming

QUIZ: Longest Matching Prefix

TSIN02 - Internetworking

DATA COMMUNICATOIN NETWORKING

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer

ECE 650 Systems Programming & Engineering. Spring 2018

Lecture 2-ter. 2. A communication example Managing a HTTP v1.0 connection. Managing a HTTP request. transport session. Step 1 - opening transport

NWEN 243. Networked Applications. Layer 4 TCP and UDP

CS 3516: Advanced Computer Networks

OSI Transport Layer. objectives

Chapter 7 Transport Layer. 7.0 Introduction 7.1 Transport Layer Protocols 7.2 TCP and UDP 7.3 Summary

Unix Network Programming

Different Layers Lecture 20

4.0.1 CHAPTER INTRODUCTION

Protocol Layers, Security Sec: Application Layer: Sec 2.1 Prof Lina Battestilli Fall 2017

EITF25 Internet Techniques and Applications L7: Internet. Stefan Höst

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

Internet and Intranet Protocols and Applications

9th Slide Set Computer Networks

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

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

EEC-682/782 Computer Networks I

Application. Transport. Network. Link. Physical

Outline. Inter-Process Communication. IPC across machines: Problems. CSCI 4061 Introduction to Operating Systems

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2. Goals for Todayʼs Lecture. Role of Transport Layer

Transport Over IP. CSCI 690 Michael Hutt New York Institute of Technology

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

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

Chapter 3 Transport Layer

EEC-484/584 Computer Networks. Lecture 16. Wenbing Zhao

Transport Layer Review

Internet Architecture & Performance. What s the Internet: nuts and bolts view

Last Time. Internet in a Day Day 2 of 1. Today: TCP and Apps

CCNA Exploration Network Fundamentals. Chapter 04 OSI Transport Layer

Page 1. Goals for Today" Discussion" Example: Reliable File Transfer" CS162 Operating Systems and Systems Programming Lecture 11

4. The transport layer

6. The Transport Layer and protocols

CCNA R&S: Introduction to Networks. Chapter 7: The Transport Layer

ECE 333: Introduction to Communication Networks Fall 2002

CS457 Transport Protocols. CS 457 Fall 2014

CN1047 INTRODUCTION TO COMPUTER NETWORKING CHAPTER 6 OSI MODEL TRANSPORT LAYER

Chapter 6. (Week 12) The Transport Layer (CONTINUATION) ANDREW S. TANENBAUM COMPUTER NETWORKS FOURTH EDITION PP

Transport Layer. -UDP (User Datagram Protocol) -TCP (Transport Control Protocol)

Interprocess Communication Mechanisms

shared storage These mechanisms have already been covered. examples: shared virtual memory message based signals

CSCD 330 Network Programming

CS 326: Operating Systems. Networking. Lecture 17

Distributed Systems /640

CMSC 332 Computer Networks Transport Layer

Outline. Challenges of the Internet. The Internet. CS4233 Network Programming Introduction to TCP/IP

CCNA 1 v3.11 Module 11 TCP/IP Transport and Application Layers

ECE 333: Introduction to Communication Networks Fall 2001

UDP, TCP, IP multicast

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START

Transport Layer Overview

Transport Protocols and TCP

CSEP 561 Connections. David Wetherall

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data

Distributed Systems. 02. Networking. Paul Krzyzanowski. Rutgers University. Fall 2017

PLEASE READ CAREFULLY BEFORE YOU START

UNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E.

CSC 401 Data and Computer Communications Networks

Transcription:

Lecture 2-bis. 2 Transport Protocols As seen by the application developer point of view The primary (in principle unique) role of transport protocols!" # $ % "!"& Transport httpd 25 80 3211... My app 131.175.15.1 address Transport Layer Protocols Entire network seen as a pipe The level view Information units travelling in the network: packets Header & addr... Header transport & ports App prot Where are port numbers? or UDP Header prtc Transport Header App prot Transport Control Protocol () connection oriented connections reliable transfer service. functions application addressing (ports) error recovery (acks and retransmission) reordering (sequence numbers) Appl. flow control congestion control Appl. 1

Services Provided by Connection-oriented service: preliminary handshaking procedure creates a full duplex connection Reliable transport service: communicating processes can rely on to deliver all the messages sent without error and in the proper order. does not provide: a minimum transmission rate guaranteed (sending rate is regulated by congestion control) any sort of delay guarantees (the World Wide Wait ) User gram Protocol (UDP) Connectionless UDP packets offers unreliable transfer service (send and pray). UDP functions application addressing (ports) error checking proc UDP proc UDP Services Provided by UDP connectionless (no handshaking) arbitrary sending rate service» no congestion control mechanism present UDP minimalist lightweight service model does not provide: any guarantee of reception, any guarantee of order any guarantee on delay UDP Connectionless UDP packets unreliable transfer service send and pray UDP functions application addressing (ports) error checking connection oriented connections reliable transfer service all bytes sent are recv functions application addressing (ports) error recovery (acks and retransmission) reordering (sequence numbers) flow control congestion control Service Requirements Loss Bandwidth Time sensitive? file transfer no loss elastic no electronic mail no loss elastic no Web documents no loss elastic no real-time audio/video stored audio/video interactive games financial applications losstolerant losstolerant losstolerant audio: few Kbps to 1Mbps video: 10's Kbps to 5 Mbps same as interactive audio/video few Kbps to 10's Kbps yes: 100's of msec yes: few seconds yes: 100's msecs no loss elastic yes and no Common s and related transport - protocol electronic mail SMTP (RFC 821) remote terminal access Telnet (RTC 854) Underlying Transport Protocol Web HTTP (RFC 2068) file transfer FTP (RFC 959) remote file server streaming multimedia telephony NFS Proprietary (e.g., Real Networks) proprietary (e.g. Vocaltec) UDP or UDP or typically UDP 2

A closer look at applications: The Interface Client HTTP Process (Browser) software (HTTP example) HTTP request HTTP response TRANSPORT PROTOCOL (for HTTP: ) INTERNET Server HTTP Process (HTTP Daemon) software s in Unix OSs Just file descriptors (everything is a file in Unix!) stream sockets using datagram sockets using UDP Common I/O file functions: read(), write() More powerful I/O functions: send(), receive() Other specific function: socket(), bind(), connect(), listen(), accept() The application developer view the only mean for apps to send/receive messages is through sockets doors that hide transportation infrastructure to processes Very limited control on transport protocol (buffer sizing, variables) Process SW (a normal software program!) Send receive : door to transport SW You ll see JAVA example in the practice lectures Why it is trivial (!) to write networking apps? INTERNET software duties: open socket (e.g. C, C++, JAVA function call, OS call, external library primitive) Injects message in its own socket being confident message is received on the other side software: in charge of managing segments! reliable message transport when used Segmentation performed by transmitter Receive buffer necessary to ensure proper packet s order & reassembly An open question : OS interface between the application and the transport level s: numbers in the transport to identify the specific application Which is the relation? We focus on the server A first hypothesis one-to-one mapping socket port # 3

Trivial refinement The socket is on a specific host, i.e. port# has a local meaning socket ( address,port #) Incoming request How to reach server socket: pair of Address and Number Mail srv Transport Web srv 25 80 3211... Proprietary app number: univocally specifies SW process within the node 131.175.15.1 address (univocally specifies node) (,port): a unique identification of an application service to which requests need to be sent The first contact needs well known port # Demultiplexing at receiver (1) app app app Demultiplexing at receiver (2) app app app Transport SW UDP SW SW SW SW packet http http payload Information entering app Software (managed by app Developer) packet http http payload Information entering app Software (managed by app Developer) # Transport SW: checks segment; Sends to application sw based on number demux # Transport SW: checks segment; Sends to application sw based on number demux addr SW: checks packet; Sends to transport sw Transport demux addr SW: checks packet; Sends to transport sw selects whether UDP or Transport demux Does software know about transport protocol? or UDP Header prtc Transport Header App prot Remarks When opening socket, needs to specify which transport to use! UDP port numbers are independent from ones! This means that looks at ports, while UDP looks at UDP ones Normally (for pure convenience) port number = same meaning for and UDP if a well known service is offered by both and UDP, the port number is the same if a well known (low port number) service is offered for one protocol only, the corresponding port for the other protocol is generally unused BUT possibly the same port number has different meaning for and UDP. Details in RFC1700 or http://www.iana.org/assignments/port-numbers 4

Consequence If two applications employ different protocols, they can employ the same port # Mapping refinement () Connections identified by sockets at its ends CLIENT WEB SERVER : 151.100.37.9 : 131.175.21.1 socket (protocol, addr., port #) Is it enough? Not always CLIENT A : 151.100.37.9 CLIENT B : 193.47.31.18 A socket for each connection is needed, because each connection has its own status It is not true for UDP (connectionless) WEB SERVER : 131.175.21.1 A B CLIENT A : 151.100.37.9 : 3124 CLIENT B : 193.47.31.18 : 12134 If each port identifies a socket... How can a new client know the listen port? Are the port numbers enough? WEB SERVER : 131.175.21.1 : 80 : 81 CLIENT A : 151.100.37.9 : 3124 CLIENT B : 193.47.31.18 Connections can be distinguished by client and server addresses and ports Connection A [<151.100.37.9,3124>,<131.175.21.1,80>] : 131.175.21.1 : 80 SERVER CLIENT 1 : 151.100.37.9 : 3124 CLIENT 2 : 193.47.31.18 Two sockets for the same server port! Connection A [<151.100.37.9,3124>,<131.175.21.1,80>] : 131.175.21.1 A : 80 B SERVER : 12134 Connection B [<193.47.37.9,12134>,<131.175.21.1,80>] : 12134 Connection B [<193.47.37.9,12134>,<131.175.21.1,80>] 5

Demultiplexing at receiver (3) packet app app app UDP SW Also information about the addresses is needed at the transport level addr SW # SW http http payload Information entering app Software (managed by app Developer) Transport SW: checks segment; Sends to application sw based on addresses and numbers demux SW: checks packet; Sends to transport sw selects whether UDP or Transport demux Conclusions A socket always identifies unique protocol and port socket (protocol, addr, port #) It can identify also address and port of the remote application socket (prot, addr, port, addr, port) Conclusions Protocol and port can identify a unique socket socket (protocol, addr, port #) listen ports/sockets but in general more information is required (prot., addr, port, socket addr, port) connection ports/sockets How to reach client socket another pair of Address and Number The server needs to know: The host to which send a response address The application software process at client side capable of correctly interpret the response port # Generally client DOES NOT use a well known port # It is not needed (the client starts talking) OS just assigns one available (Ephemeral ports)! " # $ % &! ' ( #) $ numbers 16 bit address (0-65535) well known port numbers for common servers FTP 20, TELNET 23, SMTP 25, HTTP 80, POP3 110, (full list: http://www.iana.org/assignments/port-numbers) number assignment 0-1023 (system) well known ports: service contact ports assigned by IANA, on most systems they can only be used by system (or root) processes or by programs executed by privileged users. 1024-49151 (user) registered ports: service contact ports listed by IANA, on most systems they can be used by ordinary user processes or programs executed by ordinary users. 49152-65535 dynamic/private ports. Last remark about terminology Sometimes socket is considered synonym of the quintet: (prot., addr, port, addr, port) prtc 6