לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > מערכות הפעלה
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 24-06-2014, 12:47
  Yigalo Yigalo אינו מחובר  
 
חבר מתאריך: 13.07.12
הודעות: 34
שאלה בנוגע ל- TCP client

שלום לכולם !

ראשית ניסיתי לחפש בגוגל זהו המשפט שהכנסתי :

where can i see tcp client implementation in windows 7

אם מישהו יכול לנסח משפט חיפוש טוב יותר או לחילופין לתת לי לינק מועיל אז אפשר לסגור

בכל אופן אם זה בכלל אפשרי לראות זאת אז מישהו יכול לספק הסבר היכן זה נמצא, באיזו שפה זה רשום (לדעתי C.. אל אני לא באמת בטוח) ואם לא ב- C אז אם אפשר לספק משפט או שניים כיצד לראות את הקוד ?
זה יהיה מגניב אם מישהו גם יגיד לי למשל אם זה RENO או TAHOE או בלינוקס יש גם אני יודע VEGAS, CUBIC ועוד...אני לא מכיר את האחרונים כלומר כיצד הם פועלים/ממומשים וכולי...

אם מישהו יכול פשוט לספק קוד / מכונת מצבים / פסאודו- קוד של איזשהו מימוש שרווח כיום או פשוט פועל במערכת הפעלה שנמצאת בשימוש כיום זה יהיה מספיק

תודה רבה לעוזרים !!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 24-06-2014, 13:13
  Yigalo Yigalo אינו מחובר  
 
חבר מתאריך: 13.07.12
הודעות: 34
בתגובה להודעה מספר 2 שנכתבה על ידי hellfrost שמתחילה ב "מה אתה רוצה? מה זה TCP..."

אני קורא ספר בתקשורת מחשבים....שם למשל יש הקדמה ע"י שימוש ב-FSM על איך בונים תעבורה אמינה על גבי רשת לא אמינה בניסוח כזה לא מפורט ! , בהמשך הספר מראה כיצד המנגנונים שפיתחנו בהקדמה באים לידי ביטוי ב-TCP בוא נגיד החשובים ביותר אולי.... שם הוא כבר ניעזר בפסאודו-קוד וגם ב -FSM לתיאור מנגנון למניעת גודש ברשת.

אני חייב להגיד זאת לא מטלה לעבודה או לש.ב או משהו כזה אני לא באמת מחפש מימוש שמישהו עשה כחלק מהעבודה שלו!

אני פשוט מעוניין לראות מימוש אמיתי ונפוץ שנמצא במערכת הפעלה קיימת או לפחות FSM או פסאודו כזה.
לשאלתך זה תלוי ....זה לא ממשק/ספרייה בשפה כלשהי או יותר נכון בסביבת העבודה של אותה שפה...

אני לא כל כך יודע להסביר חשבתי שזה יהיה מובן
נניח הדפדפן שלך רוצנ להביא דף משרת כלשהו אז הוא צריך ליצור קשר עם השרת הנ"ל ב- TCP (בצורה גסה ביותר!!!) אז יש במחשב שלך/שלי TCP CLIENT ששכבת האפליקציה פונה אליו כדי לעשות זאת וכולי....

זה המימוש שאני רוצה לראות, אני רוצה לראות את המנגנונים שלמדתי מהספר באים לידי ביטוי
אני רוצה להסתכל על הקוד ולהסיק כיצד הלקוח בצד שלי מתנהג/ מגיב למצבים מסוימים שוקוראים במהלך ההתקשרות...לנתח את זה כמו שהספר עושה על הפסאדו-קוד שהוא מציג...

*סביר להניח שזה אולי חסוי במיוחד אם נוספו מנגנונים מתוחכמים נוספים מעבר לאלו המוגדרים ב- RFC
בגלל זה שאלתי אם אפשר אז...

נערך לאחרונה ע"י Yigalo בתאריך 24-06-2014 בשעה 13:37.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 25-06-2014, 14:49
צלמית המשתמש של hellfrost
  hellfrost hellfrost אינו מחובר  
 
חבר מתאריך: 07.12.09
הודעות: 7,072
בתגובה להודעה מספר 1 שנכתבה על ידי Yigalo שמתחילה ב "שאלה בנוגע ל- TCP client"

טוב אין לי כוח לעבוד, אז בוא אני אעשה לך קצת סדר... אפילו יש לי את הרוב כתוב...

קודם כל, כשאתה כותב FSM אני מניח שאתה מתכוון ל Finite State Machine ? ולא ל Flying spaghetti monster? כי זה לא מובן מאליו...

אני אגש לנושא משני כיוונים, נתחיל מהשימוש, ואז איך זה עובד...

בד"כ כשכותבים TcpClient מתכוונים לאיזושהי ספרייה שנותנת ממשק מופשט מאוד בשביל לעבוד עם TCP. אין שם שום דבר מעניין באמת. בתור התחלה, זה התיעוד, ופה לייד זה המימוש של המחלקה TcpClient של .Net , ובנוסף זה המימוש של TcpListner וזה התיעוד שלו. שתי המחלקות האלה נותנות אבני בניין פשוטות בשביל לבנות תקשורת מבוססת TCP ב .Net. שים לב שיש לך דוגמאות לשימוש בשני התיעודים. יש עוד מחלקה שנקראת UdpClient , היא בעצם המקבילה של שני הנ"ל בשביל UDP. כדאי שלפחות תסתכל על התיעודים פה, בשביל להבין מה בתכלס עושים עם כל זה...

כשאתה מסתכל על הקוד של כל "השמחה" שהזכרתי למעלה אתה רואה שהם כמעט לא עושים שום דבר מעניין חוץ מלהתעסק עם מחלקה אחרת שנקראת Socket, זאת מחלקה נחמדה של בערך 10,000 שורות שממשת את את רוב התשתית ש .Net צריך בשביל תקשורת. כל זה לא ממש מעניין אותך כי בגדול מה שהם עושים זה עוטפים משהו שנקרא WinSock (למרות שלא רק...).

עד כאן .Net...

התשתית הכי בסיסית לתקשורת ב Windows נקראת WinSock התיעוד שלה נמצא פה והפונקציות עצמן נמצאות פה. עכשיו, אם תסתכל על הפונקציות תראה שבתכלס זה מאוד מזכיר את ה UdpClient של .Net (בעיקר כי הוא היותר כללי מבין המחלקות למעלה) , ומבחינה רעיונית הפונקציונליות שלהם זהה, לתפוס כתובת, להאזין להודעה, ולשלוח הודעה. זאת דוגמה למימוש של Client מבוסס על WinSock, וזאת דוגמה ל Server. שים לב שהדוגמאות האלה מאוד פשטניות ולא מתאימות למימוש אמתי, מסתובבות באינטרנט דוגמאות הרבה יותר טובות. ויש את האתר הזה שאומנם הוא ישן ולא הכי מעודכן, אבל אני ממליץ בחום לפחות לעבור על כולו אם יש לך כוונה להשתמש ב Winsock. זאת רשימה של כל הטכנולוגיות\ תשתיות לתקשורת שיש ב Windows עצמו, שים לב, שחוץ מאולי WinHttp, אין שם משהו באמת כללי לאפליקציות חוץ WinSock .

למעשה, WinSock הוא וריאציה של Berkeley Sockets שזה פחות או יותר הסטנדרט לספריות תקשורת בתוכנה עד עצם היום הזה. ואפשר למצוא מימוש של Berkeley Sockets איפשהו באזור של "sys/socket.h" ברוב מערכות ה nix* .

עכשיו הצד השני...

WinSock זה למעשה הממשק שאפליקציות אמורות להשתמש בו בשביל תקשורת ב Windows. מתחת לזה יושב המימוש של כל שרותי הרשת של Windows. המימוש הזה נקרא TCP/IP Protocol Stack (הנה הסבר קצר על מה זה Protocol Stack)

נהוג לחלק תשתיות תקשורת לשכבות, וההגדרות הנפוצות הן, ההגדרה הישנה של ה IETF (אלה שעשו סטנדרטיזציה לאינטרנט), והמודל של OSI. המודל של OSI מחלק מערכת תקשורת ל7 שכבות בצורה הבאה:

1. Physical
המימוש הפיזי שמאפשר תקשורת בין קצוות שונים במערכת ( כבלים, כרטיס רשת, סיב אופטי, כרטיס רשת אלחוטי, וכו), כל הרכיבים ואיך הם מדברים ביניהם (ברמה של אותות חשמליים, סנכרון וכד')

2. Data Link
כל מה שמגדיר איך תחנות על אותו תווך מדברות אחת עם השנייה (לדוגמה Ethernet, FDDI וכד' )

3. Network
מה שמגדיר את המבנה של כלל הרשת, ואיך קצוות שמחוברים לאזורים פיזיים שונים ברשת יכולים לדבר אחד עם השני ( IP, ICMP, IPX )

4. Transport
מגדיר "שפות" ו"צורות תקשורת" משותפות שתחנות יכולות להשתמש בהן בשביל ליצור תקשורת מקצה לקצה, ולדבר (TCP , UDP, RUDP)

5. Session
מגדיר דרכים לניהול שיחה, עם הקשר, ומצב בהתבסס על שפה משותפת.

6. Presentation
מגדיר דרך משותפת לייצג מידע שמאפשרת לשתי תחנות לדבר ( ASCII , MPEG , MIME )

7. Application
מגדיר את תוכן השיחה והפעולות האפשריות במסגרת השיחה ( HTTP, FTP, BitTorrent )


המודל של IETF , זהה בגדול למודל של OSI , חוץ מזה שIETF מאחדים בין שכבות 1-2 ובין שכבות 4-7, ונשארים עם 4 שכבות...

בסופו של דבר במערכת תקשורת, יש מימוש נפרד (בד"כ) לכל אחת מהשכבות האלה, לפרוטוקולים שנמצאים באותה שכבה, וכל שכבה מדברת עם המקבילות לה.

המימוש של ה TCP/IP Stack של Windows , כמו רוב הדברים אצל מיקרוסופט, הוא מטבעו סגור, אין פה עניין של "חסיון" הרוב מתועד בסטנדרטים פתוחים, אלא שזאת תוכנה מסחרית והם לא משתפים את המימוש.

אם אתה ממש אמיץ, אז המימוש של ה TCP/IP Stack של לינוקס נמצא פה לדוגמה זה המימוש של ipv4 tcp . יש גם כמה ספרים שנכנסים לעומק ומתארים את המימוש של לינוקס, אתה מוזמן לחפש.

אם אתה רוצה משהו יותר "סביר" אז פה וגם פה יש לך שני מימושים ל TCP/IP Stack מינימליסטי וקריא למדי, לא יודע איך הם מבחינת פיצ'רים...

הדברים שציינת ( Reno Techo) הם בסהכ congestion-avoidance algorithm
אין שם איזה גאונות נסתרת מעבר למה שמתואר ב RFC, למיטב זיכרוני Windows משתמש בשעטנז בין New Reno ל Vegas לפחות מאז ויסטה...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 20:04

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר