20-12-2008, 21:29
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
[תיכנות+רשתות] מתי יוצא המידע בתקשורת בין מחשבים מרוחקים
נניח 2 מחשבים מתקשרים ביניהם, בדומה למשתמש קצה ואתר אינטרנט.
המשתמש שולח בקשה באופן חד פעמי לשרת, השרת מריץ קוד בצד שרת, והצד שרת שולח פלט בחזרה למשתמש הקצה.
ישנם מקרים שבהם הפלט נשלח בסוף ריצת סקריפט צד-השרת, וישנם מקרים בהם הפלט נשלח טיפין-טיפין (כל פעם מתבצע print של מספר תוים \ מחרוזת. גודל המחרוזת משתנה).
אתן דוגמא מ-PHP (מצטער שאני כל הזמן חוזר אליה, זו שפת צד-השרת שאני הכי משתמש בה):
(הפקודה echo ו-print מבצעות את אותו הדבר - שליחת פלט)
קוד PHP:
echo '<html>';
/* another code here */
echo '<table>...';
/* another code here */
echo '</table></html>';
כפי ששמים לב, פקודת ה-echo בפעמים רבות עלולה להוציא פלט קטן מאוד.
שליחת מספר תוים בודדים מהשרת אל המשתמש קצה בפעם אחת נראה לי כמו פעולה לא יעילה, שכן התקורה גדולה יותר מהמידע עצמו... זו העמסה מיותרת על הנתבים ב-WAN או גם על השרת.
לכן אני מניח שיש איזה מנגנון שפועל איפשהו (בין אם זה במנוע ה-PHP, או מערכת ההפעלה של השרת וכד') שמונע יציאה של תוים בודדים, ומחכה עד שכל המידע יהיה בגודל של frame data (מ-46 עד 1500 בתים).
האם ההנחה שלי נכונה?
או שבעצם אפילו תוים בודדים נשלחים בפקודת echo אחת למשתמש הקצה, וכל פקודת echo מכילה למעשה את ה- frame data שמבוצע עליו פרגמנטציה ונשלח החוצה למשתמש קצה?
אשמח להבהרות.
תודה רבה,
דור.
|