TCP – Why Use FTP When There Are Layers to Transmit Data?

osiprotocol-theorytcp

In OSI, there are layers for routing, encapsulating and transmitting the data. Then why do we need FTP?
I read the following definition of FTP in books:

FTP is used for transferring files on networks. It isn't just a protocol; its also a program. Operating as a protocol, FTP is used by applications. As a program, it is employed by users to perform file tasks by hand.

I read that the function of data link and physical layer is to transmit data through the network, then what is the use of FTP? What different thing the FTP is doing?

I will be glad if someone can clear things up.

Best Answer

The network layers provide a framework to structure the complex functions for sending data over a network - as byte stream, in dialogue, telegram style datagrams, ...

On the very top, the application uses a lower layer (very often the transport layer) to do its job. It doesn't have to worry about routing, network interfaces, MAC addresses, line codes etc - that's all been taken care of by the 'stack' located in the operating system.

In a somewhat poor comparison, the network provides the road system but you need a car as application to use it.

That said, FTP is an application layer protocol that a client can use to remotely browse directories, transfer files in both directions, delete files etc on an FTP server. The network layers provide the means to transfer commands and data across a network. The application layer makes practical use of the network.

Note that there's a strong tendency to hide complexity from end users - if you e.g. integrate an FTP client into the user's front end, he's not likely to notice that there's anything behind accessing and using remote files on a server.

Related Topic