Document: FSC-0071 Version: 001 Date: 17-Jan-1993 Distributed FREQ (DFREQ) Specifications Bill Auclair, FidoNet 1:141/545 January 17, 1993 Status of this document: This FSC suggests a proposed protocol for the FidoNet(r) community, and requests discussion and suggestions for improvements. Distribution of this document is unlimited. Fido and FidoNet are registered marks of Tom Jennings and Fido Software. Distributed File Requests: What Are They? ------------------------------------------ DFREQ programs are designed to allow both sysops and users to make Distributed File Requests from other BBS systems listed in FidoNet or compatible nodelists. There are several major differences between Distributed File Request methodology (hereafter referred to as DFREQ) and existing FidoNet FREQ and/or file distribution formats. FidoNet file request technology was designed only for the direct transmittal of file requests from one system to another. DFREQ technology allows routing of file requests from the originating system along a user-configurable "chain" of systems, ending at the target node. This methodology allows the setup of no-cost, local routing paths for file requests between distant systems that would normally incur long-distance phone charges. How DFREQs Work --------------- Distributed File Request methodology can be separated into 2 main parts-- the REQUEST and the ACKNOWLEDGEMENT. The REQUEST represents the initial stage, in which DFREQ data from the originating system has not yet reached its target, and thus carries no accompanying requested files with it. DFREQ data may be relayed via file or netmail message attach through any number of intermediate systems on its way to its ultimate target, which is defined by the contents of the request file. The path taken by the request to its target is determined by routing data used by the DFREQ processors of participating nodes in the chain. The ACKNOWLEDGEMENT is the result of a processed request, and is created whether or not the requested files are available at the target system. The DFREQ information formerly carried by the request is used to create the acknowledgement, set its destination back to the originating system, file- or netmail-attach requested files (if any) for transmission, and/or provide information as to why requested file(s) were unavailable at the target system. Request data is deleted by the target system after the acknowledgement is created. The path taken by the acknowledgement back to the originating system again depends upon the routing configurations of the chain nodes, but need not be the same as the path previously travelled by the request. ASCII text files are used to transport DFREQ information between nodes. These carrier files are similar in form and function to the .TIC files used by the TICK file echo utility. The DFREQ process starts when a user generates a DFR file containing file request information, using the local or on-line mode of a DFREQ processor. DFR Files --------- DFREQ data for the REQUEST stage is transmitted using a file with a .DFR (Distributed File Request) extension. The filename is a randomly-generated 8-digit number. DFR files carry information on the net/node of the originating system, net/node of the target system, the name of the user who originated the request, the filenames and descriptions of the files to be requested, the path travelled by the request on its way to the target system, and date/time stamps indicating when the request was processed by each node in the path. DFRs are transmitted via file or netmail message attach. DFA Files --------- DFREQ data for the ACKNOWLEDGEMENT phase is transmitted using a file with a .DFA (Distributed File Acknowledgement) extension. The 8-digit filename of the previously processed DFR request file is retained. DFA files carry information on the net/node of the originating system (formerly the target system in the DFR file), the net/node of the target system (formerly the originating system in the DFR file), the name of the user who generated the request, the filenames and descriptions of successfully requested files, and the filenames and associated error information for any unsuccessfully requested or unavailable files. The full path information from the previously processed DFR file is retained, and is appended with path and datestamp information representing the travel of the DFA file back to its new target, the source of the original DFREQ. DFAs are transmitted via file or netmail attach. Error Messages -------------- When requests for any or all files in a DFREQ can not be fulfilled for some reason, information as to why the request was not satisfied is included in the DFA file, replacing the file descriptions of the unavailable files. Reasons for file unavailability can include: o File(s) not found or not available at target system o OKFile path does not exist on target system o File(s) not found in inbound area-- node xxx/xxx DFA files may be appended with error information by any processing system in the chain back to the originating node, depending upon where the error condition occurs. DFR/DFA File Formats -------------------- DFR and DFA files are ASCII text files that transport DFREQ information between systems. The DFR file is used during the REQUEST stage of the transaction. The DFA file is used during the ACKNOWLEDGEMENT stage of the transaction. New DFR files are created by the DFREQ processor using its local or on-line user mode. A random 8-digit numeric filename and .DFR extension are assigned to the file. File format for a newly-created DFR is shown below: Created by GOFER v0.05a, Copyright (C) 1992 by Bill Auclair Origin 141/545 Requestor Bill Auclair Target 141/455 File LOGON.LZH 2969 01-17-90 generic telix log-on script The first line of the DFR holds information identifying the program/version used to create it. No empty spaces are allowed above this line, or between any of the lines that follow. The second line of the DFR contains Origin information. This indicates the net/node number of the system which generated the DFR. The third line of the DFR contains Requestor information. This provides the name of the user who initiated the DFREQ. The fourth line of the DFR contains Target information. This indicates the net/node number of the system which is to receive the DFR and process it to deliver requested files. All lines beginning with the "File" identifier contain filename and description information taken from remote file lists. Filenames and descriptions must be separated by at least one space. No empty lines are allowed after File information. When a DFR is sent to another system, that system's net/node information is appended to it, along with date and time stamp information indicating when the DFR was processed by the system. This information accompanies the DFR throughout its entire journey. A DFR file with Path information appended to it is shown below: Created by GOFER v0.05a, Copyright (C) 1992 by Bill Auclair Origin 141/545 Requestor Bill Auclair Target 141/455 File LOGON.LZH 2969 01-17-90 generic telix log-on script Path 141/507 15 Nov 92 07:40:31 Information contained within the DFR file above indicates it has already traveled through the intermediate system 141/507 on its way from Origin system 141/545 to Target system 141/455. No empty lines are allowed after Path information. When a DFR file reaches its Target destination, it is converted into a DFA file, and its file requests are evaluated by the target system. Conversion of DFRs to DFAs is done by retaining the DFR filename, changing the .DFR extension to .DFA, and reversing Origin and Target data. Thus, a DFR file originally named 12345678.DFR from Origin 141/545 for Target 141/455 becomes 12345678.DFA from Origin 141/455 for Target 141/545, as shown below: Created by GOFER v0.05a, Copyright (C) 1992 by Bill Auclair Origin 141/455 Requestor Bill Auclair Target 141/545 File LOGON.LZH 2969 01-17-90 generic telix log-on script Path 141/507 15 Nov 92 07:40:31 Path 141/485 15 Nov 92 08:02:55 Path 141/455 15 Nov 92 08:15:23 Path 141/455 15 Nov 92 08:15:25 Note the dual Path lines for the Target system. The first line represents processing as a DFR, the second represents processing as a DFA. The successfully-processed DFA file is returned to the system that originated the DFREQ, along with the accompanying requested file. The DFA as received and processed by the originating system is shown below: Created by GOFER v0.05a, Copyright (C) 1992 by Bill Auclair Origin 141/455 Requestor Bill Auclair Target 141/545 File LOGON.LZH 2969 01-17-90 generic telix log-on script Path 141/507 15 Nov 92 07:40:31 Path 141/485 15 Nov 92 08:02:55 Path 141/455 15 Nov 92 08:15:23 Path 141/455 15 Nov 92 08:15:25 Path 141/485 15 Nov 92 10:01:06 Path 141/507 15 Nov 92 10:27:35 Path 141/545 15 Nov 92 10:31:59 If the Target system receiving the DFR file cannot satisfy the DFREQ, the file description for the unavailable file contained in the new DFA is replaced with error information. The DFA is then transmitted back to the system that originated the DFREQ. Error information contained within the DFA file as returned to the originating system is shown below: Created by GOFER v0.05a, Copyright (C) 1992 by Bill Auclair Origin 141/455 Requestor Bill Auclair Target 141/545 File LOGON.LZH !ERR018! File Not Available From 141/455 Path 141/507 15 Nov 92 07:40:31 Path 141/485 15 Nov 92 08:02:55 Path 141/455 15 Nov 92 08:15:23 Path 141/455 15 Nov 92 08:15:25 Path 141/485 15 Nov 92 10:01:06 Path 141/507 15 Nov 92 10:27:35 Path 141/545 15 Nov 92 10:31:59