Ką reiškia viena eilutė VPN duomenų rinkinyje ir kodėl tai svarbu
Tiekėjas, galinis taškas, išėjimo adresas ir pasiekiamumas yra keturios skirtingos eilutės. Pasirinkite vienetą, išsaugokite kilmę, paskelbkite, ko rinkinys neaprėpia.
Paklauskite, ką reiškia viena VPN duomenų rinkinio eilutė, ir atsakymai dauginasi: įmonė, klausytojas, viešas išėjimo adresas, pasiekiamumo rezultatas. Kiekvienas yra teisėtas, o jų maišymas be žymų duoda sumą, kuri skamba tiksliai ir nieko nereiškia. Vienetas yra dizaino sprendimas, ir jį reikia priimti prieš pirmą skaičiavimą. Didžioji dalis painiavos paskelbtoje VPN statistikoje kyla dėl šio žingsnio praleidimo.
Eilutė yra teiginys, o ne daiktas
Kiekviena eilutė teigia ką nors apie pasaulį, o teiginys turi subjektą. Būtent subjekto įvardijimas daro eilutę palyginamą su kita eilute.
Tiekėjo eilutė teigia, kad organizacija siūlo paslaugą. Galinio taško eilutė teigia, kad tam tikras adresas ir prievadas kalba protokolu. Išėjimo eilutė teigia, kad srautas tam tikru metu paliko adresą. Matavimo eilutė teigia, kad zondas iš kažkur stebėjo rezultatą. Keturi subjektai, keturios schemos, o rinkinys, kuris juos maišo be skiriamojo požymio, apskritai negali būti agreguotas.
Skiriamasis požymis yra pigiausia schemos dalis ir dažniausiai praleidžiama.
Pasirinkite vienetą prieš skaičiuojant
Pasirinkite vienetą, kuris atsako į klausimą, kurį iš tikrųjų turite. Galinių taškų skaičiavimas atsako, kiek klausytojų buvo paskelbta; tiekėjų skaičiavimas atsako, kiek organizacijų dalyvavo; išėjimo adresų skaičiavimas atsako, kiek tariamų kilmių egzistuoja.
Šie skaičiai nėra keičiami, o skirtumai dideli. Vienas tiekėjas gali valdyti tūkstančius adresų, o vienas adresas gali talpinti kelis protokolo klausytojus skirtingoms paslaugoms. Todėl adresų skaičius nėra nei viršutinė, nei apatinė tiekėjų skaičiaus riba. Kiekvieną kartą nurodykite vienetą tame pačiame sakinyje kaip skaičių. Skaičius be vieneto yra nuomonė su dešimtainiu kableliu.
| Unit | The row asserts | What a count of it means |
|---|---|---|
| Provider | An organisation offers a service | How many operators appear |
| Endpoint | An address and port speak a protocol | How many listeners were advertised |
| Exit address | Traffic left from an address | How many apparent origins exist |
| Observation | A probe saw a result | How many tests ran, not how many servers |
Viešas katalogas pateikia toje paslaugoje paskelbtus dalyvius. Tai nėra visų pasaulio komercinių, organizacinių ir privačių diegimų inventorius, o traktuojant jį taip išpučiama kiekviena išvestinė statistika.
Kilmė priklauso schemai
Eilutės be kilmės negalima patikrinti iš naujo. Užrašykite šaltinio įrašą, surinkimo laiką su jo laiko juosta, stebėjimo metodą ir paskutinio matymo būseną.
Laikykite paskelbtus požymius atskirai nuo stebėtų, nes jie turi skirtingą svorį. Katalogo šalies žyma yra paskelbtas teiginys, o ne serverio fizinės vietos įrodymas. IP priskyrimas identifikuoja tinklo bloką, o ne kiekvieną nuomininką jame, ir ne dabartinį viršuje esančios programos operatorių. Du stulpeliai ir pastaba kiekvieną kartą nugali vieną sujungtą lauką.
{"endpoint": "203.0.113.10:1194/udp", "unit": "endpoint", "advertised_country": "NL",
"observed_at": "2026-11-03T02:15:00Z", "method": "udp_probe", "last_seen": "2026-11-03"}
Viena JSON eilutė padaro schemą konkrečią ir ją lengviau aptarti nei aprašymo pastraipą. Atkreipkite dėmesį, kad laiko žyma turi laiko juostą, o metodas įvardytas, o ne numanomas.
Pašalinkite dublikatus pagal klausimą
Dublikatai priklauso nuo vieneto. Tas pats adresas su dviem protokolo klausytojais yra viena galinių taškų pora ir dvi paslaugos, o tyliai jį sujungus pasikeičia skaičiavimas.
Pašalinkite dublikatus tame lygyje, apie kurį klausia klausimas, ir užrašykite, kiek neapdorotų eilučių susiliejo į kiekvieną išlaikytą eilutę. Šis santykis pats savaime yra radinys, nes didelis susiliejimas paprastai reiškia, kad šaltinis skelbia įrašus pagal klausytoją. Tiekėjas, valdantis daug adresų, duoda priešingą modelį. Abu teisingi, ir tik užrašytas santykis leidžia skaitytojui juos atskirti.
Tada išsaugokite neapdorotas eilutes. Lentelė be dublikatų yra vaizdas, o galimybė ją atkurti iš neapdorotų duomenų daro rezultatą atkartojamą.
Paskelbkite aprėpties pareiškimą
Nurodykite, kaip buvo atrinkti šaltiniai, kuriuos regionus ar tinklus jie apima ir ko sąmoningai nėra.
Privatūs įmonių galiniai taškai ir neskelbti diegimai niekada nepasitaiko viešuose sąrašuose, todėl nebuvimas kataloge įrodo tik tai, kad katalogas jo neįtraukė. Prieš skelbdami patikrinkite šaltinio sąlygas ir perskirstymo leidimus, o niekada nereikalingus laukus pašalinkite. Galinių taškų tyrimui retai reikia prenumeratorių tapatybių, prisijungimo duomenų ar naršymo istorijos. Jų paskelbimas būtų kitas projektas su kitu pagrindimu.
wc -l vpn-endpoints.jsonl
jq -r '.unit' vpn-endpoints.jsonl | sort | uniq -c
jq -r '.advertised_country' vpn-endpoints.jsonl | sort | uniq -c | sort -rn | head
Šios trys komandos duoda eilučių skaičių, skirstymą pagal vienetus ir aprėpties eskizą pagal paskelbtą šalį. Kai populiacija keičiasi, saugokite datuotas momentines kopijas ir atskirkite pasenusį nuo patvirtinto nebuvimo. Apibrėžtas rinkinys su aiškia populiacija nugali nepagrįstą teiginį, kad jame yra kiekvienas interneto VPN.