Podcast
Questions and Answers
Which of the following describes the primary role of the transport layer in network communication?
Which of the following describes the primary role of the transport layer in network communication?
- Providing logical communication between application processes running on different hosts. (correct)
- Managing communication at the level of physical cables and wireless signals.
- Defining the physical characteristics of the network, such as voltage levels and data rates
- Routing data packets across different networks to ensure they reach the correct destination.
Where is the transport layer protocol typically implemented in a network architecture?
Where is the transport layer protocol typically implemented in a network architecture?
- In both end systems and network routers to ensure seamless communication.
- Primarily in intermediary network switches for optimized path determination.
- Only in the end systems (hosts) where applications reside. (correct)
- Exclusively in network routers to facilitate efficient data forwarding.
What process does the transport layer perform on the sending side to prepare application data for network transmission?
What process does the transport layer perform on the sending side to prepare application data for network transmission?
- It encrypts application layer messages to ensure secure transmission across the network.
- It converts application layer messages into transport layer packets, also known as segments. (correct)
- It directly forwards application layer messages to the network layer without modification.
- It compresses application layer messages to reduce their size and improve transmission speed.
Which action accurately reflects what the transport layer does with segments received from the network layer at the receiving end?
Which action accurately reflects what the transport layer does with segments received from the network layer at the receiving end?
What is the role of network routers in processing transport layer segments?
What is the role of network routers in processing transport layer segments?
The Internet Protocol (IP) provides what type of communication between hosts?
The Internet Protocol (IP) provides what type of communication between hosts?
What are the two primary transport layer protocols available in the Internet?
What are the two primary transport layer protocols available in the Internet?
Which of the following best describes the service model provided by UDP?
Which of the following best describes the service model provided by UDP?
What does it mean that IP provides a 'best effort delivery service'?
What does it mean that IP provides a 'best effort delivery service'?
Which of the following is NOT a characteristic of the IP service model?
Which of the following is NOT a characteristic of the IP service model?
What is transport-layer multiplexing and demultiplexing primarily responsible for?
What is transport-layer multiplexing and demultiplexing primarily responsible for?
Which of the following describes the integrity checking provided by UDP and TCP?
Which of the following describes the integrity checking provided by UDP and TCP?
What two minimal transport-layer services does UDP provide?
What two minimal transport-layer services does UDP provide?
Which of the following services are offered by TCP but not by UDP?
Which of the following services are offered by TCP but not by UDP?
How does TCP ensure reliable data transfer between processes?
How does TCP ensure reliable data transfer between processes?
What is the purpose of TCP congestion control?
What is the purpose of TCP congestion control?
How does TCP attempt to provide fair bandwidth allocation among connections?
How does TCP attempt to provide fair bandwidth allocation among connections?
What key difference exists in how UDP and TCP handle traffic regulation?
What key difference exists in how UDP and TCP handle traffic regulation?
In the protocol stack, which layer is positioned directly below the transport layer?
In the protocol stack, which layer is positioned directly below the transport layer?
What is the main responsibility of the transport layer regarding multiplexing and demultiplexing?
What is the main responsibility of the transport layer regarding multiplexing and demultiplexing?
At the destination host, what action does the transport layer perform upon receiving segments from the network layer?
At the destination host, what action does the transport layer perform upon receiving segments from the network layer?
If you are downloading Web pages, running one FTP session, and have two Telnet sessions active, how many network application processes are running?
If you are downloading Web pages, running one FTP session, and have two Telnet sessions active, how many network application processes are running?
Which of the following best describes a socket in the context of network communication?
Which of the following best describes a socket in the context of network communication?
In the receiving host, what does the transport layer deliver data to?
In the receiving host, what does the transport layer deliver data to?
How are sockets uniquely identified?
How are sockets uniquely identified?
What fields does the transport layer examine to direct an incoming segment to the appropriate socket?
What fields does the transport layer examine to direct an incoming segment to the appropriate socket?
What is the transport-layer process of delivering data to the correct socket known as?
What is the transport-layer process of delivering data to the correct socket known as?
What term describes the process of gathering data chunks from different sockets at the source host, encapsulating them with header information, creating segments, and passing the segments to the network layer?
What term describes the process of gathering data chunks from different sockets at the source host, encapsulating them with header information, creating segments, and passing the segments to the network layer?
Which of the following is NOT a requirement for transport-layer multiplexing?
Which of the following is NOT a requirement for transport-layer multiplexing?
What range do well-known port numbers fall within, and what are they typically used for?
What range do well-known port numbers fall within, and what are they typically used for?
When a host receives an IP datagram, how does it determine the correct socket to deliver the segment to?
When a host receives an IP datagram, how does it determine the correct socket to deliver the segment to?
How are TCP sockets identified?
How are TCP sockets identified?
What range of port numbers does the transport layer assign to a newly created UDP socket?
What range of port numbers does the transport layer assign to a newly created UDP socket?
In a typical client-server application using UDP, who usually assigns a specific port number?
In a typical client-server application using UDP, who usually assigns a specific port number?
If Host B could be running multiple processes, each with its own UDP socket and associated port number, how does Host B direct each incoming UDP segment?
If Host B could be running multiple processes, each with its own UDP socket and associated port number, how does Host B direct each incoming UDP segment?
What characteristics define a TCP socket?
What characteristics define a TCP socket?
When a TCP segment arrives at a host, what information does the host use to direct the segment to the appropriate socket?
When a TCP segment arrives at a host, what information does the host use to direct the segment to the appropriate socket?
In a TCP client-server model, what is the purpose of the 'welcoming socket'?
In a TCP client-server model, what is the purpose of the 'welcoming socket'?
In the context of TCP connections, what is a connection-establishment request?
In the context of TCP connections, what is a connection-establishment request?
What action does the server process take upon receiving an incoming connection-request segment?
What action does the server process take upon receiving an incoming connection-request segment?
Which of the following values are noted by the transport layer at the server when a connection-request segment is received?
Which of the following values are noted by the transport layer at the server when a connection-request segment is received?
What is the purpose of the UDP checksum?
What is the purpose of the UDP checksum?
Why is TCP described as being 'connection-oriented'?
Why is TCP described as being 'connection-oriented'?
What is the purpose of the preliminary segments exchanged in a TCP handshake?
What is the purpose of the preliminary segments exchanged in a TCP handshake?
The two sides of TCP initialize state variables associated with the TCP protocol. Which of the following are oblivious to data withing the segments?
The two sides of TCP initialize state variables associated with the TCP protocol. Which of the following are oblivious to data withing the segments?
How is data transferred in TCP?
How is data transferred in TCP?
The client passes a data stream through a what?
The client passes a data stream through a what?
Flashcards
Transport Layer
Transport Layer
Provides logical communication between application processes running on different hosts as if they were directly connected.
Transport Layer Role
Transport Layer Role
The transport layer converts application layer messages into transport layer packets.
Segments
Segments
Breaks application messages into smaller chunks and adds a transport layer header to each chunk to create transport layer segments.
Internet Protocols
Internet Protocols
Signup and view all the flashcards
IP Service Model
IP Service Model
Signup and view all the flashcards
Multiplexing/Demultiplexing
Multiplexing/Demultiplexing
Signup and view all the flashcards
Demultiplexing
Demultiplexing
Signup and view all the flashcards
Multiplexing
Multiplexing
Signup and view all the flashcards
Transport Layer Multiplexing
Transport Layer Multiplexing
Signup and view all the flashcards
Special Fields
Special Fields
Signup and view all the flashcards
Well-known Port Number
Well-known Port Number
Signup and view all the flashcards
UDP Sockets
UDP Sockets
Signup and view all the flashcards
UDP Socket Identification
UDP Socket Identification
Signup and view all the flashcards
TCP Sockets
TCP Sockets
Signup and view all the flashcards
UDP Socket Creation
UDP Socket Creation
Signup and view all the flashcards
UDP Socket Identification
UDP Socket Identification
Signup and view all the flashcards
TCP socket identification
TCP socket identification
Signup and view all the flashcards
TCP Client-Server
TCP Client-Server
Signup and view all the flashcards
Transport Layer Values
Transport Layer Values
Signup and view all the flashcards
Error Detection and Correction
Error Detection and Correction
Signup and view all the flashcards
Efficiency in Data Transfer
Efficiency in Data Transfer
Signup and view all the flashcards
UDP Checksum
UDP Checksum
Signup and view all the flashcards
TCP Connection
TCP Connection
Signup and view all the flashcards
TCP Connection Defined
TCP Connection Defined
Signup and view all the flashcards
TCP Connection
TCP Connection
Signup and view all the flashcards
TCP Connection
TCP Connection
Signup and view all the flashcards
TCP Client
TCP Client
Signup and view all the flashcards
TCP Server
TCP Server
Signup and view all the flashcards
Maximum segment size (MSS)
Maximum segment size (MSS)
Signup and view all the flashcards
Three-Way Handshake
Three-Way Handshake
Signup and view all the flashcards
Study Notes
Transport Layer
- Provides logical communication between application processes on different hosts
- From an application's perspective, it appears hosts are directly connected
- In reality, hosts may be on opposite sides of the world, connected via routers with different link types
- Application processes use the transport layer's logical communication to exchange messages
- Transport Layer protocol is implemented in the end systems, like computers.
- Routers that handle network traffic do not have transport Layer protocols enabled.
- On the sending side, the transport layer converts application layer messages into transport layer packets
Segments
- Transport layer breaks application messages into smaller chunks (segments)
- Transport layer adds a header to each chunk, creating transport layer segments
- The transport layer passes the segment to the network layer
- Inside the network layer the segment is encapsulated within a network layer packet (datagram)
- The datagram is sent to the final destination
- On the receiving side, the network layer extracts the transport layer segment from the datagram
- The network layer passes the segment up to the transport layer.
- The transport layer processes the received segment
- The transport layer makes the data in the segment available to the receiving application
- There is often more than one transport layer protocol available to network applications
UDP and TCP
- Internet has two protocols: TCP and UDP.
- Each provide a certain set of transport layer services to the application using it
- Internet makes two distinct transport layer protocols available to the application layer
- UDP (User Datagram Protocol) provides an unreliable, connectionless service
- TCP (Transmission Control Protocol) provides a reliable, connection-oriented service
- Application developers must select one of these two for network applications
- IP (Internet Protocol) is the Internet's network-layer protocol
- IP provides logical communication between hosts
- The IP service model is a "best effort" delivery service
- IP tries its best to deliver segments between communicating hosts but does not guarantee it
Service Guarantees
- IP does not guarantee segment delivery
- IP does not guarantee orderly delivery of segments
- IP does not guarantee data integrity in segments
- IP can be said to provide an unreliable service
- UDP and TCP fundamentally extend IP's delivery service between two end systems
- UDP and TCP extend IP's delivery service to a delivery service between two processes running on end systems
- Extending host-to-host delivery to process-to-process delivery is called transport-layer multiplexing and demultiplexing
- UDP and TCP provide integrity checking via error-detection fields in segment headers
- Process-to-process data delivery and error checking are the only two UDP services
- Like IP, UDP has an unreliable service
TCP Additional Services
- TCP offers applications reliable data transfer
- TCP employs flow control, sequence numbers, acknowledgments, and timers.
- TCP ensures data is delivered from sending to receiving process correctly and in order
- TCP converts IP's unreliable service between end systems into reliable data transport service between processes
- TCP provides congestion control
- TCP congestion control prevents a TCP connection from swamping links/routers between communicating hosts with traffic
- TCP aims to give each connection traversing a congested link an equal share of the link bandwidth
- TCP regulates the rate at which sending sides of TCP connections can send traffic into the network
- Application UDP traffic is unregulated
Relationship Between Transport and Network Layers
- The transport layer sits above the network layer in the protocol stack
- A transport-layer protocol enables logical communication between processes running on different hosts
- A network-layer protocol provides logical communication between hosts
Multiplexing and Demultiplexing
- Transport-layer multiplexing and demultiplexing extends the network layer's host-to-host delivery service
- Transport-layer multiplexing enables a process-to-process delivery service for applications running on the hosts
- At the destination Host, the transport layer receives segments from the network layer
- The transport layer delivers the data in these segments to the appropriate application process
- Suppose your computer is downloading Web pages, running one FTP session, and two Telnet sessions
Sockets
- Sockets are the doors through which data passes from the network to the process and vice versa.
- Transport layer in receiving host doesn't deliver data directly to a process but to an intermediary socket
- There can be more than one socket in the receiving host at any given time.
- Every socket has a unique identifier
- Unique identifier format depends on whether the socket is UDP or TCP
- A receiving host directs the data to a socket because each transport-layer segment has a set of fields for this
- The transport layer checks the data to identify the receiving socket and directs the segment to that socket
- This delivery of data in a transport-layer segment to the correct socket is called demultiplexing
- Taking data chunks at the source host from different sockets, encapsulating each chunk with header information, creating segments, and passing them to the network layer is called multiplexing
Transport Layer
- Transport layer in middle host must demultiplex segments arriving from the network layer below
- Directs data to either process P1 or P2 using the corresponding process's socket
- Transport layer in middle host gathers outgoing data from these sockets
- Transport layer forms the segments, and passes these segments down to the network layer
- Transport-layer multiplexing requires sockets to have unique identifiers
- Transport-layer multiplexing requires each segment to have special fields to indicate the destination socket
Special Fields
- Source port number field
- The destination port number field.
- UDP and TCP segments have other fields as well
- Each port number is a 16-bit number, ranging from 0 to 65535
- Port numbers 0-1023 are "well-known" and restricted
- "Well-known" numbers reserved for well-known application protocols
- HTTP uses port number 80
- FTP uses port number 21
How Demultiplexing Works
- Host receives IP datagram
- Every datagram has a Source IP address and a destination IP address.
- Every datagram takes 1 transport-layer segment
- Every segment has source and destination port number
- The host uses IP addresses and port numbers to direct segments to the correct socket
- TCP sockets are identified by (Source-IP, Destination IP, Source Port, Destination Port)
- UDP sockets are identified by Destination IP and Destination Port
- When a UDP socket is created, the transport layer automatically assigns a port number
- The transport layer assigns a port number between 1024 to 65535 that is not already in use
- Typically the client side of the application automatically requests for a port number.
- The server side of the application is is assigned a specific port number
UDP Example
- A process in Host A with UDP port 19157 wants to send application data to a process with UDP port 46428 in Host B
- The transport layer in Host A creates a transport-layer segment comprising the application data Includes:
- source port number (19157)
- destination port number (46428)
- other values
- The transport layer passes the resulting segment to the network layer in the IP datagram
- The network layer encapsulates the segment and attempts to deliver the segment to its destination by any means
- The transport layer examines the destination port number and delivers segment by port 46428
- Host B could be running multiple processes, each with its own UDP socket and associated port number
- As UDP segments arrive, Host B "demultiplexes" the segment to the appropriate socket
- A UDP socket is fully identified by a two-tuple consisting of a destination IP address and a destination port number
TCP Sockets
- TCP sockets are identified by a four-tuple: (source IP address, source port number, destination IP address, destination port number)
- When TCP segments arrive, the host uses all four values to "demultiplex" and direct the segment to the socket
TCP Client-Server
- The TCP server application has has a welcoming socket that waits for connection requests from the TCP clients on port 12000
- The TCP client creates a socket and sends a connection establishment request segment
- A connection-establishment request is a TCP segment with destination port 12000 a/nd a connection-establishment bit set in the TCP header
- The segment also includes a source port number chosen by the client
- When the host operating system of the computer running the server process receives the incoming connection-request segment with port 12000
- It locates the server process that is waiting to accept a connection on port number 12000
- The server process then creates a new socket
The transport layer at the server notes four values in the connection-request segment:
- Source Port Number
- IP address of the source host
- Destination Port Number
- IP address
- The new socket is then identified by the four numbers above
- All segments arriving whose source port, source IP address, destination port, destination IP address match
- Once these four values are a validated then then the client and server can send data to each other
Fundamentals of Reliable Data Transfer Protocol
- Significant in applications, transport layer, and link layers
Techniques:
- Error detection and correction: A packet is received but may be incorrect.
- Loss detection and recovery: A packet is lost. Design Challenge:
- Efficiency: Maximum utilization of bandwidth resources.
- Utilization = max. app. data rate / available bandwidth
UDP Checksum
- UDP checksum is an error detection: To determine if bits within UDP segment have been altered
- Noise in the links or while stored in a router can lead to bit changes
- Before one application process can begin to send TCP data, the two process must have a "handshake"
TCP Connection
- Preliminary segments are sent to establish the parameters of the ensuing data transfer
- As part of TCP connection establishment, sides of the connection will initialize TCP state variables
- TCP runs only in the end systems and intermediate network elements do not maintain TCP connection state
- Intermediate routers do not maintain TCP connection state
- Intermediate routers are completely oblivious to TCP connections, they see datagrams.
TCP Connection Overview
- The "TCP Connection" service is full-duplex
- If there is a TCP connection between Process A on one host and Process B on another, application-layer data can simultaneously flow from Process A to B and vice versa
- A TCP connection is always point-to-point. (between a single sender and a single receiver)
- Data transfer from one sender to many receivers is impossible with TCP.
- The process initiating the connection is called the client process
- The process that is receiving the connection is called the server process
- A client application process must first inform the client transport layer wanting to establish a connection to a process on the server
- A Python client program does this by issuing the command: clientSocket.connect((serverName, serverPort))
- serverName is the name of the server and serverPort identifies the process on the server
- TCP in the client and server proceeds to establish a TCP connection by sending a special TCP segment
3-Way Handshake
- The client first sends a special TCP segment
- The server responds with a second special TCP segment
- Finally the client responds again with a third special segment
- The first two segments have no payload
- The third segment may carry a payload
- Because three segments are sent between the two hosts, connection-establishment is referred to as a "three-way handshake"
- Once the two hosts have an established TCP connection they can now send data to each other
- A client passes a stream of data to the socket; if the client hands the data off to TCP
- TCP then directs the data to the connection's send buffer set up during the three way handshake previously
- TCP will grab chunks of data from the send buffer and pass the data to the network layer
- The maximum amount of data that can be grabbed and placed in a segment is limited by the maximum segment size (MSS)
- MSS is the maximum amount of application-layer data in the segment, not the maximum size of the TCP segment
- TCP pairs data with headers making up TCP Segments
- The segments are then encapsulated within network layer IP datagrams
- The IP datagram is then sent into the network
- When the IP datagram is received, it is in the connections receive buffer
- Then the application reads the stream of data from the buffer
- Each side of the connection has it's own send and receive buffer
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.