מה משמעות שורה אחת במערך נתוני VPN, ולמה זה חשוב
ספק, נקודת קצה, כתובת יציאה ונגישות הם ארבע שורות שונות. בחרו את היחידה, שמרו על מקור, פרסמו מה המערך אינו מכסה.
שאלו מה מייצגת שורה אחת במערך נתוני VPN, והתשובות מתרבות: חברה, מאזין, כתובת יציאה ציבורית, תוצאת נגישות. כל אחת לגיטימית, וערבובן בלי תוויות יוצר סכום שנשמע מדויק ולא אומר דבר. היחידה היא החלטת תכנון, וחייבים לקבל אותה לפני הספירה הראשונה. רוב הבלבול בסטטיסטיקות VPN שפורסמו נובע מדילוג על אותו שלב.
שורה היא טענה, לא דבר
כל שורה טוענת משהו על העולם, ולטענה יש נושא. מתן שם לנושא הוא מה שהופך את השורה לבת השוואה לשורה אחרת.
שורת ספק טוענת שארגון מציע שירות. שורת נקודת קצה טוענת שכתובת ופורט מסוימים מדברים פרוטוקול. שורת יציאה טוענת שהתעבורה יצאה מכתובת בזמן מסוים. שורת מדידה טוענת שבדיקה ממקום כלשהו צפתה בתוצאה. ארבעה נושאים, ארבע סכימות, ומערך נתונים שמערבב אותם בלי מבחין לא ניתן לצבור כלל.
המבחין הוא החלק הזול ביותר בסכימה והנשמט ביותר.
בחרו את היחידה לפני הספירה
בחרו את היחידה שעונה על השאלה שיש לכם באמת. ספירת נקודות קצה עונה כמה מאזינים פורסמו; ספירת ספקים עונה כמה ארגונים היו מעורבים; ספירת כתובות יציאה עונה כמה מקורות לכאורה קיימים.
המספרים האלה אינם ניתנים להחלפה, וההבדלים גדולים. ספק אחד יכול להפעיל אלפי כתובות, וכתובת אחת יכולה לארח כמה מאזיני פרוטוקול לשירותים שונים. לכן ספירת כתובות אינה גבול עליון או תחתון לספירת ספקים. ציינו את היחידה באותו משפט עם המספר, בכל פעם. מספר בלי יחידה הוא דעה עם נקודה עשרונית.
| 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 |
ספרייה ציבורית מספקת את המשתתפים המוצהרים באותו שירות. היא אינה מלאי של כל פריסה מסחרית, ארגונית ופרטית בעולם, והתייחסות אליה ככזו מנפחת כל סטטיסטיקה נגזרת.
המקור שייך לסכימה
שורה בלי מקור אינה ניתנת לבדיקה חוזרת. תעדו את רשומת המקור, את זמן האיסוף עם אזור הזמן שלו, את שיטת התצפית ואת מצב התצפית האחרונה.
שמרו מאפיינים מוצהרים בנפרד מהנצפים, מפני שהם נושאים משקל שונה. תווית המדינה בספרייה היא טענה מוצהרת, והיא אינה הוכחה למיקום הפיזי של שרת. הקצאת IP מזהה בלוק רשת, לא כל שוכר בתוכו, ולא את המפעיל הנוכחי של יישום מעליו. שתי עמודות והערה מנצחות כל פעם שדה ממוזג אחד.
{"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"}
שורת JSON אחת הופכת את הסכימה למוחשית, וקל יותר להתווכח עליה מאשר על פסקת תיאור. שימו לב שחתימת הזמן נושאת אזור זמן ושהשיטה נקראת בשמה ולא משתמעת.
הסירו כפילויות לפי השאלה
הכפילויות תלויות ביחידה. אותה כתובת עם שני מאזיני פרוטוקול היא זוג נקודות קצה אחד ושני שירותים, ומיזוגה בשקט משנה את הספירה.
הסירו כפילויות ברמה שהשאלה שואלת עליה, ותעדו כמה שורות גולמיות התמזגו לכל שורה שנשמרה. היחס הזה הוא עצמו ממצא, מפני שמיזוג גדול בדרך כלל מעיד שהמקור מפרסם רשומות לפי מאזין. ספק שמפעיל כתובות רבות יוצר את התבנית ההפוכה. שניהם נכונים, ורק היחס המתועד מאפשר לקורא להבחין ביניהם.
לאחר מכן שמרו את השורות הגולמיות. טבלה ללא כפילויות היא תצוגה, והיכולת לבנות אותה מחדש מהקלט הגולמי היא מה שהופך את התוצאה לשחזורית.
פרסמו את הצהרת הכיסוי
ציינו כיצד נבחרו המקורות, אילו אזורים או רשתות הם מכסים, ומה נעדר במכוון.
נקודות קצה ארגוניות פרטיות ופריסות שאינן מוצהרות אינן מופיעות לעולם ברשימות ציבוריות, ולכן היעדרות בספרייה מוכיחה רק שהספרייה לא רשמה אותן. בדקו את תנאי המקור והרשאות ההפצה מחדש לפני פרסום, והסירו שדות שמעולם לא היו נחוצים. מחקר נקודות קצה נדיר זקוק לזהויות מנויים, לאישורי גישה או להיסטוריית גלישה. פרסום אלה יהיה פרויקט אחר עם הצדקה אחרת.
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
שלוש הפקודות האלה נותנות ספירת שורות, פילוח יחידות ושרטוט כיסוי לפי מדינה מוצהרת. שמרו צילומים מתוארכים כשהאוכלוסייה משתנה, והבחינו בין מיושן להיעדרות מאומתת. מערך נתונים תחום עם אוכלוסייה ברורה עדיף על טענה לא מבוססת שהוא מכיל כל VPN באינטרנט.