์ ์ฅ ๋ฐ ์ ๋ฌ ๋ชจ๋์์ ์คํํ๊ธฐ ์ํด ํ์ผ, ์ด๋ฉ์ผ ๋ฐ ๋ช ๋ น์ ์์ ํ๊ฒ ์ ์กํ๊ธฐ ์ํ ์ ํธ๋ฆฌํฐ ์ธํธ์ธ NNCP(Node-to-Node CoPy)๊ฐ ์ถ์๋์์ต๋๋ค. POSIX ํธํ ์ด์ ์ฒด์ ์์์ ์์ ์ ์ง์ํฉ๋๋ค. ์ ํธ๋ฆฌํฐ๋ Go๋ก ์์ฑ๋์์ผ๋ฉฐ GPLv3 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ด ์ ํธ๋ฆฌํฐ๋ ์์ ํ Fire-and-forget ํ์ผ ์ ์ก, ํ์ผ ์์ฒญ, ์ด๋ฉ์ผ ๋ฐ ๋ช ๋ น ์์ฒญ์ ์ํ ์ ์ ๋ผ์ฐํ ์ ์ฌ์ฉํ์ฌ ์๊ท๋ชจ PXNUMXP ์น๊ตฌ ๊ฐ ๋คํธ์ํฌ(์์ญ ๊ฐ์ ๋ ธ๋)๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ์์ต๋๋ค. ์ ์ก๋ ๋ชจ๋ ํจํท์ ์ํธํ๋์ด(์ข ๋จ ๊ฐ) ์น๊ตฌ์ ์๋ ค์ง ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ์์ ์ผ๋ก ์ธ์ฆ๋ฉ๋๋ค. Tor์ ๊ฐ์ Onion ์ํธํ๋ ๋ชจ๋ ์ค๊ฐ ํจํท์ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ ๋ ธ๋๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ญํ ์ ๋ชจ๋ ์ํํ ์ ์์ผ๋ฉฐ ํธ์ ๋ฐ ํด๋ง ๋์ ๋ชจ๋ธ์ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
NNCP์ UUCP ๋ฐ FTN(FidoNet Technology Network) ์๋ฃจ์ ์ ์ฐจ์ด์ ์ ์์ ์ธ๊ธํ ์ํธํ ๋ฐ ์ธ์ฆ ์ธ์๋ ์์ ํ์ง ์์ ๋ก์ปฌ ๋ฐ ๋คํธ์ํฌ๋ก๋ถํฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ฒฉ๋ฆฌ๋(์์ด๊ฐญ) ํ๋กํผ๋ท ๋คํธ์ํฌ ๋ฐ ์ปดํจํฐ์ ๋ํ ๊ธฐ๋ณธ ์ง์์ ๋๋ค. ๊ณต์ฉ ๋คํธ์ํฌ. NNCP๋ ๋ํ Postfix ๋ฐ Exim๊ณผ ๊ฐ์ ํ์ฌ ๋ฉ์ผ ์๋ฒ์์ ์ฌ์ด ํตํฉ(UUCP์ ๋๋ฑ) ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
NNCP์ ๊ฐ๋ฅํ ์์ฉ ๋ถ์ผ์๋ ์ธํฐ๋ท์ ์๊ตฌ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ง ์์ ์ฅ์น์ ๋ํ ๋ฉ์ผ ๋ณด๋ด๊ธฐ/๋ฐ๊ธฐ ๊ตฌ์ฑ, ๋ถ์์ ํ ๋คํธ์ํฌ ์ฐ๊ฒฐ ์กฐ๊ฑด์์ ํ์ผ ์ ์ก, ๋ฌผ๋ฆฌ์ ๋ฏธ๋์ด์ ์๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์ก, ์ธ๋ถ๋ก๋ถํฐ ๋ณดํธ๋๋ ๊ฒฉ๋ฆฌ๋ ๋ฐ์ดํฐ ์ ์ก ๋คํธ์ํฌ ์์ฑ ๋ฑ์ด ์์ต๋๋ค. ๋คํธ์ํฌ ๊ฒ์ด ๋ฐ ๊ฐ์๋ฅผ ์ฐํํ๋ MitM ๊ณต๊ฒฉ. ํจํท์ด ๋คํธ์ํฌ๋ฅผ ํตํด ์ ๋ฌ๋๊ฑฐ๋ ๋ฌผ๋ฆฌ์ ๋งค์ฒด๋ฅผ ํตํด ์ ๋ฌ๋๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ํธ ํด๋ ํค๋ ์์ ์์๊ฒ๋ง ์๊ธฐ ๋๋ฌธ์ ํจํค์ง๋ฅผ ๊ฐ๋ก์ฑ๋๋ผ๋ ์ XNUMX์๊ฐ ๋ด์ฉ์ ์ฝ์ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ๋์งํธ ์๋ช ์ธ์ฆ์ ๋ค๋ฅธ ๋ณด๋ธ ์ฌ๋์ ๊ฐ์ฅํ์ฌ ๊ฐ์์ ๋ฉ์์ง๋ฅผ ์์ฑํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค.
์ด์ ๋ด์ค(๋ฒ์ 8.8.0)์ ๋น๊ตํ NNCP 5.0.0์ ํ์ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- BLAKE2b ํด์ ๋์ BLAKE3 ํด์๋ฅผ ์ฌ์ฉํ๋ ์์ MTH: Merkle Tree-based Hashing์ ์ฌ์ฉํ์ฌ ํ์ผ์ ๋ฌด๊ฒฐ์ฑ์ ํ์ธํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋์ค์ ์ฝ์ ํ์ ์์ด ๋ค์ด๋ก๋ํ๋ ๋์ ๋ฐ๋ก ํจํท์ ์ํธํ๋ ๋ถ๋ถ์ ๋ฌด๊ฒฐ์ฑ์ ๊ณ์ฐํ ์ ์์ต๋๋ค. ์ด๋ ๋ํ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ์ ๋ฌด์ ํ ๋ณ๋ ฌํ๋ฅผ ํ์ฉํฉ๋๋ค.
- ์๋ก์ด ์ํธํ๋ ํจํท ํ์์ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ ์๋ ๊ฒฝ์ฐ ์์ ํ ์คํธ๋ฆฌ๋ฐ ์นํ์ ์ ๋๋ค. ์ธ์ฆ๋ ํฌ๊ธฐ๋ก ์ ์ก ์๋ฃ ์ ํธ๋ ์ํธํ๋ ์คํธ๋ฆผ ๋ด๋ถ๋ก ์ง์ ์ ๋ฌ๋ฉ๋๋ค. ์ด์ ์๋ ์ ์ก๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ํ์ธํ๋ ค๋ฉด ์์ ํ์ผ์ ์ ์ฅํด์ผ ํ์ต๋๋ค. ๋ฐ๋ผ์ "nncp-exec" ๋ช ๋ น์ "-use-tmp" ์ต์ ์ด ์์ ํ ๋ถํ์ํ๋ฏ๋ก ์์ค๋์์ต๋๋ค.
- BLAKE2b KDF ๋ฐ XOF ๊ธฐ๋ฅ์ ์ฌ์ฉ๋๋ ์ํธํ ๊ธฐ๋ณธ ์์ ์๋ฅผ ์ค์ด๊ณ ์ฝ๋๋ฅผ ๋จ์ํํ๊ธฐ ์ํด BLAKE3์ผ๋ก ๋์ฒด๋์์ต๋๋ค.
- ์ด์ "ff02::4e4e:4350" ์ฃผ์๋ก์ ๋ฉํฐ์บ์คํ ์ ํตํด ๋ก์ปฌ ๋คํธ์ํฌ์ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.
- ๋ฉํฐ์บ์คํธ ๊ทธ๋ฃน(FidoNet ์์ฝ ์ปจํผ๋ฐ์ค ๋๋ ์ ์ฆ๋ท ๋ด์ค ๊ทธ๋ฃน๊ณผ ์ ์ฌ)์ด ๋ฑ์ฅํ์ฌ ํ๋์ ํจํท์ด ์ฌ๋ฌ ๊ทธ๋ฃน ๊ตฌ์ฑ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๊ฒ ํ๊ณ ๊ฐ ๊ทธ๋ฃน ๊ตฌ์ฑ์์ ํจํท์ ๋๋จธ์ง ์๋ช ์์๊ฒ๋ ์ค๊ณํฉ๋๋ค. ๋ฉํฐ์บ์คํธ ํจํท์ ์ฝ์ผ๋ ค๋ฉด ํค ์์ ๋ํ ์ง์์ด ํ์ํ์ง๋ง(๋ช ์์ ์ผ๋ก ๊ทธ๋ฃน์ ๊ตฌ์ฑ์์ด์ด์ผ ํจ) ์ค๊ณ๋ ๋ชจ๋ ๋ ธ๋์์ ์ํํ ์ ์์ต๋๋ค.
- ์ด์ ๋ช ์์ ์ธ ํจํท ์์ ํ์ธ์ด ์ง์๋ฉ๋๋ค. ๋ฐ์ ์๋ ํจํท์ ๋ณด๋ธ ํ ์์ ์๋ก๋ถํฐ ํน์ ACK ํจํท์ ๋ฐ์ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ฉด์ ํจํท์ ์ญ์ ํ ์ ์์ต๋๋ค.
- Yggdrasil ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ์ ๋ํ ๊ธฐ๋ณธ ์ง์: ์จ๋ผ์ธ ๋ฐ๋ชฌ์ ํ์ฌ Yggdrasil ๊ตฌํ์ ์ฌ์ฉํ์ง ์๊ณ ๊ฐ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์์ IP ์คํ์ ์์ ํ ์ฌ์ฉํ์ง ์๊ณ ๋ ์์ ํ ๋ ๋ฆฝ ๋คํธ์ํฌ ์ฐธ๊ฐ์ ์ญํ ์ ํ ์ ์์ต๋๋ค.
- ๊ตฌ์กฐํ๋ ๋ฌธ์์ด(RFC 3339) ๋์ ๋ก๊ทธ๋ GNU Recutils ์ ํธ๋ฆฌํฐ์ ํจ๊ป โโ์ฌ์ฉํ ์ ์๋ recfile ํญ๋ชฉ์ ์ฌ์ฉํฉ๋๋ค.
- ์ ํ์ ์ผ๋ก ์ํธํ๋ ํจํท ํค๋๋ฅผ "hdr/" ํ์ ๋๋ ํฐ๋ฆฌ์ ๋ณ๋ ํ์ผ์ ์ ์ฅํ ์ ์์ผ๋ฏ๋ก ZFS์ ๊ฐ์ด ๋ธ๋ก ํฌ๊ธฐ๊ฐ ํฐ ํ์ผ ์์คํ ์์ ํจํท ๋ชฉ๋ก ๊ฒ์ ์์ ์๋๋ฅผ ํฌ๊ฒ ๋์ผ ์ ์์ต๋๋ค. ์ด์ ์๋ ํจํท ํค๋๋ฅผ ๊ฒ์ํ๋ ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๋์คํฌ์์ 128KiB ๋ธ๋ก๋ง ์ฝ์ด์ผ ํ์ต๋๋ค.
- ์ ํ์ผ์ ํ์ธํ๋ฉด ์ ํ์ ์ผ๋ก kqueue ๋ฐ inotify ์ปค๋ ํ์ ์์คํ ์ ์ฌ์ฉํ์ฌ ์์คํ ํธ์ถ์ ์ค์ผ ์ ์์ต๋๋ค.
- ์ ํธ๋ฆฌํฐ๋ ์ด๋ฆฐ ํ์ผ ์๋ฅผ ์ ๊ฒ ์ ์งํ๊ณ ํ์ผ์ ๋ซ๊ณ ๋ค์ ์ฌ๋ ๋น๋๋ฅผ ์ค์ ๋๋ค. ์ด์ ์๋ ํจํค์ง ์๊ฐ ๋ง์ผ๋ฉด ์ต๋ ์ด๋ฆฐ ํ์ผ ์์ ์ ํ์ด ์์ ์ ์์์ต๋๋ค.
- ๋ง์ ํ๋ค์ด ํจํค์ง ๋ค์ด๋ก๋/์ ๋ก๋, ๋ณต์ฌ ๋ฐ ์ฒ๋ฆฌ(ํ ์ค) ๋ฑ์ ์์ ์งํ ์ํฉ๊ณผ ์๋๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์์ํ์ต๋๋ค.
- "nncp-file" ๋ช ๋ น์ ๋จ์ผ ํ์ผ๋ฟ๋ง ์๋๋ผ ๋๋ ํฐ๋ฆฌ๋ ์ ์กํ์ฌ ํด๋น ๋ด์ฉ์ด ํฌํจ๋ pax ์์นด์ด๋ธ๋ฅผ ์ฆ์ ์์ฑํ ์ ์์ต๋๋ค.
- ์จ๋ผ์ธ ์ ํธ๋ฆฌํฐ๋ ๋ณ๋์ "nncp-toss" ๋ฐ๋ชฌ์ ์คํํ์ง ์๊ณ ๋ ํจํค์ง๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ค์ด๋ก๋๋ ํ ์ ํ์ ์ผ๋ก ์ฆ์ ํจํท ๋์ง๊ธฐ๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค.
- ๋ค๋ฅธ ์ฐธ๊ฐ์์ ๋ํ ์จ๋ผ์ธ ํตํ๋ ํ์ด๋จธ๊ฐ ํธ๋ฆฌ๊ฑฐ๋ ๋๋ฟ๋ง ์๋๋ผ ๋๊ฐ๋ ํจํท์ด ์คํ ๋๋ ํฐ๋ฆฌ์ ๋ํ๋ ๋๋ ์ ํ์ ์ผ๋ก ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ด์ ์ ์ง์๋ FreeBSD ๋ฐ GNU/Linux ์ธ์๋ NetBSD ๋ฐ OpenBSD OS์์ ์๋์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- "nncp-daemon"์ UCSPI-TCP ์ธํฐํ์ด์ค์ ์๋ฒฝํ๊ฒ ํธํ๋ฉ๋๋ค. ์ง์ ๋ ํ์ผ ์ค๋ช ์์ ๊ธฐ๋กํ๋ ๊ธฐ๋ฅ(์: "NNCPLOG=FD:4" ์ค์ )๊ณผ ๊ฒฐํฉ๋์ด daemontools์ ์ ์ฌํ ์ ํธ๋ฆฌํฐ์์ ์คํํ๋ ๊ฒ์ด ์์ ํ ์น์ํฉ๋๋ค.
- ํ๋ก์ ํธ ์ด์ ๋ธ๋ฆฌ๊ฐ ๋ค์ ์คํ ์์คํ ์ผ๋ก ์์ ํ ์ ์ก๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru