תרגול 9 תקשורת Flashcards
5 השכבות במודל TCP IP
מי באחריות
היוזר
מערכת ההפעלה
החומרה
pysical
link
network - IP
transport - TCP/UDP
application - protocol HTTP/SMTP..
חומרה
מערכת הפעלה
מערכת הפעלה
מערכת הפעלה
משתמש
איזה מנגנונים UDP מספק בשביל לבדוק את שלמות המידע
בסיסי מאוד
checksums (CRC)
לוודא בסבירות גבוהה שתקינה
איך עובד תהליך הקמת החיבור בUDP
אין תהליך כזה משלוח הנתונים מתחיל מיד
מזה זה socket בעברית
שקע
כמו שקע חשמל
power socket :)
מה מאפיין socket
ip (local) + port
אם מחובר לsocket אחר
אז מקבל גם
remoteIP + remotePort + protocol
איך socket מאשר חיבור לsocket אחר
syscall
accept()
תאר את קריאות המערכת בשרת לקוח
socket() בשני הצדדים ליצירת שקע חדש
bind() - on server side
recv_from() - on server side to wait for data
sendto() - from user to server
recv_from() - on user side to wait for data
sendto() - from server side back to user side
in a loop of send and recv
close() - user side at the end
תאר 2 מקרים שיכולים לקרות למידע מהלקוח ליעד
המידע יכול ללכת לאיבוד בגלל אילןצים של חומרה בדרך לדוגמה תור שהתמלא
המידע יכול לאבד סדר בגלל שחלק מהחבילות עברו בדרכים שונות
מה הרעיון מאחורי ווידוא הקבלה בtcp
על כל חבילה שנשלחת הצד המקבל שולח
ack
אם אחרי פרק זמן מסויים לא נשלח ack התהליך השולח יניח שהחבילה לא התקלה וישלח אותה מחדש שוב ושוב עד שיקבל תשובה חיובית
מה קורה אם הודעת ה
ack הלכה לאיבוד?
כדי להגן על המצב הזה יש מספר סידורי לכל הודעה שנשלחת כך המקבל יכול לזרוק הודעות שכבר קיבל שוב
ורק יענה עליהם שוב בack
איזה הבדל יש בין tcp to udp
בקשר לבקרת מהירות שליחה
בtcp יש מגננון שמווסת את מהירות השליחה כדי למנוע מצב של הצפת הצד המקבל
בUDP אין דבר כזה
הצד שולח פשוט שולח
איזה פורטים הם שמורים
מה שקטן מ1023
רץ תהליכים עם פרווילגיות יכולים להריץ
מה גודל כתובת MAC
ואיך מחולק
48 ביטים
חצי ראשון ליצרן
מה הMTU המקסימלי לframe ומה לפקטה?
לפקטה 64 קילו בייט
לפריים 1500 בתים
לכן פקטה אחת מופרדת להרבה פריימים
NICים אחראיים לכך
מה אפשר להגיד על מי שנמצא באותו
subnet
הם יכולים לדבר זה עם זה ברמה השניה בלי ניתובים
איך עובד ARP
מוצא כתובת MAC לפי IP
נשלח הודעה לכולם ברמה השנייה ששואלת למי יש את כתובת הIP הזאת
ואז מישהו עונה ואמר שזה שלו
לפי מי ששלח יודעים מה הMAC שמשויך לכך
מה הכתובות הפרטיות באינטרנט
10.0.0.0/8 (= 10...)
– 172.16.0.0/12 (= 172.16.0.0 – 172.31.255.255)
– 192.168.0.0/18 (= 192.168..*)
איזה מידע מחשב יוכל לקבל בעזרת
DHCP
יכול לקבל IP
את הכתובת של הDG
שרת DNSמ
מה כתובת הברודקסאט בLAN
FFFFFFFF
למה DHCP משתמש בUDP
כי הוא לא יודע למי הוא שולח את הבקש אז הוא משתמש בUDP בפועל זה ברוקסט בLAN
מהי גישה מונחת אירועים בשרת
השרת ממתין שיקרה שיקרה איזה אירוע לדוגמה מידע מהשמתמש ולפי זה הוא פועל.
זה במקום השיטה של הקצאת חוט לכל משתמש שהיא נורא יקרה ודורשת החלפות הקשר רבות.
איזה קריאת מערכת תומכת
במונחת אירועים בשרת
מה מקבלת ומה עושה
איזה עוד קריאות מערכת דומות כאלה יש
select
מחזיר כמה fdים מוכנים לקריאה או כתיבה מהרשימות
nfds
מספר מקסימלי של fdים שיבדקו בכל אחת מהקבוצות
מקבלת רשימה של fdים לקראה
וקבוצה של fdים לכתיבה
וקבוצת fdים של שגיאות שמהם נתעלם ונעביר NULL
timout זמן המתנה או NULL להמתנה איןסופית
מה החסרונות של select
בדוגמה בתרגול שהביא משתמשים רק בליבה אחת כך אין ניצול של כל המעבדים בנוסף אם אחד הטיפולים יצא להמתנה כמו פעולת IO על הדיסק כל השרת יכול להתקע.
והמימוש של fd_set מוגבל ל 1024
איזה פונצקיה מתרגמת
DNS
ואיזה עדיפה עליה ולמה
gethostbyname
מקבלת שם DNS
ומחזירה מבנה שמכיל את כתובת האיפי
יש גם את getaddrinfo()
היא עדיפה בגלל שמטפלת בסדר בתים שונה במכונות שונות כמו אינדיאני קטן וגדול
אחרת נצטרך להשתמש בפונקציה htons() שתסדר את זה