ליציאה 0 יש משמעות מיוחדת בתכנות רשת, במיוחד במערכת ההפעלה Unix כשמדובר בתכנות שקעים שבהם היציאה משמשת לבקשת יציאות דינמיות שהוקצו למערכת. יציאה 0 היא יציאה כללית שמורה למערכת למצוא מספר יציאה מתאים.
בניגוד לרוב מספרי היציאות, יציאה 0 היא יציאה שמורה ברשת TCP/IP, כלומר אין להשתמש בה בהודעות TCP או UDP. יציאות רשת ב-TCP ו-UDP נעות בין מספר אפס ל-65535. מספרי יציאות בטווח שבין אפס ל-1023 מוגדרים כיציאות לא ארעיות, יציאות מערכת או יציאות ידועות. רשות המספרים המוקצה לאינטרנט (IANA) מקיימת רשימה רשמית של השימוש המיועד במספרי יציאות אלו באינטרנט, ואין להשתמש ביציאת מערכת 0.
איך יציאת TCP/UDP 0 עובדת בתכנות רשת
הגדרת חיבור שקע רשת חדש מחייבת הקצאת מספר יציאה אחד הן בצד המקור והן בצד היעד. הודעות TCP או UDP שנשלחו על ידי המקור (מקור) מכילות את שני מספרי היציאה כך שמקבל ההודעה (היעד) יכול להנפיק הודעות תגובה לנקודת הקצה הנכונה של הפרוטוקול.
IANA הקצתה מראש יציאות מערכת ייעודיות עבור יישומי אינטרנט בסיסיים כמו שרתי אינטרנט (יציאה 80), אך ליישומי רשת TCP ו-UDP רבים אין יציאת מערכת משלהם ועליהם להשיג אחת ממערכת ההפעלה של המכשיר בכל פעם שהם פועלים.
כדי להקצות את מספר יציאת המקור שלו, יישומים קוראים לפונקציות רשת TCP/IP כמו bind() כדי לבקש אחת. האפליקציה יכולה לספק מספר קבוע (מקודד קשיח) ל-bind() אם הם מעדיפים לבקש מספר מסוים, אך בקשה כזו עלולה להיכשל מכיוון שאולי אפליקציה אחרת הפועלת על המערכת משתמשת בה כעת.
לחלופין, הוא יכול לספק יציאה 0 ל-bind() כפרמטר החיבור שלו. זה גורם למערכת ההפעלה לחפש ולהחזיר יציאה זמינה מתאימה בטווח מספרי היציאות הדינמיות של TCP/IP.
לאפליקציה לא ניתנת יציאה 0 אלא יציאה דינמית אחרת. היתרון של אמנת תכנות זו הוא היעילות. במקום שכל אפליקציה תטמיע ותפעיל קוד כדי לנסות מספר יציאות עד שהן משיגות אחת חוקית, אפליקציות מסתמכות על מערכת ההפעלה.
Unix, Windows ומערכות הפעלה אחרות משתנות בטיפול ביציאה 0, אך אותה מוסכמה כללית חלה.
יציאה 0 ואבטחת רשת
תעבורת רשת הנשלחת דרך האינטרנט למארחים שמאזינים ביציאה 0 עלולה להיווצר מתוקפי רשת או בטעות על ידי יישומים שתוכנתו בצורה שגויה. הודעות התגובה שמארחים מייצרים בתגובה לתעבורת יציאה 0 עוזרות לתוקפים ללמוד את ההתנהגות ואת פגיעויות הרשת הפוטנציאליות של אותם מכשירים.
ספקי שירותי אינטרנט רבים (ISP) חוסמים תעבורה ביציאה 0, הודעות נכנסות ויוצאות כאחד, כדי להתגונן מפני ניצול אלה.
שאלות נפוצות
מהם מספרי יציאה?
מספרי יציאה המשמשים לחיבורי רשת TCP/IP פועלים כמידע כתובת, המזהים את השולחים והמקבלים של הודעה. מספרי יציאה מאפשרים ליישומים שונים באותה רשת לשתף משאבים בו-זמנית.
איך אני מוצא מספרי יציאה?
כדי למצוא את מספר היציאה של כתובת IP ספציפית, עבור לשורת הפקודה, הקלד netstat -a ולאחר מכן הקש Enter. תראה רשימה של חיבורי TCP פעילים יחד עם כתובות IP ומספרי יציאה מופרדים בנקודתיים.
האם אוכל להתחבר ליציאה 0?
לא. רשמית, יציאה 0 לא קיימת ולא ניתן להתחבר אליה, מכיוון שהיא מספר יציאה לא חוקי. עם זאת, אתה יכול לשלוח חבילת אינטרנט אל וממנה יציאה 0 כמו שאתה שולח עם מספר יציאה אחר.