تمارين الشبكات: Bit Rate وزمن النقل وBinary وHex مع الحلول

مشاركة

تحتاج مسائل الشبكات إلى أكثر من حفظ القوانين؛ فالخطأ في تحويل Byte إلى Bit أو الخلط بين Mb/s وMB/s قد يجعل الإجابة خاطئة بالكامل. في هذه التمارين ستتدرب على حساب زمن الإرسال، تحويل معدلات النقل، والانتقال بين Decimal وBinary وHexadecimal، ثم ربط هذه المهارات بعناوين IPv4 وSubnet Masks.

تمارين الشبكات: Bit Rate وزمن النقل وBinary وHex مع الحلول

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

القواعد التي تحتاجها قبل حل التمارين

أهم قاعدة في مسائل زمن الإرسال هي:

Transmission Delay = Number of Bits / Link Rate

أي:

T = L / R

  • T: زمن وضع البيانات على الرابط بالثواني.
  • L: حجم البيانات بالـBits.
  • R: معدل الرابط بالـBits per second.

هذا الحساب يعطي Transmission Delay أو Serialization Delay، وليس زمن الوصول الكامل بين جهازين. فالـLatency الفعلية قد تشمل أيضًا Propagation Delay وProcessing Delay وQueuing Delay. ويمكن فهم موقع معدل النقل والإشارة بصورة أعمق في شرح Physical Layer في نموذج OSI.

Bit وByte وMb/s وMB/s

الرمز المعنى
bit أو b Bit واحدة
Byte أو B 8 Bits
Mb/s Megabits per second
Gb/s Gigabits per second
MB Megabytes

1 Byte = 8 Bits، لذلك لا يجوز التعامل مع ملف حجمه 100 MB وكأنه 100 Mb.

في مسائل معدلات الشبكات نستخدم عادة البادئات العشرية؛ أي إن Mega تساوي 106 وGiga تساوي 109، وهو ما توضحه بادئات النظام الدولي للوحدات SI لدى BIPM. عندما يكون المقصود MiB أو GiB سنذكر ذلك صراحة لأن الحساب يختلف قليلًا.

تمرين 1: حساب Transmission Delay لحزمة

Packet حجمها 12,000 Bit تمر عبر رابط سرعته 100 Mb/s. ما زمن الإرسال؟

الحل

نحوّل سرعة الرابط إلى Bits per second:

100 Mb/s = 100,000,000 bit/s

ثم نطبق القانون:

T = 12000 / 100000000

T = 0.00012 s

وبالمللي ثانية:

0.00012 × 1000 = 0.12 ms

الإجابة: 0.12 ms.

تمرين 2: Frame بحجم 1500 Byte على رابط 1 Gb/s

نريد حساب الزمن النظري لإرسال 1500 Byte عبر رابط سرعته 1 Gb/s، مع اعتبار 1500 Byte فقط ودون إضافة أي Overhead آخر.

الحل

أولًا نحول Bytes إلى Bits:

1500 × 8 = 12000 bit

ثم:

T = 12000 / 1000000000

T = 0.000012 s

أي:

12 µs

الإجابة: 12 ميكروثانية.

انتبه إلى أن السؤال حدد 1500 Byte فقط. عند حساب ما ينتقل فعليًا على Ethernet قد تدخل عناصر أخرى في الحساب بحسب ما تقيسه تحديدًا. يمكنك مراجعة بنية Ethernet Frame وحقولها لفهم الفرق بين Payload والإطار وبقية المعلومات المرتبطة بالإرسال.

تمرين 3: كم يستغرق إرسال ملف حجمه 100 MB؟

ملف حجمه 100 MB يُرسل عبر رابط ثابت قدره 100 Mb/s. تجاهل Overhead وكل الاختناقات الأخرى، واستخدم في هذا التمرين:

1 MB = 1,000,000 Bytes

الحل

نحوّل حجم الملف من Bytes إلى Bits:

100 MB × 8 = 800 Mb

ثم:

800 Mb / 100 Mb/s = 8 s

الإجابة النظرية: 8 ثوانٍ.

هذه ليست بالضرورة مدة التنزيل التي ستشاهدها في الواقع، لأن السرعة الفعلية قد تتأثر بالبروتوكولات والازدحام والخادم وشبكة Wi-Fi ومعدل Throughput المحقق وعوامل أخرى.

تمرين 4: ماذا لو كان الحجم 100 MiB بدل 100 MB؟

لدينا الآن ملف حجمه 100 MiB ورابط بسرعة 100 Mb/s.

الحل

100 MiB = 100 × 1024 × 1024 Bytes

نحوّل إلى Bits:

100 × 1024 × 1024 × 8 = 838,860,800 bit

ثم:

838860800 / 100000000 = 8.388608 s

الإجابة: نحو 8.39 ثانية.

لذلك يجب قراءة وحدة حجم الملف بدقة قبل بدء الحساب. 100 MB و100 MiB ليستا القيمة نفسها.

تمرين 5: ملف 25 MB على اتصال 50 Mb/s

كم يستغرق إرسال ملف حجمه 25 MB على رابط 50 Mb/s في الظروف النظرية؟

الحل

25 MB × 8 = 200 Mb

ثم:

200 Mb / 50 Mb/s = 4 s

الإجابة: 4 ثوانٍ.

تمرين 6: ما السرعة المطلوبة لإرسال 600 MB خلال 30 ثانية؟

هذه المرة نعرف حجم البيانات والزمن المطلوب، ونريد إيجاد معدل النقل النظري الأدنى.

الحل

نحوّل الحجم إلى Megabits:

600 MB × 8 = 4800 Mb

ثم نقسم على الزمن:

4800 Mb / 30 s = 160 Mb/s

الإجابة النظرية: 160 Mb/s.

عمليًا ستحتاج عادة إلى Link Rate أعلى من ذلك إذا كنت تريد تحقيق 160 Mb/s من البيانات المفيدة بصورة مستمرة، لأن الاتصال الحقيقي لا يتكون من محتوى الملف وحده.

تمرين 7: Link Rate أم Throughput؟

بطاقة شبكة تعمل اسميًا بسرعة 1 Gb/s، لكن اختبارًا معينًا أظهر معدل نقل فعليًا قدره 720 Mb/s. أي الرقمين يمثل Link Rate وأيهما يمثل المعدل المحقق في الاختبار؟

الحل

  • 1 Gb/s: السرعة الاسمية للرابط في هذا المثال.
  • 720 Mb/s: معدل النقل المحقق أثناء الاختبار.

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

720 / 1000 × 100 = 72%

أي أن الاختبار حقق ما يعادل 72% من الرقم الاسمي.

لكن لا تسمِّ هذه النسبة تلقائيًا «كفاءة البروتوكول»، لأن الفرق قد ينتج عن عدة عوامل وليس Protocol Overhead وحده. كما أن كلمة Throughput تملك تعريفات أكثر تحديدًا في منهجيات القياس؛ فمثلًا يعرف RFC 1242 Throughput في سياق Benchmarking أجهزة الشبكات وفق شروط قياس محددة.

تمرين 8: هل رفع Bandwidth يلغي Latency؟

تم ترقية رابط من 100 Mb/s إلى 1 Gb/s. هل يعني ذلك أن زمن الوصول بين الطرفين سينخفض دائمًا بنسبة 90%؟

الحل

لا. زيادة Link Rate تقلل الزمن المطلوب لعمل Serialization للبيانات على الرابط، لكنها لا تجعل كل مكونات Latency أصغر بالنسبة نفسها.

يمكن أن يبقى التأخير متأثرًا بـ:

  • Propagation Delay.
  • Queuing Delay.
  • Processing Delay.
  • عدد المسارات والقفزات بين الطرفين.
  • ازدحام أجزاء أخرى من الشبكة.
  • الخادم أو التطبيق نفسه.

لذلك Bandwidth وLatency مفهومان مرتبطان بأداء الشبكة، لكنهما ليسا الشيء نفسه.

تمرين 9: تحويل Decimal إلى Binary

حوّل العدد 192 من Decimal إلى Binary.

الحل

نستخدم قيم الخانات الثمانية:

128 64 32 16 8 4 2 1

العدد 192 يساوي:

192 = 128 + 64

إذن:

192 = 11000000

الإجابة: 11000000.

تمرين 10: تحويل Binary إلى Decimal

حوّل العدد التالي إلى Decimal:

10101100

الحل

نضع كل Bit أمام قيمته:

128 64 32 16 8 4 2 1

1 0 1 0 1 1 0 0

نجمع الخانات التي تحتوي على 1:

128 + 32 + 8 + 4 = 172

الإجابة: 172.

تمرين 11: تحويل Hexadecimal إلى Decimal

ما قيمة FF بالنظام العشري؟

الحل

في Hexadecimal:

F = 15

ولأن العدد يتكون من خانتين:

FF = (15 × 16) + 15

FF = 240 + 15 = 255

الإجابة: 255.

تمرين 12: تحويل Hex إلى Binary

حوّل A7 إلى Binary.

الحل

كل خانة Hexadecimal تقابل أربع Bits:

A = 1010

7 = 0111

نجمعهما:

A7 = 10100111

الإجابة: 10100111.

ويمكن التأكد أيضًا من القيمة العشرية:

(10 × 16) + 7 = 167

تمرين 13: Binary وDecimal وHex في سؤال واحد

لدينا:

11111111

حوّله إلى Decimal ثم Hexadecimal.

الحل

كل الخانات الثمانية تساوي 1:

128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

إذن القيمة العشرية هي:

255

و255 في Hexadecimal:

FF

إذن:

11111111 = 255 = FF

هذه العلاقة ستقابلها كثيرًا عند دراسة عناوين الشبكات والـSubnet Masks.

تمرين 14: تحويل عنوان IPv4 إلى Binary

حوّل عنوان IPv4 التالي إلى Binary:

192.168.10.25

الحل

يتكون عنوان IPv4 من أربع Octets، وكل Octet يحتوي على 8 Bits. ويحدد RFC 791 عناوين IPv4 بطول أربعة Octets، أي 32 Bit.

نحوّل كل جزء بصورة مستقلة:

192 = 11000000

168 = 10101000

10 = 00001010

25 = 00011001

إذن:

192.168.10.25

يصبح:

11000000.10101000.00001010.00011001

تمرين 15: ما Prefix الخاص بالـSubnet Mask؟

لدينا Subnet Mask:

255.255.255.192

حوّلها إلى Binary وحدد CIDR Prefix.

الحل

255 = 11111111

255 = 11111111

255 = 11111111

192 = 11000000

إذن القناع هو:

11111111.11111111.11111111.11000000

عدد Bits المتتالية التي تساوي 1 هو:

8 + 8 + 8 + 2 = 26

إذن:

255.255.255.192 = /26

الإجابة: /26.

هذا التمرين هو الحد الذي تبدأ عنده حسابات العنونة الفعلية. إذا أردت حساب Network Address وBroadcast وعدد Hosts والنطاقات، انتقل إلى شرح Subnetting وحساب Subnet Mask وCIDR بدل تكرار تلك الحسابات هنا.

تمرين 16: لماذا نحتاج Hexadecimal في الشبكات؟

حوّل القيمة Hexadecimal التالية إلى Binary وDecimal:

2F

الحل

نبدأ بالـBinary:

2 = 0010

F = 1111

إذن:

2F = 00101111

وللتحويل إلى Decimal:

(2 × 16) + 15 = 47

إذن:

2F = 00101111 = 47

Hexadecimal مفيد لأنه يمثل كل أربع Bits بخانة واحدة، ولذلك يصبح أكثر اختصارًا من كتابة سلاسل Binary طويلة. ومن التطبيقات الشبكية الواضحة لذلك IPv6؛ إذ تستخدم الصيغة النصية القياسية مجموعات من الأرقام السداسية العشرية كما يوضح RFC 4291 الخاص بعنونة IPv6.

تمرين 17: إرسال 1500 Byte عبر أربعة روابط

لدينا 1500 Byte يجب إرسالها عبر أربعة روابط متتالية، سرعة كل واحد منها 100 Mb/s. افترض للتبسيط أن كل رابط يجب أن يرسل كامل هذه البيانات وأننا نتجاهل Propagation وProcessing وQueuing وأي Overhead إضافي. ما مجموع أزمنة Serialization على الروابط الأربعة؟

الحل

أولًا:

1500 × 8 = 12000 bit

زمن الإرسال على رابط واحد:

12000 / 100000000 = 0.00012 s

أي:

0.12 ms

لأربعة روابط وفق افتراض السؤال:

0.12 × 4 = 0.48 ms

الإجابة: 0.48 ms من Serialization Delay فقط.

لا يصح اعتبار 0.48 ms زمن الوصول الكامل، لأن السؤال استبعد عمدًا بقية أنواع التأخير.

تمرين 18: هل ملف 1 GB يحتاج ثانية واحدة على 1 Gb/s؟

لديك ملف حجمه 1 GB ورابط بسرعة 1 Gb/s. استخدم الوحدات العشرية وتجاهل كل Overhead. هل يحتاج الملف ثانية واحدة فقط؟

الحل

لا. السبب هو أن GB تقيس Bytes بينما Gb/s تقيس Bits في الثانية.

1 GB = 8 Gb

إذن:

8 Gb / 1 Gb/s = 8 s

الإجابة النظرية: 8 ثوانٍ.

هذا من أكثر الأخطاء شيوعًا في مسائل الشبكات: رؤية الرقم 1 في الجانبين وتجاهل الفرق بين Byte وBit.

اختبر نفسك دون النظر إلى الحل

  1. كم يستغرق إرسال 10 MB على رابط 20 Mb/s في الظروف النظرية؟
  2. حوّل 11110000 إلى Decimal وHexadecimal.
  3. حوّل العدد 128 إلى Binary في 8 Bits.
  4. كم Bit توجد في 2500 Byte؟
  5. ما الزمن النظري لإرسال 20,000 Bit عبر رابط 10 Mb/s؟
  6. حوّل C8 من Hexadecimal إلى Decimal.
  7. إذا كان Link Rate يساوي 500 Mb/s والاختبار حقق 350 Mb/s، فما نسبة المعدل المحقق إلى الرقم الاسمي؟

الإجابات

  1. 10 MB × 8 = 80 Mb → 80 / 20 = 4 s
  2. 11110000 = 240 = F0
  3. 128 = 10000000
  4. 2500 × 8 = 20000 bit
  5. 20000 / 10000000 = 0.002 s = 2 ms
  6. C8 = (12 × 16) + 8 = 200
  7. 350 / 500 × 100 = 70%

أخطاء شائعة في تمارين الشبكات

  • نسيان التحويل من Byte إلى Bit: اضرب عدد Bytes في 8 قبل القسمة على معدل مقاس بـbit/s.
  • الخلط بين Mb/s وMB/s: الحرف الصغير b يعني Bit والكبير B يعني Byte.
  • عدم توحيد الوحدات: لا تقسم MB مباشرة على Mb/s دون إجراء التحويل المناسب.
  • الخلط بين Transmission Delay والـLatency الكلية: معادلة L/R تحسب زمن Serialization وليست كل تأخيرات المسار.
  • اعتبار Link Rate مساويًا دائمًا لسرعة نقل الملف: المعدل الاسمي للرابط لا يضمن أن التطبيق سيحصل على الرقم نفسه.
  • إهمال الأصفار في Binary: عند تمثيل Octet من IPv4 نكتب 8 Bits كاملة، لذلك 10 تصبح 00001010 وليس 1010 فقط عند كتابة العنوان بالثنائي.
  • استخدام 1024 و1000 دون معرفة وحدة السؤال: التزم بالتعريف المحدد في المسألة، خصوصًا عند التمييز بين MB وMiB.

الخلاصة

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

وفي أنظمة العد، احفظ قيم الخانات بدل حفظ التحويلات نفسها. فهم العلاقة بين 8 Bits وOctet، وبين أربع Bits وخانة Hexadecimal واحدة، سيجعل قراءة IPv4 وSubnet Masks وIPv6 أسهل كثيرًا عندما تنتقل إلى موضوعات الشبكات المتقدمة.

شارك برأيك

لديك إضافة، سؤال أو تجربة مرتبطة بالموضوع؟ اكتبها وشارك بها القراء.