Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.

Slides:



Advertisements
Similar presentations
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Advertisements

CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
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)
Intermediate TCP/IP TCP Operation.
Guide to TCP/IP, Third Edition
Fundamentals of Computer Networks ECE 478/578 Lecture #20: Transmission Control Protocol Instructor: Loukas Lazos Dept of Electrical and Computer Engineering.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
1 Computer Networks: A Systems Approach, 5e Larry L. Peterson and Bruce S. Davie Chapter 5 End-to-End Protocols Copyright © 2010, Elsevier Inc. All rights.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
Networks I Transmission Control Protocol Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Estado de México Prof. MSc. Ivan A. Escobar.
Transmission Control Protocol (TCP) Basics
1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) User Datagram Protocol.
The Internet Transport Protocols – TCP and UDP
Chapter 7: Objectives Part 1
Chapter 7 – Transport Layer Protocols
EECC694 - Shaaban #1 lec #12 Spring Internet Transport Protocols Transmission Control Protocol (TCP):Transmission Control Protocol (TCP):
TELE202 Lecture 14 TCP/UDP (2) 1 Lecturer Dr Z. Huang Overview ¥Last Lecture »TCP/UDP (1) »Source: chapter 17 ¥This Lecture »TCP/UDP (2) »Source: chapter.
Computer Networks 2 Lecture 2 TCP – I - Transport Protocols: TCP Segments, Flow control and Connection Setup.
TRANSPORT LAYER  Session multiplexing  Segmentation  Flow control (TCP)  Connection-oriented (TCP)  Reliability (TCP)
1 Transport Control Protocol. 2 Header Identifies the port number of a source application program. Used by the receiver to reply. (16-bit). Identifies.
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Transport Layer TCP and UDP IS250 Spring 2010
Gursharan Singh Tatla Transport Layer 16-May
Module A Panko and Panko Business Data Networks and Security, 9 th Edition © 2013 Pearson.
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
1 Chapter 1 OSI Architecture The OSI 7-layer Model OSI – Open Systems Interconnection.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
University of the Western Cape Chapter 12: The Transport Layer.
Copyright 2002, S.D. Personick. All Rights Reserved.1 Telecommunications Networking II Topic 20 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
More on TCP Acknowledgements Sequence Number Field Initial Sequence Number Acknowledgement Number Field.
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
1 Introduction to Computer Networks University of ilam Dr. Mozafar Bag-Mohammadi Transport Layer.
© Jörg Liebeherr (modified by Malathi Veeraraghavan) 1 Overview Formats, Data Transfer, etc. Connection Management.
Transport Protocols.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
Data Communications and Networks Chapter 6 – IP, UDP and TCP ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
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 Networks 1000-Transport layer, TCP Gergely Windisch v spring.
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
1 Transmission Control Protocol (TCP) RFC: Introduction The TCP is intended to provide a reliable process-to-process communication service in a.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
5. End-to-end protocols (part 1)
Transport Layer.
Process-to-Process Delivery
TCP.
TCP - Part I Karim El Defrawy
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Chapter 5 Transport Layer Introduction
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Chapter 5 Transport Layer Introduction
Introduction to Computer Networks
Lecture 21 and 22 5/29/2019.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Transport Layer 9/22/2019.
Presentation transcript:

Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF

Transport Layer Transport Layer is an end-to-end layer and supports communication between the end application processes (e.g. client and server processes). A transport protocol is expected to: Guarantee message delivery. Deliver at most one copy of each message. Allow receiver to apply flow control to the sender. Support multiple application processes on each host. Support synchronization between sender and receiver. Support arbitrarily large messages. The Network Layer in the Internet provides a “best effort” service with packets possibly getting lost and being delivered out of sequence. The Transport Layer provides reliable service to the underlying Network Layer. Physical Link Network Transport Application

Transmission Control Protocol (TCP) TCP offers a connection-oriented, reliable, byte-stream oriented service. A TCP entity accepts user data streams from local processes, breaks them up into pieces (called segments) not exceeding 64KB (1500 bytes in practice due to the limit imposed by Ethernet) and sends each segment as a separate IP datagram. IP gives no guarantee that datagrams will be delivered properly, so it is up to TCP to time out and retransmit them as needed. Datagrams may arrive out of sequence and it is up to TCP to reassemble them into messages in the proper sequence.

Transmission Control Protocol (TCP) TCP sends segments in packets (in frames).

TCP over IP

TCP Service Model TCP service is obtained by having both sender and receiver create end points of communication, called sockets. Each socket has a socket address consisting of the IP address of the host and a 16-bit port # (local to the host). To obtain TCP service, a connection must be established between a socket on the sending machine and a socket on the receiving machine. Communications are identified by socket identifiers at both ends (e.g. socket1, socket2). Since TCP service is byte-stream oriented, message boundaries are not preserved end-to-end.

TCP Service Model Common socket primitives in UNIX:

TCP When an application passes data to TCP, TCP may send it immediately or buffer it (in order to collect a larger amount to send at once) at its discretion. Pieces of data exchanged between TCP peers are called segments. TCP has three mechanisms by which to trigger the transmission of a segment: As soon it has collected Maximum Segment Size (MSS) bytes from the sending process. (Note: MSS = MTU – TCP Header – IP header = MTU – 20 – 20 = MTU – 40 (default case)). TCP supports a “push” operation, and the sending process invokes this operation to flush the TCP buffer of unsent bytes. A timer is periodically triggered and the resulting segment contains as many bytes as are currently buffered for transmission.

TCP Segment A segment consists of a fixed 20-byte header (plus an optional part) followed by zero or more data bytes. Every byte in a TCP segment has its own 32-bit sequence # (SEQ field in the TCP segment header contains the sequence # of the first byte of data in that segment) Basic protocol used by TCP entities is the Sliding Window Protocol. When a sender transmits a segment, it starts a timer. When the segment arrives at the destination, the receiving TCP entity sends back a segment (with data if any exists, otherwise without data) bearing an ACK # equal to the next sequence # it expects to receive. The segment also advertises a window to the sender indicating the number of bytes the sender is allowed to send (sliding window flow control). If sender’s timer goes off before the ACK is received, sender retransmits the segment again.

TCP Segment Header

Source and Destination Ports (16-bits each): identify the local end points of the connection. SEQ# and ACK# (32-bits each): Sequence # of the first data byte in the segment. ACK # specifies the next byte expected (ACK # = SEQ # + 1). TCP Header Length (4-bits): size of the TCP header in number of 32-bit words. 1-Bit flags (there are 8 of these flags): CWR and ECE: The Explicit Congestion Echo (ECE) and Congestion Window Reduced (CWR) bits are part of the Explicit Congestion Notification (ECN) mechanism. When a router experiences congestion, instead of simply dropping the packet, it tags the 2 LSBs of the Differentiated Services field (sets these bits to 11) in the IP header, which implies that congestion was experienced. The receiving host echoes/sends a TCP segment to the sending host with ECE = 1. The sending host then cuts its congestion window (part of the Jacobson’s algorithm) as though a timeout had occurred and sends TCP segments with CWR = 1. Then sender stops responding to further segments with ECE = 1.

TCP Segment Header 1-Bit flags (continued): URG: When set, it implies that this segment contains urgent data. The Urgent Pointer field indicates where the non-urgent data contained in this segment begins (e.g. Ctrl-C to kill a process in TELNET/SSH). ACK: Set to 1 indicates that the ACK # field is valid. PSH: Indicates pushed data (e.g. in TELNET/SSH). This indicates to the receiving TCP entity to deliver data to the application process upon arrival and not to buffer it for reasons of efficiency as it generally might) RST: To abort a connection because a receiver has become confused (e.g. it received a segment it did not expect to receive). SYN: Used to establish connections. The Connection Request segment has SYN=1, ACK=0. The Connection Accepted segment has SYN=1, ACK=1. FIN: To release a connection. Specifies that a sender has no more data to send.

TCP Segment Header Window Size (16-bits): indicates how many bytes may be sent starting at the byte acknowledged. This is sent by the receiver to the sender and represents a variable sized sliding window. Checksum (16-bits): Provided for extreme reliability. It checksums the header, data, and the pseudo-header shown below. Including the pseudo- header in the TCP checksum computation helps detect misdelivered packets. Options: Allows each host to specify the maximum TCP payload it is willing to accept (all Internet hosts are required to accept TCP segments of = 556 bytes).