فهم طبقة الإنترنت في TCP/IP
لفهم دور طبقة الإنترنت في تجميعة بروتوكول TCP/IP، فعلينا أن نفهم وظائف بروتوكول TCP/IP أولًا؛ باختصار، إن IP مسؤولٌ عن تمرير الرزم من المصدر إلى الوجهة في الشبكة؛ تكون الرزم هي وحدة البيانات (data unit) لطبقة الإنترنت في TCP/IP؛ وهي وحدات تتضمِّن البيانات التي ستُرسَل بالإضافة إلى معلوماتٍ كافية لكل رزمة لكي تُعامَل بشكلٍ مستقل وتُوجَّه في الشبكة.
تتضمن آلية التوجيه اختيار أفضل طريق للوصول من المصدر إلى الوجهة؛ ويجب الآن تعريف الوجهات والمصدر كأجهزة ضمن الشبكة، ولهذا فإن الوظيفة الثانية لبروتوكول الإنترنت هي توفير عناوين لتلك الأجهزة، وتلك العناوين يجب أن تكون هيكليّة، لأننا سنناقش إرسال البيانات من الجهاز 1 في الشبكة 1 إلى الجهاز 1 في الشبكة 2؛ وبالطبع ما سبق هو مجرد مثال عن آلية تعريف الأجهزة بشكلٍ هيكلي.
الأمر الثالث هو أنَّ بروتوكول الإنترنت ذو طبيعة عديمة الاتصال (connectionless)؛ أي أنه لا يتطلب إنشاء اتصال، فمثالٌ عن إنشاء اتصال هو رفع سماعة الهاتف وطلب الرقم قبل أن نتمكن من التحدّث؛ أما الطريقة التي يعمل بها IP تُشابِه إرسال الأحرف عبر البريد العادي، حيث ستُرسَل كلماتنا ونتمنى أنها ستصل إلى وجهتها، أي أنَّ البروتوكول نفسه لن يوفِّر آلياتٍ لاسترداد البيانات أو لضمان وصولها؛ فمن واجبات بقية الطبقات توفيرُ الوثوقية (reliability)؛ وهذا يعتمد على نوعية التطبيق؛ فمثلًا، تتطلب عملية نقل ملفٍ وثوقيةً وتأكيدًا أن البيانات ستصل إلى الوجهة كما أُرسِلَت، أما نقل الصوت في الوقت الحقيقي (real-time) فسيستفيد من السرعة أكثر من الوثوقية.
إحدى وظائف IP كبروتوكول هي تعريف العناوين والتعرّف على الأجهزة ضمن هيكلية الشبكات. لنلقِ الآن نظرةً إلى بنية عناوين IP؛ إن عناوين IP هي مُعرِّفاتٌ بطول 32 بت التي تميّز كل جهاز على شبكة IP، أي أن على الجهاز أن يملك عنوان IP فريد إذا أراد التواصل مع بقية الأجهزة على الشبكة. أي لو أردنا الاتصال من الجهاز 1 في الشبكة 1 إلى الجهاز 2 في الشبكة 2، فيجب أن تملك تلك الأجهزة عناوين IP؛ وفي الواقع، تتألف عناوين IP من مكوِّنَين هما مُعرِّف المضيف (host ID) الذي يُسنَد للأجهزة المتصلة بالشبكة، ومُعرِّف الشبكة (network identifier) الذي يُحدِّد القسم أو الشبكة التي تنتمي تلك الأجهزة إليها. وهذا شبيهٌ بطريقة تنظيم الشوارع والمباني هيكليًّا، حيث لديك أرقامٌ للمنازل والمباني، لكنها تنتمي إلى نفس الشارع.
ترويسة IP
يجب أن تحتوي الرزم على مصدرها ووجهتها عند محاولة إرسالها من جهازٍ إلى آخر، وهذه هي كيفية توجيه الرزم في شبكةٍ من الأجهزة؛ حيث تنظر تلك الأجهزة إلى عنوان الوجهة وتحسب أفضل طريق للوصول إلى هناك. تُضاف هذه البيانات على شكل ترويسة في وحدة نقل البيانات (data unit) لبروتوكول طبقة الإنترنت؛ ولأن البروتوكول المستخدم هنا هو بروتوكول IP؛ فإن وحدة نقل البيانات المستعملة هي الرزم (packets)، ولأن الهيكلية مُضمَّنة في العناوين، فتتمكن الأجهزة مثل الموجَّهات من فهم تلك الهيكلية وتوجيه الرزم توجيهًا صحيحًا. وذلك مثل مبدِّلات الهاتف الأرضي (telephone switch)، على سبيل المثال، ستتمكّن من تحديد رمز المنطقة بالنظر إلى أول ثلاثة أرقام من رقم الهاتف؛ وبطريقةٍ مشابهة، ستنظر الموجَّهات إلى الشبكة الهدف وستتمكن من توجيه الرزم الشبكية توجيهًا صحيحًا إلى تلك الوجهة حتى دون الحاجة إلى قراءة عنوان الوجهة بأكمله. تحتوي بعض مكونات ترويسة IP أيضًا على نوع الخدمة لتحديد «جودة الخدمة» (QoS) وزمن بقاء الرزمة «على قيد الحياة» لكي لا تبقى تَتَنَقَّل في الشبكة إلى ما لا نهاية... يمثِّل هذا الرقم «تاريخًا للصلاحية» لتلك الرزمة.
صيغة عناوين IP
أما ما يتعلق ببنية عناوين IP؛ فيتألّف العنوان من سلسلةٍ من 32 بتًا تتكون من الرقمين 0 و1؛ ويُشكِّل جزءٌ من هذا العنوان «مُعرِّف المضيف» (host ID)، وجزءٌ آخرٌ سيُشكِّل «مُعرِّف الشبكة» (network ID). وتكون الصيغة الثنائية (binary) مثاليةً للموجهات، لكنها ليست ملائمةً للبشر، لذلك سنحتاج إلى شيءٍ أبسط وقابل للتذكر بسهولة، ولهذا السبب ستُقسَّم السلسلة ذات 32 بتًا إلى أربع ثمانيّات (octet) أو بايتات؛ حيث يتكوّن كل بايت من 8 بت، ثم ستحوَّل الصيغة الثنائية إلى أرقامٍ عشرية، وستُشرَح عملية التحويل تلك لاحقًا في هذه الدورة التدريبية وسنُفصِّلها فيما بعد. لذا، ستُتحوَّل السلسلة ذات 32 بتًا إلى 4 بايت، التي ستصبح بدورها أرقامًا عشرية؛ ثم ستُفصَل تلك الأرقامُ بنقطٍ، مما سيُنتِج الصيغة العشرية المفصولة بنقط (dotted decimal notation) التي نسميها «عناوين IP».
السؤال الآن هو: كيف نُميّز جزءَ الشبكة في العنوان من جزء المضيف؟
في بدايات استخدام الإنترنت، خرجت هيئة IANA (اختصار للعبارة Internet Assigned Numbers Authority) بمخططٍ لتقسيم العناوين إلى فئات، حيث تُحدِّد الفئة عددَ البتات المخصصة لمعرِّف الشبكة وعدد البتات المخصصة للمضيفين؛ تُعرَّف فئات العناوين وتُميَّز بسلسلة بتات تبدأ من أول ثمانيّة، ولهذا تستطيع تحديد فئة الشبكة بالنظر إلى أول ثمانيّة؛ فجميع العناوين التي تبدأ بصفر ستكون من فئة العناوين A (Class A). حيث تحجز فئة العناوين A أول ثمانيّة لتمثِّل معرِّف الشبكة، وتُترَك الثمانيّة الثانية والثالثة والرابعة لتمثِّل معرِّف المضيف؛ وهذا منطقيٌ في بدايات الإنترنت، لأنه كان لديهم عددٌ قليلٌ جدًا من الشبكات، وفي كلِّ شبكةٍ عددٌ كبيرٌ من المضيفين؛ وتلك الشبكات تكون عادةً تابعةً للجامعات أو للحكومات أو للمواقع العسكرية. تُعرَف عناوين الفئة B بوجود واحد وصفر في أول بتَّين (first 2 bits) من أول ثمانيّة، ويُحجَز أول بايتين للشبكة وآخر بايتين للمضيفين؛ وبشكلٍ مشابه، تبدأ الفئة C بالسلسلة 110 ويُحجَز أول ثلاث ثمانيّات للشبكة، وثمانيّة واحد فقط للمضيفين.
في النهاية، بناء عنوان IP يعني إسناد معرِّفات فريدة للأجهزة ضمن الشبكة، ثم إعطاؤها نفس معرِّف الشبكة كي تصبح جزءًا من شبكةٍ واحد، وهذا يشبه كثيرًا أرقام المنازل المختلفة في شارعٍ ما، لكن اسم الشارع هو نفسه.
مجالات عناوين IP
هنالك نتيجتان حصلنا عليهما من استراتيجية التنظيم وفق فئات: أولاها أنَّه يصعب علينا نحن البشر التعرّف على سلسلة البتات في أول ثمانيّة، لذلك حوّلناها إلى أرقامٍ عشريةٍ لتعطينا مجالًا من الأرقام سيُسهِّل علينا التعرف على كل فئةٍ من الفئات. لذا، لو كانت أول ثمانيّة تقع بين 1 إلى 126، فإننا نتحدَّث عن الفئة A (Class A)، وإذا نظرنا إلى أوّل ثمانيّة ووجدناها تقع بين 128 و 191، فإننا نتحدث عن الفئة B؛ أما لو كان المجال بين 192 و 223، فإن الفئة هي C. لاحظ أن بعض الأرقام ناقصة مثل 127، الذي هو رقمٌ مجوزٌ لا يمكن إسناده للشبكات، ويُستخدَم في اختبار الاتصال إلى المضيف المحلّي عبر بطاقة loopback.
النتيجة الثانية هي أننا ما زلنا نتعامل مع عددٍ محدودٍ من البتات، أي كلما أسندنا المزيد من الثمانيّات إلى مُعرِّف الشبكة، كان عدد البتات المتبقية لاستخدامها للمضيفين أقل، والعكس صحيح. لو حجزت الفئة A أول بايت للشبكة وثلاثة بايتات للمضيفين، فسيكون عدد المضيفين كبيرًا لكن عدد الشبكات قليل.
تُوفِّر الفئة C مكانًا للمضيفين بعدد 254 كحدٍ أقصى؛ قد تُفاجَئ من ذلك ﻷن الفئة C تحجز ثمانيّة تحتوي 8 بتات للمضيفين، لكن 2 للقوة 8 (استنادًا إلى العمليات على الأعداد الثنائية) يعطي 256؛ لذا قد تظن أنك قادرٌ على الحصول على 256 عنوانًا صالحًا للاستخدام كعناوين للمضيفين في الشبكات ذات الفئة C، لكن هنالك بعض العناوين المحجوزة التي لا تستطيع إسنادها للأجهزة.
فئة عناوين IP
|
قيمة أول ثمانيّة بالنظام العشري
|
قيمة أول ثمانيّة بالنظام الثنائي
|
الحد الأقصى لعدد للمضيفين
|
الفئة A
|
1 - 126
|
00000001 إلى 01111110
|
16 777 214
|
الفئة B
|
128 – 191
|
10000000 إلى 10111111
|
65 534
|
الفئة C
|
192 - 223
|
11000000 إلى 11011111
|
254
|
تُمثِّل جميع الأصفار في قسم المضيف من عنوان IP الشبكةَ نفسها؛ على سبيل المثال، إذا كان لدي العنوان 10.0.0.0، فلا يمكن إسناد هذا العنوان إلى جهازٍ على الشبكة، حيث يُمثِّل الشبكة«10» نفسها؛ وبشكلٍ مشابهٍ، فإن الرقم 1 في قسم المضيف من العنوان هو عنوانٌ محجوزٌ أيضًا، حيث يمثِّل عنوان الإذاعة (broadcast) في تلك الشبكة. تُستخدم الإذاعة لإرسال معلومات إلى كل الأجهزة في الشبكة. ويمثِّل الرقم 1 في الثمانيّات عند تحويلها إلى النظام العشري الرقم 255؛ أي أنه على سبيل المثال، يمثِّل العنوانُ 200.1.1.255 عنوانَ الإذاعة في الشبكة «200.1.1». يُعتَبر هذا النوع من الإذاعة «إذاعةٌ موجَّهة» (directed broadcast) في تلك الشبكة؛ لكن أكبر عناوين الإذاعة هو عندما يملأ الرقم 1 جميع البتات؛ وهذا ما يُسمى «إذاعة محليّة»، ولا يمكن إعادة توجيه الإذاعات المحلية.
عناوين IP العامة
الإنترنت هي شبكة من الشبكات، وهي شبكة عامة شاملة تصل الأجهزة عالميًا ببعضها. وباتباع قواعد IP الأساسية، يجب أن تملك تلك الأجهزة عناوين IP فريدة عالميًا؛ قد يُسبِّب تكرار العناوين عدم استقرار الإنترنت؛ لأنه قد تصل البيانات إلى الوجهة الخطأ عندما يكون هنالك عناوين مكررة؛ أو قد يُسبِّب تكرار عنوان IP المصدر إلى حدوث اضطرابات في الوجهة. أنشَأت هيئة IANA مجالاتٍ لعناوين IP العامّة لكل فئة، وبهذا سنضمن عدم حدوث تكرار، وأنَّ كلَّ شيءٍ تحت السيطرة من هيئة مركزية لإسناد عناوين IP. فإذا أردت الحصول على عنوان IP عام على شبكة الإنترنت، فعليك التواصل مع IANA والتقدّم بطلبٍ رسمي؛ وحاليًا، يمكنك حجز العناوين عبر الهيئة المركزية وعبر هيئات موزَّعة في مناطق جغرافية مختلفة؛ فهيئة APNIC توزِّع عناوين IP لآسيا، و ARIN للأمريكيتَين، و RIPE لأوروبا.
عناوين IP الخاصة
بسبب وجود عدد هائل من الأجهزة في الشبكة العامة، فأصبح جليًّا أن 32 بتًا في عناوين IPv4 لن تكون كافيةً. IPv4 هو النسخة الحالية من IP والمتوفرة تجاريًا والتي تُستخدَم في الإنترنت؛ بدأت النسخة السادسة IPv6 بالانتشار في الآونة الأخيرة، وستُصبِح قريبًا النسخة المعيارية في الشبكات؛ ولكن ظهرت إلى ذاك الحين حلولٌ بديلةٌ للسماح للمزيد من الأجهزة بالحصول على عناوين IP دون الحاجة إلى أن تكون عامّة (public)؛ يُمكن أن تُستخدَم مجالات العناوين الخاصة المذكورة هنا للشبكات من فئات A وB و C؛ وستكون هذه العناوين مستقلّة عن الإنترنت ومن ثم يمكن تحويلها (translated) إلى عنوانٍ عام عندما تحتاج الرزم إلى الوصول إلى شبكة عامّة؛ ويمكن للأجهزة ذات العناوين الخاصة أن تصل إلى الشبكات العامة بالحصول على عنوان IP عام؛ وعملية التحويل هذه تُسمى NAT (network address translation)؛ ليس لمجالات العناوين الخاصة أي معنى في شبكة الإنترنت وليست قابلة للتوجيه في تلك الشبكة، وهذا يعني أن رزم IP المرتبطة بهذه العناوين كوجهة أو مصدر سيتم تجاهلها في موجهات الإنترنت؛ وقد عُرِّفَت هذه العناوين الخاصة في RFC 1918.
الفئة
|
مجال العناوين الخاص
|
A
|
من 10.0.0.0 إلى 10.255.255.255
|
B
|
من 172.16.0.0 إلى 172.31.255.255
|
C
|
من 192.168.0.0 إلى 192.168.255.255
|
DHCP
بعد أن تعلمت تصميم عناوين IP، يمكنك الآن حجز وإسناد وضبط عناوين IP على الأجهزة، ربما تتبع القواعد الأساسية، لنقل على سبيل المثال، سيكون لجميع الأجهزة في الشبكة 1 نفس معرِّف الشبكة، لكن مُعرِّفات المضيفين ستكون فريدةً؛ أصبحت عملية ضبط عناوين IP على جميع الأجهزة أمرًا مرهقًا وصعب الإدارة، وذلك اعتمادًا على عدد الأجهزة المتصلة بالشبكة؛ وهذه هو السبب الرئيسي وراء بروتوكولات مثل DHCP (بروتوكول ضبط المضيف الديناميكي [Dynamic Host Configuration Protocol])؛ يُستخدَم هذا البروتوكول لإسناد عناوين IP تلقائيًا دون تدخل بشري؛ إذ يَستخدِم خادمًا مركزيًا ليدير مجالاتٍ من عناوين IP لأجهزةٍ مختلفة؛ تؤجَّر (lease) عناوين IP إلى الأجهزة ويكون لها تاريخ صلاحية محدد يجب على الجهاز تجديده إن أراد الاحتفاظ بعنوان IP. تبدأ هذه الأجهزة اتصالها بالشبكة دون عنوان IP، ثم تطلب واحدًا من الخادوم؛ ويتم ذلك بسلسلةٍ من الرسائل المتبادلة بين العملاء والخواديم لحجز وإسناد عنوان IP.
DNS
بروتوكول آخر هو بروتوكول DNS (Domain Name System)؛ هذا تطبيقٌ مُحدَّدٌ في تجميعة TCP/IP؛ وهو موجود لأنه يساعدنا في تذكر عناوين الأجهزة بشكل أسهل؛ فعند الاتصال إلى جهازٍ معيّن، فإننا نتذكر اسم المضيف وليس علينا تذكر عنوان IP؛ فدور خدمة DNS هي تحويل أسماء المضيفين إلى عناوين IP؛ فعندما تكتب عنوان URL في متصفحك، مثل anonymouxminou.blogspot.com، فإن جهازك سيبحث عن خادوم DNS في الشبكة، ويطلب منه تحويل الاسم إلى عنوان IP، ويستلم المعلومات، ثم يستخدم العنوان الذي حصل عليه للاتصال بالجهاز.
ipconfig
يمكننا استخدام الأمر ipconfig في واجهة سطر الأوامر في أنظمة ويندوز لكي نراقِب ونتأكد من الضبط الشبكي؛ حيث يستطيع استئجار عنوان IP مع قناع الشبكة الفرعية (subnet mask)، والبوابة الافتراضية (default gateway)، وخواديم DHCP، وخواديم DNS، ومعلوماتٍ حول مدة صلاحية عناوين IP. يمكن إظهار جميع الضبط بالكلمة المفتاحية /all لأمر ipconfig؛ الكلمات المفتاحية الأخرى مثل /release لإطلاق عنوان IP من خادم DHCP، و /renew لتجديد مدة صلاحية عنوان IP، أو /? للحصول على مساعدة.