The aim of this unit is to review the main concepts related to TCP and UDP transport protocols, as well as application protocols. These concepts are

Size: px
Start display at page:

Download "The aim of this unit is to review the main concepts related to TCP and UDP transport protocols, as well as application protocols. These concepts are"

Transcription

1 The aim of this unit is to review the main concepts related to TCP and UDP transport protocols, as well as application protocols. These concepts are important requirements for developing programs that communicates through an IP network. They are also import to understand the operation of Proxy and NAT, as well as the operation of packet filters, firewalls and other security mechanisms that will be covered later in this course. 1

2 The TCP/IP architecture consists of three layers: Application, Transport and Network. The protocols used in the TCP/IP architecture are standardized and published by an entity called IETF (Internet Engineering Task Force). Documents generated by the IETF are called RFC (Request for Comments) and describe in detail the operation of the protocols. All RFCs are accessible for free in the site. Lower layers (Data Link and Physical) are not considered part of the TCP/IP architecture as they are defined by another entity (usually the IEEE - Institute of Electrical and Electronics Engineers). The TCP/IP architecture defines two transport protocols: TCP (Transmission Control Protocol) and UDP (User Datagram Protocol). As belong to the same layer, TCP and UDP protocols cannot be used at the same time. TCP and UDP protocols are implemented by the operating system. This greatly simplifies the development of applications running on the network, because the details of each protocol can be hidden from the application. It is up to the application to decide which transport protocol will be used. This is done through a standard interface with the operating system called "sockets". This interface defines a set of APIs (standard function calls) for mapping applications on port numbers and sending and receiving packets. The choice of the transport protocol depends heavily on the goals of the application, as will be discussed in the sequence of this unit. 2

3 Before starting the discussion regarding the differences between TCP and UDP protocols, lets discuss their similarities.the goal of both protocols is to provide a mechanism to address processes in an operating system. As we have seen earlier in this course, this is done by using 16-bit addresses, called number ports. The way ports are mapped to the processes is defined by the socket interface. A process (user level application) may or may not choose a port number when it starts using an API called BIND. If the process is started without the BIND call, a random port (usually between 1024 and 65535) will be assigned by the operating system. The operating system ensures that a unique port is assigned to any process that communicates through the same interface (IP address). Usually, a client processes does not perform a bind operation. Server processes, by the other hand, always do a bind because the port number cannot be random (since clients have to address them). The port used by the server processes depends on the type of application it represents. It belongs to the range of well-known ports (0-1023) for standard Internet applications (such as web, , and others) that requires root privileges to be executed. Otherwise, they belong to the range of registered ports ( ) for applications that do not require root privileges, and are proprietary to specific vendors (such as Databases Management Systems). 3

4 The TCP and UDP protocols are very different. UDP is very simple, and virtually provides only the service of addressing processes through port numbers. By the other hand, TCP is a very sophisticated protocol that performs various operations for an application, such as automatic confirmation of reception and automatic retransmission of lost packets. The first difference between TCP and UDP refers to the presence or absence of connection. A connection is established by an exchange of control packets between a client and the server, and occurs before the first data packet is transmitted. The TCP uses control packets to create, monitor, and terminate connections. A connection is a fundamental requirement to perform many of the services offered by TCP. UDP transmits data packets only. The second difference refers to the way data is fragmented into packets. In TCP, an application does not need to control how much data can fit in one packet. It can simply transmit the data in a continuous flow (stream) of bytes, because the operating system (O.S). decides when there are enough bytes to create packets. The OS on the receiver reassembles packets transparently to the application that receives the data as a stream of bytes. In the case of UDP, it is up to the application to provide to the O.S. an amount of data that fits in a packet. The third difference refers to the control of reception and retransmission of lost packets. In the case of TCP, packets are confirmed by the receiver. If they are not confirmed, they are automatically retransmitted by the O.S., without intervention of the application. In the case of UDP, the detection and retransmission of lost packets, when required, must be performed by the application. 4

5 TCP implements two sophisticated mechanisms not implemented by UDP: flow control and congestion control. Flow control is an automatic packet rate adjustment performed by the transmitter, which reduces its transmission rate to prevent packet loss on the receiver due to buffer overflow. This is necessary when receiver is not able to read the packets at the rate sent by the transmitter. The packets are first received by the O.S. (operating system) and stored in a buffer. If the application does not read the bytes from the buffer with enough speed, the result may be buffer overflow. Congestion control is also a packet rate adjustment, but caused by packet loss in the network. When TCP detects packet loss, it assumes that routers had to drop packets because the network is congested. This mechanism was implemented in the early days of the Internet when it was realized that the automatic retransmission of packets without congestion control could lead to a fast collapse of the network. The additional features offered by TCP over UDP have a cost: TCP only supports unicast transmissions. That is, you cannot use broadcast or multicast addresses on TCP connections. This happens, among other reasons, because the TCP packets need to be confirmed by the recipient. Confirmation is not possible when generic destination addresses are used because the sender does not know how many recipients it must wait for confirmation. All applications that need to transmit broadcast or multicast packets need to use UDP. TCP is also more costly in terms of use of C.P.U. for the O.S. and also in terms of the volume of data transmitted over the network. It is not indicated for applications that transmit only a few amount of packets or messages that cannot be delayed. 5

6 The TCP PDU (protocol data unit) is called segment. The TCP header is shown in the figure. In addition to the ports numbers of origin and destination, the remaining fields of the TCP header are related functions provided by the protocol. The Sequence Number and Acknowledgement Number fields are related to the mechanism of reliable transmission. The Receive Window field is related to the mechanism of flow control. The Flags field contains a set of control bits used to control TCP connection and also the reliable transmission process. The Urgent Pointer field is rarely used in practice. It allows you to tell the receiver that some data should be processed with more priority, passing in front of other data that is already buffered waiting for processing. The Options field is not required and is often omitted from the TCP header. The TCP header has a variable size because the options field is optional. Therefore, HLEN field defines the size of the header in 4-byte words. 6

7 When using TCP, the decision of when a segment is created and transmitted is done by the protocol and not by the application. This strategy is called the flow (streaming) transmission.using the Sockets API, the application sends a continuous stream of bytes to the operation system (O.S.). Each send API call does not necessarily generate a packet. TCP may wait for a reasonable number of bytes in the transmission buffer, to avoid generating too many packets of small size. The package size is a compromise between minimizing the number of packets transmitted and not causing excessive delay when the volume of data to be transmitted is small. Theoretically, the maximum size of an IP packet is 64 Kbytes (less the size of the TCP header). At first this would be about the amount of data that TCP should wait before generating a packet. In modern O.S., however, the amount of bytes that TCP accumulates is defined according to the MTU of the network adaptor (1500 bytes for Ethernet). This is done to prevent packets to be fragmented by the IP layer. The maximum size of a segment is called MSS (Maximum Segment Size). It corresponds to 1460 bytes (1500 bytes - 20 bytes of IP header - 20 bytes of the TCP header) in the Ethernet technology. 7

8 In order to make the process of segmentation and reassembly transparent to applications, the TCP header includes information necessary for the O.S. to reassembly the data in the receiver in the same order it was sent by the transmitter. A TCP connection is identified by four addresses: Source IP, Source Port Number, Destination IP, and Destination Port Number. As illustrated in the figure, after establishing a TCP connection, all segments are numbered using the "Sequence Number" field. The sequence number indentifies the first byte in a segment, but the first segment in a connection does not start in ZERO. Instead, an initial sequence number (ISN) is chosen randomly. A different ISN is chosen for each connection. If the same pair of computers (A, B) terminates a connection and starts another immediately, another ISN is used. The value of ISN is also unidirectional, i.e., a ISN is used for the packet flow from A to B and another from B to A. The justification to use a random ISN is to avoid an erroneous packet reassembly when a connection terminates and is immediately re-established using the same port numbers. Without a random ISN, due to network delay, packets of the previously connection could be confused with the packages of the new connection. 8

9 TCP implements a reliable communication process called "retransmission in absence of confirmation". As the figure shows, TCP the sequence number (SEQ) and confirmation number (CONF) numbers to implement this strategy. The SEQ field always indicates the first byte of the segment being transmitted. The CONF field indicates the next byte that the sender expects to receive from its peer. The CONF field has the implied meaning of confirming the receipt of all bytes preceding the CONF number. That is, if a peer sends a segment with the CONF= 2000, it acknowledges the receipt of all bytes until TCP does not necessary to send control packets only to confirm the receipt of data. It uses a strategy in which the same segment used to transmit new data also confirms the bytes already received. To illustrate this concept, assume that a client has to transmit two segments: segment 1 (bytes ) and segment 2 (bytes ). The server also has to transmit two segments: The segment A (bytes ) and segment B (bytes ). The client transmits the first segment (500 bytes) with SEQ=1000 and CONF=2000. This means it is confirming to the server the receipt of all bytes until The server responds with SEQ=2000 and CONF=1500. The SEQ field exactly matches the next byte expected by the client and the CONF field confirms the receipt of the bytes corresponding to segment 1. The process continues as indicate in the figure. 9

10 The retransmission technique used by TCP is based in a positive acknowledgement with temporization. TCP has no error messages. If an acknowledgment does not arrive at the transmitter in a given time, the segment is retransmitted. The receiver can send packets without data, only with confirmation, when it has nothing to transmit. The maximum time to wait for an acknowledgment is estimated based on the average Round-Trip Time (RTT) to send and confirm a segment. The transmitter can adopt several techniques to estimate the RTT. A common strategy is as follows: EstimatedRTT = EstimatedRTT SampleRTT Timer = EstimatedRTT + 4. Deviation Deviation= Desvio (SampleRTT EstimatedRTT) where: SampleRTT: last measure of RTT Temporizador: maximum time to wait a confirmation Deviation: a measure of the fluctuation of the RTT The receiver does not confirm segments received out of order. Instead, for each segment received out of order, the receiver repeats the confirmation number of the last segment received in the correct sequence. If the transmitter receives three segments with the same acknowledgment number, it retransmits all segments not confirmed yet. This technique is called fast retransmission (retransmission before timeout of the retransmission timer). The figure presents a summary of key recommendations on the operation of TCP, described in RFCs 1122 and

11 ACK, SYN and FIN bits (defined in the FLAGS field of the TCP header) are used to control the opening and closing of TCP connections. The ACK flag is the confirmation of receipt. It is always ZERO in the first segment sent by the client (because there is nothing to confirm) and 1 everywhere else. The SYN flag controls the ISN synchronization. It is ONE in the first two segments exchanged between the client and the server, and zero everywhere else. The FIN flag is the termination flag. It is ONE to indicate that a connection must be terminated. The beginning of a TCP connection defines the ISN (Initial Sequence Numbers) used by the client and the server. This involves the exchange of three segments: 1) The client sends a request to open a connection (SYN segment). This segment defines the initial value of the sequence number of the client (C_ISN), and is identified by the flags SYN=1 and ACK=0. 2) The server confirms the connection (SYNACK segment). This segment reports the ISN of the server (S_ISN), and is identified by the flags SYN=1 and ACK=1. 3) The client sends the confirmation of receipt of SYNACK segment. After this stage, data can be exchanged indefinitely between client and server. Note that during the exchange of data SYN=0 and ACK=1. A connection may be closed by the initiative of the client or the server. A TCP connection is bidirectional, so closing a connection requires both client and server to send termination 11

12 The reception process is transparent to the application, since TCP is implemented by the O.S. When a TCP segment is transmitted, it is first received by operating system (O.S.) and stored in a buffer. However, this buffer has limited capacity. The receiver application must be able to remove the data from the buffer at a rate compatible with the rate of the transmitter. If the receiver is very slow (or the application is poorly written), the receiver buffer may be overloaded. When the buffer is full, the O.S. discard all segments received. In this condition, the automatic retransmission of lost packets will probably worse the situation, for both, the receiver and the network. Flow control is a TCP mechanism that prevents this from happening. According to this mechanism, the receiver informs along with any segment confirmation the amount of buffer that it still has available using the Receive Window (RcvWindow) field of the TCP header. To illustrate how flow control works, consider the scenario of the figure, where computer A is the transmitter and computer B is the receiver. The algorithm for calculating the Receive Window uses three parameters: RcvBuffer = reception buffer of B LastByteRead = last by read by the B application LastByteRcvd = last by received by the B O.S. The receive window sent from B to A is defined as: RcvWindow = RcvBuffer - [LastByteRcvd - LastByteRead] 12

13 In practice, TCP requires another window which limits the transmission rate. This window is called Congestion Window (CongWin). Unlike the Receive Window, the CongWin does not have a corresponding field in the TCP header. It is calculated internally by the O.S. of the transmitter based on the success or failure of the segment transmissions. Every time a segment is lost, TCP assumes that the network is congested and tries to reduce the rate of the transmitter. When segments are transmitted successfully, the CongWin is increased. The CongWin is calculated in multiples of MSS (Maximum Segment Size = 1460 bytes). The figure illustrates how the CongWin evolves over time. Initially, the window is set to 1 MSS and it is doubled at every segment successfully confirmed. This process is called exponential growth and continues until a certain Threshold is achieved. From that point, the CongWin enters in a congestion avoidance phase, where the growth is slower (just a 1 MSS at every successful confirmation). In case of failure, the CongWin and Threshold are reduced by half. The algorithm to compute the CongWin can be summarized as follows: a) Initialization: CongWin = 1 MSS (Maximum Segment Size = 1460 bytes) Threshold = 65 kbps b) Exponential Growth Phase: At each successful segment aknowledge: if CongWin < Threshold : CongWin = CongWin + MSS i.e., CongWin= Congwin*2 per RTT Otherwise go to congestion avoidance: CongWin = CongWin + (MSS/CongWin) i.e., CongWin = CongWin + 1 MSS per RTT 13

14 At a given instant, the maximum transmission rate is given by the smallest window defined by flow control and congestion control. This maximum transmission rate is calculated as follows: max-rate = [ min ( CongWindow, RcvWindow ) - ( LastByteSent - LastByteAcked ) ] / RTT bytes / s. where : LastByteSent : last byte sent by the transmitter LastByteAcked : last byte confirmed by receiver TCP consider two types of failures: segments lost (i.e., the receiver does not send any acknowledgment) and segments out of order (i.e., the receiver sends duplicate acknowledgments). The first event is considered more severe than the latter, because out of order segments means that some segments are still being received. There are some variations in the implementation of TCP that differ in the way the congestion control mechanism reacts to these failure events. The Tahoe version is the oldest, and returns to slow start (CongWin = 1MSS) for any type of failure event. The Reno version is more recent, and takes a quick recovery (CongWin=CongWin/2) in the case of out of order segments, and slow start (CongWin = 1MSS) in case of segments 14

15 OThe UDP (User Datagram Protocol) header is much simpler than TCP because it does not offer any functionality beyond port number addressing. The PDU of UDP is called datagram, which is also a frequent synonym for packet. UDP means that packets are created at user (application) level. Despite having a field for error checking (CheckSum), UDP offers no confirmation service to the transmitter, or retransmission of lost packets. It doesn t use connections, being unable to segment and reassemble data in a transparent way to the application level. That does not mean it is not possible to develop applications over UDP that are reliable or capable of transmitting large volumes of data. It simply means that these additional features should be embedded in the application level, because they are not offered by the operating system. For example, NFS (Network File System) that allows Unix systems to share directories over the network is built on UDP. In many cases, developers choose not to use the features of TCP due to performance issues. This is particularly true for delay and jitter sensitive applications (i.e., real-time applications). For example, for VoIP (Voice over IP) is not worth retransmitting lost packets, since the ability to re-order packets at the VoIP terminal is limited. UDP is still essential in cases of applications that need to transmit messages to multicast or broadcast addresses because TCP only supports unicast mode. 15

16 Code sharing at the application layer is much harder than in transport layer. While TCP, UDP and IP protocols offer the possibility of reusing the same code among different applications, application protocols are too specialized to be shared. Thus, it is not worth implementing application protocols at the operating system level. They are embedded with the client and server applications. The purpose of the application protocols is to allow communication between programs developed by different vendors. Application protocols related to IP networks are standardized in the form of RFCs by the IETF. Many protocols used on the Internet handle only text messages. In these protocols, the separation between fields is often made by a newline character (\n). For example, a HTTP message from a client requesting the page may have the following format: GET /~jamhour/welcome.html HTTP/1.1\r\n Host: espec.ppgia.pucpr.br\r\n Cache-Control: no-cache\r\n \r\n Protocols in text format, such as HTTP, the transmission content that include non-printable characters (such as pictures or videos) must be encoded using algorithms such as base64. These algorithms are able to encode any binary information into text characters, so it can be transmitted without breaking the protocol. 16

17 As discussed earlier, IANA (Internet Assigned Number Authority) defines a standard port number assignment to TCP or UDP applications. This standard ports is called "Well Known Ports". The figure illustrates the port numbers associated with some well known application protocols. Well-known ports are mostly used at the server side. On the client side, the port number is dynamic, and it is chosen by the operating system when the client application requests a connection to the server. There are some peer-to-peer protocols, such as SMB (Sever Message Block), where the client-server paradigm does not stand, and the fixed port number is used by all peers. For example, wget is a command line http client used in Linux. When you type the following command, the wget client will receive a dynamic port that will be associated to it during the transfer of the vlan.tar.gz wget The port number assigned to the wget is released after the end of the file download, because the TCP connection is terminated by the http server. When you type the wget command is not necessary to specify which port the http server is listening. This happens because the client wget by default assumes that the server is connected to the port number 80. However, it is possible to make server applications to listen to alternate ports numbers. If the http server espec is listening on port number 8080 (not default), you must inform the port number of the server to the wget client as follows: wget Most server applications in Linux have a name ending with "d". This happens because applications that run in the background (with no visible user interface) are called daemon 17

18 In this unit, we reviewed the main concepts related to transport and application layers in the TCP/IP architecture. Deeper knowledge about the operation of the TCP and UDP are needed, for example, in network security. Many attacks performed against applications such as stealing a TCP connection is performed at the transport level. Also, information about the TCP flags are used in firewall rules to prevent against port spoofing attacks. The knowledge about how port numbers are assigned is also important to understand the operation of the Proxy and NAT mechanisms, discussed in the sequence of this discipline. The concept of application protocol is also necessary to understand the operation of Proxies. 18

Transport Protocols and TCP

Transport Protocols and TCP Transport Protocols and TCP Functions Connection establishment and termination Breaking message into packets Error recovery ARQ Flow control Multiplexing, de-multiplexing Transport service is end to end

More information

CS Lecture 1 Review of Basic Protocols

CS Lecture 1 Review of Basic Protocols CS 557 - Lecture 1 Review of Basic Protocols IP - RFC 791, 1981 TCP - RFC 793, 1981 Spring 2013 These slides are a combination of two great sources: Kurose and Ross Textbook slides Steve Deering IETF Plenary

More information

TCP. 1 Administrivia. Tom Kelliher, CS 325. Apr. 2, Announcements. Assignment. Read From Last Time

TCP. 1 Administrivia. Tom Kelliher, CS 325. Apr. 2, Announcements. Assignment. Read From Last Time TCP Tom Kelliher, CS 325 Apr. 2, 2008 1 Administrivia Announcements Assignment Read 3.6 7. From Last Time Web server and mail user agent project discussions. Outline 1. TCP connection and segment structure.

More information

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

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

More information

Lecture 8. TCP/IP Transport Layer (2)

Lecture 8. TCP/IP Transport Layer (2) Lecture 8 TCP/IP Transport Layer (2) Outline (Transport Layer) Principles behind transport layer services: multiplexing/demultiplexing principles of reliable data transfer learn about transport layer protocols

More information

Flow and Congestion Control (Hosts)

Flow and Congestion Control (Hosts) Flow and Congestion Control (Hosts) 14-740: Fundamentals of Computer Networks Bill Nace Material from Computer Networking: A Top Down Approach, 6 th edition. J.F. Kurose and K.W. Ross traceroute Flow Control

More information

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

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP Transport layer Review principles: Reliable data transfer Flow control Congestion control Instantiation in the Internet UDP TCP 1 UDP: User Datagram Protocol [RFC 768] No frills, bare bones Internet transport

More information

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

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control Transport layer Review principles: Reliable data transfer Flow control Congestion control Instantiation in the Internet UDP TCP 1 UDP: User Datagram Protocol [RFC 768] No frills, bare bones Internet transport

More information

Lecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24

Lecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24 Lecture 20 Overview Last Lecture Transport Control Protocol (1) This Lecture Transport Control Protocol (2) Source: chapters 23, 24 Next Lecture Internet Applications Source: chapter 26 COSC244 & TELE202

More information

9th Slide Set Computer Networks

9th Slide Set Computer Networks Prof. Dr. Christian Baun 9th Slide Set Computer Networks Frankfurt University of Applied Sciences WS1718 1/49 9th Slide Set Computer Networks Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

More information

User Datagram Protocol

User Datagram Protocol Topics Transport Layer TCP s three-way handshake TCP s connection termination sequence TCP s TIME_WAIT state TCP and UDP buffering by the socket layer 2 Introduction UDP is a simple, unreliable datagram

More information

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

Lecture 11. Transport Layer (cont d) Transport Layer 1 Lecture 11 Transport Layer (cont d) Transport Layer 1 Agenda The Transport Layer (continue) Connection-oriented Transport (TCP) Flow Control Connection Management Congestion Control Introduction to the

More information

CSCD 330 Network Programming Winter 2015

CSCD 330 Network Programming Winter 2015 CSCD 330 Network Programming Winter 2015 Lecture 11a Transport Layer Reading: Chapter 3 Some Material in these slides from J.F Kurose and K.W. Ross All material copyright 1996-2007 1 Chapter 3 Sections

More information

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

32 bits. source port # dest port # sequence number acknowledgement number not used. checksum. Options (variable length) 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 Connectionoriented transport: TCP segment

More information

CNT 6885 Network Review on Transport Layer

CNT 6885 Network Review on Transport Layer CNT 6885 Network Review on Transport Layer Jonathan Kavalan, Ph.D. Department of Computer, Information Science and Engineering (CISE), University of Florida User Datagram Protocol [RFC 768] no frills,

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:

More information

EE 122: Transport Protocols. Kevin Lai October 16, 2002

EE 122: Transport Protocols. Kevin Lai October 16, 2002 EE 122: Transport Protocols Kevin Lai October 16, 2002 Motivation IP provides a weak, but efficient service model (best-effort) - packets can be delayed, dropped, reordered, duplicated - packets have limited

More information

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

Transmission Control Protocol. ITS 413 Internet Technologies and Applications Transmission Control Protocol ITS 413 Internet Technologies and Applications Contents Overview of TCP (Review) TCP and Congestion Control The Causes of Congestion Approaches to Congestion Control TCP Congestion

More information

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

Transport Over IP. CSCI 690 Michael Hutt New York Institute of Technology Transport Over IP CSCI 690 Michael Hutt New York Institute of Technology Transport Over IP What is a transport protocol? Choosing to use a transport protocol Ports and Addresses Datagrams UDP What is a

More information

Mobile Transport Layer Lesson 02 TCP Data Stream and Data Delivery

Mobile Transport Layer Lesson 02 TCP Data Stream and Data Delivery Mobile Transport Layer Lesson 02 TCP Data Stream and Data Delivery 1 TCP Data Stream Consists of bytes Delivered using a virtual connection between sockets Each socket has the port number and IP address

More information

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

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, steam: r Development of reliable protocol r Sliding window protocols Outline r Development of reliable protocol r Sliding window protocols m Go-Back-N, Selective Repeat r Protocol performance r Sockets, UDP, TCP, and IP r UDP operation r TCP operation m connection management

More information

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

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections Application / Transport Interface Application requests service from transport layer Transport Layer Application Layer Prepare Transport service requirements Data for transport Local endpoint node address

More information

Transport Layer: outline

Transport Layer: outline Transport Layer: outline Transport-layer services Multiplexing and demultiplexing Connectionless transport: UDP Principles of reliable data transfer Connection-oriented transport: TCP Segment structure

More information

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

Lecture 08: The Transport Layer (Part 2) The Transport Layer Protocol (TCP) Dr. Anis Koubaa NET 331 Computer Networks Lecture 08: The Transport Layer (Part 2) The Transport Layer Protocol (TCP) Dr. Anis Koubaa Reformatted slides from textbook Computer Networking a top-down appraoch, Fifth Edition

More information

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

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, Development of reliable protocol Sliding window protocols Outline Development of reliable protocol Sliding window protocols Go-Back-N, Selective Repeat Protocol performance Sockets, UDP, TCP, and IP UDP operation TCP operation connection management flow control

More information

Transport Protocols & TCP TCP

Transport Protocols & TCP TCP Transport Protocols & TCP CSE 3213 Fall 2007 13 November 2007 1 TCP Services Flow control Connection establishment and termination Congestion control 2 1 TCP Services Transmission Control Protocol (RFC

More information

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

Suprakash Datta. Office: CSEB 3043 Phone: ext Course page: CSE 3214: Computer Networks Protocols and Applications Suprakash Datta datta@cse.yorku.ca Office: CSEB 3043 Phone: 416-736-2100 ext 77875 Course page: http://www.cse.yorku.ca/course/3214 These slides are

More information

Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4021: Networks Discussion. Chapter 5 - Part 2

Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4021: Networks Discussion. Chapter 5 - Part 2 Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4021: Networks Discussion Chapter 5 - Part 2 End to End Protocols Eng. Haneen El-Masry May, 2014 Transport Layer

More information

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

Correcting mistakes. TCP: Overview RFCs: 793, 1122, 1323, 2018, TCP seq. # s and ACKs. GBN in action. TCP segment structure Correcting mistakes Go-back-N: big picture: sender can have up to N unacked packets in pipeline rcvr only sends cumulative acks doesn t ack packet if there s a gap sender has r for oldest unacked packet

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Transport Layer Connection Oriented Transport: TCP Sec 3.5 Prof. Lina Battestilli Fall 2017 Transport Layer Chapter 3 Outline 3.1 Transport-layer Services

More information

Transport Protocols and TCP: Review

Transport Protocols and TCP: Review Transport Protocols and TCP: Review CSE 6590 Fall 2010 Department of Computer Science & Engineering York University 1 19 September 2010 1 Connection Establishment and Termination 2 2 1 Connection Establishment

More information

Transport Layer: Outline

Transport Layer: Outline Transport Layer: Outline Transport-layer services Multiplexing and demultiplexing Connectionless transport: UDP Principles of reliable data transfer Connection-oriented transport: TCP Segment structure

More information

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Introduction to Networking Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Distributed File Systems Operating Systems In Depth XXVII 2 Copyright 2017 Thomas W.

More information

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 25, 2018

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 25, 2018 CMSC 417 Computer Networks Prof. Ashok K Agrawala 2018 Ashok Agrawala Message, Segment, Packet, and Frame host host HTTP HTTP message HTTP TCP TCP segment TCP router router IP IP packet IP IP packet IP

More information

ECE 333: Introduction to Communication Networks Fall 2001

ECE 333: Introduction to Communication Networks Fall 2001 ECE 333: Introduction to Communication Networks Fall 2001 Lecture 28: Transport Layer III Congestion control (TCP) 1 In the last lecture we introduced the topics of flow control and congestion control.

More information

TSIN02 - Internetworking

TSIN02 - Internetworking TSIN02 - Internetworking Literature: Lecture 4: Transport Layer Forouzan: ch 11-12 Transport layer responsibilities UDP TCP 2004 Image Coding Group, Linköpings Universitet 2 Transport layer in OSI model

More information

Sequence Number. Acknowledgment Number. Data

Sequence Number. Acknowledgment Number. Data CS 455 TCP, Page 1 Transport Layer, Part II Transmission Control Protocol These slides are created by Dr. Yih Huang of George Mason University. Students registered in Dr. Huang's courses at GMU can make

More information

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

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 ocket door point-to-point: one sender, one receiver reliable, in-order byte steam: no message boundaries pipelined: TCP congestion and flow control set window

More information

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

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 Guide To TCP/IP, Second Edition Chapter 5 Transport Layer TCP/IP Protocols Objectives Understand the key features and functions of the User Datagram Protocol (UDP) Explain the mechanisms that drive segmentation,

More information

IS370 Data Communications and Computer Networks. Chapter 5 : Transport Layer

IS370 Data Communications and Computer Networks. Chapter 5 : Transport Layer IS370 Data Communications and Computer Networks Chapter 5 : Transport Layer Instructor : Mr Mourad Benchikh Introduction Transport layer is responsible on process-to-process delivery of the entire message.

More information

TSIN02 - Internetworking

TSIN02 - Internetworking Lecture 4: Transport Layer Literature: Forouzan: ch 11-12 2004 Image Coding Group, Linköpings Universitet Lecture 4: Outline Transport layer responsibilities UDP TCP 2 Transport layer in OSI model Figure

More information

Fall 2012: FCM 708 Bridge Foundation I

Fall 2012: FCM 708 Bridge Foundation I Fall 2012: FCM 708 Bridge Foundation I Prof. Shamik Sengupta Instructor s Website: http://jjcweb.jjay.cuny.edu/ssengupta/ Blackboard Website: https://bbhosted.cuny.edu/ Intro to Computer Networking Transport

More information

Multiple unconnected networks

Multiple unconnected networks TCP/IP Life in the Early 1970s Multiple unconnected networks ARPAnet Data-over-cable Packet satellite (Aloha) Packet radio ARPAnet satellite net Differences Across Packet-Switched Networks Addressing Maximum

More information

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

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data ELEX 4550 : Wide Area Networks 2015 Winter Session UDP and TCP is lecture describes the two most common transport-layer protocols used by IP networks: the User Datagram Protocol (UDP) and the Transmission

More information

TCP and Congestion Control (Day 1) Yoshifumi Nishida Sony Computer Science Labs, Inc. Today's Lecture

TCP and Congestion Control (Day 1) Yoshifumi Nishida Sony Computer Science Labs, Inc. Today's Lecture TCP and Congestion Control (Day 1) Yoshifumi Nishida nishida@csl.sony.co.jp Sony Computer Science Labs, Inc 1 Today's Lecture Part1: TCP concept Part2: TCP detailed mechanisms Part3: Tools for TCP 2 1

More information

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline CPSC 360 Network Programming The Transport Layer Reliable data delivery & flow control in TCP Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu http://www.cs.clemson.edu/~mweigle/courses/cpsc360

More information

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

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2. Goals for Todayʼs Lecture. Role of Transport Layer Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 CS 375: Computer Networks Thomas C. Bressoud 1 Goals for Todayʼs Lecture Principles underlying transport-layer services (De)multiplexing Detecting

More information

COMP 431 Internet Services & Protocols. Transport Layer Protocols & Services Outline. The Transport Layer Reliable data delivery & flow control in TCP

COMP 431 Internet Services & Protocols. Transport Layer Protocols & Services Outline. The Transport Layer Reliable data delivery & flow control in TCP COMP 431 Internet Services & Protocols Transport Layer Protocols & Services Outline The Transport Layer Reliable data delivery & flow control in TCP Jasleen Kaur Fundamental transport layer services» Multiplexing/Demultiplexing»

More information

CSE 4213: Computer Networks II

CSE 4213: Computer Networks II Next CSE 4213: Computer Networks II The layer Suprakash Datta datta@cs.yorku.ca Office: CSEB 3043 Phone: 416-736-2100 ext 77875 Course page: http://www.cs.yorku.ca/course/4213 These slides are adapted

More information

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

Transport Layer. -UDP (User Datagram Protocol) -TCP (Transport Control Protocol) Transport Layer -UDP (User Datagram Protocol) -TCP (Transport Control Protocol) 1 Transport Services The transport layer has the duty to set up logical connections between two applications running on remote

More information

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri Department of Computer and IT Engineering University of Kurdistan Transport Layer By: Dr. Alireza Abdollahpouri TCP/IP protocol suite 2 Transport Layer The transport layer is responsible for process-to-process

More information

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 Transport Protocols Reading: Sections 2.5, 5.1, and 5.2 CE443 - Fall 1390 Acknowledgments: Lecture slides are from Computer networks course thought by Jennifer Rexford at Princeton University. When slides

More information

Reliable Transport I: Concepts and TCP Protocol

Reliable Transport I: Concepts and TCP Protocol Reliable Transport I: Concepts and TCP Protocol Stefano Vissicchio UCL Computer Science COMP0023 Today Transport Concepts Layering context Transport goals Transport mechanisms and design choices TCP Protocol

More information

TCP : Fundamentals of Computer Networks Bill Nace

TCP : Fundamentals of Computer Networks Bill Nace TCP 14-740: Fundamentals of Computer Networks Bill Nace Material from Computer Networking: A Top Down Approach, 6 th edition. J.F. Kurose and K.W. Ross Administrivia Lab #1 due now! Reminder: Paper Review

More information

CSCE 463/612 Networks and Distributed Processing Spring 2017

CSCE 463/612 Networks and Distributed Processing Spring 2017 CSCE 463/612 Networks and Distributed Processing Spring 2017 Transport Layer IV Dmitri Loguinov Texas A&M University March 9, 2017 Original slides copyright 1996-2004 J.F Kurose and K.W. Ross 1 Chapter

More information

TSIN02 - Internetworking

TSIN02 - Internetworking Lecture 4: Outline Literature: Lecture 4: Transport Layer Forouzan: ch 11-12 RFC? Transport layer introduction UDP TCP 2004 Image Coding Group, Linköpings Universitet 2 The Transport Layer Transport layer

More information

CS 716: Introduction to communication networks th class; 7 th Oct Instructor: Sridhar Iyer IIT Bombay

CS 716: Introduction to communication networks th class; 7 th Oct Instructor: Sridhar Iyer IIT Bombay CS 716: Introduction to communication networks - 18 th class; 7 th Oct 2011 Instructor: Sridhar Iyer IIT Bombay Reliable Transport We have already designed a reliable communication protocol for an analogy

More information

Chapter 3 outline. 3.5 connection-oriented transport: TCP segment structure reliable data transfer flow control connection management

Chapter 3 outline. 3.5 connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 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

More information

CSCD 330 Network Programming

CSCD 330 Network Programming CSCD 330 Network Programming Lecture 10 Transport Layer Continued Spring 2018 Reading: Chapter 3 Some Material in these slides from J.F Kurose and K.W. Ross All material copyright 1996-2007 1 Last Time.

More information

Problem. Chapter Outline. Chapter Goal. End-to-end Protocols. End-to-end Protocols. Chapter 5. End-to-End Protocols

Problem. Chapter Outline. Chapter Goal. End-to-end Protocols. End-to-end Protocols. Chapter 5. End-to-End Protocols Computer Networks: A Systems Approach, 5e Larry L. Peterson and Bruce S. Davie End-to-End Protocols Problem How to turn this host-to-host packet delivery service into a process-to-process communication

More information

User Datagram Protocol (UDP):

User Datagram Protocol (UDP): SFWR 4C03: Computer Networks and Computer Security Feb 2-5 2004 Lecturer: Kartik Krishnan Lectures 13-15 User Datagram Protocol (UDP): UDP is a connectionless transport layer protocol: each output operation

More information

CS457 Transport Protocols. CS 457 Fall 2014

CS457 Transport Protocols. CS 457 Fall 2014 CS457 Transport Protocols CS 457 Fall 2014 Topics Principles underlying transport-layer services Demultiplexing Detecting corruption Reliable delivery Flow control Transport-layer protocols User Datagram

More information

EE 122: Transport Protocols: UDP and TCP

EE 122: Transport Protocols: UDP and TCP EE 122: Transport Protocols: and provides a weak, but efficient service model (best-effort) - Packets can be delayed, dropped, reordered, duplicated - Packets have limited size (why?) packets are addressed

More information

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline CPSC 852 Internetworking The Transport Layer Reliable data delivery & flow control in TCP Michele Weigle Department of Computer Science Clemson University mweigle@cs.clemson.edu http://www.cs.clemson.edu/~mweigle/courses/cpsc852

More information

Chapter 24. Transport-Layer Protocols

Chapter 24. Transport-Layer Protocols Chapter 24. Transport-Layer Protocols 23.1 Introduction 23.2 User Datagram Protocol 23.3 Transmission Control Protocol 23.4 SCTP Computer Networks 24-1 Position of Transport-Layer Protocols UDP is an unreliable

More information

Chapter 3- parte B outline

Chapter 3- parte B outline Chapter 3- parte B 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:

More information

CSC 4900 Computer Networks: TCP

CSC 4900 Computer Networks: TCP CSC 4900 Computer Networks: TCP Professor Henry Carter Fall 2017 Project 2: mymusic You will be building an application that allows you to synchronize your music across machines. The details of which are

More information

TCP Service Model. Today s Lecture. TCP Support for Reliable Delivery. EE 122:TCP, Connection Setup, Reliability

TCP Service Model. Today s Lecture. TCP Support for Reliable Delivery. EE 122:TCP, Connection Setup, Reliability Today s Lecture How does TCP achieve correct operation? EE 122:TCP, Connection Setup, Reliability Ion Stoica TAs: Junda Liu, DK Moon, David Zats Reliability in the face of IP s best effort service 3-way

More information

CC451 Computer Networks

CC451 Computer Networks CC451 Computer Networks Lecture 6 Transport Layer (cont d) Transport Layer 3-1 Chapter 3 Transport Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty,

More information

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

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol Transport Layer Transport Layer The transport layer is responsible for the delivery of a message from one process to another Types of Data Deliveries Client/Server Paradigm An application program on the

More information

II. Principles of Computer Communications Network and Transport Layer

II. Principles of Computer Communications Network and Transport Layer II. Principles of Computer Communications Network and Transport Layer A. Internet Protocol (IP) IPv4 Header An IP datagram consists of a header part and a text part. The header has a 20-byte fixed part

More information

Chapter 3 Review Questions

Chapter 3 Review Questions Chapter 3 Review Questions. 2. 3. Source port number 6 and destination port number 37. 4. TCP s congestion control can throttle an application s sending rate at times of congestion. Designers of applications

More information

PROBLEMSAND EXERCISES

PROBLEMSAND EXERCISES Departamento de Tecnología Electrónica Computer Networking Unit 3: Transport layer PROBLEMSAND EXERCISES Transport Layer 95 Pr1: port numbers Suppose that the client A initiates a TCP connection to a Web

More information

05 Transmission Control Protocol (TCP)

05 Transmission Control Protocol (TCP) SE 4C03 Winter 2003 05 Transmission Control Protocol (TCP) Instructor: W. M. Farmer Revised: 06 February 2003 1 Interprocess Communication Problem: How can a process on one host access a service provided

More information

COMP/ELEC 429/556 Introduction to Computer Networks

COMP/ELEC 429/556 Introduction to Computer Networks COMP/ELEC 429/556 Introduction to Computer Networks The TCP Protocol Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang T. S. Eugene Ng eugeneng at cs.rice.edu

More information

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

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 9 CMPE 150/L : Introduction to Computer Networks Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 9 1 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3

More information

10 minutes survey (anonymous)

10 minutes survey (anonymous) 10 minutes survey (anonymous) v Comments/Suggestions to my lecture/lab/ homework/exam v If you like this course, which part do you like? v If you don t like it, which part do you not like? Thanks! Transport

More information

TSIN02 - Internetworking

TSIN02 - Internetworking Lecture 4: Transport Layer Literature: Forouzan: ch 11-12 2004 Image Coding Group, Linköpings Universitet Lecture 4: Outline Transport layer responsibilities UDP TCP 2 Transport layer in OSI model Figure

More information

Just enough TCP/IP. Protocol Overview. Connection Types in TCP/IP. Control Mechanisms. Borrowed from my ITS475/575 class the ITL

Just enough TCP/IP. Protocol Overview. Connection Types in TCP/IP. Control Mechanisms. Borrowed from my ITS475/575 class the ITL Just enough TCP/IP Borrowed from my ITS475/575 class the ITL 1 Protocol Overview E-Mail HTTP (WWW) Remote Login File Transfer TCP UDP RTP RTCP SCTP IP ICMP ARP RARP (Auxiliary Services) Ethernet, X.25,

More information

ETSF05/ETSF10 Internet Protocols Transport Layer Protocols

ETSF05/ETSF10 Internet Protocols Transport Layer Protocols ETSF05/ETSF10 Internet Protocols Transport Layer Protocols 2016 Jens Andersson Transport Layer Communication between applications Process-to-process delivery Client/server concept Local host Normally initialiser

More information

TCP: Flow and Error Control

TCP: Flow and Error Control 1 TCP: Flow and Error Control Required reading: Kurose 3.5.3, 3.5.4, 3.5.5 CSE 4213, Fall 2006 Instructor: N. Vlajic TCP Stream Delivery 2 TCP Stream Delivery unlike UDP, TCP is a stream-oriented protocol

More information

Kent State University

Kent State University CS 4/54201 Computer Communication Network Kent State University Dept. of Computer Science www.mcs.kent.edu/~javed/class-net06f/ 1 A Course on Networking and Computer Communication LECT-10, S-2 IP- Internet

More information

TCP/IP Performance ITL

TCP/IP Performance ITL TCP/IP Performance ITL Protocol Overview E-Mail HTTP (WWW) Remote Login File Transfer TCP UDP IP ICMP ARP RARP (Auxiliary Services) Ethernet, X.25, HDLC etc. ATM 4/30/2002 Hans Kruse & Shawn Ostermann,

More information

Computer Networking Introduction

Computer Networking Introduction Computer Networking Introduction Halgurd S. Maghdid Software Engineering Department Koya University-Koya, Kurdistan-Iraq Lecture No.10 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and

More information

Page 1. Goals for Today" Placing Network Functionality" Basic Observation" CS162 Operating Systems and Systems Programming Lecture 15

Page 1. Goals for Today Placing Network Functionality Basic Observation CS162 Operating Systems and Systems Programming Lecture 15 Goals for Today" CS162 Operating Systems and Systems Programming Lecture 15 Finish e2e argument & fate sharing! Transport: TCP/UDP! Reliability! Flow control! Reliability, Transport Protocols" March 16,

More information

ICS 451: Today's plan. Sliding Window Reliable Transmission Acknowledgements Windows and Bandwidth-Delay Product Retransmission Timers Connections

ICS 451: Today's plan. Sliding Window Reliable Transmission Acknowledgements Windows and Bandwidth-Delay Product Retransmission Timers Connections ICS 451: Today's plan Sliding Window Reliable Transmission Acknowledgements Windows and Bandwidth-Delay Product Retransmission Timers Connections Alternating Bit Protocol: throughput tied to latency with

More information

Introduction to Networks and the Internet

Introduction to Networks and the Internet Introduction to Networks and the Internet CMPE 80N Announcements Project 2. Reference page. Library presentation. Internet History video. Spring 2003 Week 7 1 2 Today Internetworking (cont d). Fragmentation.

More information

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print,

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print, ANNEX B - Communications Protocol Overheads The OSI Model is a conceptual model that standardizes the functions of a telecommunication or computing system without regard of their underlying internal structure

More information

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

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control 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

More information

Transport Protocols. CSCI 363 Computer Networks Department of Computer Science

Transport Protocols. CSCI 363 Computer Networks Department of Computer Science Transport Protocols CSCI 363 Computer Networks Department of Computer Science Expected Properties Guaranteed message delivery Message order preservation No duplication of messages Support for arbitrarily

More information

TCP Congestion Control

TCP Congestion Control TCP Congestion Control Lecture material taken from Computer Networks A Systems Approach, Third Ed.,Peterson and Davie, Morgan Kaufmann, 2003. Computer Networks: TCP Congestion Control 1 TCP Congestion

More information

QUIZ: Longest Matching Prefix

QUIZ: Longest Matching Prefix QUIZ: Longest Matching Prefix A router has the following routing table: 10.50.42.0 /24 Send out on interface Z 10.50.20.0 /24 Send out on interface A 10.50.24.0 /22 Send out on interface B 10.50.20.0 /22

More information

Chapter III: Transport Layer

Chapter III: Transport Layer Chapter III: Transport Layer UG3 Computer Communications & Networks (COMN) Mahesh Marina mahesh@ed.ac.uk Slides thanks to Myungjin Lee and copyright of Kurose and Ross TCP: Overview RFCs: 793,1122,1323,

More information

Networking Technologies and Applications

Networking Technologies and Applications Networking Technologies and Applications Rolland Vida BME TMIT Transport Protocols UDP User Datagram Protocol TCP Transport Control Protocol and many others UDP One of the core transport protocols Used

More information

Stream Control Transmission Protocol

Stream Control Transmission Protocol Chapter 13 Stream Control Transmission Protocol Objectives Upon completion you will be able to: Be able to name and understand the services offered by SCTP Understand SCTP s flow and error control and

More information

Flow and Congestion Control Marcos Vieira

Flow and Congestion Control Marcos Vieira Flow and Congestion Control 2014 Marcos Vieira Flow Control Part of TCP specification (even before 1988) Goal: not send more data than the receiver can handle Sliding window protocol Receiver uses window

More information

NT1210 Introduction to Networking. Unit 10

NT1210 Introduction to Networking. Unit 10 NT1210 Introduction to Networking Unit 10 Chapter 10, TCP/IP Transport Objectives Identify the major needs and stakeholders for computer networks and network applications. Compare and contrast the OSI

More information

Lecture 4: Congestion Control

Lecture 4: Congestion Control Lecture 4: Congestion Control Overview Internet is a network of networks Narrow waist of IP: unreliable, best-effort datagram delivery Packet forwarding: input port to output port Routing protocols: computing

More information

TCP Overview. Connection-oriented Byte-stream

TCP Overview. Connection-oriented Byte-stream TCP Overview Connection-oriented Byte-stream app writes bytes TCP sends segments app reads bytes Full duplex Flow control: keep sender from overrunning receiver Congestion control: keep sender from overrunning

More information

Lecture 3: The Transport Layer: UDP and TCP

Lecture 3: The Transport Layer: UDP and TCP Lecture 3: The Transport Layer: UDP and TCP Prof. Shervin Shirmohammadi SITE, University of Ottawa Prof. Shervin Shirmohammadi CEG 4395 3-1 The Transport Layer Provides efficient and robust end-to-end

More information