The document discusses the TCP/IP protocol suite and the UDP and TCP transport layer protocols. UDP is a connectionless, unreliable protocol that provides basic process-to-process communication with minimal overhead. TCP is a connection-oriented, reliable protocol that establishes virtual connections between processes, provides reliable in-order data delivery through flow and error control mechanisms, and allows processes to communicate via data streams. Both protocols use port numbers to identify communicating processes and encapsulate data in IP datagrams for transmission.
This document provides an overview of the User Datagram Protocol (UDP). It discusses UDP's attributes that make it suited for certain applications like streaming media. It describes UDP's packet structure including header fields like source/destination ports and checksum. It also compares UDP to the Transmission Control Protocol (TCP), noting that UDP does not guarantee delivery or ordering while TCP provides reliability. The document provides examples of applications that commonly use UDP like DNS and VoIP.
The document discusses transport layer protocols and their functions. Transport layer protocols like TCP and UDP provide services to applications to allow communication over an internetwork. They are responsible for establishing and maintaining connections between services on different machines and act as a bridge between the needs of applications and the underlying network layer protocols. Transport layer protocols are tightly tied to and designed to work with the specific network layer protocol below them.
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)Kruti Niranjan
This document provides information about the Transport Layer protocols TCP and UDP. It describes:
1) TCP is a connection-oriented protocol that provides reliable, in-order delivery of data through features like flow control, error control, and congestion control. UDP is a connectionless protocol that does not guarantee delivery or order of packets.
2) The TCP header contains fields for source/destination ports, sequence numbers, acknowledgement numbers, flags, window size, checksum, and options. The UDP header contains fields for source/destination ports, length, and checksum.
3) The main differences between TCP and UDP are that TCP is connection-oriented, provides error control and flow control, and supports full duplex communication
The document discusses the User Datagram Protocol (UDP). It provides the following key points:
- UDP is an alternative to TCP that offers a limited connectionless datagram service for delivery of messages between devices on an IP network. It does not guarantee delivery, order of packets, or duplicate protection like TCP.
- UDP is commonly used for applications that require low latency and minimal processing time like DNS, SNMP, and streaming media. These applications can tolerate some data loss since reliability is not critical.
- The UDP header is only 8 bytes, containing source/destination port numbers and length fields. It provides an optional checksum for error detection but no other reliability mechanisms.
TCP is a connection-oriented, reliable protocol that establishes connections between hosts to transfer byte streams. It uses sequence numbers, acknowledgments, and window sizing for flow control and reliability. Connections go through three phases: establishment, data transfer, and termination. UDP is a simpler connectionless protocol that provides multiplexing and checksumming on top of IP for applications like streaming media that don't require reliability.
The document discusses transport layer protocols TCP and UDP. It provides an overview of process-to-process communication using transport layer protocols. It describes the roles, services, requirements, addressing, encapsulation, multiplexing, and error control functions of the transport layer. It specifically examines TCP and UDP, comparing their connection-oriented and connectionless services, typical applications, and segment/datagram formats.
The document discusses transport layer protocols UDP and TCP. It provides details on their key differences:
- UDP is a connectionless protocol that does not guarantee delivery or order of packets. It has lower overhead and is faster than TCP.
- TCP is connection-oriented and provides reliable, ordered delivery of packets through acknowledgements and retransmissions. It has higher overhead due to these reliability features.
- Both protocols operate at the transport layer, providing process-to-process communication on top of IP's host-to-host delivery. TCP uses handshaking and flow control to establish and manage connections.
TCP and UDP are transport layer protocols that package and deliver data between applications. TCP provides reliable, ordered delivery through connection establishment and packet sequencing. UDP provides faster, unreliable datagram delivery without connections. Common applications using TCP include HTTP, FTP, and SMTP. Common UDP applications include DNS, DHCP, and streaming media.
This document provides an overview of the User Datagram Protocol (UDP). It discusses UDP's attributes that make it suited for certain applications like streaming media. It describes UDP's packet structure including header fields like source/destination ports and checksum. It also compares UDP to the Transmission Control Protocol (TCP), noting that UDP does not guarantee delivery or ordering while TCP provides reliability. The document provides examples of applications that commonly use UDP like DNS and VoIP.
The document discusses transport layer protocols and their functions. Transport layer protocols like TCP and UDP provide services to applications to allow communication over an internetwork. They are responsible for establishing and maintaining connections between services on different machines and act as a bridge between the needs of applications and the underlying network layer protocols. Transport layer protocols are tightly tied to and designed to work with the specific network layer protocol below them.
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)Kruti Niranjan
This document provides information about the Transport Layer protocols TCP and UDP. It describes:
1) TCP is a connection-oriented protocol that provides reliable, in-order delivery of data through features like flow control, error control, and congestion control. UDP is a connectionless protocol that does not guarantee delivery or order of packets.
2) The TCP header contains fields for source/destination ports, sequence numbers, acknowledgement numbers, flags, window size, checksum, and options. The UDP header contains fields for source/destination ports, length, and checksum.
3) The main differences between TCP and UDP are that TCP is connection-oriented, provides error control and flow control, and supports full duplex communication
The document discusses the User Datagram Protocol (UDP). It provides the following key points:
- UDP is an alternative to TCP that offers a limited connectionless datagram service for delivery of messages between devices on an IP network. It does not guarantee delivery, order of packets, or duplicate protection like TCP.
- UDP is commonly used for applications that require low latency and minimal processing time like DNS, SNMP, and streaming media. These applications can tolerate some data loss since reliability is not critical.
- The UDP header is only 8 bytes, containing source/destination port numbers and length fields. It provides an optional checksum for error detection but no other reliability mechanisms.
TCP is a connection-oriented, reliable protocol that establishes connections between hosts to transfer byte streams. It uses sequence numbers, acknowledgments, and window sizing for flow control and reliability. Connections go through three phases: establishment, data transfer, and termination. UDP is a simpler connectionless protocol that provides multiplexing and checksumming on top of IP for applications like streaming media that don't require reliability.
The document discusses transport layer protocols TCP and UDP. It provides an overview of process-to-process communication using transport layer protocols. It describes the roles, services, requirements, addressing, encapsulation, multiplexing, and error control functions of the transport layer. It specifically examines TCP and UDP, comparing their connection-oriented and connectionless services, typical applications, and segment/datagram formats.
The document discusses transport layer protocols UDP and TCP. It provides details on their key differences:
- UDP is a connectionless protocol that does not guarantee delivery or order of packets. It has lower overhead and is faster than TCP.
- TCP is connection-oriented and provides reliable, ordered delivery of packets through acknowledgements and retransmissions. It has higher overhead due to these reliability features.
- Both protocols operate at the transport layer, providing process-to-process communication on top of IP's host-to-host delivery. TCP uses handshaking and flow control to establish and manage connections.
TCP and UDP are transport layer protocols that package and deliver data between applications. TCP provides reliable, ordered delivery through connection establishment and packet sequencing. UDP provides faster, unreliable datagram delivery without connections. Common applications using TCP include HTTP, FTP, and SMTP. Common UDP applications include DNS, DHCP, and streaming media.
There are two main internet protocols: TCP and UDP. TCP is connection-oriented and reliable, ensuring packets are delivered in order. It is slower than UDP but suited for applications like web browsing where reliability is important. UDP is connectionless and faster but packets may arrive out of order or not at all, making it well-suited for real-time applications like games and streaming media. Key differences between the two protocols include their handling of connections, ordering of packets, speed, and reliability of delivery.
This document defines TCP, IP, and UDP. TCP provides reliable, ordered transmission of data and is connection-oriented. It is used for applications like web browsing. IP is connectionless and routes packets to the correct destination. UDP sends short, unreliable datagrams and is used for applications like video games that prioritize speed over reliability. The key difference between TCP and UDP is that TCP provides ordered, error-checked delivery while UDP is faster but unreliable.
The document discusses the User Datagram Protocol (UDP) and the Transmission Control Protocol (TCP). UDP is a connectionless protocol that provides process-to-process communication over IP. TCP is connection-oriented and establishes a virtual connection between hosts to reliably send data using flow and error control. TCP numbers data bytes and uses sequence numbers and acknowledgments to ensure reliable in-order delivery. Connection establishment and termination with TCP uses three-way and four-way handshaking protocols. TCP guarantees in-order delivery of data to processes and handles lost packets.
The document discusses the Transport layer protocols TCP and UDP. It describes TCP as a connection-oriented protocol that provides reliable, ordered delivery of streams of data through mechanisms like sequencing, acknowledgment, flow control and error checking. UDP is described as a simpler connectionless protocol that provides best-effort delivery without checking for errors or lost packets. The key concepts of ports, sockets, multiplexing and demultiplexing are also covered, as well as the header formats and functions of TCP and UDP.
Tcp vs udp difference and comparison diffenHarikiran Raju
The document compares TCP and UDP protocols. TCP is connection-oriented and ensures reliable, ordered delivery of data. It is slower than UDP but suited for applications requiring high reliability. UDP is connectionless and does not guarantee delivery, order, or error checking. It is faster than TCP but less reliable. Examples of TCP applications include web browsing and file transfer. UDP is commonly used for applications requiring fast transmission like games and streaming media.
1) TCP provides reliable data transmission over unreliable networks like the Internet by establishing connections between endpoints, sequencing packets, detecting and retransmitting lost packets.
2) TCP connections are established through a 3-way handshake process where both sides negotiate sequence numbers to synchronize packet transmission.
3) TCP connections can be closed through a 4-step process where each side sends a FIN packet to gracefully close the connection in both directions.
TCP is a connection-oriented, reliable transport protocol that provides stream delivery, connection-oriented, and reliable services. It uses sequence numbers, acknowledgment numbers, and other features like flow control, error control, and congestion control to reliably deliver data between two endpoints. A TCP connection involves three phases - connection establishment using a three-way handshake, reliable data transfer with acknowledgments, and connection termination with another three-way handshake or four-way handshake with half-close option. TCP works well for both low and high-speed networks.
This document summarizes several internet protocols including IP, TCP, UDP, and ICMP. It describes key aspects of each protocol such as their purpose, packet structure, error handling mechanisms, and how they interact to enable communication over the internet. IP is a connectionless protocol that forwards packets based on destination addresses. TCP and UDP are transport layer protocols, with TCP providing reliable connections and UDP being connectionless. ICMP provides error reporting and control for IP. Port numbers and sockets are used to direct communication to specific applications.
The document provides an overview of the Transmission Control Protocol (TCP). It discusses TCP services like reliable in-order byte stream delivery and flow control using sliding windows. It also covers TCP features like error control using sequence numbers and acknowledgments, congestion control using timers and window sizing, segment formatting and options, checksum calculation, connection establishment and termination, and the TCP state machine.
This document discusses the Transmission Control Protocol (TCP) which provides reliable, connection-oriented data transmission over the internet. TCP establishes a virtual connection between endpoints, ensuring reliable delivery through mechanisms like positive acknowledgement and retransmission. It uses a sliding window algorithm to guarantee reliable and in-order delivery while enforcing flow control between sender and receiver. Key aspects of TCP include connection establishment and termination, port numbers, segments, headers, and addressing end-to-end issues over heterogeneous networks.
UDP is a connectionless transport protocol that does not guarantee packet delivery or order. It is faster than TCP but does not ensure reliability. UDP packets have a header containing source and destination port numbers as well as length fields. The checksum field allows detecting errors but packets are not retransmitted if errors occur. UDP is suitable for real-time applications where speed is critical and packet loss can be tolerated.
This document provides an overview of the Transmission Control Protocol (TCP). It discusses TCP services like reliable data delivery and connection-oriented communication. The document explains TCP features such as flow control, error control, and congestion control. It describes TCP segments, the three-way handshake for connection establishment, and the TCP state transition diagram. Examples are provided to illustrate TCP windows, acknowledgments, retransmissions, and timers.
This document discusses various aspects of transport layer protocols in computer networks, including:
- Addressing processes using port numbers between 0-65,535
- The client-server model where clients use ephemeral ports over 1023 and servers use well-known ports
- Transport layer services like multiplexing, demultiplexing, flow control using buffers, error control using sequence numbers and acknowledgments, and congestion control
- Connection-oriented protocols like TCP provide reliable data delivery compared to connectionless protocols like UDP.
- Stop-and-wait, go-back-N, and selective-repeat protocols aim to increase efficiency over simple retransmission by allowing multiple outstanding packets.
This document discusses the TCP/IP and UDP protocols. It begins with an introduction comparing the TCP/IP model to the OSI model. The TCP/IP model has four layers compared to seven in the OSI model. It then describes the two main host-to-host layer protocols in TCP/IP - TCP and UDP. TCP is connection-oriented and provides reliable, ordered delivery. It uses segments with a header containing fields like sequence numbers. UDP is connectionless and provides fast but unreliable delivery. It uses simpler segments with fewer header fields. The document concludes by explaining the end-to-end delivery process for packets using these protocols as they are transmitted between hosts via routers.
TCP (Transmission Control Protocol) is a core protocol of the Internet Protocol Suite that provides reliable data transmission between applications on different devices. It ensures reliable and ordered delivery of a stream of bytes by requiring acknowledgment of received data and retransmission of lost or corrupted data. TCP handles the assembly of data into segments and reordering if needed, abstracting the transmission details from applications. It is commonly used for applications like web browsing, email, and file transfer.
The document discusses the differences between packets and frames, and provides details on the transport layer. It explains that the transport layer is responsible for process-to-process delivery and uses port numbers for addressing. Connection-oriented protocols like TCP use three-way handshaking for connection establishment and termination, and implement flow and error control using mechanisms like sliding windows. Connectionless protocols like UDP are simpler but unreliable, treating each packet independently.
This document discusses transport layer protocols, specifically UDP and TCP. It provides an overview of each protocol, including key properties and operations. UDP allows applications to communicate via multiplexing but does not ensure delivery. TCP establishes reliable, in-order connections and implements flow and congestion control to ensure reliable data transfer. The document outlines TCP connection establishment, data transfer methods, congestion control algorithms, and retransmission timeout estimation.
The document discusses transport layer protocols and services including:
- TCP provides reliable, in-order delivery through congestion control, flow control, and connection setup. UDP provides unreliable, unordered delivery with no connection.
- Transport protocols multiplex and demultiplex data between applications using port numbers. TCP uses a 4-tuple of IP addresses and port numbers to identify each connection.
- UDP is useful for streaming multimedia since it is loss tolerant but rate sensitive, while TCP provides reliability through congestion control and retransmissions.
The document discusses the Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). It provides details on:
- UDP is a connectionless protocol that provides unreliable datagram delivery. It has less overhead than TCP but also less features.
- TCP is a connection-oriented protocol that provides reliable, ordered delivery of streams of bytes. It uses three-way handshake for connection establishment, acknowledgments, and network congestion/flow control.
- Both protocols use port numbers to identify applications on hosts. TCP segments carry sequence numbers and acknowledgment numbers to support reliability.
The document provides in-depth explanations of features like multiplexing, error/flow control, congestion control, and how
This document summarizes key concepts about the transport layer in computer networks. It discusses:
1. The transport layer is responsible for process-to-process delivery of data across a network. This involves delivering packets from one process to another, often using a client-server model.
2. There are two main transport layer protocols - UDP, which is a connectionless and unreliable protocol, and TCP, which establishes connections and provides reliable data delivery.
3. TCP and UDP use port numbers along with IP addresses to uniquely identify processes. TCP also implements flow and error control to ensure reliable data transfer.
There are two main internet protocols: TCP and UDP. TCP is connection-oriented and reliable, ensuring packets are delivered in order. It is slower than UDP but suited for applications like web browsing where reliability is important. UDP is connectionless and faster but packets may arrive out of order or not at all, making it well-suited for real-time applications like games and streaming media. Key differences between the two protocols include their handling of connections, ordering of packets, speed, and reliability of delivery.
This document defines TCP, IP, and UDP. TCP provides reliable, ordered transmission of data and is connection-oriented. It is used for applications like web browsing. IP is connectionless and routes packets to the correct destination. UDP sends short, unreliable datagrams and is used for applications like video games that prioritize speed over reliability. The key difference between TCP and UDP is that TCP provides ordered, error-checked delivery while UDP is faster but unreliable.
The document discusses the User Datagram Protocol (UDP) and the Transmission Control Protocol (TCP). UDP is a connectionless protocol that provides process-to-process communication over IP. TCP is connection-oriented and establishes a virtual connection between hosts to reliably send data using flow and error control. TCP numbers data bytes and uses sequence numbers and acknowledgments to ensure reliable in-order delivery. Connection establishment and termination with TCP uses three-way and four-way handshaking protocols. TCP guarantees in-order delivery of data to processes and handles lost packets.
The document discusses the Transport layer protocols TCP and UDP. It describes TCP as a connection-oriented protocol that provides reliable, ordered delivery of streams of data through mechanisms like sequencing, acknowledgment, flow control and error checking. UDP is described as a simpler connectionless protocol that provides best-effort delivery without checking for errors or lost packets. The key concepts of ports, sockets, multiplexing and demultiplexing are also covered, as well as the header formats and functions of TCP and UDP.
Tcp vs udp difference and comparison diffenHarikiran Raju
The document compares TCP and UDP protocols. TCP is connection-oriented and ensures reliable, ordered delivery of data. It is slower than UDP but suited for applications requiring high reliability. UDP is connectionless and does not guarantee delivery, order, or error checking. It is faster than TCP but less reliable. Examples of TCP applications include web browsing and file transfer. UDP is commonly used for applications requiring fast transmission like games and streaming media.
1) TCP provides reliable data transmission over unreliable networks like the Internet by establishing connections between endpoints, sequencing packets, detecting and retransmitting lost packets.
2) TCP connections are established through a 3-way handshake process where both sides negotiate sequence numbers to synchronize packet transmission.
3) TCP connections can be closed through a 4-step process where each side sends a FIN packet to gracefully close the connection in both directions.
TCP is a connection-oriented, reliable transport protocol that provides stream delivery, connection-oriented, and reliable services. It uses sequence numbers, acknowledgment numbers, and other features like flow control, error control, and congestion control to reliably deliver data between two endpoints. A TCP connection involves three phases - connection establishment using a three-way handshake, reliable data transfer with acknowledgments, and connection termination with another three-way handshake or four-way handshake with half-close option. TCP works well for both low and high-speed networks.
This document summarizes several internet protocols including IP, TCP, UDP, and ICMP. It describes key aspects of each protocol such as their purpose, packet structure, error handling mechanisms, and how they interact to enable communication over the internet. IP is a connectionless protocol that forwards packets based on destination addresses. TCP and UDP are transport layer protocols, with TCP providing reliable connections and UDP being connectionless. ICMP provides error reporting and control for IP. Port numbers and sockets are used to direct communication to specific applications.
The document provides an overview of the Transmission Control Protocol (TCP). It discusses TCP services like reliable in-order byte stream delivery and flow control using sliding windows. It also covers TCP features like error control using sequence numbers and acknowledgments, congestion control using timers and window sizing, segment formatting and options, checksum calculation, connection establishment and termination, and the TCP state machine.
This document discusses the Transmission Control Protocol (TCP) which provides reliable, connection-oriented data transmission over the internet. TCP establishes a virtual connection between endpoints, ensuring reliable delivery through mechanisms like positive acknowledgement and retransmission. It uses a sliding window algorithm to guarantee reliable and in-order delivery while enforcing flow control between sender and receiver. Key aspects of TCP include connection establishment and termination, port numbers, segments, headers, and addressing end-to-end issues over heterogeneous networks.
UDP is a connectionless transport protocol that does not guarantee packet delivery or order. It is faster than TCP but does not ensure reliability. UDP packets have a header containing source and destination port numbers as well as length fields. The checksum field allows detecting errors but packets are not retransmitted if errors occur. UDP is suitable for real-time applications where speed is critical and packet loss can be tolerated.
This document provides an overview of the Transmission Control Protocol (TCP). It discusses TCP services like reliable data delivery and connection-oriented communication. The document explains TCP features such as flow control, error control, and congestion control. It describes TCP segments, the three-way handshake for connection establishment, and the TCP state transition diagram. Examples are provided to illustrate TCP windows, acknowledgments, retransmissions, and timers.
This document discusses various aspects of transport layer protocols in computer networks, including:
- Addressing processes using port numbers between 0-65,535
- The client-server model where clients use ephemeral ports over 1023 and servers use well-known ports
- Transport layer services like multiplexing, demultiplexing, flow control using buffers, error control using sequence numbers and acknowledgments, and congestion control
- Connection-oriented protocols like TCP provide reliable data delivery compared to connectionless protocols like UDP.
- Stop-and-wait, go-back-N, and selective-repeat protocols aim to increase efficiency over simple retransmission by allowing multiple outstanding packets.
This document discusses the TCP/IP and UDP protocols. It begins with an introduction comparing the TCP/IP model to the OSI model. The TCP/IP model has four layers compared to seven in the OSI model. It then describes the two main host-to-host layer protocols in TCP/IP - TCP and UDP. TCP is connection-oriented and provides reliable, ordered delivery. It uses segments with a header containing fields like sequence numbers. UDP is connectionless and provides fast but unreliable delivery. It uses simpler segments with fewer header fields. The document concludes by explaining the end-to-end delivery process for packets using these protocols as they are transmitted between hosts via routers.
TCP (Transmission Control Protocol) is a core protocol of the Internet Protocol Suite that provides reliable data transmission between applications on different devices. It ensures reliable and ordered delivery of a stream of bytes by requiring acknowledgment of received data and retransmission of lost or corrupted data. TCP handles the assembly of data into segments and reordering if needed, abstracting the transmission details from applications. It is commonly used for applications like web browsing, email, and file transfer.
The document discusses the differences between packets and frames, and provides details on the transport layer. It explains that the transport layer is responsible for process-to-process delivery and uses port numbers for addressing. Connection-oriented protocols like TCP use three-way handshaking for connection establishment and termination, and implement flow and error control using mechanisms like sliding windows. Connectionless protocols like UDP are simpler but unreliable, treating each packet independently.
This document discusses transport layer protocols, specifically UDP and TCP. It provides an overview of each protocol, including key properties and operations. UDP allows applications to communicate via multiplexing but does not ensure delivery. TCP establishes reliable, in-order connections and implements flow and congestion control to ensure reliable data transfer. The document outlines TCP connection establishment, data transfer methods, congestion control algorithms, and retransmission timeout estimation.
The document discusses transport layer protocols and services including:
- TCP provides reliable, in-order delivery through congestion control, flow control, and connection setup. UDP provides unreliable, unordered delivery with no connection.
- Transport protocols multiplex and demultiplex data between applications using port numbers. TCP uses a 4-tuple of IP addresses and port numbers to identify each connection.
- UDP is useful for streaming multimedia since it is loss tolerant but rate sensitive, while TCP provides reliability through congestion control and retransmissions.
The document discusses the Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). It provides details on:
- UDP is a connectionless protocol that provides unreliable datagram delivery. It has less overhead than TCP but also less features.
- TCP is a connection-oriented protocol that provides reliable, ordered delivery of streams of bytes. It uses three-way handshake for connection establishment, acknowledgments, and network congestion/flow control.
- Both protocols use port numbers to identify applications on hosts. TCP segments carry sequence numbers and acknowledgment numbers to support reliability.
The document provides in-depth explanations of features like multiplexing, error/flow control, congestion control, and how
This document summarizes key concepts about the transport layer in computer networks. It discusses:
1. The transport layer is responsible for process-to-process delivery of data across a network. This involves delivering packets from one process to another, often using a client-server model.
2. There are two main transport layer protocols - UDP, which is a connectionless and unreliable protocol, and TCP, which establishes connections and provides reliable data delivery.
3. TCP and UDP use port numbers along with IP addresses to uniquely identify processes. TCP also implements flow and error control to ensure reliable data transfer.
IV B.Tech I Sem CSE&IT JNTUK R10 regulation students have Mobile computing paper. This slides especially contains UNIT - 5 total material required for end exams
Computer Communication Networks- TRANSPORT LAYER PROTOCOLSKrishna Nanda
The document discusses transport layer protocols. It begins by explaining that the transport layer sits between the application and network layers, providing services to applications and receiving services from the network layer. It then notes that the three major transport layer protocols are UDP, TCP, and SCTP. UDP provides a simple, unreliable connectionless service. TCP provides a reliable, connection-oriented service through mechanisms like flow and error control. SCTP combines features of UDP and TCP, providing both connection-oriented and connectionless services.
Transport Layer: Transport Layer Protocols- User Datagram Protocol- TCP: TCP Services TCP features- Windows in TCP- Flow Control- Error Control- TCP Congestion Control- TCP timers
The transport layer chapter discusses process-to-process delivery and the transport layer protocols TCP and UDP. TCP provides reliable, connection-oriented data transfer using sequencing, acknowledgements and retransmissions. UDP provides simpler, connectionless delivery without reliability. Well-known ports are assigned for standard services like DNS, HTTP, FTP. TCP uses sliding windows and congestion control to prevent overwhelming the receiver. Reliability and flow control are implemented end-to-end rather than just link-by-link.
The transport layer provides process-to-process communication and utilizes three main protocols: UDP, TCP, and SCTP. UDP is a connectionless protocol that does not guarantee delivery, while TCP provides reliable, ordered delivery through a connection-oriented approach. SCTP also provides reliable delivery with the added capability of multiple streams. Key aspects of these protocols include port numbers, packet/segment formatting, and connection establishment handshaking.
The transport layer provides end-to-end communication between processes on different machines. Two main transport protocols are TCP and UDP. TCP provides reliable, connection-oriented data transmission using acknowledgments and retransmissions. UDP provides simpler, connectionless transmission but without reliability. Both protocols use port numbers to identify processes and negotiate quality of service options during connection establishment.
The document discusses transport layer protocols, specifically UDP and TCP. It provides details on:
- UDP being a connectionless, unreliable protocol using checksums and having no flow/error control.
- TCP being connection-oriented and reliable, using sequence numbers, acknowledgments, flow and error control, and establishing connections via three-way handshakes before bidirectional data transfer.
- Both UDP and TCP encapsulating data into segments or datagrams which are delivered process-to-process using port numbers.
This document provides an overview of the transport layer and TCP protocol. It discusses UDP and TCP header formats, per-segment checksum calculation for UDP, TCP connection management using three-way handshake, TCP reliability of data transfer using acknowledgements and retransmissions, TCP flow control to prevent receivers from being overwhelmed, and TCP congestion control using a leaky bucket algorithm. The document also lists group members at the end.
This document discusses transport layer protocols. It begins by introducing the three main transport layer protocols in TCP/IP - UDP, TCP, and SCTP. It then focuses on UDP and TCP, explaining their packet formats, features, and how they provide different types of services. For UDP, it describes how it is a simple connectionless protocol suited for applications that require low latency. For TCP, it explains how it provides reliable, in-order byte streams using connection establishment and maintenance features like flow control, congestion control, and error recovery. The document contains examples and diagrams to illustrate these concepts.
TCP and UDP are the main Internet protocols for transporting data.
TCP is connection-oriented, reliable, and ensures packets are delivered in order. UDP is simpler and connectionless, meaning it does not ensure delivery or order of packets.
While TCP is slower but reliable, UDP is faster but does not guarantee delivery of packets.
This document discusses TCP and UDP network protocols. TCP is a connection-oriented protocol that ensures reliable delivery of data packets in the correct order using three-way handshake, flow control, error checking and recovery. UDP is an alternative connectionless protocol that is faster but unreliable, making it better for real-time applications like video chatting where speed is prioritized over reliability. The key difference is that TCP establishes connections to guarantee delivery while UDP prioritizes speed over reliability.
The document discusses the transport layer in networking. It describes two main transport protocols:
1) UDP is a connectionless protocol that provides best-effort delivery of datagrams across IP networks. It uses port numbers for demultiplexing but does not provide reliability.
2) TCP is a connection-oriented protocol that provides reliable, in-order delivery of streams of bytes between applications over unreliable IP networks. It uses a three-way handshake to establish connections and provides flow control and error checking.
TCP is a connection-oriented protocol that ensures reliable delivery of data through sequence numbers, acknowledgments, and retransmissions. It has larger headers than UDP but provides reliability. UDP is connectionless and does not guarantee delivery, making it faster but less reliable than TCP. Key applications using TCP include HTTP, FTP, and SMTP, while UDP is used for DNS, VoIP, and streaming applications requiring low latency.
The transport layer provides efficient, reliable, and cost-effective process-to-process delivery by making use of network layer services. The transport layer works through transport entities to achieve its goal of reliable delivery between application processes. It provides an interface for applications to access its services.
This document provides an overview of the transport layer and transport layer protocols. It discusses the functions of the transport layer including process-to-process communication using port numbers, multiplexing and demultiplexing, and reliable data transfer. It describes two main transport layer protocols: UDP, which provides connectionless and unreliable data transfer, and TCP, which provides connection-oriented and reliable data transfer. The document outlines key aspects of UDP and TCP including packet formats, connection establishment processes, and services provided.
The document discusses the TCP/IP protocol stack and the headers used at each layer.
It describes that TCP works to divide files into packets and send them to workstations, while IP handles routing packets through networks. The TCP header includes fields like source/destination port numbers, sequence numbers, flags, and checksums. The IP header treats the TCP header+data as a datagram and adds its own header fields like version, length, identification, flags, time to live, and source/destination addresses.
An Authentication Header can also be added for security purposes to authenticate senders and protect against modification of packets.
The document discusses the TCP/IP protocol stack and the headers used at each layer.
It describes that TCP works to divide files into packets and send them to workstations, while IP handles routing packets through networks. The TCP header includes fields like source/destination port numbers, sequence numbers, flags, and checksums. The IP header treats the TCP header+data as a datagram and adds its own header fields like version, length, identification, flags, time to live, and source/destination addresses.
An Authentication Header can also be added for security purposes to authenticate senders and protect against modification of packets.
Similar to UDP and TCP Protocol & Encrytion and its algorithm (20)
STORAGE DEVICES & OPERATING SYSTEM SERVICESAyesha Tahir
The document discusses storage devices and operating system services. It describes the hierarchy of storage devices from main memory to secondary storage like magnetic disks, optical discs, and magnetic tape. It then discusses common operating system services like process management, resource management, security, memory management, and file management. It also covers embedded operating systems, real-time operating systems, monolithic kernels, and batch operating systems.
Operating systems have evolved through four generations from the 1940s to present. Early systems in the 1940s had no operating systems, while systems in the 1950s introduced batch processing with punch cards. In the 1960s, multiprogramming and time-sharing were developed to better utilize resources. Personal computers and workstations emerged in the 1980s with operating systems like MS-DOS, Mac OS, and Windows facilitating use by non-technical users. Modern operating systems provide interfaces, process management, system resource management, security, and file management. Popular operating systems today include Mac OS X, Ubuntu, Linux, Android, and Fedora.
Multiplexing is a scheme that sends multiple signals over a single transmission medium. There are four main types: frequency division multiplexing (FDM), wavelength division multiplexing (WDM), time division multiplexing (TDM), and code division multiplexing (CDM). FDM uses different frequency bands to separate signals. WDM uses different wavelengths of light to separate signals on optical fibers. TDM divides time into slots and allocates each signal a time slot.
The document defines and discusses binary trees and different methods of traversing them. It provides definitions for binary tree as a finite set of nodes where each node has no more than two children. It also defines the three different traversal methods for binary trees - in-order, pre-order and post-order traversal. Examples of applying each traversal method to a sample binary tree are given to illustrate the traversal process.
The document discusses algorithms for finding the minimum spanning tree of a graph. It begins by defining what a spanning tree is - a subset of edges that connects all vertices using the fewest possible edges. It then explains Kruskal's and Prim's algorithms for finding the minimum spanning tree, which is the spanning tree with the lowest total edge weight. Kruskal's algorithm sorts the edges by weight and builds the tree by adding edges that do not create cycles. Prim's algorithm grows the tree from an initial vertex by always adding the lowest weight edge that connects to a new vertex. Pseudocode is provided for both algorithms.
Heap sort uses a heap data structure that maintains the max-heap or min-heap property. It involves two main steps: 1) building the heap from the input array using the BUILD-MAX-HEAP procedure in O(n) time, and 2) repeatedly extracting the maximum/minimum element from the heap and inserting it into the sorted portion using the DELHEAP procedure, running in O(n log n) time overall. The key operation is MAX-HEAPIFY, which maintains the max-heap property in O(log n) time during heap operations like insertion and deletion.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
UDP and TCP Protocol & Encrytion and its algorithm
1. TCP/IP PROTOCOL
The original TCP/IP protocolsuite specifies two protocols for the transport layer: UDP
and TCP. Figure shows the position of these protocols in the TCP/IP protocol suite.
USER DATAGRAM PROTOCOL (UDP)
“TheUser Datagram Protocol (UDP) is called a connectionless, unreliable transport protocol.
It does not add anything to the services of IP except to provide process-to-process
communication instead of host-to-host communication. Also, it performs very limited error
checking.”
Why would a process want to use it? UDP is a very simple protocol using a minimum of
overhead. If a process wants to send a small message and does not care much about reliability, it
can use UDP. Sending a small message by using UDP takes much less interaction between the
sender and receiver than using TCP or SCTP.
Well-Known Ports for UDP
2. USER DATAGRAM FORMATE:
UDP packets, called user datagrams, have a fixed-size header of 8 bytes. Figure shows the
format of a user datagram. The fields are as follows:
SOURCE PORT NUMBER:
This is the portnumber used bythe process running on the source host. It is 16 bits long, which
means that the port number can range from 0 to 65,535. If the source host is the client (a client
sending a request), the portnumber, in most cases, is an ephemeral port number requested by the
process and chosen by the UDP software running on the source host. If the source host is the
server (a server sending a response), the portnumber, in most cases, is a well-known portnumber.
DESTINATION PORTNUMBER:
This is the port number used by the process running on the destination host. It is also 16 bits
long. If the destination host is the server (a client sending a request), the port number, in most
cases, is a well-known port number. If the destination host is the client (a server sending a
response), the port number, in most cases, is an ephemeral port number. In this case, the server
copies the ephemeral port number it has received in the request packet.
LENGTH:
This is a 16-bit field that defines the total length of the user datagram, header plus data. The
16 bits can define a total length of 0 to 65,535 bytes. However, the total length needs to be much
less because a UDP user datagram is stored in an IP datagram with a total length of 65,535 bytes.
3. The length field in a UDP user datagram is actually not necessary. A user datagram is
encapsulated in an IP datagram. There is a field in the IP datagram that defines the total length.
There is another field in the IP datagram that defines the length of the header. So if we subtract
the value of the second field from the first, we can deduce the length of a UDP datagram that is
encapsulated in an IP datagram.
UDP length = IP length - IP header's length
However, the designers of the UDP protocolfelt that it was more efficient for the destination
UDP to calculate the length of the data from the information provided in the UDP user datagram
rather than ask the IP software to supply this information. We should remember that when the IP
software delivers the UDP user datagram to the UDP layer, it has already dropped the IP header.
CHECKSUM:
This field is used to detect errors over the entire user datagram (header plus data). The
checksum is discussed next.
CHECKSUM:
The checksum includes three sections: a pseudo-header, the UDP header, and the data
coming from the application layer.
The pseudo-header: “is the part of the header of the IP packet in which the user datagram
is to be encapsulated with some fields filled with 0s.”
If the checksum does not include the pseudo-header, a user datagram may arrive safe and
sound. However, if the IP header is corrupted, it may be delivered to the wrong host.
The protocolfield is added to ensure that the packet belongs to UDP, and not. The value
of the protocolfield for UDP is 17. If this value is changed during transmission, the checksum
calculation at the receiver will detect it and UDP drops thepacket. It is not delivered to the wrong
protocol. to other transport-layer protocols.
USE OF UDP:
The following lists some uses of the UDP protocol:
UDP is suitable for a process that requires simple request-response communication with little
concern for flow and error control. It is not usually used for a process such as FrP that needs
to send bulk data.
UDP is suitable for a process with internal flow and error control mechanisms. For example,
the Trivial File Transfer Protocol(TFTP)process includes flow and error control. It can easily
use UDP.
UDP is a suitable transport protocolfor multicasting. Multicasting capability is embedded in
the UDP software but not in the TCP software.
UDP is used for management processessuchas SNMP.
4. UDP is used for some route updating protocols suchas Routing Information Protocol(RIP).
UDP OPERATIONS:
UDP uses concepts commonto the transport layer. These concepts will be discussed here
briefly.
Connectionless Services
As mentioned previously, UDP provides a connectionless service. This means that each
user datagram sent by UDP is an independent datagram. There is no relationship between the
different user datagrams even if they are coming from the same source process and going to the
same destination program. The user datagrams are not numbered. Also, there is no connection
establishment and no connection termination, as is the case for TCP. This means that each user
datagram can travel on a different path.
One of the ramifications of being connectionless is that the process that uses UDP cannot
send a stream of data to UDP and expect UDP to chop them into different related user datagrams.
Instead each request must be small enough to fit into one user datagram. Only those processes
sending short messages should use UDP.
Flow and Error Control
UDP is a very simple, unreliable transport protocol. There is no flow controland hence no
window mechanism. The receiver may overflow with incoming messages. There is no error
control mechanism in UDP except for the checksum. This means that the sender does not know
if a message has been lostorduplicated. When the receiver detects an error through the checksum,
the user datagram is silently discarded. The lack of flow control and error controlmeans that the
process using UDP should provide these mechanisms.
Encapsulation and De-capsulation
To send a message from one process to another, the UDP protocol encapsulates and
decapsulates messages in an IP datagram.
Queuing
We have talked aboutports without discussing the actual implementation of them. In UDP,
queues are associated with ports see Figure.
TRANSMISSION CONTROL PROTOCOL (TCP)
“TCP is called a connection-oriented, reliable transport protocol. It adds connection-oriented
and reliability features to the services of IP. It creates a virtual connection between two TCPs
to send data. In addition, TCP uses flow and error control mechanismsat the transport level.”
TCP, like UDP, is a process-to-process (program-to-program)protocol. TCP, therefore, like
UDP, uses port numbers.
5. TCP SERVICES:
Let us explain the services offered by TCP to the processes at the application layer.
Process-to-Process Communication
Like UDP, TCP provides process-to-processcommunication using port numbers. Table lists
some well-known port numbers used by TCP.
Stream Delivery Service
TCP, unlike UDP, is a stream-oriented protocol. In UDP, a process (anapplication program)
sends messages, with predefined boundaries, to UDP for delivery. UDP adds its own header to
each of these messages and delivers them to IP for transmission. Each message from the process
is called a user datagram and becomes, eventually, one IP datagram.
TCP, on the other hand, allows the sending process to deliver data as a stream of bytes and
allows the receiving process to obtain data as a stream of bytes. TCP creates an environment in
which the two processes seemto beconnected by an imaginary "tube" that carries their data across
the Internet. This imaginary environment is depicted in Figure.
6. Sending and Receiving Buffers
Because the sending and the receiving processes may not write or read data at the same
speed, TCP needs buffers for storage. There are two buffers, the sending buffer and the receiving
buffer, one for each direction. One way to implement a buffer is to use a circulararray of I-byte
locations as shown in Figure. Forsimplicity, we have shown two buffers of 20 bytes each (which
is not always the case); normally the buffers are hundreds or thousands of bytes, depending on
the implementation.
Figure shows the movement of the data in one direction. At the sending site, the buffer has three
types of chambers.
The white section contains empty chambers that can be filled by the sending process
(producer).
The gray area holds bytes that have been sent but not yet acknowledged. TCP keeps these
bytes in the buffer until it receives an acknowledgment.
The colored area contains bytes to be sent by the sending TCP.
Also note that after the bytes in the gray chambers are acknowledged, the chambers are
recycled and available for use by the sending process. This is why we show a circular buffer.
The operation of the buffer at the receiver site is simpler. The circular buffer is divided
into two areas (shown as white and colored). The white area contains empty chambers to be filled
by bytes received from the network. The coloredsections contain received bytes that can be read
by the receiving process. When a byte is read by the receiving process, the chamber is recycled
and added to the pool of empty chambers.
7. Segments
Although buffering handles the disparity between the speed of the producing and
consuming processes, we need one more step before we can send data. The IP layer, as a service
provider for TCP, needs to send data in packets, not as a stream of bytes. At the transport layer,
“TCP groupsa numberof bytes together intoa packetcalled a segment”. TCPadds aheader to
each segment (for control purposes) and delivers the segment to the IP layer for transmission.
The segments are encapsulated in IP datagrams and transmitted. This entire operation is
transparent to the receiving process. Segments may be received out of order, lost, or corrupted
and resent. All these are handled by TCP with the receiving process unaware of any activities.
Figure shows how segments are created from the bytes in the buffers.
Note that the segments are not necessarily the same size. In Figure, for simplicity, we show one
segment carrying 3 bytes and the other carrying 5 bytes. In reality, segments carry hundreds, if
not thousands, of bytes.
Full-Duplex Communication
TCP offers full-duplex service, in which data can flow in both directions at the same time.
Each TCP then has a sending and receiving buffer, and segments move in both directions.
Connection-Oriented Service
TCP, unlike UDP, is a connection-oriented protocol. When a process at site A wants to
send and receive data from another process at site B, the following occurs:
The two TCPs establish a connection between them.
Data are exchanged in both directions.
The connection is terminated.
Note that this is a virtual connection, not a physical connection. The TCP segment is
encapsulated in an IP datagram and can be sent out of order, or lost, or corrupted, and then resent.
Each may usea different path to reach the destination. TCP creates astream-oriented environment
in which it accepts theresponsibility of delivering the bytes in orderto the other site. The situation
8. is similar to creating a bridge that spans multiple islands and passing all the bytes from one island
to another in one single connection.
Reliable Service
TCP is a reliable transport protocol. It uses an acknowledgment mechanism to check the
safe and sound arrival of data.
Flow Control
TCP, unlike UDP, provides flow control. The receiver of the data controls the amount of
data that are to be sentby the sender. This is doneto prevent the receiver from being overwhelmed
with data. The numbering system allows TCP to use a byte-oriented flow control.
Error Control
To provide reliable service, TCP implements an error control mechanism. Although error
control considers a segment as the unit of data for error detection (loss or corrupted segments),
error control is byte-oriented, as we will see later.
Congestion Control
TCP, unlike UDP, takes into account congestion in the network. The amount of data sent
by a sender is not only controlled by the receiver (flow control), but is also detennined by the
level of congestion in the network.
SEGMENT:
Before we discuss TCP in greater detail, let us discuss the TCP packets themselves. A packet in
TCP is called a segment.
FORMATE:
The segment consists ofa 20- to 60-byte header, followed by data from the application program.
The header is 20 bytes if there are no options and up to 60 bytes if it contains options.
SOURCE PORT ADDRESS:
9. This is a 16-bit field that defines the port number of the application program in the host
that is sending the segment. This serves the same purposeas the sourceport address in the UDP
header.
DESTINATION PORT ADDRESS:
This is a 16-bit field that defines the port number of the application program in the host
that is receiving the segment. This serves the same purposeas the destination portaddress in the
UDP header.
SEQUENCE NUMBER:
This 32-bit field defines the number assigned to the first byte of data contained in this
segment. As we said before, TCP is a stream transport protocol. To ensure connectivity, each
byte to betransmitted is numbered. The sequencenumber tells the destination which byte in this
sequence comprises the first byte in the segment. During connection establishment, each party
uses a random number generator to create an Initial Sequence Number (ISN), which is usually
different in each direction.
ACKNOWLEDGMENT NUMBER:
This 32-bit field defines the byte number that the receiver of the segment is expecting to
receive from the other party. If the receiver of the segment has successfully received byte
number x from the other party, it defines x + I as the acknowledgment number. Acknowledgment
and data can be piggybacked together.
HEADER LENGTH:
This 4-bit field indicates the number of 4-byte words in the TCP header. The length of the
header can be between 20 and 60 bytes. Therefore, the value of this field can be between 5 (5 x
4 =20) and 15 (15 x 4 =60).
RESERVED:
This is a 6-bit field reserved for future use.
CONTROL:
This field defines 6 different control bits or flags as shown in Figure.
One or more of these bits can be set at a time. These bits enable flow control, connection
establishment and termination, connection abortion, and the mode of data transfer in TCP.
10. WINDOW SIZE:
This field defines the size of the window, in bytes, that the other party must maintain. Note
that the length of this field is 16 bits, which means that the maximum size of the window is
65,535 bytes. This value is normally referred to as the receiving window (rwnd) and is
determined by the receiver. The sender must obey the dictation of the receiver in this case.
CHECKSUM:
This 16-bit field contains the checksum. The calculation of the checksum for TCP follows
the same procedure as the one described for UDP. However, the inclusion of the checksum in
the UDP datagram is optional, whereas the inclusion of the checksum for TCP is mandatory.
The same pseudo-header, serving the same purpose, is added to the segment. For the TCP
pseudo-header, the value for the protocol field is 6.
URGENT POINTER:
This l6-bit field, which is valid only if the urgent flag is set, is used when the segment
contains urgent data. It defines the number that must be added to the sequence number to obtain
the number of the last urgent byte in the data section of the segment.
OPTIONS:
There can be up to 40 bytes of optional information in the TCP header.
References:
Book: “Data Communication & Networking”, Fourth Edition by Behrouz A. Forouzan
Deanza College with Sophia Chung Fegan.