CSC 401 Data and Computer Communications Networks

Similar documents
Chapter 3 Transport Layer

Chapter 3 Transport Layer

Transport Layer. Chapter 3: Transport Layer

CS 4390 Computer Networks. Transport Services and Protocols

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

CSC 4900 Computer Networks: Transport Layer

CMSC 332 Computer Networks Transport Layer

CS 3516: Computer Networks

Chapter III: Transport Layer

CSCE 463/612 Networks and Distributed Processing Spring 2018

Lecture 9: Transpor Layer Overview and UDP

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

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

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

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

COSC4377. Useful Linux Tool: screen

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

CMPE 80N: Introduction to Networking and the Internet

Introduction to the Transport Layer

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

CSE 4213: Computer Networks II

Application. Transport. Network. Link. Physical

Transport Layer Overview

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

Chapter 3 Transport Layer

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

CSCD 330 Network Programming

Transport layer. Our goals: Understand principles behind transport layer services: Learn about transport layer protocols in the Internet:

Transport layer: Outline

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

Chapter 3 Transport Layer

Chapter 6 Transport Layer

Chapter 3: Transport Layer Part A

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

CC451 Computer Networks

Chapter 3: Transport Layer

Internet and Intranet Protocols and Applications

TDTS06: Computer Networks

CSC 8560 Computer Networks: Transport Layer

Lecture 5. Transport Layer. Transport Layer 1-1

CS 43: Computer Networks. 15: Transport Layer & UDP October 5, 2018

Lecture 07 The Transport Layer (TCP & UDP) Dr. Anis Koubaa

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

Computer Networking: A Top Down Approach

End-to-End Protocols: UDP and TCP. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806

CSCD 330 Network Programming

The Transport Layer Multiplexing, Error Detection, & UDP

Chapter 3 Transport Layer

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

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

Course on Computer Communication and Networks. Lecture 4 Chapter 3; Transport Layer, Part A

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Course on Computer Communication and Networks. Lecture 4 Chapter 3; Transport Layer, Part A

CS101 Lecture 6: Internetworking: Internet Protocol, IP Addresses, Routing, DNS. John Magee 8 July Some images courtesy Wikimedia Commons

CSC 401 Data and Computer Communications Networks

Lecture 4: The Transport Layer and UDP

Different Layers Lecture 20

CSC 401 Data and Computer Communications Networks

The Transmission Control Protocol (TCP)

Chapter 6. The Transport Layer. Transport Layer 3-1

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

Announcements Computer Networking. What was hard. Midterm. Lecture 16 Transport Protocols. Avg: 62 Med: 67 STD: 13.

CS 3516: Computer Networks

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks

LECTURE 3 - TRANSPORT LAYER

CS 3516: Advanced Computer Networks

TSIN02 - Internetworking

CSC 401 Data and Computer Communications Networks

MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E

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

Computer Networks & Security 2016/2017

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

Foundations of Telematics

Lecture 3: The Transport Layer: UDP and TCP

CSC 401 Data and Computer Communications Networks

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

OSI Transport Layer. objectives

CSC 401 Data and Computer Communications Networks

ECE697AA Lecture 3. Today s lecture

Chapter 4 Network Layer: The Data Plane. Part A. Computer Networking: A Top Down Approach

TSIN02 - Internetworking

CN1047 INTRODUCTION TO COMPUTER NETWORKING CHAPTER 6 OSI MODEL TRANSPORT LAYER

NT1210 Introduction to Networking. Unit 10

TSIN02 - Internetworking

Chapter 3: Transport Layer

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

Distributed Systems. Networking Slides courtesy Kurose & Ross

QUIZ: Longest Matching Prefix

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

Chapter 11. User Datagram Protocol (UDP)

Computer Communication Networks Midterm Review

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

Transport layer Internet layer

TSIN02 - Internetworking

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

Internet Applications and the Application Layer Material from Kurose and Ross, Chapter 2: The Application Layer

Different Layers Lecture 21

Chapter 2: outline. 2.1 principles of network applications app architectures app requirements

Transcription:

CSC 401 Data and Computer Communications Networks Transport Layer Intro, Mutliplexing/Demultiplexing, UDP Sec 3.1 3.4 Prof. Lina Battestilli Fall 2017

Chapter 3: Transport Layer our goals: understand principles behind layer services: multiplexing, demultiplexing reliable data transfer flow control congestion control learn about the Internet s layer protocols: UDP: connectionless TCP: connection-oriented reliable TCP congestion control

Transport Layer Chapter 3 Outline 3.1 Transport-layer Services 3.2 Multiplexing and Demultiplexing 3.3 Connectionless Transport: UDP 3.4 Principles of Reliable Data Transfer 3.5 Connection-oriented Transport: TCP segment structure, reliable data transfer, flow control, connection management 3.6 Principles of Congestion Control 3.7 TCP Congestion Control

Transport services and protocols provide logical communication between app processes running on different hosts protocols run in end systems Sender Side: breaks app messages into segments, passes to Network Layer Rcv Side: reassembles segments into messages, passes to Application Layer more than one protocol available to apps Internet: TCP and UDP Variants on TCP & UDP data link data link

Internet Layers Key Abstractions Application Transport Network Link Reliable or Best-Effort Streams Messages Delivery Best-effort global packet delivery Best-effort local packet delivery

Relationship b/n Transport & Network Layers Application Application byte stream Transport Data Hdr TCP Segment Network IP Data IP Hdr IP Datagram Link Link Data Link Hdr Link Frame

Relationship b/n Transport & Network Layers A A Source End-Host Application layer: logical communication between processes layer: logical communication between hosts Destination End-Host B B Application TCP TCP Network Network Network Network Link Link Link Link

Transport vs. Network Layer household analogy: sending letters to hosts = houses processes = kids app messages = letters in envelopes protocol = Ann and Bill who demux to in-house siblings -layer protocol = postal service 12 kids in Ann s house 12 kids in Bill s house:

Internet Transport Layer protocols TCP reliable, in-order delivery congestion control flow control connection setup UDP unreliable, unordered delivery no-frills extension of besteffort IP Application Transport Network Multiplexing & Demultiplexing, Error Checking NO delay guarantees & bandwidth guarantees IP is best effort delivery unreliable service Link/Physical

Transport Layer Chapter 3 Outline 3.1 Transport-layer Services 3.2 Multiplexing and Demultiplexing 3.3 Connectionless Transport: UDP 3.4 Principles of Reliable Data Transfer 3.5 Connection-oriented Transport: TCP segment structure, reliable data transfer, flow control, connection management 3.6 Principles of Congestion Control 3.7 TCP Congestion Control

Multiplexing/Demultiplexing multiplexing at sender: handle data from multiple sockets, add header (later used for demultiplexing) demultiplexing at receiver: use header info to deliver received segments to correct socket P3 link P1 P2 link P4 link socket process

How Demultiplexing works host receives IP datagrams each datagram has source IP address, destination IP address each datagram carries one layer segment each segment has source, destination port number host uses IP addresses & port numbers to direct segment to appropriate socket 32 bits source port # dest port # other header fields data (payload) segment Data Hdr TCP/UDP segment format datagram IP Data IP Hdr

Connectionless Demultiplexing create UDP socket, the layer automatically assigns it a port number You can ask for a specific port, typically done at the server side When sending into UDP socket, must specify destination IP address and destination port # 2-tuple When host receives UDP segment: checks destination port # in segment directs UDP segment to socket with that port # IP datagrams with same dest. port #, but different source IP addresses and/or source port numbers will be directed to same socket at dest

Example App: UDP Server create UDP socket bind socket to specific port Read from socket getting client s address (client IP and port) send upper case string back to this client 21

Connectionless Demux: example port #(9157); P3 link port # (6428); P1 link port#(5775); P4 link source port: 6428 dest port: 9157 source port:? dest port:? source port: 9157 dest port: 6428 source port:? dest port:?

Connection-oriented Demux TCP socket identified by 4-tuple source IP address source port number dest IP address dest port number demux: receiver uses all four values to direct segment to appropriate socket server host may support many simultaneous TCP sockets: each socket identified by its own 4-tuple web servers have different sockets for each connecting client

Example app: TCP server create TCP welcoming socket Server begins listening for incoming TCP requests NEW socket created read bytes from socket (but not address as in UDP) close connection to this client (but NOT welcoming socket) 24

Connection-oriented demux: example host: IP address A P3 link source IP,port: B,80 dest IP,port: A,9157 server: IP address B source IP,port: A,9157 dest IP, port: B,80 P4 P5 link P6 three segments, all destined to IP address: B, dest port: 80 are demultiplexed to different sockets P2 link source IP,port: C,5775 dest IP,port: B,80 source IP,port: C,9157 dest IP,port: B,80 P3 host: IP address C

Connection-oriented demux: example threaded server P3 link P4 link server: IP address B P2 link P3 host: IP address A source IP,port: B,80 dest IP,port: A,9157 source IP,port: C,5775 dest IP,port: B,80 host: IP address C source IP,port: A,9157 dest IP, port: B,80 source IP,port: C,9157 dest IP,port: B,80

Transport Layer Chapter 3 Outline 3.1 Transport-layer Services 3.2 Multiplexing and Demultiplexing 3.3 Connectionless Transport: UDP 3.4 Principles of Reliable Data Transfer 3.5 Connection-oriented Transport: TCP segment structure, reliable data transfer, flow control, connection management 3.6 Principles of Congestion Control 3.7 TCP Congestion Control

UDP: User Datagram Protocol [RFC 768] no frills, bare bones Internet 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 all other UDP segments

UDP Uses Application Remote File Server Streaming multimedia Internet telephony Network Management Application Protocol NFS Typically proprietary Typically proprietary SNMP Transport Protocol UDP UDP or TCP UDP or TCP Typically UDP why is there a UDP? no connection establishment (which can add delay) simple: no connection state at sender, receiver small header size no congestion control: UDP can blast away as fast as desired Routing protocol Name Translation RIP DNS Typically UDP Typically UDP over UDP: add reliability at layer -specific error recovery!

UDP: segment header length, in bytes of UDP segment, including header 32 bits source port # dest port # length checksum Error Detection data (payload) UDP segment format

UDP checksum Goal: detect errors (e.g., flipped bits) in transmitted segment sender: treat segment contents, including header fields, as sequence of 16-bit integers checksum: addition (one 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: Error detected No error detected. But maybe errors nonetheless? Why does UDP provide a checksum? End-to-end principle

Internet checksum: example 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 wraparound sum checksum 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 Note: when adding numbers, a carryout from the most significant bit needs to be added to the result Not Error Correction!

References Some of the slides are identical or derived from 1. Slides for the 7 th edition of the book Kurose & Ross, Computer Networking: A Top-Down Approach, 2. Nick Feamster COS 461: Computer Networking, Spring 2016 3. Computer Networking, Nick McKeown and Philip Levis, 2014 Stanford University