| Document: FSC-0080 | Version: 001 | Date: 01 Mar 1995 | | Mikael Ståldal, 2:201/337 Describing FidoNet with a layered model Mikael Ståldal, 2:201/337@FidoNet Introduction ============ FTS-1 tries to describe FidoNet with the OSI model, but I don't think that description is any good. I have tried to make a better description of FidoNet with the OSI model, but without success. I don't think that's possible. Instead I made my own layered model, inspired from OSI. I use seven layers with the same name as in OSI, but with Session and Transport swapped. Why this model? =============== The main goal with this model is to make FidoNet more flexible make it easier to change into newer and better protocols and data structures. It should be possible to change one layer without affecting the others. Description of the layers ========================= Physical layer -------------- The telephone network (PSTN). Link layer ---------- Modem with protocols like V.22 and V.32. This layer also include real-time error correction (V.42, MNP4) and data compression (V.42bis, MNP5). Serial communication hardware (UART). Network layer ------------- Serial communications drivers (FOSSIL) and file transfer protocols (Zmodem etc). Note that this layer can be divided into two sub-layers, the file transfer protocol on top on the serial communication driver; but upper layers can interact with the serial communication driver directly. Session layer ------------- Session handshake protocols (YooHoo, EMSI) implemented in mailers. This layer can reliably send files directly between two systems. It doesn't perform any routing. It doesn't know about NetMail, EchoMail etc. The upper layers uses logical addresses (node numbers), this layer performs address resolution (often by using a nodelist) to obtain the physical address (telephone number) necessary to establish a connection. The upper layers can tell if a file should be sent immediately, when appropriate or be placed on hold. When files are received, this layer tells the upper layers. Transport layer --------------- This layer handles routing and transport of NetMail, EchoMail and file attaches. The format of mailpackets is defined in this layer, except the internal structure of a packed message. A mail processor takes received NetMail and EchoMail and places it in the local message base. It also looks there for messages to send. Presentation layer ------------------ Here are the internal structure of a packed message defined. In TYPE-2, this layer is totally mixed up with the Transport layer. In new packet formats, they will hopefully be separated. Application layer ----------------- Here are the local message base (stored messages) defined. Interaction between layers ========================== Interaction between Session layer and Transport layer ----------------------------------------------------- The Session and Transport layers does only interact between sessions, not during them. The reason is that is should be possible to keep them in different programs and implement it in single tasking operating systems like MS-DOS. This doesn't prevent the Session and Transport layers from running simultaneously in a multitasking system. Comments ======== There is one problem with this model, how to describe the File Request server function. Sending File Requests are no problems, that's just a File Attach with a *.REQ file. The File Request server function have to be implemented directly in the Session layer.