Paket: Unterschied zwischen den Versionen
Uli (Diskussion | Beiträge) K (link ARCmail (bundle)) |
Uli (Diskussion | Beiträge) |
||
Zeile 16: | Zeile 16: | ||
<ul> | <ul> | ||
− | <li>[[ARCmail]] Bundle (*.MO?, *.TU?, *.WE?, *.TH?, *.FR?, *.SA?, *.SU?)<br> | + | <li>[[ARCmail]] [[Bundle]] (*.MO?, *.TU?, *.WE?, *.TH?, *.FR?, *.SA?, *.SU?)<br> |
Ein oder mehrere PKT Message Packets, gebündelt mit einem [Packer] (ARC, ZIP, LHA, ARJ o.ä.)<br> | Ein oder mehrere PKT Message Packets, gebündelt mit einem [Packer] (ARC, ZIP, LHA, ARJ o.ä.)<br> | ||
* Eine Beschreibung zu ARCmail Bundles findet sich in der [[Binkley Style Outbound]] ([[BSO]]) Beschreibung auf [http://synchro.net/docs/fidonet.txt synchro.net]</li> | * Eine Beschreibung zu ARCmail Bundles findet sich in der [[Binkley Style Outbound]] ([[BSO]]) Beschreibung auf [http://synchro.net/docs/fidonet.txt synchro.net]</li> |
Version vom 25. Oktober 2013, 05:13 Uhr
Packet, Package, Bundle
packet, bundle, engl., Paket, Päckchen, Bündel
Ein Zwischenschritt in der Verarbeitung von elektronischen Nachrichten bevor die Nachrichten von einem System zum Nächsten durch einen Mailer übertragen werden, werden die Nachrichten zu Päckchen zusammengeschnürt, vergleichbar mit einem Sack voller Briefe, und in einem Outbound abgelegt.
Die Strukturen sind in FTS-0001 A Basic FidoNet(r) Technical Standard Rev. 16, Sep 1995 beschrieben.
- Stored Message (*.msg) - Netmail oder Echomail
- Message Packet (*.pkt)
Eine oder mehrere Nachrichten (compressed Messages) gebündelt in einen Packet Header + Abschluss durch 0000h Bytefolge.
- ARCmail Bundle (*.MO?, *.TU?, *.WE?, *.TH?, *.FR?, *.SA?, *.SU?)
Ein oder mehrere PKT Message Packets, gebündelt mit einem [Packer] (ARC, ZIP, LHA, ARJ o.ä.)
* Eine Beschreibung zu ARCmail Bundles findet sich in der Binkley Style Outbound (BSO) Beschreibung auf synchro.net
Packet Types
Im Packet Header ist der Typ, spezifiziert durch eine fortlaufende Nummer, definiert. Bislang kennt Fidonet
Packert Type Nummer | Beschreibung, FTS, FSC Dokumente |
---|---|
Type 1 | wird nur vom Programm FIDO benutzt |
Type 2 | FTS-0001 |
Type 2+ | FTS-0001 + FSC-0039 + FSC-0048 |
Type 3 | FSC-0024 |
Type 2+ ist der heute am gebräuchlichste im Einsatz befindliche Packet Type.
Programmierer, die ein neues Tool erstellen, wird empfohlen, den 3 Standards zum Packet Type 2+ zu folgen.
Packet Strukturen
Nach FTS-0001, FSC-0039 und FSC-0048
Feld | Offset | Länge | Typ | Beschreibung | Wertebereich | |
---|---|---|---|---|---|---|
OrgNode | 0x00 | 2 | Word | Origination node address | 0-65535 | |
DstNode | 0x02 | 2 | Word | Destination node address | 1-65535 | |
Year | 0x04 | 2 | Int | Year packet generated | 19??-2??? | |
Month | 0x06 | 2 | Int | Month " " | 0-11 (0=Jan) | |
Day | 0x08 | 2 | Int | Day " " | 1-31 | |
Hour | 0x0A | 2 | Int | Hour " " | 0-23 | |
Min | 0x0C | 2 | Int | Minute " " | 0-59 | |
Sec | 0x0E | 2 | Int | Second " " | 0-59 | |
Baud | 0x10 | 2 | Int | Baud Rate (not in use) | ???? | |
PktVer | 0x12 | 2 | Int | Packet Version | Always 2 | |
OrgNet | 0x14 | 2 | Word | Origination net address | 1-65535 | |
DstNet | 0x16 | 2 | Word | Destination net address | 1-65535 | |
PrdCodL | 0x18 | 1 | Byte | FTSC Product Code (lo) | 1-255 | |
* | PVMajor | 0x19 | 1 | Byte | FTSC Product Rev (major) | 1-255 |
Password | 0x1A | 8 | Char | Packet password | A-Z,0-9 | |
* | QOrgZone | 0x22 | 2 | Int | Orig Zone (ZMailQ,QMail) | 1-65535 |
* | QDstZone | 0x24 | 2 | Int | Dest Zone (ZMailQ,QMail) | 1-65535 |
Filler | 0x26 | 4 | Byte | Spare Change | FSC-0039 | |
AuxNet | 0x26 | 2 | Byte | AuxNet | FSC-0048 | |
CWvalidationCopy | 0x28 | 2 | Byte | CWvalidationCopy high/low vertauscht | FSC-0048 | |
* | PrdCodH | 0x2A | 1 | Byte | FTSC Product Code (hi) | 1-255 |
* | PVMinor | 0x2B | 1 | Byte | FTSC Product Rev (minor) | 1-255 |
* | CapWord | 0x2C | 2 | Word | Capability Word | BitField |
* | OrigZone | 0x2E | 2 | Int | Origination Zone | 1-65535 |
* | DestZone | 0x30 | 2 | Int | Destination Zone | 1-65535 |
* | OrigPoint | 0x32 | 2 | Int | Origination Point | 1-65535 |
* | DestPoint | 0x34 | 2 | Int | Destination Point | 1-65535 |
* | ProdData | 0x36 | 4 | Long | Product-specific data | Whatever |
PktTerm | 0x3A | 2 | Word | Packet terminator | 0000 |
(*) - Erweiterung zu FTS-0001
Leeres Packet: Position 0x00h ... 0x36h ... 0x39h 0x3Ah + 4 bytes |-----Packet-Header-----| Packet Terminator | 00 00 Packet mit 2 Nachrichten ("packed messages") Position 0x00h ... 0x36h ... 0x39h 0x3Ah + 4 bytes |-----Packet-Header-----| PktID | packed message 1 | PktID | packed message 2 | Packet Terminator | 02 00 00 00
Product Code
Der Produkt Code ist eine eindeutige Nummer von Programmen, die anhand einer Tabelle (FTSCPROD) identifiziert werden könnnen. Neue Nummern vergibt das Fidonet Technical Standard Committee (FTSC). Die FTSCPRODuct Liste ist Bestandteil des FTSC Verzeichnisses.
Ursprünglich wurden für den Produkt Code 2 Bytes im Packet Header vorgesehen. Die 255 Produkt Codes waren bereits Anfang der 90er Jahre aufgefüllt. Die letzten beiden Produkt Codes wurden reserviert.
- 0xFE, 254d, No product id allocated,Any,Packer,No_Author,3:3/20
- 0xFF, 255d, 16-bit product id,Any,Packer/Mailer,No_Author,3:3/20
Nachdem die Codes alle "aufgebraucht" waren, machte man sich Gedanken, wie die Product Codes erweitert werden können. Bislang hat sich das FTSC Committee noch nicht entgültig einigen können, welchem Verfahren für eine Erweiterung stattgegeben wird. Zwischenzeitlich wurden aber einige weitere Codes "vergeben" und in der FTSCPROD Liste veröffentlicht. Dennoch wurde diese Praxis vorerst einmal eingestellt. Neue Nummern werden zur Zeit nicht vergeben. Entwickler sollen die "allgemein gültige" Product Id 0xFE verwenden. Der Product Code 0x0100 ist ebenfalls reserviert.
- 0x0100, 256d, Reserved,None,None,No_Author,3:3/20,19951209
Capability Word
Das Capability Word ist ein Bit Feld, das im Austausch zwischen zwei Tossern die Möglichkeiten angeben soll welche Funktionalitäten der Tosser des Gegenübers versteht. Wenn beispielsweise der eine Tosser ein Packet Type 3 und der andere Tosser auch ein Packet Type 3 unterstützen würde, könnte der Link immer nur noch Packet Type 3 Pakete versenden. Wird ein Tosser aktuallisiert, könnte so automatisch auf die nächst höhere Packet Type Funktionalität umgeschaltet werden, ohne das sich die Sysops darüber austauschen müssten.
Zum Verständnis hilft vielleicht die Tabelle der möglichen Eintragungen:
msb Capability Word lsb Node unterstützt ------------FTSC Type Unterstützt **)------------ U 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2+ 2+,3, und 7 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 2+,3, und 5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 2+ (this Doc) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Stone Age 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ! ^-- "U" zeigt Nodes and die in der Lage sind RFC-822 Pakete zu unterstützen ! ** - In der Beispiel Bit Definition sind bislang nur Typ 2, und der Stone-Age Typ definiert. Der Rest ist angedacht "reserviert per FTSC".
CWvalidationCopy - ist eine Kopie des "Capability Words". Bei der Entwicklung ist in der Kommunikation leider ein Fehler unterlaufen, weswegen zunächst die High/Low Bits in der Kopie vertauscht waren. Was ursprünglich als Fehler angesehen wurde, hat sich später als Glücksfall herausgestellt, somit eine Überprüfungsmöglichkeit zu haben (statt beispielsweise einer Checksumme) ob die Daten konsistent sind.
Üblicherweise ist das Capability Word den Wert 0x0001, die Kopie enthält dagegen den Wert 0x0100
Packed Message
Packed Message ist nicht zu verwechseln mit ARCmail Bundles. Aus einer Stored Message per FTS-0001 Definition werden Nachrichten platzsparender in eine PKT Datei gepackt. Allerdings kommt hier kein Packer Programm zum Einsatz, sondern wird vom Tosser oder sonstigen PKT Verarbeitungsprogramm auf einfache Weise etwas platzsparender gespeichert indem Informationen die bei einer gespeicherten Nachricht noch wichtig sind (Beispielsweise: Zähler Anzahl gelesen, Kosten, Verlinkungskette), bei der zu versendenden Nachricht entfernt werden.
Packed Message Offset dec hex .-----------------------------------------------. 0 0 | 0 | 2 | 0 | 0 | Nachrichten Typ +-----------------------+-----------------------+ 2 2 | origNode (low order) | origNode (high order) | +-----------------------+-----------------------+ 4 4 | destNode (low order) | destNode (high order) | +-----------------------+-----------------------+ 6 6 | origNet (low order) | origNet (high order) | +-----------------------+-----------------------+ 8 8 | destNet (low order) | destNet (high order) | +-----------------------+-----------------------+ 10 A | Attribute (low order) | Attribute (high order)| +-----------------------+-----------------------+ 12 C | cost (low order) | cost (high order) | +-----------------------+-----------------------+ 14 E | | ~ DateTime ~ | 20 bytes | +-----------------------+-----------------------+ 34 22 | toUserName | ~ max 36 bytes ~ | null terminated | +-----------------------+-----------------------+ | fromUserName | ~ max 36 bytes ~ | null terminated | +-----------------------+-----------------------+ | subject | ~ max 72 bytes ~ | null terminated | +-----------------------+-----------------------+ | text | ~ unbounded ~ | null terminated | `-----------------------------------------------'
Die "gepackte" Nachricht startet immer mit dem Nachrichten Typ der Bytefolge "02 00". Der "alte" Typ 1 ist nicht mehr gültig.
Folgt keine weitere Nachricht wird die Bytefolge "00 00" ans Ende angefügt (siehe auch Abschnitt Packet Header -> Packet Terminator)
Attribut Wort wird abgeleitet aus Stored Message der FTS-0001 Definition.
AttributeWord Bit Bedeutung --- -------------------- 0 + Private 1 + s Crash 2 Recd 3 Sent 4 + FileAttached 5 InTransit 6 Orphan 7 KillSent 8 Local 9 s HoldForPickup 10 + unused 11 s FileRequest 12 + s ReturnReceiptRequest 13 + s IsReturnReceipt 14 + s AuditRequest 15 s FileUpdateReq s - brauchen nicht erkannt zu werden, aber es ist ok + - wird vor Paketierung nicht genullt Bit-Zahlen steigen mit arithmetischen Bedeutung der Bitposition.