binkp | |
---|---|
Niveau (ifølge OSI-modellen ) | Anvendt |
Familie | TCP/IP |
Oprettet i | 1996 |
Port/ID | 24554/ TCP |
Formål med protokollen | Filoverførsel i FTN - netværk |
Specifikation | FTS-1026 |
Vigtigste implementeringer (klienter) | binkd , argus, bforce |
Udvidelsesmuligheder | Tilføje. kommandoer og muligheder |
Større udvidelser | kryptering , datakomprimering , nodupe-tilstand, MD5 - autentificering |
Binkp er en applikationslagsnetværksprotokol designet til at overføre filer på Fidonet eller andre FTN - netværk over en TCP - forbindelse. Som regel bruges TCP -port 24554 til kommunikation over denne protokol, da dette nummer er reserveret til binkp i IANA -biblioteket ( Internet Assigned Numbers Authority ).
Der er to versioner af binkp-protokollen: original (1.0) og udvidet (1.1). Derudover er der udviklet adskillige protokoludvidelser. Protokollen og de fleste af dens udvidelser er indrammet i FTSC standarder og forslag .
Laget giver brugerapplikationer adgang til netværkstjenester såsom databaseforespørgselshåndtering, filadgang, videresendelse af e-mail. Det er også ansvarlig for overførslen af serviceoplysninger, giver applikationer information om fejl og genererer anmodninger til præsentationslaget. Eksempel: HTTP , POP3 , SMTP .
Efter at internettet blev mere og mere udbredt og tilgængeligt, var der behov for at bruge det til langdistanceforbindelser i Fidonet i stedet for konventionelle telefonnetværk og Iskra-2- netværket . Implementeringer af virtuelle modemer ( rlfossil , vmodem ) løste ikke problemet effektivt nok. Ifcico -maileren implementerede evnen til at kommunikere direkte mellem fidosh-mailere over TCP , men brugte stadig protokoller designet til ikke-leverbar transport ( EMSI , zmodem ) og derfor ineffektive til brug over TCP.
I en sådan situation udviklede Dmitry Malov i 1996 en specialiseret binkp-protokol og binkd -maileren, der understøttede den . Denne protokol og mailer kunne kun fungere over TCP, de er ikke designet til at fungere over almindelige telefonlinjer. Dette var deres fordel i forhold til de andre protokoller, og binkp erstattede ret hurtigt de andre muligheder for fido over inet: ved udgangen af 1998, at dømme efter flagene i nodelisten, var binkp allerede den mest almindelige af fido over ip-protokollerne. Derudover blev binkp-protokollen oprindeligt dokumenteret, og dens implementering (binkd) er et gratis program på tværs af platforme , hvilket også var en væsentlig fordel ved binkp og binkd i forhold til andre protokoller til denne applikation. Efterfølgende dukkede implementeringer af binkp-protokollen op i andre mailere (Argus, bforce, qico, mbico).
Portnummeret (24554) var ifølge forfatteren hans hjemmetelefonnummer i Magadan. [en]
Interaktionen foregår i én TCP-session (på grund af hvilken protokollen fungerer via IP NAT ). Parterne udveksler rammer af en begrænset størrelse (ikke mere end 32K, 4K som standard). I hver ramme kan enten data eller en kontrolkommando sendes. På grund af dette opnås protokollens todirektionalitet: mens du sender en fil, kan en af parterne kile en ramme ind i datastrømmen med en kommando for at bekræfte modtagelsen af filen, så modtagelse og transmission sker næsten uafhængigt af hver andre samtidigt i én tcp-session.
Derudover blev begrebet flow i første omgang introduceret. Det vil sige, at den afsendende part ikke venter på en bekræftelse af den forrige fil for at sende den næste. Dette øger effektiviteten af protokollen betydeligt sammenlignet med andre lignende. Protokollen indeholdt også muligheden for dens efterfølgende udvikling - tilføjelse af nye valgfri funktioner eller ændring af protokolversionen (understøttede versioner og et sæt valgfri udvidelser annonceres af parterne til hinanden i begyndelsen af kommunikationssessionen).
Binkp opererer over en tovejs karakterkanal, der ikke tillader fejl i datatransmission. Alle data skrevet af begge sider til kanalen har følgende generelle format:
binkp ramme:
+--------------------- 0=datablok, 1=besked(kommando) | +---- størrelse på datablok / størrelse på argumenter | | 76543210 76543210 +-+-------+--------+--- ..... ---+ | | HILO | | -- datablok / argumenter +-+-------+--------+--- ..... ---+ |<- 2 bytes ->|<- 32K maks. ->|Rammehovedet er to bytes, der definerer typen og længden (i bytes) af de data, der følger efter overskriften. Hvis den høje bit i headeren nulstilles, skal alle data modtaget med rammen føjes til den aktuelle modtagne fil. (Hvis en sådan fil allerede er åben, skal du kassere ellers.) Ellers bør dataene parses som en kommando, der ændrer protokollens tilstand. Den første byte af data modtaget med rammen er kommandonummeret. Resten er et argument. Kommandoargumenter er et vilkårligt sæt af tegn, ikke nødvendigvis begrænset til '\0'. En kommando uden argumenter (for eksempel M_OK) kan se sådan ud:
76543210 76543210 76543210 +-+-------+--------+--------+ |1| 0 1| 4| +-+-------+--------+--------+ | | +----- kommandonummer (ingen argumenter) | +-------- framelængde uden sidehoved -- 1 byte + er en kommandoEfterhånden som protokollen udviklede sig, blev der tilføjet mange nye funktioner til den. Her er de vigtigste: