Chapter 6: Transport Layer (Part I)

Slides:



Advertisements
Similar presentations
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 20 – Transport Protocols.
Advertisements

1 Transport Protocols & TCP CSE 3213 Fall April 2015.
Chi-Cheng Lin, Winona State University CS 313 Introduction to Computer Networking & Telecommunication Chapter 6 Transport Layer.
Transport Layer – TCP (Part2) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Transmission Control Protocol (TCP)
Guide to TCP/IP, Third Edition
Transportation Layer. Very similar to the data link layer. – two hosts connected by a link or two hosts connected by a network differences: – When two.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
1 TCP CSE May TCP Services Flow control Connection establishment and termination Congestion control 2.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
Computer Networks Transport Layer. Topics F Introduction  F Connection Issues F TCP.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
1 Transport Layer Computer Networks. 2 Where are we?
SMUCSE 4344 transport layer. SMUCSE 4344 transport layer end-to-end protocols –transport code runs only on endpoint hosts encapsulates network communications.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, , WWW) Reliable Stream Transport (TCP) Connectionless Packet Delivery.
Transportation Layer (1). Transportation Layer Very similar to the data link layer. – two hosts connected by a link or two hosts connected by a network.
Computer Networks23-1 PART 5 Transport Layer. Computer Networks23-2 Position of Transport Layer Responsible for the delivery of a message from one process.
Networks, Part 2 March 7, Networks End to End Layer  Build upon unreliable Network Layer  As needed, compensate for latency, ordering, data.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Computer Networking Lecture 16 – Reliable Transport.
Ch 3. Transport Layer Myungchul Kim
Chapter 5 Peer-to-Peer Protocols and Data Link Layer Timing Recovery.
Process-to-Process Delivery:
Ch 3. Transport Layer Myungchul Kim
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
1 Chapter 24 Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Transport Layer: Part I
The Transport Layer Implementation Services Functions Protocols
Chapter 9: Transport Layer
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
Instructor Materials Chapter 9: Transport Layer
Introduction to Networks
5. End-to-end protocols (part 1)
Process-to-Process Delivery, TCP and UDP protocols
TCP.
PART 5 Transport Layer Computer Networks.
6 Transport Layer Computer Networks Tutun Juhana
Magda El Zarki Professor, ICS UC, Irvine
CS 5565 Network Architecture and Protocols
NET323 D: Network Protocols
Introduction of Transport Protocols
Transport Layer Goals: Overview:
TCP - Part I Karim El Defrawy
Transport Layer Unit 5.
TCP Connection Establishment and Termination
Chapter 6 The Transport Layer The Transport Service & Elements of Transport Protocols.
NET323 D: Network Protocols
Process-to-Process Delivery:
CS 5565 Network Architecture and Protocols
Chapter 5 TCP Control Flow
Transportation Layer.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
The Transport Layer Reliability
Transport Protocols: TCP Segments, Flow control and Connection Setup
Introduction to Computer Networks
Lecture 21 and 22 5/29/2019.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Error Checking continued
Transport Layer 9/22/2019.
EEL 5718 Computer Communications
Presentation transcript:

Chapter 6: Transport Layer (Part I) Transport Layer Services Transport layer challenges Connection Set-up and Tear-down Readings Sections 6.1-6.2

Transport Layer Provides transport services to applications End-host to end-host delivery of data Aspects of transport services Error detection and recovery Errors (lost or corrupted data) detected at receiver? Detected error corrected? Framing Data unit boundaries (e.g., message) preserved? Timing Timing between data preserved when delivered at receiver?

Common Transport Service Models Connectionless datagram No promises, no timing Error detection optional, no error recovery Connection-oriented reliable Error recovery, no timing Circuit-like Timing preserved No error recovery, optional error detection

Connection Paradigms Connection-oriented Connectionless service Explicitly setup/tear down connections Setup connection context (“connection state”) Initial sequence number, flow control window size Exchange data within context of connection Connectionless service Pure datagram One-time unreliable send Transaction oriented Single request from sender, single reply from receiver

Transportation Layer .vs. data link layer Very similar two hosts connected by a link or two hosts connected by a network Build reliable services over underlying unreliable communication differences: When two hosts are connected by a link, packets will not reorder or duplicate (if the sender sends only once). In addition, packets will either get to the receiver or get lost. When two hosts are connected by a network, packets can be duplicated, delayed, lost, reordered. Implication: The problems to be addressed in the transport layer are very similar to those in the data link layer. However, the solutions may be more complex.

The problem is that network can delay, reorder, lose packets Problems The problem is that network can delay, reorder, lose packets Time-out/retransmission introduces duplicates of data, acknowledgement, connect, close packets Worst case scenario: consider this bank transaction example (a) setup connection (b) transfer $100 (c) close connection all messages are delayed and replayed.

Other challenges Transport layer protocol: varying data rate and varying packet delay Need to adapt to the data rate and delay rate Sliding window alone would not be sufficient Network congestion control issue Flow control: fast sender and slow receiver Congestion control: global network problem, each flow may be ok, but the sum of all flows is too much for the network to handle. Congestion control is harder than flow control Because of these, transport layer protocols are more difficult to design than data link layer protocols.

End-to-End Issues (for connection-oriented) How to build a reliable, in-order delivery? On top of an unreliable network layer service Potentially connects different hosts Need explicit connection establishment and termination Potentially different RTT (round-trip time) Need adaptive timeout mechanisms Potentially long delay in network Need to be prepared for arrival of very old packets Connection management

End to End Issues for connection-oriented Potentially unreliable network service Need to be prepared for corrupted/lost and out-of-order packets Error control Potentially different capacity at destination Need to avoid overrunning receivers flow control Potentially different network capacity Need to be prepared for network congestion Congestion control

Connection Management Issues How to identify a connection between end hosts? Source/destination IP addresses + port numbers Is it sufficient? What about different incarnations? Potential problems Network can delay, reorder, lose packets Time-out/retransmission introduces duplicates of Data, acknowledgement, connect, close packets

Connection Management Issues On packet arrival: is it real or not? New connection request/release or an old one? Transport protocols must create/maintain/destroy Enough state to answer the memorex question Major issues How to choose an identifier for each packet So that no other packets currently in the network Associated with this host have the same identifier How to deal with old or duplicate (connect) messages Delayed duplicate problem

Choosing Unique Identifier Choose an identifier (or sequence number) to Distinguish any two outstanding packets/connections associated with a host Connection identified by <host id., port no.> pairs plus a “unique” initial seq number Host id unique globally, why not sufficient to use <host id., port no.> pairs to identify connections? Time stamp each pkt using a time-of-day clock? Solution: Assume maximum lifetime (T) for a pkt Network layer kills packets when they reach max lifetime

Choosing Unique Identifier Approach 1: maintain state Keep list of all values used in last 2T (why 2T?) Don’t reuse value in list If list lost: wait 2T Concerns? Too much connection state Too long waiting time Approach 2: Choose at random from large set (e.g. 232) of numbers Unlikely to choose new number previously chosen in last 2T Can be combined with used value list for more protection Good enough for many people

Connection Setup Exchange control messages between two end hosts To setup (or reject) connection before sending data Issues to be considered How to handle lost messages Use timer and retransmission How to identify and handle old/duplicate messages Keep some state info (e.g. seq. no. of packets sent etc) Two basic approaches Two-way handshake (with timers) Three-way handshake

Three-Way Handshake Connection initiator (the client) Chooses unique seqno x and sends req-conn(x) Connection respondent (the server) Upon receiving req-conn(x) Chooses its own unique identifier, y Sends ack-conn(y,x) Upon receiving ack-conn(y,x), client responds With ack-conn(x+1,y) Why does server need to choose unique seqno y?

Three-Way Handshake

Three-way handshake (cont’d) Old message client server req-conn(x) Connection Not established ack-conn(y,x) ignored

Connection Setup: Summary How to deal with old and duplicate messages? Receiver also chooses its own unique identifier y Requires sender to reply back using y Allows receiver to detect old sender messages without timers

Closing a Connection Reaching agreement: two approaches Abort: send close msg to peer, delete state info What if close() message lost? Graceful: send close msg, but before deleting state Wait for peer to acknowledge close() Problem solved? Can I decide to close, knowing that Other entity also agreed to close and knows that I will close Can two armies coordinate their attacks If communication is unreliable?

Two-Army Problem

Connection Release 6-14, a, b Four protocol scenarios for releasing a connection. (a) Normal case of a three-way handshake. (b) final ACK lost.

Connection Release 6-14, c,d (c) Response lost. (d) Response lost and subsequent DRs lost.