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 .
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]
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ăPe măsură ce protocolul a evoluat, i s-au adăugat multe caracteristici noi. Iată pe cele principale: