In: Computer Science
discuss the types of networks that would require TCP as a transport protocol because of its characteristics. Provide the application and or services, also include port numbers with description.
Transport Layer
The transport layer is the fourth layer in the open system interconnection (OSI) model, and is responsible for end-to-end communication over a network.
It provides logical communication between application processes running on different hosts within a layered architecture of protocols and other network components.
In a nutshell, the transport layer collects message segments from applications, and transmits them into the network (Layer 3). Here the segments are reassembled into fully-fledged messages, and passed on to Layer 7.
The transport layer is also responsible for the management of error correction, providing quality and reliability to the end user.
This layer enables the host to send and receive error corrected data, packets or messages over a network and is the network component that allows multiplexing.
Techopedia explains Transport Layer
Transport layers (Layer 4) work transparently within the layers above to deliver and receive data without errors.
The send side breaks application messages into segments (packets) and passes them on to the network layer (Layer 3).
The receiving side then reassembles segments into messages and passes them to the application layer (Layer 7).
What Services Can the Transport Layer Provide?
Devices at the end-points of a network communication establish a handshake protocol such as TCP to ensure a connection is robust before data is exchanged.
The weakness of this method is that for each delivered message, there is a requirement for an acknowledgment, adding considerable network load compared to self-error-correcting packets.
The repeated requests cause significant slowdown of network speed when defective byte streams or datagrams are sent.
Ensures that packets are always delivered in strict sequence by assigning them a number.
Although the network layer is responsible, the transport layer can fix any discrepancies in sequence caused by packet drops or device interruption by reordering them.
Using checksums, the data integrity across all the delivery layers can be ensured.
These checksums guarantee that the data transmitted is the same as the data received and that is not corrupt.
Missing or corrupted data can be resent by requesting retransmission from other layers.
Devices at each end of a network connection often have no way of knowing each other's capabilities in terms of data throughput.
Data can end up being sent faster than the speed at which the receiving device is able to buffer or process it. When this happens, buffer overruns can cause complete communication breakdowns.
Conversely, if the receiving device is not receiving data fast enough, this causes a buffer underrun, which may well cause an unnecessary reduction in network performance.
Flow control ensures that the data is sent at a rate that is acceptable for both sides by managing data flow.
Digital communications networks are subject to bandwidth and processing speed restrictions, which can mean a huge amount of potential for data congestion on the network.
This network congestion can affect almost every part of a network. The transport layer can identify the symptoms of overloaded nodes and reduced flow rates and take the proper steps to remediate these issues.
The transmission of multiple packet streams from unrelated applications or other sources (multiplexing) across a network requires some very dedicated control mechanisms, which are found in the transport layer.
This multiplexing allows the use of simultaneous applications over a network such as when different internet browsers are opened on the same computer.
In the OSI model, multiplexing is handled in the service layer.
Some applications prefer to receive byte streams instead of packets; the transport layer allows for the transmission of byte-oriented data streams if required.
Transport Layer Middleware
Transport layer protocols( see Figure) are typically responsible for point-to-point communication, which means this code is managing, establishing, and closing communication between two specific networked devices. Essentially, this layer is what allows multiple networking applications that reside above the transport layer to establish client–server, point-to-point communication links to another device via functionality such as:
In Figure below , generally, data received from the underlying network layer are stripped of the transport header and processed, then transmitted as messages to upper layers. When a transport layer receives a message from an upper layer, the message is processed and a transport header appended to the message before being passed down to underlying layers for further processing for transmission.
The core communication mechanism used when establishing and managing communication between two devices at the transport layer is called a socket. Basically, any device that wants to establish a transport layer connection to another device must do so via a socket. So, there is a socket on either end of the point-to-point communication channel for two devices to transmit and receive data. There are several different types of sockets, such as raw, datagram, stream, and sequenced packet for example, depending on the transport layer protocol.
Because one transport layer can manage multiple overlying applications, sockets are bound to ports with unique port numbers that have been assigned to each application either by default via industry standard or by the developer. For example, an FTP client being assigned ports 20 or 21, an email/SMTP client being assigned port 23, and an HTTP client being assigned port 80 to name a few. Each device has ports ‘0’ through ‘65535’ available for use, because ports are defined as 16-bit unsigned integers.
As shown in Figure below, in general, transport layer handshaking involves the server waiting for a client-side application to initiate a connection by ‘listening’ to the relative transport layer socket. Incoming data to the server socket are processed and the IP address, as well as port number, is utilized to determine if the received packet is addressed to an overlying application on the server. Given a successful connection to a client for communication, the server then establishes another independent socket to continue ‘listening’ for other clients.
Some of the port numbers with description discribed below in a table :
Service Name | Port Number | Transport Protocol | Description |
0 | tcp | Reserved | |
0 | udp | Reserved | |
tcpmux | 1 | tcp | TCP Port Service Multiplexer |
tcpmux | 1 | udp | TCP Port Service Multiplexer |
compressnet | 2 | tcp | Management Utility |
compressnet | 2 | udp | Management Utility |
compressnet | 3 | tcp | Compression Process |