[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/wiki18\/2021\/01\/22\/ymodem-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/wiki18\/2021\/01\/22\/ymodem-wikipedia\/","headline":"YMODEM – Wikipedia","name":"YMODEM – Wikipedia","description":"YMODEM ist ein Datei\u00fcbertragungsprotokoll, das zwischen Mikrocomputern verwendet wird, die \u00fcber Modems miteinander verbunden sind. Es wurde haupts\u00e4chlich zum \u00dcbertragen","datePublished":"2021-01-22","dateModified":"2021-01-22","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/wiki18\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/wiki18\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":100,"height":100},"url":"https:\/\/wiki.edu.vn\/wiki18\/2021\/01\/22\/ymodem-wikipedia\/","wordCount":2029,"articleBody":"YMODEM ist ein Datei\u00fcbertragungsprotokoll, das zwischen Mikrocomputern verwendet wird, die \u00fcber Modems miteinander verbunden sind. Es wurde haupts\u00e4chlich zum \u00dcbertragen von Dateien zu und von Bulletin-Board-Systemen verwendet. YMODEM wurde von Chuck Forsberg als Erweiterung von XMODEM entwickelt und erstmals in seinem CP \/ M implementiert S\u00dcSSKARTOFFEL Programm. Urspr\u00fcnglich auch als YAM bekannt, wurde es 1985 von Ward Christensen, Autor des urspr\u00fcnglichen XMODEM, offiziell als “YMODEM” bezeichnet. YMODEM hat XMODEM auf drei Arten erweitert und Funktionen anderer erweiterter XMODEM-Varianten kombiniert. Wie XMODEM-CRC ersetzte YMODEM die 8-Bit-Pr\u00fcfsumme durch eine 16-Bit-CRC (Cyclic Redundancy Check), machte sie jedoch zur Standardform der Korrektur anstelle der optionalen. Von TeLink wurde der Header “Block 0” hinzugef\u00fcgt, der den Dateinamen und die Gr\u00f6\u00dfe gesendet hat. Dies erm\u00f6glichte Stapel\u00fcbertragungen (mehrere Dateien in einer einzigen Sitzung) und machte das Auff\u00fcllen am Ende der Datei \u00fcberfl\u00fcssig. Schlie\u00dflich erm\u00f6glichte YMODEM, die Blockgr\u00f6\u00dfe von den urspr\u00fcnglichen 128 Datenbytes auf 1024 zu erh\u00f6hen, wie in XMODEM-1k, wodurch der Durchsatz bei schnelleren Modems erheblich verbessert wurde.Forsberg baute den Standard mit all diesen Funktionen als Laufzeitoptionen auf, sodass ein einzelner Protokolltreiber bei der Verbindung mit Nicht-YAM-Systemen auf XMODEM-CRC oder sogar XMODEM zur\u00fcckgreifen kann. Er glaubte, dass Programmierer so viele dieser Funktionen wie m\u00f6glich auf einer bestimmten Plattform implementieren m\u00f6chten. Er war best\u00fcrzt, als er feststellte, dass die meisten Implementierungen mit CRC-16 tats\u00e4chlich nur eine Blockgr\u00f6\u00dfe von 1 KB bereitstellten und den “Block 0” nicht implementierten, w\u00e4hrend der Name YMODEM weiterhin verwendet wurde. Das Ergebnis war die Ver\u00f6ffentlichung vieler nicht miteinander kompatibler YMODEM-Implementierungen und die Verwendung des Namens YMODEM-Charge um klar anzugeben, welche Versionen den vollst\u00e4ndigen Standard unterst\u00fctzt haben.Table of Contents Eigenschaften[edit]XMODEM[edit]YMODEM[edit]Abbrechen[edit]CRC[edit]1k[edit]Nullpaket[edit]Streaming-Unterst\u00fctzung[edit]Verweise[edit]Eigenschaften[edit]XMODEM[edit]Das urspr\u00fcngliche XMODEM war ein sehr einfaches Protokoll, und das ist der Grund f\u00fcr seinen Erfolg. Es kann auf praktisch jeder Maschine der \u00c4ra implementiert werden, auch auf solchen mit sehr begrenzten Prozessoren und Speicher. Dabei wurden die zu sendenden Daten in 128-Byte-Pakete aufgeteilt, ein 3-Byte-Header und eine 1-Byte-Pr\u00fcfsummenfu\u00dfzeile hinzugef\u00fcgt und die resultierenden 132-Byte-Pakete der Reihe nach gesendet. Der empfangende Computer hat die Pr\u00fcfsumme aus den 128 Datenbytes neu berechnet. Wenn sie mit der in der Fu\u00dfzeile gesendeten Pr\u00fcfsumme \u00fcbereinstimmt, hat er eine zur\u00fcckgesendet ACKund wenn es nicht \u00fcbereinstimmte, a NAK. Als der Absender eine erhielt ACK es schickte das n\u00e4chste Paket, w\u00e4hrend a NAK veranlasste es, den letzten erneut zu senden.Es gab eine Reihe von Problemen mit dem Protokoll. Durch die Verwendung einer einfachen Pr\u00fcfsumme konnten einige h\u00e4ufige Fehler unbemerkt bleiben. Die kleine Paketgr\u00f6\u00dfe und die Anforderung, auf die zu warten ACK oder NAK f\u00fchrte zu einer langsamen Leistung bei Verbindungen mit h\u00f6herer Geschwindigkeit oder solchen mit erheblicher Latenz. Da die \u00dcbertragung keine Details der Datei enthielt, musste schlie\u00dflich jede Datei manuell gestartet werden, was bei der \u00dcbertragung vieler kleiner Dateien m\u00fchsam sein kann.L\u00f6sungen f\u00fcr diese Probleme wurden in den fr\u00fchen 1980er Jahren entwickelt. XMODEM-CRC ersetzte die Pr\u00fcfsumme durch eine 16-Bit-CRC (Cyclic Redundancy Check), die gegen\u00fcber h\u00e4ufigen Fehlern wesentlich widerstandsf\u00e4higer war. XMODEM-1k erweiterte die Paketgr\u00f6\u00dfe von 128 Byte auf 1024 und verbesserte die Leistung bei Verbindungen mit h\u00f6herer Geschwindigkeit, w\u00e4hrend andere, wie WXMODEM und SEAlink, stattdessen Schiebefenstersysteme einf\u00fchrten, um sowohl die Leistung als auch die Latenz zu bek\u00e4mpfen, was auf Kosten einer gewissen Komplexit\u00e4t f\u00fchrte. Wieder andere, wie TeLink und MODEM7, f\u00fcgten Dateiinformationen hinzu, sodass eine einzelne \u00dcbertragung mehrere Dateien enthalten konnte, sodass Stapel von Dateien mit einem einzigen Befehl gesendet werden konnten.YMODEM[edit]Leider ist keine dieser erweiterten Versionen enthalten alle dieser Funktionen. Chuck Forsberg, Autor des CP \/ M-Programms “Yet Another Modem” (YAM), hat beschlossen, einen einzigen Protokolltreiber zu schreiben, der alle diese Optionen unterst\u00fctzt. Wenn die Benutzer eine \u00dcbertragung starten, k\u00f6nnen sie in der Befehlszeile angeben, welche Optionen sie m\u00f6chten, und beispielsweise angeben, dass sie CRC verwenden m\u00f6chten. Das Protokoll wurde so geschrieben, dass es diesen Stil versucht, aber ordnungsgem\u00e4\u00df zur\u00fcckgreift, um den von der Remote-Software implementierten Funktionen zu entsprechen. Abbrechen[edit]Ein Problem mit dem urspr\u00fcnglichen XMODEM war, dass es keine definierte M\u00f6glichkeit gab, die \u00dcbertragung nach dem Start abzubrechen. Die normale L\u00f6sung war zu senden NAKs zu jedem nachfolgenden Paket, wenn der Benutzer es angefordert hat. Da das XMODEM-Protokoll ein Limit von zehn definiert hat NAKWenn ein Sendevorgang abgebrochen werden soll und das Senden eines Pakets eine Sekunde dauern kann, bedeutet dies, dass es eine Verz\u00f6gerung von zehn Sekunden gab, bei der der Absender kontinuierlich Daten sendete, die einfach ignoriert wurden.Einige Implementierungen hatten die M\u00f6glichkeit hinzugef\u00fcgt, a zu senden K\u00d6NNEN Anstatt von ACK oder NAK am Ende eines empfangenen Pakets, um einen Abbruch anzuzeigen. Leider bestand die M\u00f6glichkeit, dass a K\u00d6NNEN k\u00f6nnte durch Leitungsrauschen erzeugt werden und einen Abbruch ausl\u00f6sen. YAM hat dies daher leicht modifiziert, um zwei zu erfordern K\u00d6NNENs R\u00fccken an R\u00fccken, die sofort einen “anmutigen Abbruch” am Absenderseite durchf\u00fchren w\u00fcrden.CRC[edit]Die CRC-Unterst\u00fctzung wurde in XMODEM-CRC eingef\u00fchrt. Dies war eine sehr einfache \u00c4nderung des urspr\u00fcnglichen Protokolls; Auf Anfrage w\u00fcrde der Empf\u00e4nger versuchen, die \u00dcbertragung durch Senden einer Initiale auszul\u00f6sen C. anstelle einer NAK. Wenn der Remote-Absender die CRC-Option unterst\u00fctzt, beginnt er wie gewohnt mit dem Senden von Paketen, jedoch mit einer 16-Bit-CRC in der Fu\u00dfzeile anstelle der 1-Byte-Pr\u00fcfsumme. YAM unterst\u00fctzte diese Option ohne \u00c4nderungen.1k[edit]In XMODEM-1k wurden 1024-Byte-Pakete eingef\u00fchrt. Diese Version hat das Triggerzeichen des Empf\u00e4ngers nicht ge\u00e4ndert, sodass der Absender nicht wissen konnte, ob der Empf\u00e4nger gr\u00f6\u00dfere Pakete unterst\u00fctzt. Stattdessen wurde XMODEM-1k an beiden Enden der Verbindung als separates Protokoll dargestellt. Wenn eine solche Verbindung gestartet wurde, konnte der Absender w\u00e4hlen, ob er entweder 1024 Bytes in einem Paket oder 128 Bytes senden m\u00f6chte, wobei das gr\u00f6\u00dfere mit einem angegeben wird STX Zeichen in der Kopfzeile statt der normalen SOH. Normalerweise w\u00fcrden nur die letzten Pakete die kleineren Pakete verwenden, um zu vermeiden, dass gro\u00dfe Mengen an Auff\u00fcllung gesendet werden. 1k nahm auch CRC f\u00fcr alle Verbindungen an. YAM unterst\u00fctzte 1k ohne \u00c4nderungen.Nullpaket[edit]Um die automatisierte \u00dcbertragung von FidoNet-E-Mails zu unterst\u00fctzen, hat MODEM7 die M\u00f6glichkeit eingef\u00fchrt, den Dateinamen vor dem Senden des ersten Datenblocks als Klartext zu senden. Dies war nicht zuverl\u00e4ssig, und TeLink verbesserte dies, indem der Dateiname und optional andere Daten wie das Erstellungsdatum und die Dateil\u00e4nge in einem vollst\u00e4ndigen 128-Byte-Paket abgelegt wurden. XMODEM hat die \u00dcbertragung mit Paket Nummer eins gestartet, daher hat TeLink dieses Paket als Nummer Null gesendet. Dieses “Nullpaket” oder “Blocknull” wurde in anderen FidoNet-Systemen wie SEAlink und anderen \u00fcblich.YAM unterst\u00fctzte das Nullpaketformat, wurde jedoch von vielen Implementierungen von YMODEM von Drittanbietern ignoriert. Wenn eine Implementierung versuchte, das Nullpaket an eine nicht bekannte Version zu senden, w\u00fcrde der Empf\u00e4nger dies nat\u00fcrlich tun NAK das Paket, als Paket Null ist illegal. Der Absender w\u00fcrde dann das sehen NAK Versuchen Sie als \u00dcbertragungsfehler, das Paket erneut zu senden, und versuchen Sie dies zehnmal, bevor Sie fehlschlagen.Aus Gr\u00fcnden, die nicht ganz klar sind, haben viele Implementierungen von YMODEM diese Funktion nicht implementiert. Weil sie sich dessen nicht bewusst waren, schickten sie eine NAKund l\u00f6st eine Reihe von Wiederholungsversuchen aus, bevor ein Fehler auftritt. Dies bedeutete, dass die \u00dcbertragungen fehlschlagen w\u00fcrden, wenn der Benutzer ein kompatibles YMODEM mit einer nicht kompatiblen Version verwenden w\u00fcrde. Trotzdem waren solche nicht konformen Versionen \u00fcblich.Infolgedessen war es \u00fcblich, dass sowohl YMODEM als auch YMODEM Batch als zwei separate Protokolle aufgef\u00fchrt wurden. Weitere Verwirrung wurde durch die \u00c4hnlichkeit zwischen XMODEM-1k und diesen nicht konformen YMODEMs verursacht, die dem Punkt \u00e4hnlich waren, dass sie h\u00e4ufig f\u00e4lschlicherweise als gleich aufgef\u00fchrt wurden.Streaming-Unterst\u00fctzung[edit]YMODEM-g ist eine Streaming-Variante f\u00fcr fehlerfreie Verbindungen. Es wartet nicht auf den Empfang einer Best\u00e4tigung, bevor das n\u00e4chste Paket gesendet wird. Das Protokoll ist schneller als YMODEM, da keine Latenz zwischen Paketen eingef\u00fchrt wird, jedoch keine Fehler korrigiert werden kann. Es h\u00e4ngt davon ab, dass die zugrunde liegende Verbindung fehlerfrei ist, was beispielsweise bei Modems der Fall ist, die MNP unterst\u00fctzen.Normalerweise wird eine YMODEM-\u00dcbertragung vom Empf\u00e4nger gestartet, der a sendet C. um anzuzeigen, dass das 128-Byte-Format mit CRC verwendet werden soll, oder NAK wenn es das urspr\u00fcngliche Pr\u00fcfsummensystem verwenden m\u00f6chte. Wenn das g-Protokoll gew\u00fcnscht wird, wird die \u00dcbertragung stattdessen durch Senden von a ausgel\u00f6st G. Wenn der Absender das g-Protokoll nicht unterst\u00fctzt, betrachtet er dies als Fehler und ignoriert es. Wenn er jedoch g unterst\u00fctzt, beginnt er, Pakete in einem kontinuierlichen Stream zu senden. Es wird nur eine einzige erwartet ACK nachdem das endg\u00fcltige Paket empfangen wurde, was durch das Vorhandensein eines angezeigt wird EOT Zeichen in den Daten. YMODEM-g geht davon aus, dass 1k Pakete verf\u00fcgbar sind.Obwohl dieses Protokoll m\u00f6glicherweise schneller als ZMODEM ist, wurde es immer noch selten verwendet. Dies war teilweise auf den Mangel an anderen Funktionen zur\u00fcckzuf\u00fchren, aber auch auf ein schwerwiegenderes Problem. Vor dem Aufkommen des 16550 UART bestand ein erhebliches Risiko eines Puffer\u00fcberlaufs an der seriellen Schnittstelle. Obwohl dies von YMODEM-g erkannt w\u00fcrde, konnte es nicht korrigiert werden, da keine erneute Block\u00fcbertragung m\u00f6glich ist. Der Empf\u00e4nger m\u00fcsste die gesamte \u00dcbertragung von Anfang an abbrechen und neu starten. ZMODEM hingegen verf\u00fcgt \u00fcber eine \u00dcbertragungswiederaufnahmefunktion, die es attraktiver macht.Verweise[edit]"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki18\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki18\/2021\/01\/22\/ymodem-wikipedia\/#breadcrumbitem","name":"YMODEM – Wikipedia"}}]}]