שאלה מה ההבדל בין שקע יוניקס לשקע TCP / IP?


זה מן התשובה הזאת:

https://stackoverflow.com/questions/2482411/is-this-pdo-bug-fixed-now/2482424#2482424


82
2018-03-20 09:13






תשובות:


א שקע UNIX הוא מנגנון תקשורת בין תהליכים המאפשר החלפת נתונים דו-כיוונית בין תהליכים הפועלים באותו מחשב.

שקעי IP (במיוחד TCP / IP Sockets) הם מנגנון המאפשר תקשורת בין תהליכים ברשת. במקרים מסוימים, באפשרותך להשתמש בשקעי TCP / IP כדי לדבר עם תהליכים הפועלים באותו מחשב (באמצעות ממשק הלולאה החוזרת).

שקעי תחום UNIX יודעים שהם מבצעים את אותה מערכת, כך שהם יכולים למנוע כמה בדיקות ופעולות (כמו ניתוב); מה שהופך אותם מהר יותר קל יותר מאשר שקעי IP. אז אם אתם מתכננים לתקשר עם תהליכים על אותו מארח, זה אפשרות טובה יותר מאשר שקעי IP.

ערוך: בהתאם הערה של נילס טדטמן: שקעי תחום UNIX כפופים הרשאות מערכת הקבצים, בעוד שקעי TCP ניתן לשלוט רק על רמת מסנן מנות.


148
2018-03-20 09:39



אולי להוסיף כי שקעי תחום UNIX כפופים הרשאות מערכת הקבצים, בעוד שקעי TCP הם לא. כתוצאה מכך, זה הרבה יותר קל להסדיר אילו משתמשים יש גישה לשקע תחום UNIX מאשר עבור שקע TCP. - Nils Toedtmann
@pqd, אחי אתה יכול לקרוא לזה Unix IPC במקום Unix Sockets? - Pacerier
@ Pacerier Unix sockets הוא פשוט דרך אחת להשיג IPX יוניקס (משותף Interprocess זיכרון בין היתר), אז זה לא יהיה נכון לקרוא שקעים יוניקס יוניקס IPC. - fyquah95
שקעי TCP מטופלים גם על ידי יוניקס? שקעי TCP הם חלק מהפרוטוקול של פרוטוקול TCP או שכל פרוטוקול יכול להשתמש בשקעי IP? - Federico
@ פדריקו אני פירסם תשובה שמנסה לענות על השאילתה שלך, אם אתה דורש עומק יותר בבקשה לפרסם שאלה חדשה. - Peter Green


באפשרותך לרשום את שקעי ה- Unix המקומיים שלך באמצעות הפקודה הבאה:

netstat -a -p --unix

תעשה חיים!


21
2018-03-20 13:49



שקעי Unix אינם קיימים ב- Windows. netstat עושה זאת לעבוד ב - Windows. - Mark Tomlin
@apache, דבר דומה ב Windows נקרא "Named צינורות". - expert
צינורות בשם ידועים גם על לינוקס. - Sahil Singh
@expert, בשם צינורות ב- Windows שווה לצינורות בשם ב- Unix. שקעי IPC ב- Unix אינם מקבילים ל- Windows - Pacerier
הערה הבדל אחד הוא כי צינורות בשם יכול רק לקוח אחד מחובר בכל פעם (2 תהליכים תקשורת סך). שקעים של UNIX, כמו שקעי IP, יכולים להיות מחוברים למספר רב של לקוחות בבת אחת, כל אחד מקבל תגובות נפרדות. - peterflynn


מה ההבדל בין שקע יוניקס לשקע TCP / IP?

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

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

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


שקעי TCP מטופלים גם על ידי יוניקס?

כמובן

שקעי TCP הם חלק ממפרט פרוטוקול TCP

מפרטים פרוטוקול אינטרנט רק נוטים לחשוש מה קורה על חוט, מפרט TCP מכיל הגדרה של Socket אבל הגדרה זו אינה זהה איך המונח משמש על ידי "ממשק API".

ה- API של ה- "sockets", כפי שאנו מכירים אותו, הוצג על ידי BSD, אך הועתק מאוחר יותר בכל מקום והוא נכלל במסגרת תקן ה- posix. הדברים הבסיסיים עבור שקעי TCP ו- UDP נוטים להיות דומים זה לזה בפלטפורמות שונות, אבל דברים מתקדמים יותר ודברים שקשורים עם חלקים אחרים של מערכת ההפעלה משתנים, לדוגמה במערכות דמויי יוניקס שקע מזוהה על ידי ידית קובץ ויכול להיות לקרוא / נכתב על ידי APIs הקובץ, זה לא המקרה על Windows.

תוספים מסוימים לממשק ה- API של ה- sockets תועדו ב- rfcs, אך אלה הם רק "מידע".

או כל פרוטוקול יכול להשתמש ב- IP Sockets?

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

  • domain בוחר את משפחת הפרוטוקולים / הכתובות שבשימוש, למשל. AF_INET עבור ipv4, AF_INET6 עבור ipv6, AF_Unix עבור נתיבי מערכת קבצים של יוניקס וכד '.
  • סוג בוחר את סמנטיקה התקשורת, העיקריים שבהם להיות datagram וזרם אבל יש גם סוגים מיוחדים יותר.
  • פרוטוקול בוחר את הפרוטוקול להשתמש, אם הוא מוגדר 0 פרוטוקול ברירת המחדל עבור שילוב של דומיין וסוג ישמש.

5
2017-09-13 17:32