EDT protocol

208.5.1.1 EDT Technical Information

The EDT transfer is mainly based on a sender (i.e. the responsible for sending data) that opens an UDT socket on a given port and listens for incoming connection,  when a receiver (i.e. the responsible for initiating the data transfer connecting to the sender) sends a request to the sender, the sender replies to the request and then starts to send data to the receiver). The process can be divided into two phases:

1.Negotiate which port to be used for data exchange: It is done using FTP commands on a standard FTP connection, terminates when the sender and receiver are both set up.
2.Negotiate what to transfer and transfer data: It  is done by the sender and receiver using a proprietary data exchange request  over UDT.

It is important to note that there are several differences in the data T-workflow depending on what kind of transfer must be done, that is:

EDT GET                                                                        
When a file is downloaded from the server to the client, the client must initiate the request to the server, the server chooses the port and send the file.

EDT GET  

1.The client request for a free port on the server using ftp SEND command.
2.The server replies with port number and starts a SENDER thread/process.
3.The client starts a RECEIVER thread/process.
4.The RECEIVER connects to the SENDER and posts a request with the file name to download.
5.The SENDER replies with file size and then starts to send the file to the client machine.

EDT PUT                                                                        
When a file is uploaded from the server to the client, the client initiate the request to the server, the server select the port number and request the file to store:

EDT PUT  

1.The client request for a free port on the server using ftp PRCV command.
2.The server replies with port number and locks the port.
3.At this point the client starts a SENDER thread/process on the given port and sends via FTP to the server the SRCV command with the file name to store.
4.The server starts a RECEIVER thread/process on the agreed port.
5.The RECEIVER connects to the SENDER and posts a PUT request.
6.The SENDER replies with file size and starts to send the file to server machine.

EDT_GET
EDT_PUT