تعرف على كيفية عمل شبكات TCP / IP

 

تاريخ الإنترنت










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

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

لذلك سعوا إلى إنشاء وسيلة اتصال جديدة لم تعد بعد ذلك مركزية ، بل متداخلة.





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



ولكن الآن بعد طرح الفكرة ، يبقى تنفيذها!

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

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

ثم تحول الباحثون إلى إنشاء بروتوكولات اتصال أخرى ، وعلى وجه الخصوص TCP / IP. استمر الإنترنت في النمو على مر السنين ، ولكن في عام 1990 ، سمحت الثورة بنموها الحقيقي: لغة HTML وبروتوكول تبادل HTTP الذي يسمح بإنشاء صفحات الويب.

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







لن يحمل الاتصال بين الشبكات بعد الآن أي أسرار بالنسبة لك


لم يعد الأمر ifconfig ، المستخدم في هذا الفصل ، مثبتًا بشكل افتراضي على أحدث توزيعات الفروع Debian / RedHat ، لكنه لا يزال متاحًا من خلال حزمة net-tools.

لتثبيته على Debian / Ubuntu: sudo apt-get install net-tools

لتثبيته على RedHat / Centos: sudo yum install net-tools

ستتيح لك حزمة net-tools العثور دائمًا على أوامر مفيدة جدًا مثل netstat أو الطريق!


البروتوكول ، IP

للتذكير ، البروتوكول هو لغة. يسمح للآلات التي تتحدث مع بعضها البعض بفهم بعضها البعض.

بالنسبة للطبقة 3 من نموذج OSI ، فهو بروتوكول IP ، أو بروتوكول الإنترنت.

كما هو الحال مع الطبقة 2 ، سيتعين علينا تحديد المعلومات التي سنحتاجها ، وبأي ترتيب نضعها.

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

اذا لدينا :

عنوان IP للمرسل ؛

عنوان IP للمستلم.

حتى الآن ليس هناك ما يثير الدهشة ، فمن الطبيعي أن يكون لديك المعلومات التي تحدد المشاركين في الاتصال.

ومع ذلك ، قلنا أن عنوان IP يجب أن يكون دائمًا مصحوبًا بالقناع ؛ هل سنضع القناع أيضًا في رأس IP؟

السؤال الذي يجب الإجابة عليه هو قبل كل شيء: هل من الضروري معرفة قناع الآلة من أجل إرسال رسالة لها؟
للإجابة عليه ، دعونا نضع أنفسنا في مكان آلة تريد إرسال رسالة إلى شخص آخر.

نحن آلة A بعنوان 192.168.0.1/24 ونريد إرسال رسالة إلى الجهاز B بعنوان 192.168.1.1/24.
المهم بالنسبة لي كآلة "أ" هو ما إذا كان الجهاز "ب" على شبكتي. في الواقع ، إذا كانت موجودة على شبكتي ، فسأتحدث إليها باستخدام الطبقة 2. إذا كانت على شبكة أخرى ، فسيتعين علي استخدام الطبقة 3.

ما الذي أحتاجه لمعرفة ما إذا كان الجهاز B متصلاً بشبكتي؟

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

في حالتنا ، يتراوح نطاق عنواني من 192.168.0.0 إلى 192.168.0.255. لذلك لا يحتوي على عنوان الجهاز B (192.168.1.1).
لذلك استنتج أن B ليس على شبكتي وأنه سيتعين علينا استخدام الطبقة 3 للتواصل معها.

نلاحظ بشكل عابر أننا لسنا بحاجة إلى قناع الآلة B لمعرفة ما إذا كانت تنتمي إلى شبكتنا.

لذلك لن يكون من المفيد الإشارة إلى القناع في رأس IP. سيكون عنوان IP كافيًا.

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

لذلك سيكون لدينا ، بالنسبة لإطار الطبقة 2 ، تنسيق رسالة محدد بواسطة بروتوكول IP.
بالنسبة لبروتوكول IP ، تسمى الرسالة مخطط بيانات أو حزمة.

مخطط البيانات
بالنسبة للطبقة 2 ، سيكون مخطط بيانات IP عبارة عن سلسلة من 0 و 1 منظمة.

هذا هو الشكل الذي ستتخذه:



مخطط بيانات IP

نرى هنا أن التنسيق العام قريب من تنسيق إطار Ethernet ، لكن المعلومات الواردة مختلفة وبترتيب مختلف.

عادة هذا العنوان يجب أن يصدمك! لا ؟ نعم ؟
حسنًا ، نعم ، عنوان IP الوجهة موجود في نهاية الرأس. ومع ذلك ، فقد رأينا في الطبقة 2 أنه من المهم أن يكون عنوان MAC الوجهة في بداية الرأس حتى يعرف الجهاز الذي يستقبل الإطار على الفور ما إذا كان مخصصًا له. لماذا سيكون هذا مختلفًا بالنسبة إلى IP؟

هل كان الأشخاص الذين صنعوا بروتوكول IP قد عثروا على الرأس ... أه ... الرأس؟

حسنا لا ، على العكس من ذلك. لفهم ذلك ، سيتعين علينا معالجة مفاهيم أخرى.

التغليف
بادئ ذي بدء ، علينا الإجابة على سؤال.

ما الذي يتم تداوله على الشبكة؟

لحمات؟ مخططات البيانات؟ الاثنين ؟ للإجابة على هذا السؤال ، سيتعين علينا الغوص مرة أخرى في نموذج OSI.
للتذكير ، الشكل التالي هو نموذج OSI ، في 7 طبقات.






وبشكل أكثر تحديدًا ، يوضح الشكل التالي إرسال المعلومات أو تلقيها.








كما نرى ، يتم إرسال رسالة من الطبقة 7 من نموذج OSI ، وهي تمر عبر جميع الطبقات حتى تصل إلى الطبقة 1 ليتم إرسالها عبر الشبكة.

ولكن ماذا يحدث لرسالتنا الأصلية ، وكذلك الرؤوس في كل طبقة؟

في الواقع ، ستتم إضافة رأس لكل مسار عبر طبقة. وبالتالي سنقوم بتجميع رؤوس الطبقات المختلفة (انظر الشكل التالي).




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

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

لذلك ، لقد كذبت عليك بشكل أو بآخر عندما أعطيتك تنسيق إطار Ethernet.





إطار إيثرنت

لم أخبرك أنه في البيانات المراد إرسالها ، كان هناك بالفعل رأس الطبقة 3 ، ورأس الطبقة 4 ، ثم أخيرًا ، البيانات المراد إرسالها.



إطار إيثرنت

بعد قولي هذا ، كنت محقًا في وضعها على هذا النحو ، لأن الطبقة 2 غير قادرة على قراءة معلومات الطبقة 3 أو الطبقة 4 ، كما أنها لا تفهم البيانات التي يجب إرسالها. بالنسبة لها ، كل هذا عبارة عن تسلسل من 0 و 1 لا تستطيع فهمه ، فهي تراه فقط كبيانات ...

أنت الآن تعلم أنه من بين هذه البيانات توجد أيضًا رؤوس الطبقات العليا.

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

أولاً ، يمكننا رؤية قائمة الإطارات التي تم استلامها أثناء طلب Google مع السؤال "Site of Zero" (انظر الشكل التالي).




هذا ليس ذا مغزى كبير بالنسبة لنا ولكننا نرى أنه بالنسبة لطلب الويب الخاص بنا ، كان هناك العديد من عمليات تبادل الإطارات بيننا وبين Google.

سنقوم الآن بالغوص في محتوى الإطار بالنقر فوق أحدها. يفصل Wireshark عناصر كل طبقة من طبقات نموذج OSI ، كما ترى في الشكل التالي.



يمكننا رؤية العناصر التي نراها في الطبقة 1 (الإطار 187 ...) ، ثم طبقة Ethernet 2 ، ثم طبقة IP 3 ، وبروتوكول الإنترنت ، والطبقة 4 التي لا نعرفها بعد وبيانات التطبيق الموجودة هنا من HTTP على الويب.

سنتمكن أخيرًا من رؤية محتوى كل طبقة من خلال النقر على المثلث الموجود أمام الطبقة.
لنبدأ بالطبقة 2 (انظر الشكل التالي)



يمكننا أن نرى الأشياء التي نعرفها جيدًا: عنوان MAC الوجهة وعنوان MAC المصدر. يتعرف Wireshark ويوضح لنا أنها بطاقة شبكة Apple بفضل أول ثلاثة بايتات تمثل الشركة المصنعة للبطاقة. أخيرًا ، يوضح لنا بروتوكول الطبقة 3 المستخدم وهو IP هنا.

بعد ذلك ، دعنا ننتقل إلى الطبقة 3 (انظر الشكل التالي).



لا نعرف كل هذه الأشياء ، ولكن يمكننا رؤية عناوين IP للمصدر والوجهة في نهاية الرأس.


العودة إلى الموضوع
نعم ، كنا نتطلع إلى فهم سبب عدم ظهور عنوان IP للوجهة في بداية رأس IP؟

لدينا الآن عناصر لفهمها.
عندما تصل رسالة إلى جهاز ، فإنها تنتقل إلى طبقات نموذج OSI من الطبقة 1 إلى الطبقة 7. وبالتالي فهي تمر عبر الطبقة 2 التي تقرأ عنوان MAC الوجهة:

إذا كانت بطاقة الشبكة ، فإنها تقرأ بقية الإطار ، ثم تنقل البيانات (مخطط البيانات في الواقع!) إلى الطبقة 3 ؛

إذا لم يكن ذلك من بطاقة الشبكة ، فإنه يرمي الإطار في سلة المهملات.

لذلك إذا وصلت الرسالة إلى الطبقة 3 ، فهذا يعني بالضرورة أن الجهاز يعرف بالفعل أن الرسالة مخصصة لها ، نظرًا لأن عنوان MAC الوجهة خاص به. لذلك فهي لا تحتاج إلى معرفة ما إذا كان عنوان IP الوجهة لها على الفور ، لأنها تعرف بالفعل أن مخطط البيانات خاص بها.

لذلك يمكننا وضع عنوان IP الوجهة حيث نريد في رأس IP. مبتكرو بروتوكول IP ليسوا مجانين. : ص

علاوة على ذلك ، فإن اختيار وضع عنوان IP في نهاية الرأس ليس بالأمر الهين ويتم استخدامه قبل كل شيء لوضع المعلومات المهمة للطبقة 3 بالقرب من المعلومات المهمة للطبقة 4 التي سنراها لاحقًا.

الآن نحن نعرف عنصرين من عنوان IP وموضعهما. للتعرف على العناصر الأخرى لرأس IP ، سنناقش الآن العنصر الأساسي للطبقة 3 ، التوجيه!

التوجيه

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




جهاز التوجيه (Routeur)


جهاز التوجيه عبارة عن جهاز من الطبقة الثالثة يربط شبكات متعددة.

لذلك يجب أن يكون لها واجهة في كل شبكة متصلة بها.

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

يمكن أن يكون جهاز الكمبيوتر المزود ببطاقتي شبكة جهاز توجيه.

إذن ما الذي يميز جهاز كمبيوتر بسيط عن جهاز توجيه؟

القليل جدا في الحقيقة. الاختلاف الرئيسي هو أن جهاز التوجيه يقبل ترحيل الحزم التي ليست له بينما سيرميها جهاز بسيط في سلة المهملات.

وبالتالي ، يمكن لأي جهاز متصل بشبكة أن يعمل كموجه. عليك فقط تنشيط التوجيه عليه. سنرى في الجزء العملي كيفية القيام بذلك.

لنأخذ مثالا
سوف نضع أنفسنا في مكان جهاز التوجيه.

تخيل أننا جهاز بعنوان MAC 00: 11: 22: 33: 44: 55 وعنوان IP 192.168.0.1/24.
نتلقى الإطار التالي (الذي نشير فيه أيضًا إلى رأس الطبقة 3) على إحدى واجهاتنا:



إطار إيثرنت مع رأس من الطبقة الثالثة

بعض الأسئلة الصغيرة ...

ما هو عنوان IP الخاص بالجهاز الذي أرسل هذه المعلومات؟

عنوان IP هذا هو بالفعل عنوان IP المصدر 10.0.0.1.

ما هو عنوان MAC الخاص بالجهاز الذي أرسل هذه المعلومات؟ (احترس من الفخ!)

لا يمكننا أن نعرفها! نعم ، إذا كنت تتذكر الطبقة الثانية ، فسيكون عنوان MAC فريدًا للشبكة المحلية. خارج هذه الشبكة ، لا نراها. هنا بالضبط ، يصل الإطار إلى واجهة جهازك بعنوان IP 192.168.0.1/24. لذلك لا تحتوي شبكتها على عنوان IP 10.0.0.1.
الجهاز 10.0.0.1 ليس على شبكتنا ولن نعرف أبدًا عنوان MAC الخاص به.
عنوان MAC الذي نراه هنا كعنوان MAC المصدر هو عنوان جهاز التوجيه الأخير الذي أرسل لنا الإطار. سوف نستكشف كل هذا لاحقًا.

الآن يأتي سؤال مهم.

ماذا يحدث عندما تستقبل آلتنا هذا الإطار؟

أقترح أن نجيب عليهم معًا.

يصل الإطار إلى بطاقة الشبكة الخاصة بي التي تستقبل 0 و 1 وترسلها إلى نظام التشغيل الخاص بي. تستقبل الطبقة الثانية من نظام التشغيل الخاص بي 0 و 1 وتفسرها لتعطيني عنوان MAC الوجهة للإطار.
هذا هو عنوان MAC الخاص بي 00: 11: 22: 33: 44: 55!
لذلك قرأت بقية رأس الإطار لمعرفة من الذي يرسل لي هذا الإطار وإلى أي بروتوكول Layer 3 يجب أن ترسله الطبقة 2. إنه مسجل IP ، لذلك أرسل الإطار لإزالة رأس Ethernet ، مما أدى إلى مخطط بيانات IP ، في الطبقة 3 وبشكل أكثر تحديدًا بروتوكول IP.
الطبقة 3 ، وبالتالي بروتوكول IP ، يقرأ جميع المعلومات من رأس IP ، لأننا نعلم الآن أن مخطط البيانات هذا مخصص لنا.
وهناك ، بادابوم ، عنوان IP الوجهة لمخطط البيانات ليس لنا ...

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

لكن كيف يفعل هذا؟

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

أكرر لأنه مهم جدا: هذا الجدول مهم جدا ويسمى جدول التوجيه!

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

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




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




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

نلخص:

جهاز التوجيه هو جهاز به عدة واجهات ؛

يتم توصيل كل واجهة لجهاز التوجيه بشبكة ، وبالتالي يربط جهاز التوجيه عدة شبكات معًا ؛

يمكن لأي جهاز به واجهات متعددة أن يعمل كجهاز توجيه ، حتى جهاز الكمبيوتر القديم الخاص بالجدة ؛

يختلف جهاز التوجيه عن الجهاز البسيط ، لأنه يقبل ترحيل الحزم غير المخصصة له ؛

يقوم جهاز التوجيه بتوجيه الحزم باستخدام جدول التوجيه الخاص به ؛

يشير جدول التوجيه إلى البوابة التي يجب استخدامها للانضمام إلى الشبكة.

من المهم فهم وتذكر ما سبق ، لأن التوجيه هو أساس كيفية عمل الإنترنت!




إرسال تعليق

comments (0)

أحدث أقدم