Binkp

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 4 ianuarie 2016; verificările necesită 9 modificări .
binkp
Nivel (conform modelului OSI ) Aplicat
Familie TCP/IP
Creat în 1996
Port/ID 24554/ TCP
Scopul protocolului Transfer de fișiere în rețele FTN
Specificație FTS-1026
Principalele implementări (clienți) binkd , argus, bforce
Extensibilitate Adăuga. comenzi și opțiuni
Extensii majore criptare , compresie de date , mod nodupe, MD5 - autentificare

Binkp  este un protocol de rețea de nivel de aplicație conceput pentru a transfera fișiere pe Fidonet sau alte rețele FTN printr-o conexiune TCP . De regulă, portul TCP 24554 este utilizat pentru comunicarea prin acest protocol, deoarece acest număr este rezervat binkp în directorul IANA ( Internet Assigned Numbers Authority ).

Există două versiuni ale protocolului binkp: original (1.0) și augmentat (1.1). În plus, au fost dezvoltate mai multe extensii de protocol. Protocolul și majoritatea extensiilor sale sunt încadrate în standarde și propuneri FTSC .

Stratul permite aplicațiilor utilizatorului să acceseze servicii de rețea, cum ar fi gestionarea interogărilor bazei de date, accesul la fișiere, redirecționarea e-mailurilor. De asemenea, este responsabil pentru transferul informațiilor de serviciu, oferă aplicațiilor informații despre erori și generează solicitări către nivelul de prezentare. Exemplu: HTTP , POP3 , SMTP .

Istoricul creației

După ce internetul a devenit din ce în ce mai răspândit și mai accesibil, a fost nevoie să-l folosească pentru legături pe distanțe lungi în Fidonet , în locul rețelelor de telefonie convenționale și a rețelei Iskra-2 . Implementările modemurilor virtuale ( rlfossil , vmodem ) nu au rezolvat problema suficient de eficient. Mailer -ul ifcico a implementat capacitatea de a comunica direct între mailerii fidosh prin TCP , dar a folosit totuși protocoale concepute pentru transport nelivrabil ( EMSI , zmodem ) și, prin urmare, ineficiente pentru utilizare prin TCP.

Într-o astfel de situație, în 1996 , Dmitri Malov a dezvoltat un protocol specializat binkp și binkd mailer care îl sprijină . Acest protocol și mailer ar putea funcționa numai prin TCP, nu sunt proiectate să funcționeze pe linii telefonice obișnuite. Acesta a fost avantajul lor față de celelalte protocoale, iar binkp a înlocuit destul de repede celelalte opțiuni pentru fido peste inet: până la sfârșitul anului 1998, judecând după steagurile din lista de noduri, binkp era deja cel mai comun dintre protocoalele fido peste ip. În plus, protocolul binkp a fost documentat inițial, iar implementarea sa (binkd) este un program gratuit multiplatformă , care a reprezentat și un avantaj semnificativ al binkp și binkd față de alte protocoale pentru această aplicație. Ulterior, implementările protocolului binkp au apărut și în alte mailere (Argus, bforce, qico, mbico).

Numărul portului (24554) era, potrivit autorului, numărul său de telefon de acasă din Magadan. [unu]

Structura protocolului

Interacțiunea are loc într-o singură sesiune TCP (datorită căreia protocolul funcționează prin IP NAT ). Părțile schimbă cadre de dimensiune limitată (nu mai mult de 32K, 4K implicit). În fiecare cadru, pot fi transmise fie date, fie o comandă de control. Datorită acestui fapt, se realizează bidirecționalitatea protocolului: în timpul trimiterii unui fișier, una dintre părți poate introduce un cadru în fluxul de date cu o comandă pentru a confirma primirea fișierului, astfel încât recepția și transmiterea au loc aproape independent de fiecare. altele simultan într-o sesiune tcp.

În plus, conceptul de flux a fost introdus inițial. Adică, partea care trimite nu așteaptă o confirmare a fișierului anterior pentru a-l trimite pe următorul. Acest lucru crește semnificativ eficiența protocolului în comparație cu altele similare. De asemenea, protocolul includea și posibilitatea dezvoltării sale ulterioare - adăugarea de noi caracteristici opționale sau schimbarea versiunii protocolului (versiunile suportate și un set de extensii opționale sunt anunțate de către părți între ele la începutul sesiunii de comunicare).

Binkp operează pe un canal de caractere bidirecțional care nu permite erori în transmiterea datelor. Orice date scrise de ambele părți pe canal au următorul format general:

cadru binkp:

+--------------------- 0=bloc de date, 1=mesaj(comandă) | +---- dimensiunea blocului de date / dimensiunea argumentelor | | 76543210 76543210 +-+-------+--------+--- ..... ---+ | | HILO | | -- bloc de date / argumente +-+-------+--------+--- ..... ---+ |<- 2 octeți ->|<- 32K max ->|

Antetul cadru este format din doi octeți care definesc tipul și lungimea (în octeți) datelor care urmează antetului. Dacă bitul înalt al antetului este resetat, atunci toate datele primite cu cadrul ar trebui să fie atașate fișierului primit curent. (Dacă un astfel de fișier este deja deschis, aruncați altfel.) În caz contrar, datele ar trebui analizate ca o comandă care schimbă starea protocolului. Primul octet de date primit cu cadrul este numărul comenzii. Restul este un argument. Argumentele comenzii sunt un set arbitrar de caractere, care nu se limitează neapărat la „\0”. O comandă fără argumente (de exemplu, M_OK) ar putea arăta cam așa:

76543210 76543210 76543210 +-+-------+--------+--------+ |1| 0 1| 4| +-+-------+--------+--------+ | | +----- numărul comenzii (fără argumente) | +-------- lungime cadrul fără antet -- 1 octet + este o comandă

Extensii majore

Pe măsură ce protocolul a evoluat, i s-au adăugat multe caracteristici noi. Iată pe cele principale:

Vezi și

Note

  1. Dmitri Malov. De fiecare dată când citesc într-un ghid sau... (downlink) . Moscova: Facebook (7 octombrie 2016). - "de fapt, 24554 era numărul meu de telefon de acasă în Magadan." Arhivat din original pe 7 octombrie 2016. 

Link -uri