مقدمة في مصطلحات الشبكات والواجهات والبروتوكولات

مقدمة

فهم الشبكات مهم لأي شخص يدير خادمًا. ليس فقط هو أساسي لجعل خدماتك متاحة عبر الإنترنت وتشغيلها بسلاسة، بل يمنحك أيضًا الرؤية لتشخيص المشاكل.

سوف يقدم هذا المقال نظرة عامة على بعض المفاهيم الشبكية الشائعة. سنناقش المصطلحات والبروتوكولات الشائعة، والمسؤوليات والخصائص للطبقات المختلفة في الشبكات.

هذا الدليل غير متعلق بنظام التشغيل، ولكن يجب أن يكون مفيدًا جدًا عند تنفيذ ميزات وخدمات تستخدم الشبكات على خادمك.

معجم الشبكات

أولاً، سنقوم بتعريف بعض المصطلحات الشائعة التي ستراها طوال هذا الدليل، وفي الدلائل والوثائق الأخرى المتعلقة بالشبكات.

سيتم توسيع هذه المصطلحات في الأقسام المناسبة التالية:

  • الاتصال: في الشبكات، يشير الاتصال إلى قطع من المعلومات ذات الصلة التي يتم نقلها عبر الشبكة. عمومًا، يتم إنشاء الاتصال قبل نقل البيانات (باتباع الإجراءات الموضوعة في بروتوكول) وقد يتم تفكيكه في نهاية نقل البيانات.

  • حزمة: الحزمة هي أصغر وحدة يتم نقلها بشكل متعمد عبر شبكة. عند التواصل عبر الشبكة، تعتبر الحزم هي الظروف التي تحمل بياناتك (قطعا) من نقطة نهاية إلى نقطة النهاية الأخرى.

تحتوي الحزم على جزء رأس يحتوي على معلومات حول الحزمة بما في ذلك المصدر والوجهة، والطوابع الزمنية، والقفزات في الشبكة، إلخ. الجزء الرئيسي من الحزمة يحتوي على البيانات الفعلية التي يتم نقلها. يُطلق عليه أحيانًا اسم الجسم أو الحمولة.

  • واجهة الشبكة: يمكن أن تشير واجهة الشبكة إلى أي نوع من واجهات البرامج إلى أجهزة الشبكات. على سبيل المثال، إذا كان لديك بطاقتي شبكة في جهاز الكمبيوتر الخاص بك، يمكنك التحكم في وتكوين كل واجهة شبكة مرتبطة بها بشكل فردي.

A network interface may be associated with a physical device, or it may be a representation of a virtual interface. The “loopback” device, which is a virtual interface available in most Linux environments to connect back to the same machine, is an example of this.

  • شبكة محلية: LAN تعني “شبكة محلية”. تشير إلى شبكة أو جزء من الشبكة لا يمكن الوصول إليها على الإنترنت العام. شبكة المنزل أو المكتب هي مثال على LAN.

  • شبكة واسعة النطاق: تعني “شبكة واسعة النطاق”، وهي تعني شبكة أوسع بكثير من شبكة محلية. بينما تعتبر WAN المصطلح المناسب لوصف الشبكات الكبيرة والمنتشرة بشكل عام، فإنها عادة ما تعني الإنترنت ككل.

إذا ذُكر أن واجهة متصلة بالـWAN، يُفترض عمومًا أنه يمكن الوصول إليها عبر الإنترنت.

  • بروتوكول: البروتوكول هو مجموعة من القواعد والمعايير التي تحدد لغة يمكن للأجهزة استخدامها للتواصل. هناك عدد كبير من البروتوكولات المستخدمة بشكل واسع في مجال الشبكات، وغالبًا ما يتم تنفيذها في طبقات مختلفة.

بعض البروتوكولات على مستوى منخفض هي TCP، UDP، IP، و ICMP. بعض الأمثلة المألوفة لبروتوكولات طبقة التطبيق، التي تم بناؤها على هذه البروتوكولات الأدنى، هي HTTP (للوصول إلى محتوى الويب)، SSH، و TLS/SSL.

  • منفذ: هو عنوان على جهاز واحد يمكن ربطه بقطعة برمجية محددة. إنه ليس واجهة أو موقعًا ماديًا، لكنه يتيح لخادمك القدرة على التواصل باستخدام أكثر من تطبيق واحد.

  • جدار الحماية: جدار الحماية هو برنامج يقرر ما إذا كان يجب السماح بحركة المرور القادمة أو الصادرة من خادم معين. يعمل جدار الحماية عادة عن طريق إنشاء قواعد لأي نوع من حركة المرور مقبول على أي منافذ. عمومًا، يقوم جدار الحماية بحظر المنافذ التي لا تستخدمها تطبيق معين على خادم.

  • NAT: NAT تعني ترجمة عناوين الشبكة. إنها طريقة لإعادة تعبئة وإرسال الطلبات الواردة إلى خادم توجيه للأجهزة أو الخوادم ذات الصلة على شبكة محلية. عادة ما يتم تنفيذ هذا في الشبكات المحلية الفعلية كطريقة لتوجيه الطلبات من خلال عنوان IP واحد إلى الخوادم الخلفية الضرورية.

  • VPN: VPN تعني الشبكة الافتراضية الخاصة. إنها وسيلة لربط الشبكات المحلية الفردية عبر الإنترنت، مع الحفاظ على الخصوصية. يتم استخدام ذلك لربط الأنظمة البعيدة كما لو كانت على شبكة محلية، غالبًا لأسباب أمنية.

هناك العديد من المصطلحات الأخرى التي ستواجهها، وهذه القائمة ليست شاملة. سنشرح المصطلحات الأخرى حسب الحاجة. في هذه المرحلة، يجب أن تفهم بعض المفاهيم على مستوى عال يمكننا من خلالها مناقشة المواضيع المقبلة بشكل أفضل.

طبقات الشبكة

على الرغم من أن الشبكات غالبًا ما تُناقش من حيث التوبولوجيا بطريقة أفقية، بين المضيفين، إلا أن تنفيذها مُتدرج بشكل رأسي داخل أي حاسوب أو شبكة معينة.

ما يعنيه ذلك هو وجود تقنيات وبروتوكولات متعددة بنيت فوق بعضها البعض من أجل عملية الاتصال. تجريد البيانات الخام قليلا في كل طبقة تالية على التوالي.

كما يتيح لك الاستفادة من الطبقات الأدنى بطرق جديدة دون الحاجة إلى استثمار الوقت والطاقة في تطوير البروتوكولات والتطبيقات التي تتعامل مع تلك الأنواع من حركة المرور.

\begin{Arabic}
اللغة التي نستخدمها للحديث عن كل خطط الطبقات تختلف بشكل كبير اعتمادًا على النموذج الذي تستخدمه. بغض النظر عن النموذج المستخدم لمناقشة الطبقات، يكون مسار البيانات هو نفسه.

عندما يتم إرسال البيانات من جهاز واحد، تبدأ في الجزء العلوي من الكومة وتترشح للأسفل. على أدنى مستوى، يحدث النقل الفعلي إلى جهاز آخر. في هذه النقطة، تسافر البيانات لأعلى من خلال طبقات الكمبيوتر الآخر.

لكل طبقة القدرة على إضافة “تغليفها” الخاصة حول البيانات التي تتلقاها من الطبقة المجاورة، والتي ستساعد الطبقات القادمة في تحديد ما يجب القيام به مع البيانات عند تسليمها.

نموذج TCP/IP

نموذج TCP/IP، المعروف أكثر باسم مجموعة بروتوكول الإنترنت، هو نموذج طبقي يعتمد عليه على نطاق واسع. يعرف أربع طبقات منفصلة:

  • التطبيق: في هذا النموذج، تكون طبقة التطبيق مسؤولة عن إنشاء ونقل بيانات المستخدم بين التطبيقات. يمكن أن تكون التطبيقات على أنظمة بعيدة، ويجب أن تظهر كما لو كانت تعمل محليًا للمستخدم النهائي. يقال أن هذه الاتصالات تحدث بين الأقران.

    \end{Arabic}

  • النقل: تتحمل طبقة النقل مسؤولية التواصل بين العمليات. تستخدم هذه المستوى من الشبكات المنافذ لتوجيه خدمات مختلفة.

  • الإنترنت: تُستخدم طبقة الإنترنت لنقل البيانات من جهاز إلى جهاز في الشبكة. تعرف هذه الطبقة نقاط نهاية الاتصالات، لكنها لا تهتم بالاتصال الفعلي اللازم للوصول من مكان إلى آخر. عناوين IP تُعرف في هذه الطبقة كطريقة للوصول إلى الأنظمة البعيدة بطريقة يمكن توجيهها.

  • الرابط: تنفذ طبقة الرابط توبولوجيا الشبكة المحلية الفعلية التي تسمح لطبقة الإنترنت بتقديم واجهة قابلة للتوجيه. إنها تنشئ اتصالات بين العقد المجاورة لإرسال البيانات.

كما يمكنك رؤية ، فإن نموذج TCP/IP مجرد ومتين. وقد جعل ذلك من الشعبية تنفيذه وسمح له بأن يصبح الطريقة السائدة التي يتم فيها تصنيف طبقات الشبكات.

الواجهات

الواجهات هي نقاط الاتصال بالشبكة لجهاز الكمبيوتر الخاص بك. كل واجهة مرتبطة بجهاز شبكة فيزيائي أو افتراضي.

بشكل عام ، سيكون لديك خادم واجهة شبكة قابلة للتكوين واحدة لكل بطاقة إيثرنت أو بطاقة إنترنت لاسلكية تمتلكها.

بالإضافة إلى ذلك ، سيتم تعريف واجهة شبكية افتراضية تسمى “الحلقة المحلية” أو واجهة localhost. يتم استخدام هذا كواجهة لربط التطبيقات والعمليات على جهاز كمبيوتر واحد بتطبيقات وعمليات أخرى. يمكنك رؤية هذا المشار إليه باسم واجهة “lo” في العديد من الأدوات.

في كثير من الأحيان ، يقوم المسؤولون بتكوين واجهة واحدة لخدمة حركة المرور إلى الإنترنت وواجهة أخرى لشبكة LAN أو شبكة خاصة.

في مراكز البيانات التي تتيح تشغيل الشبكة الخاصة (بما في ذلك DigitalOcean Droplets) ، ستكون لخادم الخاص بك اثنتان واجهتان شبكيتان. ستتم تكوين واجهة “eth0” للتعامل مع حركة المرور من الإنترنت ، بينما ستعمل واجهة “eth1” للتواصل مع شبكة خاصة.

البروتوكولات

يعمل الشبكات عن طريق تركيب عدد من البروتوكولات المختلفة فوق بعضها البعض. بهذه الطريقة، يمكن نقل قطعة واحدة من البيانات باستخدام عدة بروتوكولات مغلفة داخل بعضها البعض.

سنبدأ بالبروتوكولات المنفذة على الطبقات الشبكية الأدنى ونعمل طريقنا إلى البروتوكولات ذات التجريد الأعلى.

التحكم في الوصول إلى الوسائط

التحكم في الوصول إلى الوسائط هو بروتوكول اتصال يستخدم لتمييز الأجهزة المحددة. من المفترض أن تحصل كل جهاز على عنوان تحكم وسائط (MAC address) فريد وصلب عند تصنيعه يميزه عن كل جهاز آخر على الإنترنت.توجيه الأجهزة بواسطة عنوان MAC يسمح لك بالإشارة إلى جهاز بقيمة فريدة حتى عندما يغير البرنامج الذي يعمل فوق الاسم لهذا الجهاز الخاص خلال التشغيل.

توجيه MAC هو واحد من البروتوكولات القليلة من الطبقة الرابطية منخفضة المستوى التي من المحتمل أن تتفاعل معها بانتظام.

IP

بروتوكول IP هو أحد البروتوكولات الأساسية التي تسمح للإنترنت بالعمل. عناوين IP فريدة على كل شبكة وتسمح للأجهزة بالتواصل مع بعضها عبر الشبكة. يتم تنفيذه في طبقة الإنترنت في نموذج TCP / IP.

يمكن ربط الشبكات معًا ، ولكن يجب توجيه حركة المرور عند عبور حدود الشبكة. يفترض هذا البروتوكول وجود شبكة غير موثوقة ومسارات متعددة إلى نفس الوجهة يمكن تغييرها بشكل ديناميكي.

هناك عدد من التنفيذات المختلفة للبروتوكول. التنفيذ الأكثر شيوعًا اليوم هو عناوين IPv4 ، والتي تتبع النمط 123.123.123.123 ، على الرغم من أن عناوين IPv6 ، والتي تتبع النمط 2001:0db8:0000:0000:0000:ff00:0042:8329 ، تزداد شهرة بسبب العدد المحدود من عناوين IPv4 المتاحة.

ICMP

ICMP تعني بروتوكول رسائل التحكم في الإنترنت. يُستخدم لإرسال رسائل بين الأجهزة للإشارة إلى توافرها أو حالات الأخطاء. يتم استخدام هذه الحزم في مجموعة من أدوات التشخيص الشبكي ، مثل ping و traceroute.

عادة ما يتم نقل حزم ICMP عندما يواجه نوع مختلف من الحزمة مشكلة. يتم استخدامها كآلية ردود فعل للاتصالات الشبكية.

TCP

TCP تعني بروتوكول التحكم في النقل. يتم تنفيذه في طبقة النقل في نموذج TCP/IP ويستخدم لإنشاء اتصالات موثوقة.

TCP هو واحد من البروتوكولات التي تغلف البيانات في حزم. ثم ينقل هذه الحزم إلى النهاية البعيدة للاتصال باستخدام الأساليب المتاحة في الطبقات الأدنى. من جهة أخرى ، يمكنه التحقق من الأخطاء وطلب إعادة إرسال أجزاء معينة وإعادة تجميع المعلومات في قطعة منطقية واحدة لإرسالها إلى طبقة التطبيق.

يقوم البروتوكول ببناء اتصال قبل نقل البيانات باستخدام نظام يسمى مصافحة ثلاثية. هذه هي طريقة لتأكيد طرفي الاتصال على الطلب والاتفاق على طريقة لضمان موثوقية البيانات.

بعد إرسال البيانات ، يتم إنهاء الاتصال باستخدام مصافحة رباعية مماثلة.

TCP هو البروتوكول المفضل للعديد من الاستخدامات الأكثر شيوعًا للإنترنت ، بما في ذلك شبكة الويب و SSH والبريد الإلكتروني.

UDP

UDP تعني بروتوكول محزمة المستخدم. إنه بروتوكول مرافق شائع لـ TCP ويتم تنفيذه أيضًا في طبقة النقل.

الفرق الأساسي بين UDP و TCP هو أن UDP يقدم نقل بيانات غير موثوق. لا يتحقق من استلام البيانات في الطرف الآخر من الاتصال. قد يبدو هذا أمرًا سيئًا ، ولكن بالنسبة للعديد من الأغراض ، فإنه أمر مهم أيضًا.

لأنه ليس مطلوبا الانتظار لتأكيد استلام البيانات والاضطرار إلى إعادة إرسال البيانات، فإن UDP أسرع بكثير من TCP. لا يقوم بإنشاء اتصال مع الخادم البعيد، بل يرسل البيانات دون تأكيد.

نظرًا لكونها عملية مباشرة، فإنها مفيدة للاتصالات مثل الاستعلام عن موارد الشبكة. كما أنها لا تحتفظ بحالة، مما يجعلها مثالية لنقل البيانات من جهاز واحد إلى العديد من العملاء في الوقت الحقيقي. وهذا يجعلها مثالية لخدمات الصوت عبر الإنترنت والألعاب والتطبيقات الأخرى التي لا يمكنها تحمل التأخير.

HTTP

HTTP تعني بروتوكول نقل النصوص الفائقة. إنه بروتوكول يتم تعريفه في طبقة التطبيق والذي يشكل أساس التواصل على الويب.

يعرف HTTP عددًا من الأفعال التي تخبر النظام البعيد بما تطلبه. على سبيل المثال، GET، POST، و DELETE يتفاعلون جميعًا مع البيانات المطلوبة بطريقة مختلفة. لمشاهدة مثال على الطلبات المختلفة لـ HTTP في العمل، راجع كيفية تعريف المسارات وطرق الطلب HTTP في Express.

DNS

DNS يعني نظام اسم النطاق. إنه بروتوكول طبقة التطبيق المستخدم لتوفير آلية تسمية تفاعلية للموارد على الإنترنت. إنه ما يربط اسم النطاق بعنوان IP ويتيح لك الوصول إلى المواقع بالاسم في متصفحك.

SSH

SSH تعني القشرة الآمنة. إنه بروتوكول مشفر يتم تنفيذه في طبقة التطبيق يمكن استخدامه للتواصل مع خادم بعيد بطريقة آمنة. تم بناء العديد من التقنيات الإضافية حول هذا البروتوكول بسبب تشفيره من الطرف إلى الطرف وانتشاره.

هناك العديد من البروتوكولات الأخرى التي لم نغطيها وهي ذات أهمية متساوية. ومع ذلك ، يجب أن يعطيك هذا نظرة عامة جيدة على بعض التقنيات الأساسية التي تجعل الإنترنت والشبكات ممكنة.

استنتاج

في هذه النقطة ، يجب أن تكون على دراية ببعض المصطلحات الشبكية وتكون قادرًا على فهم كيفية تواصل المكونات المختلفة مع بعضها البعض. يجب أن يساعدك ذلك في فهم المقالات الأخرى ووثائق نظامك.

بعد ذلك ، قد تود قراءة مثال عالي المستوى في العالم الحقيقي ، يمكنك قراءة كيفية إجراء طلبات HTTP في Go.

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols