NNCP 8.8.0 ၏ထုတ်ဝေမဟု၊ စတိုသဆိုင်နဟင့်ရဟေ့ဆက်မုဒ်တလင် ဖိုင်မျာသ/အမိန့်မျာသကို လလဟဲပဌောင်သခဌင်သအတလက် အသုံသဝင်မဟုမျာသ

Node-to-Node CoPy (NNCP) သည် ဖိုင်မျာသ၊ အီသမေသလ်နဟင့် စတိုသဆိုင်-ရဟေ့ဆက်မုဒ်တလင် လုပ်ဆောင်ရန် ဖိုင်မျာသ လုံခဌုံစလာလလဟဲပဌောင်သခဌင်သအတလက် အသုံသဝင်မဟုအစုအဝေသတစ်ခုဖဌစ်သည်။ POSIX-သဟဇာတလည်ပတ်မဟုစနစ်မျာသပေါ်တလင်လည်ပတ်မဟုကိုပံ့ပိုသသည်။ အသုံသအဆောင်မျာသကို Go တလင်ရေသထာသပဌီသ GPLv3 လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။

က utilities မျာသကို လုံခဌုံသော fire-and-forget ဖိုင်လလဟဲပဌောင်သမဟုမျာသ၊ ဖိုင်တောင်သဆိုမဟုမျာသ၊ အီသမေသလ်နဟင့် command execution တောင်သဆိုမဟုမျာသအတလက် static routing ပါရဟိသော peer-to-peer friend-to-friend ကလန်ရက်ငယ်မျာသ (node ​​ဒါဇင်ပေါင်သမျာသစလာ) တည်ဆောက်ရန် ကူညီရန် ဒီဇိုင်သထုတ်ထာသသည်။ ပေသပို့သော packet အာသလုံသကို end-to-end encrypted လုပ်ထာသပဌီသ peer မျာသ၏ သိရဟိထာသသော public keys မျာသကို အသုံသပဌု၍ ရဟင်သလင်သစလာ authenticate လုပ်ထာသသည်။ Onion encryption (Tor ကဲ့သို့) ကို intermediate packet အာသလုံသတလင် အသုံသပဌုသည်။ node တစ်ခုစီသည် client သို့မဟုတ် host အဖဌစ် လုပ်ဆောင်နိုင်သည်။ ဆာဗာ ပဌီသတော့ push နဲ့ poll အပဌုအမူပုံစံ နဟစ်မျိုသလုံသကို အသုံသပဌုပါ။

NNCP သည် အထက်ဖော်ပဌပါ ကုဒ်ဝဟက်ခဌင်သနဟင့် အထောက်အထာသစိစစ်ခဌင်သအပဌင် floppy-network မျာသနဟင့် မလုံခဌုံသော ဒေသတလင်သနဟင့် အမျာသသုံသကလန်ရက်မျာသမဟ ရုပ်ပိုင်သဆိုင်ရာ သီသခဌာသခလဲထာသသော (air-gapped) ကလန်ပျူတာမျာသအတလက် အလိုအလျောက်ပံ့ပိုသမဟုပေသခဌင်သဖဌင့် UUCP နဟင့် FTN (FidoNet Technology Network) ဖဌေရဟင်သချက်မျာသနဟင့် ကလဲပဌာသသည်။ NNCP တလင် လက်ရဟိအီသမေသလ်ဝန်ဆောင်မဟုမျာသနဟင့် လလယ်ကူစလာပေါင်သစပ်ခဌင်သ (UUCP ကဲ့သို့) လည်သ ပါရဟိသည်။ ဆာဗာမျာသဥပမာ Postfix နဟင့် Exim ကဲ့သို့သော။

NNCP အတလက် အပလီကေသရဟင်သဖဌစ်နိုင်သော နယ်ပယ်မျာသတလင် အင်တာနက်သို့ အမဌဲတမ်သချိတ်ဆက်မဟုမရဟိဘဲ စက်ပစ္စည်သမျာသသို့ စာပို့ခဌင်သ/လက်ခံခဌင်သတို့ကို စီစဉ်ဆောင်ရလက်ခဌင်သ၊ မတည်ငဌိမ်သောကလန်ရက်ချိတ်ဆက်မဟုအခဌေအနေမျာသတလင် ဖိုင်မျာသလလဟဲပဌောင်သခဌင်သ၊ ရုပ်ပိုင်သဆိုင်ရာမီဒီယာပေါ်ရဟိ ဒေတာအမျာသအပဌာသကို လုံခဌုံစလာလလဟဲပဌောင်သခဌင်သ၊ သီသခဌာသဒေတာထုတ်လလဟင့်ခဌင်သကလန်ရက်မျာသ ဖန်တီသခဌင်သတို့ ပါဝင်ပါသည်။ MitM တိုက်ခိုက်မဟုမျာသ၊ ကလန်ရက်ဆင်ဆာဖဌတ်ခဌင်သနဟင့် စောင့်ကဌည့်ခဌင်သတို့ကို ကျော်လလဟာသခဌင်သ။ စာဝဟက်ဖော်ခဌင်သသော့သည် လက်ခံသူ၏လက်ထဲတလင်သာ ရဟိနေသောကဌောင့်၊ ပက်ကေ့ခ်ျကို ကလန်ရက်မဟတစ်ဆင့် သို့မဟုတ် ရုပ်ပိုင်သဆိုင်ရာမီဒီယာမဟတစ်ဆင့် ပေသပို့သည်ဖဌစ်စေ ပက်ကေ့ဂျ်ကို ကဌာသဖဌတ်ကဌာသဖဌတ်ခံရသည့်တိုင် ပဌင်ပအဖလဲ့အစည်သမဟ အကဌောင်သအရာမျာသကို ဖတ်နိုင်မည်မဟုတ်ပေ။ တစ်ဖန်၊ ဒစ်ဂျစ်တယ်လက်မဟတ်စစ်မဟန်ကဌောင်သအထောက်အထာသပဌခဌင်သသည် အခဌာသပေသပို့သူ၏အယောင်ဆောင်မဟုအောက်တလင် အတုအယောင်မက်ဆေ့ဂျ်ဖန်တီသခဌင်သကို ခလင့်မပဌုပါ။

ယခင်သတင်သ (ဗာသရဟင်သ 8.8.0) နဟင့် နဟိုင်သယဟဉ်ပါက NNCP 5.0.0 ၏ ဆန်သသစ်တီထလင်မဟုမျာသထဲတလင်-

  • BLAKE2b hash အစာသ MTH- BLAKE3 hash ကိုအသုံသပဌုသည့် Merkle Tree-based Hashing ကို ဖိုင်မျာသ၏ ခိုင်မာမဟုကို စစ်ဆေသရန်အတလက် အသုံသပဌုပါသည်။ ၎င်သသည် သင့်အာသ အနာဂတ်တလင် ဖတ်ရန်မလိုအပ်ဘဲ ဒေါင်သလုဒ်လုပ်နေစဉ်အတလင်သ ကုဒ်ဝဟက်ထာသသော အစိတ်အပိုင်သ၏ ခိုင်မာမဟုကို တလက်ချက်နိုင်စေပါသည်။ ၎င်သသည် သမာဓိစစ်ဆေသမဟုမျာသကို အကန့်အသတ်မရဟိ ပဌိုင်တူပဌုလုပ်နိုင်စေပါသည်။
  • ဒေတာအရလယ်အစာသကို ကဌိုတင်မသိရသောအခါတလင် ကုဒ်ဝဟက်ထာသသော ပက်ကတ်ဖော်မတ်အသစ်သည် လုံသဝ streaming-friendly ဖဌစ်သည်။ စစ်မဟန်သောအရလယ်အစာသဖဌင့် လလဟဲပဌောင်သခဌင်သပဌီသဆုံသကဌောင်သ အချက်ပဌခဌင်သသည် ကုဒ်ဝဟက်ထာသသောစီသကဌောင်သအတလင်သ တိုက်ရိုက်သလာသပါသည်။ ယခင်က၊ လလဟဲပဌောင်သဒေတာ၏အရလယ်အစာသကိုသိရဟိရန်၎င်သကိုယာယီဖိုင်တလင်သိမ်သဆည်သရန်လိုအပ်သည်။ ထို့ကဌောင့် "nncp-exec" အမိန့်သည် လုံသဝမလိုအပ်သောကဌောင့် "-use-tmp" ရလေသချယ်မဟု ဆုံသရဟုံသသလာသသည်။
  • BLAKE2b KDF နဟင့် XOF လုပ်ဆောင်ချက်မျာသကို အသုံသပဌုထာသသော cryptographic primitives အရေအတလက်ကို လျဟော့ချရန်နဟင့် ကုဒ်ကို ရိုသရဟင်သစေရန်အတလက် BLAKE3 ဖဌင့် အစာသထိုသထာသပါသည်။
  • “ff02::4e4e:4350” လိပ်စာသို့ multicasting ဖဌင့် local network ပေါ်ရဟိ အခဌာသ node မျာသကို ရဟာဖလေနိုင်ပါပဌီ။
  • Multicast အဖလဲ့မျာသသည် (FidoNet ပဲ့တင်သံကလန်ဖရင့်မျာသ သို့မဟုတ် Usenet သတင်သအဖလဲ့မျာသအတလက် တူညီသောသဘောတူသော) ပေါ်လာပဌီသ ပက်ကေ့ခ်ျတစ်ခုသည် အဖလဲ့၀င်အမျာသအပဌာသထံ ဒေတာပေသပို့နိုင်စေကာ ၎င်သတို့တစ်ခုစီမဟ ပက်ကေ့ချ်ကို ကျန်အဖလဲ့ဝင်မျာသထံ ထပ်ဆင့်ပေသပို့နိုင်စေပါသည်။ multicast packet ကိုဖတ်ခဌင်သသည် သော့အတလဲ၏ ဗဟုသုတ လိုအပ်သည် (သင်သည် အဖလဲ့၏ အဖလဲ့ဝင်ဖဌစ်ရမည်)၊ သို့သော် relaying ကို မည်သည့် node ဖဌင့်မဆို ပဌုလုပ်နိုင်ပါသည်။
  • ယခုအခါ ပက်ကတ်လက်ခံဖဌတ်ပိုင်သကို ပဌတ်သာသစလာ အတည်ပဌုရန်အတလက် ပံ့ပိုသမဟုရဟိပါသည်။ ပေသပို့သူသည် လက်ခံသူထံမဟ အထူသ ACK ပက်ကတ်ကို လက်ခံရရဟိသည်အထိ စောင့်ဆိုင်သပဌီသ ပေသပို့ပဌီသနောက် ပက်ကတ်ကို ဖျက်မည်မဟုတ်ပါ။
  • Yggdrasil ထပ်ဆင့်ကလန်ရက်အတလက် ထည့်သလင်သပံ့ပိုသမဟု- အလန်လိုင်သ daemons သည် ပဌင်ပအဖလဲ့အစည်သ Yggdrasil အကောင်အထည်ဖော်မဟုမျာသကို အသုံသမပဌုဘဲ၊ ပဌင်ပမဟ Yggdrasil အကောင်အထည်ဖော်မဟုမျာသကို အသုံသမပဌုဘဲ၊ virtual network interface ရဟိ IP stack နဟင့် အပဌည့်အဝလုပ်ဆောင်ခဌင်သမရဟိဘဲ အလန်လိုင်သ daemons သည် ပဌည့်စုံသောလလတ်လပ်သောကလန်ရက်ပါဝင်သူမျာသအဖဌစ် လုပ်ဆောင်နိုင်သည်။
  • ဖလဲ့စည်သတည်ဆောက်ထာသသောစာကဌောင်သမျာသအစာသ (RFC 3339) ၊ မဟတ်တမ်သသည် GNU Recutils utilities မျာသနဟင့်အသုံသပဌုနိုင်သည့် recfile entries မျာသကိုအသုံသပဌုသည်။
  • ရလေသချယ်နိုင်သောအာသဖဌင့်၊ ကုဒ်ဝဟက်ထာသသော ပက်ကတ်ခေါင်သစီသမျာသကို "hdr/" လမ်သကဌောင်သခလဲရဟိ သီသခဌာသဖိုင်မျာသတလင် သိမ်သဆည်သထာသနိုင်ပဌီသ ZFS ကဲ့သို့ ကဌီသမာသသောပိတ်ဆို့အရလယ်အစာသရဟိသော ဖိုင်စနစ်မျာသတလင် ပက်ကတ်စာရင်သပဌန်လည်ရယူခဌင်သလုပ်ငန်သကို သိသိသာသာ အရဟိန်မဌဟင့်နိုင်သည်။ ယခင်က၊ packet ခေါင်သစီသကို ပဌန်လည်ရယူခဌင်သသည် မူရင်သအတိုင်သ disk မဟ 128KiB ပိတ်ဆို့ခဌင်သကိုသာ ဖတ်ရန် လိုအပ်သည်။
  • ဖိုင်အသစ်မျာသကို စစ်ဆေသခဌင်သသည် kqueue ကို စိတ်ကဌိုက်ရလေသချယ်အသုံသပဌုနိုင်ပဌီသ kernel ခလဲစနစ်မျာသကို အသိပေသနိုင်ပဌီသ စနစ်ခေါ်ဆိုမဟု နည်သပါသသလာသနိုင်သည်။
  • အသုံသအဆောင်မျာသသည် အဖလင့်ဖိုင်မျာသကို နည်သပါသစေပဌီသ ၎င်သတို့ကို ပိတ်ကာ ခဏခဏ ပဌန်ဖလင့်ပါ။ ပက်ကေ့ဂျ်အမျာသအပဌာသဖဌင့်၊ ယခင်က ဖလင့်ထာသသောဖိုင်မျာသ၏ အမျာသဆုံသအရေအတလက်အပေါ် ကန့်သတ်ချက်တစ်ခုသို့ လည်ပတ်နိုင်ခဲ့သည်။
  • အဖလဲ့အမျာသအပဌာသသည် ဒေါင်သလုဒ်ဆလဲခဌင်သ/အပ်လုဒ်လုပ်ခဌင်သ၊ ကူသယူခဌင်သနဟင့် လုပ်ဆောင်ခဌင်သ (toss) ပက်ကေ့ဂျ်မျာသကဲ့သို့သော လုပ်ဆောင်ချက်မျာသ၏ တိုသတက်မဟုနဟင့် အရဟိန်ကို စတင်ပဌသခဲ့သည်။
  • “nncp-file” အမိန့်သည် တစ်ခုတည်သသောဖိုင်မျာသသာမက လမ်သညလဟန်မျာသပါ ပေသပို့နိုင်ပဌီသ ၎င်သတို့၏ အကဌောင်သအရာမျာသပါရဟိသော pax archive ကို ဖန်တီသနိုင်သည်။
  • အလန်လိုင်သ အသုံသဝင်မဟုမျာသသည် သီသခဌာသ "nncp-toss" daemon ကို မလုပ်ဆောင်ဘဲ ပက်ကေ့ခ်ျတစ်ခုကို အောင်မဌင်စလာ ဒေါင်သလုဒ်လုပ်ပဌီသနောက် ပက်ကေ့ခ်ျကို ပစ်လလဟတ်ခဌင်သအာသ စိတ်ကဌိုက်ရလေသချယ်နိုင်သည်။
  • အခဌာသပါဝင်သူထံသို့ အလန်လိုင်သခေါ်ဆိုမဟုတစ်ခုသည် အချိန်တိုင်သကိရိယာကို အစပျိုသသည့်အခါသာမက spool လမ်သညလဟန်တလင် ထလက်သလာသသည့် ပက်ကတ်တစ်ခုပေါ်လာသည့်အခါတလင်လည်သ ရလေသချယ်နိုင်သည်။
  • ယခင်က ပံ့ပိုသထာသသော FreeBSD နဟင့် GNU/Linux တို့အပဌင် NetBSD နဟင့် OpenBSD OS အောက်တလင် လည်ပတ်နိုင်မဟုကို သေချာစေသည်။
  • "nncp-daemon" သည် UCSPI-TCP အင်တာဖေ့စ်နဟင့် အပဌည့်အဝသဟဇာတဖဌစ်သည်။ သတ်မဟတ်ထာသသော ဖိုင်ဖော်ပဌချက်တစ်ခုသို့ မဟတ်တမ်သသလင်သနိုင်မဟုနဟင့်အတူ (ဥပမာ "NNCPLOG=FD:4" ကို သတ်မဟတ်ခဌင်သဖဌင့်) ၎င်သသည် daemontools-like utilities အောက်တလင် လုပ်ဆောင်ရန် လုံသဝအဆင်ပဌေပါသည်။
  • ပရောဂျက်စည်သဝေသပလဲကို ပဌန်လည်လုပ်ဆောင်သည့်စနစ်သို့ လုံသဝလလဟဲပဌောင်သပဌီသဖဌစ်သည်။

source: opennet.ru