Кіріспе
Сандық желілік протоколдар отбасы
Microcom Networking Protocols, немесе MNP, – қателерді түзейтін протоколдар тобы, көбінесе ерте заманғы жоғары жылдамдықты (2400 бит/с және одан жоғары) модемдерде қолданылды. Алғашқыда Microcom компаниясының модемдері үшін әзірленген бұл протокол кейіннен ашық лицензияланды және модем өнеркәсібінің көп бөлігі, әсіресе "үлкен үштік" – Telebit, USRobotics және Hayes компаниялары қолданды. Кейіннен MNP протоколы V.42bis протоколымен алмастырылды, ол 1990 жылдардың басында пайда болған алғашқы V.32bis модемдерінен бастап дерлік барлық жерде қолданыла бастады.
The Microcom Networking Protocols, almost always shortened to MNP, is a family of error correcting protocols commonly used on early high speed (2400 bit/s and higher) modems. Originally developed for use on Microcom's own family of modems, the protocol was later openly licensed and used by most of the modem industry, notably the "big three", Telebit, USRobotics and Hayes. MNP was later supplanted by V.42bis, which was used almost universally starting with the first V.32bis modems in the early 1990s.
Шолу
Xmodem 1977 жылы енгізілгенімен, 1985 жылы The New York Times XMODEM-ді бірінші болып сипаттады, содан кейін MNP-ді басты талапкер ретінде талқылады және 9600 бодтық модемдер "көріне бастады". 1988 жылы газет 9600 және 19.2K туралы айтты, сондай-ақ "кем дегенде 100 басқа марканың модемдері MNP стандартына (Хейздің LAP B стандартын пайдалануымен салыстырғанда) көшуде" деді.
Қателерді түзету негіздері
Модемдер өзінің табиғаты бойынша қателіктерге бейім құрылғылар болып табылады. Телефон желісіндегі шу, жиі кездесетін жағдай, модемдер деректерді беру үшін қолданатын дыбыстарды оңай имитациялай алады, осылайша байқау қиын қателер тудырады. Кейбір тапсырмалар үшін, мысалы, қарапайым мәтінді оқу немесе жазу үшін, қателердің аз санын тым көп проблемалар тудырмай қабылдауға болады. Басқа тапсырмалар үшін, мысалы компьютерлік бағдарламаларды машина форматында беру үшін, тіпті бір қате алынған деректерді қолданусыз ете алады. Модемдер қол жетімді өткізу қабілетін көбірек пайдалану арқылы жылдамдығын арттырғанда, кездейсоқ шудың қателерді енгізу мүмкіндігі де артады; 2400 бит/с жоғары бұл қателер өте жиі кездеседі. Бұл мәселені шешу үшін бірнеше файл беру протоколдары енгізіліп, әртүрлі бағдарламаларда іске асырылды. Жалпы, бұл протоколдар файлды түпнұсқа файлдан бірнеше байттан тұратын фреймдер немесе пакеттер сериясына бөледі. Әрбір пакетке қосымша дерек, әдетте тексеру қосындысы немесе CRC қосылады, пакет алыну кезінде қатеге тап болды ма, жоқ па, оны көрсету үшін. Пакет содан кейін алыс жүйеге жіберіледі, ол деректердің тексеру қосындысын немесе CRC-ін қайта есептеп, оны алынған тексеру қосындысымен немесе CRC-мен салыстырады және дұрыс алынғанын анықтайды. Егер дұрыс алынған болса, алушы ACK (құптау) хабарламасын қайтарады, бұл жөнелтушіні келесі пакетті жіберуге шақырады. Егер қандай да бір проблема болса, ол NAK (құптаусыз) хабарламасын жібереді, ал жөнелтуші зақымдалған пакетті қайта жібереді. Бұл процесс беруге "қосымша шығындарды" енгізеді. Біріншіден, қосымша тексеру қосындысы немесе CRC арнада уақытты пайдаланады, оны басқа жағдайда қосымша деректерді жіберу үшін пайдалануға болар еді. Бұл едәуір мәселе емес, егер пакеттер өте кішкентай болмаса (мысалы, UUCP-де). Ең маңызды мәселе – алушының пакетті тексеруге, оны CRC-мен салыстыруға және содан кейін ACK-ті жөнелтушіге қайтаруға қажетті уақыты. Бұл кешігу модемнің жылдамдығы өскен сайын салыстырмалы түрде өседі; телефон желісінің кешігуі тұрақты, бірақ осы белгілі бір уақыт ішінде жіберілетін деректердің көлемі жылдамдықпен бірге өседі. Бұл мәселені шешу үшін жаңа протоколдар "сырғымалы терезелер" деп аталатын жүйені қолданады, бұл жөнелтушіге ACK хабарламасын алуды күтпей-ақ келесі пакетті жіберуге мүмкіндік береді; егер ACK біраз уақыт ішінде келмесе ғана ол пакетті қайта жібереді.
ҰБТ қол алысу
Модемдер сәтті қосылғаннан кейін MNP қосылыстары орнатылды. Шақыруды жасаған жүйе (модем немесе кейде оған қосылған компьютер) "Originator Detection Pattern" (ODP) деп аталатын 8 биттік символдардың қысқа тізбегін жіберетін болды. Тізбек DC1 жұптық теңдікпен (10001000) басталады, содан кейін бір немесе екі $FF (11111111), DC1 тақтық теңдікпен (10001001) және тағы да сол сандағы $FF символдары келеді. ODP жіберілгеннен кейін, жіберуші "Детекциялау фазасы таймерін" немесе T400 іске қосады. Жауап беру жүйесі осы уақыт ішінде ODP-ге дұрыс жауап беруі керек еді, әйтпесе шақыруды жасаған жүйе MNP қолдау көрсетілмейді деп есептейді. Әрбір жаңа сынып бұрынғы нұсқалармен салыстырғанда өнімділікті жақсартты, ал бұрынғы нұсқалар тек кері үйлесімділік үшін сақталды.
1 және 2-НПМ
Бірінші MNP стандарты, кейіннен MNP Class 1 немесе жай ғана MNP 1 деп аталды, XModem сияқты қарапайым жартылай дуплекс протоколы болды. Жылжымалы терезелердің болмауынан өткізу тиімділігі шамамен 70% болды. Яғни, Microcom сатқан сияқты 2400 бит/с модемде MNP 1 қолданылғанда өткізу жылдамдығы шамамен 1690 бит/с-қа дейін шектелді. Бұл жүйе негізінен шектеулі аппараттық құралдарда оңай іске асыру үшін жасалды, осының нәтижесінде қарапайым болды. Өңдеу қуатының арзандауымен Microcom MNP 2-ні ұсынды, ол MNP 1-дің толық дуплекс нұсқасы. Ол келесі пакет жіберіліп жатқанда ACK хабарламаларын қайтаруға мүмкіндік берді. Бұл модемнің ACK күтуіне байланысты тоқтауына жол бермеді, сонымен қатар жүйеге ACK белгілі бір уақыт ішінде алынған-алмағанын қадағалау үшін жад қажет болды. Пакеттер арасындағы кешігу қысқарғандықтан, тек CRC-нің қосымша шығындары қалды, бұл өнімділікті шамамен 84%-ға дейін арттырды.
МНП 3
Қалыпты пайдалану кезінде модем кез келген уақытта деректерді жібере немесе қабылдай алады, бұл "асинхронды" деп аталатын жұмыс режимі. Модем жіберілген биттерді тыңдап, және "сағатын синхрондап" алынған биттердің жылдамдығына қарай, жіберушінің деректерінің жылдамдығын анықтай алады. Деректер кез келген уақытта келіп түсе алатындықтан, нақты уақыт белгіленбейді; сағат пайдаланушы (мысалы, теруді тоқтатқан кезде) үзілістер үшін қайта орнатылуы мүмкін. Өкінішке орай, мұндай сағатты кодтау, деректерде 1 мен 0 арасындағы кейбір өзгерістер болмаса, жұмыс істемейді; 0 немесе 1 ұзын тізбегінде өзгеріс болмайды, сондықтан кез-келген байттың деректерінің қайдан басталатынын білу мүмкін емес. Бұл мәселені болдырмау үшін әрбір байттың екі жағына қосымша фреймдеу биттері қосылады, әдетте екі жағында бір биттен – "басталу және аяқталу биттері" деп аталады. Бұл әрбір байт үшін кем дегенде бір 1-ден 0-ге өзгеріс болуын қамтамасыз етеді, бұл сағаттарды синхрондап тұру үшін жеткілікті. Дегенмен, бұл биттер әр 8 биттік деректерді (бір байтты) 10 битке дейін ұзартады, бұл 20% үстеме шығынға тең. Файл беру протоколын пайдаланғанда, пакеттердің өзі фреймдеуді қамтамасыз етеді. Пакеттер әрқашан деректердің үздіксіз ағынын жібереді, сондықтан сағат пернетақтада теріп жатқан пайдаланушы жіберген деректер сияқты "қалқып" жүре алмайды. Қате түзетілген байланыста жұмыс істегенде осы фреймдеу биттерін өшіру арқылы 20% үстеме шығынды жоюға болады. MNP 3 дәл осылай істеді. Екі модем де MNP 3 қолдайтынын келісіп, анықтағаннан кейін, фреймдеу биттері өшірілді, бұл жалпы тиімділікті шамамен 20% арттырды. Бұл протоколдың үстеме шығынын толығымен өтеді, яғни MNP 3 қолданғанда пайдаланушы идеалды 2400 бит/с өткізу қабілетіне жақын болуын күте алады (1900 бит/с-қа қарсы).
ҰБТ 4
MNP 4, MNP 3-тен одан да жақсартылған нұсқа болып табылады, оларға адаптивті пакет құрастыру деп аталатын өзгермелі пакеттік жүйе қосылды. MNP жағдайында пакеттік жүйенің қосымша шығыны салыстырмалы түрде аз болды, бірақ тіпті көп байттық CRC деректер үшін жақсы пайдаланылатын орынды иеленді. Әдетте, үлкен пакеттерді пайдалану бұл мәселені шешер еді, себебі CRC бірдей тұрақты өлшемде қалады, демек оның салыстырмалы қосымша шығыны деректер көлемімен салыстырғанда азаяды. Дегенмен, қате пайда болған жағдайда үлкен пакеттерді пайдалану көбірек деректерді қайта жіберуді талап етеді. Шулы желілерде бұл жалпы өткізу қабілетін төмендетеді. MNP 4 жүйесінде екі модем үнемі желідегі жоғалған пакеттерді бақылайды және егер белгілі бір шекті (пайдаланушы таңдаған) асырса, модем кіші пакеттік өлшемге көшеді. Бұл пакет жоғалған кезде қайта жіберуге тиіс деректер мөлшері азаяды дегенді білдіреді, нәтижесінде өткізу қабілеті жақсарады. Жақсы сапалы желілерде үлкен пакеттерді пайдалану CRC-нің қосымша шығынын азайтады. Пакеттердің мөлшері 64-тен 256 байтқа дейін болуы мүмкін, сондай-ақ пайдаланушы оны белгілі бір өлшемге орнатуға мүмкіндік алады. MNP 4 сонымен қатар дерек фазасын оңтайландыруды енгізді, бұл протоколға жасалған қарапайым өзгерту, ол байланыс орнатылғаннан кейін кейбір пакеттік фреймдеу туралы ақпаратты жоюға мүмкіндік береді, бұл протоколдың қосымша шығынын одан әрі азайтады. Бұл мүмкіндіктердің үйлесімі, сонымен қатар MNP 3-тің байттық фреймдеуінің болмауы, өткізу тиімділігін одан әрі арттыруға мүмкіндік берді.
МНП 5
MNP 5 үшін одан да радикалды өзгеріс жасалды, модемде деректерді үшу кезінде сығыстыру енгізілді. MNP 5 арқылы компьютерден алынған деректер алдымен қарапайым алгоритммен сығылады, содан кейін MNP 4 пакеттеу жүйесіне жіберіледі. Ең жақсы жағдайда жүйе шамамен 2:1 қысуды ұсынды, бірақ жалпы алғанда, кем дегенде мәтін үшін шамамен 1.6:1 көрсеткіш кездесетін. Нәтижесінде, 2400 бит/с модем мәтінді ~4000 бит/с жылдамдықпен жібергендей болады. Өтімділіктің осы күрт артуы Microcom модемдерінің басқа компаниялардың номиналды түрде жылдамырақ модельдерімен бәсекелесуіне мүмкіндік берді. Мысалы, Microcom көбінесе 1200 және 2400 бит/с модемдерді стандарттық бөлшектерді пайдаланып шығарды, ал USRobotics және Telebit сияқты компаниялар 19200 бит/с жылдамдыққа дейін жететін модельдерді ұсынды. Дегенмен, өнімділіктің жақсаруы екі жақтағы модемдер MNP-ні қолдаса ғана мүмкін болатын. Бұл жүйені екі шетінде модемдерді орнататын сайттар үшін ғана тартымды етті; хабарландыру тақталары (BBS) сияқты қоңырау арқылы қосылатын қызметтер үшін Microcom құрылғысын пайдаланудың ешқандай себебі болмады, өйткені соңғы пайдаланушыда мұндай құрылғы болуы екіталай. Тіпті пайдаланушы байланыстың екі шетін де басқаратын жағдайларда да Microcom-ның "фирмендік" модемдері басқа компаниялардың "нақты жағдайда" жоғары өтімділігі бар модельдеріне қарағанда аз қызығушылық тудырды. Microcom модемдер нарығын құру үшін, MNP 5-тен бастап олар MNP жиынтығының барлығына тегін лицензия беруге батылды. Осы идеяның мақсаты – MNP орнатылған модемдердің санын күрт арттыру, соның арқасында "нағыз" Microcom модемдеріне сұраныс арттыру. Сонымен қатар, жақсартылған өнімділігі бар жаңа стандарттар, егер байланыстың екі шетінде де Microcom модемі болса, одан да жақсы нәтижелерді ұсынуы мүмкін еді. Алайда, бұл жоспар күткен нәтижені бермеді. V.42bis стандартындағы LAPM сығылу жүйесінің күрт жақсаруы Microcom-ның өзінің жетістіктерін озып кетті, "нағыз" Microcom моделінің құнын дерлік нөлге дейін төмендетті. V.42bis және стандарттық бөлшектерді пайдаланып, Microcom-нан асып түсетін өнімділігі бар көптеген арзан модемдер тез арада қолжетімді болды. Microcom жаңа стандарттарды енгізуді жалғастырғанмен, олар көбінесе назарсыз қалды және Microcom нарықтағы маңызды ойыншы бола алмай қалды.
МНП 6
V.32 енгізілуі стандартты 9600 бит/с модемдердің пайда болуына әкелді, олардың көбісі MNP 5 ұсынды. Өздерін тауар нарығынан ерекшелендіру үшін (бұл 1991 жылы V.32bis SupraFAXModem 14400 енгізілгенге дейін толыққанды орын алмағанмен), Microcom MNP 6 құрады. MNP 6-ның басты ерекшелігі – Статистикалық Дуплекстеу, ол модемдік байланыстың бір немесе екінші жағына жолақтықтың көбірек немесе азырақ бөлігін бөлуге мүмкіндік берді. Мысалы, егер бір құрылғы үлкен файлды жіберсе, екінші құрылғы тек ACK және NAK хабарламалары сияқты аз көлемдегі ақпаратты қайтарады. Бұл жағдайда модемдер жіберушіге мүмкіндігінше көп арнаны береді, бір бағыттағы жолақты 19,200 бит/с дейін ұсынады. Бұл модуляция жүйесіне ешқандай өзгеріс енгізуді қажет етпеді: әдетте 9600 бит/с модем екі бағытта да 9600 бит/с арнаға ие болды, жалпы сомасы 19200 бит/с; MNP 6 жай ғана осы жолақтың көбірек немесе азырақ бөлігін бір немесе екінші жаққа беруге мүмкіндік берді, оны екі бағытта да 9600-ға бекітудің орнына. Бұл негізгі принцип индустрияда кеңінен қолданылды, ол Hayes Express 96 протоколының, USRobotics HST Telebit PEP-тің және (сәтке ғана) CompuCom SpeedModem-нің негізін құрады. Бұл стандарттардың барлығы V.32bis үстемдік танытқан нарықта тірі қалуда қиындыққа тап болды және MNP 6 сияқты, көбінесе назардан тыс қалды. MNP 6-ға енгізілген тағы бір, алайда маңыздылығы төмен қосымша – Universal Link Negotiation (жалпы байланыс келісімі). V.32 және одан кейінгі жаңа модуляция режимдері енгізілгенде, байланыстың екі шетіндегі модемдер ортақ стандартқа келісу үшін көбірек уақыт жұмсауға мәжбүр болды. Мысалы, V.32bis модемі алдымен 14.4 бит/с байланысын орнатуға тырысу үшін желіге сигналдар жібереді; егер ол сәтсіз болса, 9600, 2400 және соңында 1200 бит/с байланысын сынап көреді. Әрбір стандарт байланыс орнатуға жұмсалатын ең аз уақытты анықтағандықтан, кешігу 10 секундтан асып кетті. ULN бұл кешігуді әрқашан қателерді түзету функциясы өшірілген 2400 бит/с жылдамдығымен байланыс келісімін жүргізу арқылы болдырмады. Бұл ескі 1200 бит/с модемдермен үйлесімділікті жойғанмен, сол кезде олар өте сирек кездесетін. Қосылыс орналысымен, ол жылдам орындалды, екі модем де қашықтағы модемге кішкентай идентификациялық тізбек жіберді. Содан кейін екі модем де тізбекті тексеріп, ең жылдам ортақ режимді таңдады. Содан кейін шалушы осы жоғары жылдамдықпен бір рет келісім жүргізді.
МНП 7
MNP 7 мәтіндік файлдарды 3:1 деңгейінде қысуды жақсартатын жаңа қысу алгоритмдерін ұсынды. Бірақ, MNP 7 пайда болған кезде V.42bis стандарты 4:1 деңгейінде қысу мүмкіндігін беріп үлгерген еді.
ҰБТ 9
MNP 9 (көрініп тұрғандай, 8-і шығарылмаған) жаңа жоғары жылдамдықты режимдерді қосу үшін Universal Link Detection-ді жақсартты, бірақ әйтпесе MNP 7-ге толықтай ұқсас болды.
ҰБТ 10
MNP 10 бағдарламасында шығыс Еуропада кеңінен қолданылатын шулы телефон желілерінде тиімді жұмыс істеуге арналған жаңылыс түзетудің жаңа протоколы енгізілді. MNP 4 сияқты бұрынғы нұсқалардан өзгеше, MNP 10 желі сапасын үнемі бақылап отырып, жағдай жақсарған жағдайда пакет мөлшерін арттыратын болды. 1991 жылы Microcom компаниясы MNP 10 лицензиясын Rockwell International компаниясына, олардың өте танымал модемдік чиптері жиынтығында пайдалану үшін берді. 1995 жылдан бастап USR модельдерін қоспағанда, дерлік барлық модемдер Rockwell чипсетін қолданғандықтан, MNP 10 кеңінен таралып (немесе қолданылмаса да) қолданыла бастады. USR компаниясы кейіннен MNP 10-ды V. everything сериялы модемдеріне қосты, осылайша оны әмбебапқа айналдырды. MNP 10 кейіннен MNP 10EC болып кеңейтілді, мұндағы "EC" – "Extended Cellular" (Кеңейтілген Ұялы) дегенді білдіреді. Бұл өзгерістер MNP 10-ға ұялы телефон бір ұяшықтан екіншісіне ауысқанда туындайтын байланыс үзілістерін жоюға мүмкіндік берді, бұл үзілістер әдетте желідегі қателер ретінде қабылданатын. MNP 10EC арқылы осы үзілістер дұрыс түрде "қате емес" деп анықталып, байланыс жылдамдығы жоғары деңгейде сақталады. Оның табысы AT&T Paradyne компаниясын ETC бәсекелесін құруға итермеледі. MNP 10EC, әсіресе ұялы байланыс саласында, бастапқыда MNP 6-да енгізілген (және MNP 9-да жетілдірілген) ULN байланыс келісім әдісін қамтығандықтан тартымды болды. Ұялы желіде барлық эфир уақыты есептелетін жағдайда, жылдам орнату ақшаны үнемдеуге көмектесті. MNP 10EC-тің қызмет ету мерзімі шектеулі болды, себебі ұялы желілер компьютерге қосылу үшін модемді қажет етпейтін түрлі сандық жүйелерге көшті.
Құжаттамалық
MNP меншік болып табылса да, 2-ден 4-ке дейінгі сыныптар V.42 спецификациясының А қосымшасында қателіктерді бақылау функциясының баламалы процедурасы ретінде сипатталған. Бұл қосымша спецификацияның 1996 жылғы редакциясына дейін енгізілген. 2002 жылғы соңғы редакцияда ол алынып тасталды.