430 likes | 570 Views
Introduction to TCP/IP. TCP/IP. Transmission Control Protocol/Internet Protocol המונח TCP/IP מתייחס לחבילת פרוטוקולים שפותחו עבור רשת האינטרנט פרוטוקול TCP ופרוטוקול IP הינם החשובים ביותר. TCP/IP תכונות פרוטוקול. TCP/IP מספק שירותים שנדרשים לרישות מחשבים וחיבור בין רשתות שונות
E N D
TCP/IP • Transmission Control Protocol/Internet Protocol • המונח TCP/IP מתייחס לחבילת פרוטוקולים שפותחו עבור רשת האינטרנט • פרוטוקול TCP ופרוטוקול IP הינם החשובים ביותר
TCP/IP תכונות פרוטוקול • TCP/IP מספק שירותים שנדרשים לרישות מחשבים וחיבור בין רשתות שונות • הפרוטוקול אינו תלוי בטופולוגיית הרשת, אמצעי החומרה ומערכת ההפעלה • הפרוטוקול מספק כתובות רשת ייחודיות • הפרוטוקול מספק שירותים מתקדמים לתקשורת (איתור שגיאות, אופן העברת המידע וכד’)
TCP/IP Internetworking Router Token Ring Private Nets and Internet
TCP/IP מודל השכבות Application Network Applications End-to-end Services Transport Internet Routing Network Network Interface Physical Transmission
Application Presentation Session Transport Network Data Link Physical TCP/IP מול OSI OSI TCP/IP Application Transport Internet Network Physical
TCP/IP פרוטוקולי Application FTP TELNET SMTP TFTP NFS NTP SNMP NNTP DNS BOOTP DHCP HTTP X-windows Transport TCP UDP Internet IP Network Network Driver Software Physical
Network Interface Layer • השכבה אחראית על העברת חבילות מידע (Frames) • הפרוטוקול המנוהל בשכבה זו מגדיר את המתחים ואת אופן שליחת הנתונים על הקו
פירוט • מוסיפה לנתונים המגיעים מהשכבה העליונה בקרות: • Preamble -רצף סיביות שמציין תחילת הודעה • CRC - קוד לזיהוי שגיאות המחובר לסוף המידע • כאשר מגיע מידע מהקו: • ה - Preambleנזרק • נבדק קוד CRC, אם לא תקין המידע נזרק. אחרת נבדקת הכתובת, אם מתאימה למחשב המידע עובר לשכבה הבאה
Internet Layer • אחראית על מתן כתובות (addressing) • קיבוץ לחבילות מידע (Packaging) • ניתוב המידע (Routing)
בשכבה זו מנוהלים 3 פרוטוקולים • Internet Protocol - אחראי על מתן כתובות וניתוב המידע בין הרשת ל- Host • Address Resolution Protocol - אחראי על זיהוי כתובות פיזיות של מחשבים באותה הרשת • Internet Control Message Protocol - אחראי על שליחת הודעות ודיווח שגיאות המתייחסות לשליחת ה- Package
פירוט • פרוטוקול עיקרי - IP: • Connectionless Delivery – - טיפול בחבילות אינו תלוי בחבילות האחרות • מייצר חבילות – Datagrams בגודל 64K • אורך פתיח – 20 בתים לפחות
מבנה חבילת IP • גירסא • פתיח • אורך כולל • מזהה חבילה • דגל – מזהה חבילה אחרונה • היסט החבילה • TTL – (0-255)
מבנה חבילת IP - המשך • פרוטוקול - מציין את הפרוטוקול של השכבה שמעל ל- IP בחבילה, כמו ICMP, UDP, TCP • checksum על הפתיח • כתובת אינטרנט של המקור • כתובת אינטרנט של היעד • אופציות - סט של אופציות שניתן להוסיף לחבילה, כמו דרישה שתעבור דרך מסלול מסוים, או אופציות בטיחות • נתונים – מידע מהשכבה העליונה או הודעת ICMP
פרוטוקולARP • אחראי על כתובות מקומיות • כאשר נשלחת הודעה למחשב באותה רשת הוא מוסיף למידע את הכתובת הפיזית. • המחשב ביעד מחזיר אישור על קבלת ההודעה • אם היו בעיות במשלוח ידווח עליהן ICMP • דוגמאות: נא להאט את הקצב, נא לנתב שנית וכד’
Transport Layer • השכבה אחראית לספק שירותי תקשורת בין שני מחשבים, בשכבה זו קיימים 2 פרוטוקולים: • TCP - מספק שירותי תקשורת אמינים, מיועד להעברת כמויות גדולות של נתונים • UDP - מספק תקשורת ללא אחראיות, מיועד להעברת כמויות קטנות של מידע • מס' Port - אבחנה בין יישומי שרת שונים
Transmission Control Protocol מאפיינים • העברת זרם של נתונים (stream) • קישור של "מעגל וירטואלי" • העברה מבוקרת (buffered transfer) • קישור דו כיווני (דופלקס)
מבנה הודעת TCP • פורט המקור פורט היעד • מספר סידורי– מניעת כפילות • א.פתיח • דגלים – אישור , דחיפות • גודל חלון – כמה בתים השולי מוכן לקבל • checksum • נתונים
User Datagram Protocol - מאפיינים • לא מודיע על כך שחבילות אבדו, או על כל בעיה אחרת בתקשורת. • אפליקציה שבוחרת להשתמש ב- UDP כפרוטוקול התעבורה שלה, צריכה לדאוג בעצמה למהימנות התקשורת, ולהבטיח שבעיות בתקשורת, כמו כפילות נתונים או אובדן נתונים, יטופלו כהלכה.
מבנה הודעת UDP • פורט המקור • פורט היעד • אורך ההודעה • checksum
Application Layer • שכבת היישום • השכבה אחראית על יצירת הקשר בין האפליקציות לרשת התקשורת • השכבה מספקת שירותים לגישה פשוטה לרשת • הפרוטוקול מספק שני ממשקים לתוכניות רשת: • Windows Sockets - פונקציות API סטנדרטיות • NetBios - תמיכה בפרוטוקולים שמשתמשים בשיטת מיפוי כזו
שכבת היישום - Windows Sockets • אוסף פונקציות API סטנדרטיות • אין צורך להכיר את פרוטוקולי האינטרנט • ניתן להגדיר פרוטוקולים חדשים • גישה מלאה לכל פרוטוקולי האינטרנט • יכולת פיתוחMultithreading
שלוש רמות addressing 0:0:c:6:13:4a www.technion.ac.il 212.192.2.71 • Host names - שמות לוגיים • לדוגמאwww.technion.ac.il • Internet (IP) address - מיוצגות ב 32 סיביות לדוגמא 212.192.2.71 • station Address - כתובת פיזית של כרטיס הרשת 0:0:c:6:13:4a לדוגמא
DNS • שימוש במערכת שמות היררכית • כל תחנה מכירה שרת שורש אחד המכיר את ההורה שלו בעץ com org edu gov mil il uk ibm.com ac.il www.ibm.com technion.ac.il
המרת הכתובת הלוגית לכתובת פיזית www.technion.ac.il מזוהה במחשב מיוחד Domain Name ServiceIP הופך לכתובת 158.108.2.71 מומר ע”י פרוטוקול Address Resolution Protocol(ARP) 0:0:c:6:13:4a
IP Addressing 32 bits 8,16, 24 bits Host Network 32 bits 8 bits 8 bits 8 bits 8 bits 212 . 192 . 2 . 71
8 16 24 32 IP Address Class • כתובת 32 סיביות מכילה שני חלקים • זיהוי רשת • זיהוי המחשב class A 0 Network Id Host ID 10 Network Id Host ID class B 110 Network Id Host ID class C 1110 Multicast address class D 1111 unused at present class E
IP Address Table initial class bits net host range class A 0 7 24 0.0.0.0 127.255.255.255 class B 10 14 16 128.0.0.0 191.255.255.255 class C 110 21 8 192.0.0.0 223.255.255.255 class D 1110 28 - 224.0.0.0 239.255.255.255 class E 11110 27 - 240.0.0.0 247.255.255.255
כתובות מיוחדות • אם זיהוי המחשב מכיל 0 הכוונה לרשת עצמה • 158.108.0.0, 192.150.251.0 • אם זיהוי המחשב מכיל רק סיביות ‘1’ - כתובת של כל המחשבים ברשת • 158.108.255.255, 192.150.251.255 • הכתובת 255.255.255.255 מתייחסת לכולם • הכתובת 127.0.0.1 משמשת לבדיקות תוכנה
158.108.254.254 158.108.1.2 158.108.1.1 158.108.1.2 158.108.1.1 158.108.2.1 158.108.4.1 158.108.4.2 158.108.3.1 בעיות עם רשת גדולה • רשת CLASS B מכילה יותר מ-60 אלף מחשבים • קשה לניהול • ביצועים נמוכים • ניתן לחלק רשת זו למספר רשתות קטנות יותר ולחבר ביניהן באמצעות Router
חלוקה לתתי רשתות • נחלק את מזהה המחשב לשני חלקים: host id network id subnet adr host addr רוחב כרצוננו • ניתן לחלק למשל לשני חלקים שווים • subnet #1 158.108.1.X x=1-254 • subnet #2 158.108.2.X
Subnet Mask • מספר של 32 סיביות שמתאר את החלוקה לתתי רשתות • משמש לפיענוח נכון של הכתובת • לדוגמא כתובת שמתחילה במספר 132 שייכת ל- CLASS Bאך אם הרשת חולקה המבנה ייראה כך: 1111 1111 1111 1111 1111 1111 0000 0000 subnet mask= 255.255.255.0
Subnet mask • Subnet mask שמספרו 255.255.255.0 מציין שהרשת מחולקת ל- 254 תתי רשתות • בתחום לדוגמא 150.108.1 עד 150.108.254 • דוגמא: 158.108.2.71 158.108.100.98 255.255.255.0 255.255.255.0 158.108.2.0 158.108.100.0 and and מספר תת רשת
Subnet mask bits 128 64 32 16 8 4 2 1 1 0 0 0 0 0 0 0 = 128 1 1 0 0 0 0 0 0 = 192 1 1 1 0 0 0 0 0 = 224 1 1 1 1 0 0 0 0 = 240 1 1 1 1 1 0 0 0 = 248 1 1 1 1 1 1 0 0 = 252 1 1 1 1 1 1 1 0 = 254 1 1 1 1 1 1 1 1 = 255
Subnet Class B Example • 255.255.0.0(0000 0000 0000 0000) • 0 subnet with 65534 hosts (default subnet) • 255.255.192.0 (1100 0000 0000 0000) • 2 subnet with 16382 hosts • 255.255.252.0 (1111 1100 0000 0000) • 62 subnet with 1022 hosts • 255.255.255.0 (1111 1111 0000 0000) • 254 subnet with 254 hosts • 255.255.255.252 (1111 1111 1111 1100) • 16382 subnet with 2 hosts
Subnet Class C Example • 255.255.255.0 (0000 0000) • 0 subnet with 254 hosts (default subnet) • 255.255.255.192 (1100 0000) • 4 subnet with 62 host • 255.255.255.224 (1111 0000) • 6 subnet with 30 hosts • 255.255.255.240 (1111 1100) • 14 subnet with 14 hosts
זיהוי היעד IP Address subnet mask Interpretation 158.108.2.71 255.255.255.0 host 71 on sunet 158.108.2.0 130.122.34.3 255.255.255.192 host 3 on subnet 130.122.34.0 130.122.34.132 255.255.255.192 host 4 on subnet 130.122.34.128 200.190.155.66 255.255.255.192 host 2 on subnet 200.190.155.64 15.20.15.2 255.255.0.0 host 15.2 on subnet 15.20.0.0
ניתוב לתת הרשת המתאימה • מתבצע ע”י פעולת AND if dest ip addr & subnet mask == my ip addr & subnet mask שלח אל הרשת הנוכחית else שלח לנתב
דוגמא לניתוב בתת רשת 158.108.15.3 255.255.255.0 158.108.15.2 255.255.255.0 network #1 158.108.15.1 255.255.255.0 network #2 158.108.16.3 255.255.255.0 158.108.16.2 255.255.255.0 158.108.16.1 255.255.255.0
158.108.15.3 158.108.15.2 158.108.16.3 158.108.16.2 192.150.244.2 192.150.244.3 שילובrouter בין רשתות 158.108.15.1 158.108.16.1 192.150.250.201 192.150.250.211 192.150.244.1
אופן העבודה • המחשב בודק את כתובת IP, אם היא מזוהה ככתובת מקומית המידע נשלח ישירות למחשב אחרת נעשית בדיקה בטבלתRoutingכדי לקבל את מיקום היעד • אם לא זוהה היעד המידע נשלח ל- Default Gateway • ה- Router מקלף את המידע עד לשכבת הרשת, מוריד את ערך TTL אם הגיע ל-0 המידע נזרק
ה- RouterמחשבChecksumחדש ואת כתובת הנתב הבא ושולח אליו את המידע • חבילות מידע גדולות יחולקו לחלקים קטנים וישלחו בדרכים שונות כדי לחלק את העומס ברשת • כל חלק מקבלHeaderהמכיל: • דגל שמסמן האם זה החלק האחרון • Fragment ID - זיהוי חבילה - זהה לכל החלקים • Fragment Offset - זיהוי החלק (לצורך סידור)