What is Pipelining?
In the present day scenario, we come across various situations in which we have to send a very large amount of data in very less time duration. Also, we want to enhance the transmission performance along with the better utilization of its resources. So, what to do in such situations to achieve our goals?
Actually, we can apply the pipelining technique in computer networks to achieve these networking goals. So in this blog, we will learn about pipelining in computer networks, its need, application, and its salient features.
Pipelining is a process of sending multiple data packets serially without waiting for the previous acknowledgement. This technique is beneficial when the amount of data to be transferred is very large, and we send the data by dividing them into various parts. These data parts can be pipelined and sent to the receiver over the channel. In pipelining, we do not wait for the acknowledgement of sent data packets. We keep on sending the data packets continuously without bothering about the acknowledgements.
Pipelining is a continuous and overlapped technique. All the data packets are continuously transmitted after one other. Also, it may happen that at a time one process will be going on one packet, and the other process on some other data packet in an overlapped manner. Hence, pipelining ensures the efficient and better utilization of network resources. It also enhances the speed of delivery of data packets, ensuring the timely transmission of data. In the below-mentioned diagram, we can see the basic difference between a pipelined and non-pipelined transmission of data.
In computer networks, pipelining is mainly used in the Data-Link layer of the OSI and TCP/IP reference models. In the data-link layer, pipelining ensure the fast delivery of data packets. Since there is no mechanism for acknowledgements in pipelining. So, there is a need for some protocols, that will ensure reliability in data transmission.
The Data-Link protocols that use pipelining are as follows:
- Go-Back-N: Go-Back-N(GBN) is a ‘Sliding Window Protocol’ that ensures pipelining. It first checks the window size of the sender and receiver, and then it sends multiple data frames at the same time. It will retransmit all the frames starting from that failed data frame.
- Selective Repeat: Selective Repeat is also a sliding window protocol implementing pipelining. It makes use of a buffer at the receiver’s side for its implementation. It is the same as GBN, except that it retransmits only the failed data frame selectively.
Pipelining can also be used in the Application layer of the OSI and TCP/IP reference layer. In the application layer, the sender’s request and the receiver’s response can be pipelined. It enhances the protocol performance, mainly in the network connections with very high latency. It also reduces the process of waiting time.
The protocols that can be used in the Application layer are HTTP, SMTP, FTP, etc. In these protocols, multiple requests can be sent over a single TCP connection without waiting for the corresponding responses.
Following are the functionalities of pipelining in the computer networks:
- High Performance
- Efficient use of resources
- Time Efficiency
- Fast Data Delivery
- Reduces the process waiting-time
This is all about the pipelining technique along with its application and features. Hope you learned something new today. That's it for this blog.
Keep Learning :)