كي تتحدث الحواسيب معًا عبر الشبكات، لا بدّ من "لغة مشتركة" تضبط كيف تُنشأ الاتصالات، ومتى تُرسل البيانات، وبأي شكل تُفهم وتُؤمَّن. هذه اللغة هي البروتوكولات (Protocols).
وبالموازاة، نحتاج لفهم وحدات قياس البيانات والسرعات حتى نقرأ مواصفات الشبكات ونقيّم الأداء بشكل صحيح.
نصيحة تعليمية: تخيل البروتوكولات كقواعد اللغة التي يتحدث بها الأشخاص. بدونها، لا يمكن لأحد أن يفهم الآخر. ووحدات القياس كالعملة المتفق عليها، لتعرف قيمة ما يتم تبادله.
أهداف الوحدة
بنهاية هذه الوحدة سيكون المتدرب قادرًا على:
تعريف مفهوم البروتوكول وبيان أهميته في الاتصالات الشبكية.
شرح الأفكار الأساسية في حزمة TCP/IP والتفريق بين TCP وIP بإيجاز.
وصف بروتوكولات التطبيق الشائعة: HTTP/HTTPS، FTP.
توضيح دور SSL/TLS في التشفير والتحقق من الهوية وسلامة البيانات.
تحويل وحدات السرعة بين بت/ثانية وبايت/ثانية، والتمييز بين Mbps وMB/s.
تقدير زمن نقل ملف عبر وصلة شبكية، مع معرفة الفرق بين Bandwidth وThroughput وLatency وJitter.
ما هو البروتوكول؟ ولماذا هو مهم؟
البروتوكول (Protocol): هو مجموعة قواعد واتفاقيات تحدد شكل الرسالة، ترتيب الخطوات، كيفية البدء والإغلاق، وكيفية معالجة الأخطاء أثناء الاتصال بين جهازين أو أكثر في الشبكة.
الأهمية:
التوافقية (Interoperability): تمكّن أجهزة أو أنظمة من مصنّعين مختلفين من التواصل وفهم بعضها البعض، تمامًا كاللغة العالمية.
الموثوقية (Reliability): تحدد آليات اكتشاف الأخطاء، تصحيحها، وإعادة إرسال البيانات المفقودة أو التالفة لضمان وصولها بشكل سليم.
الأمن (Security): في بعض البروتوكولات (أو عند استخدامها مع طبقات أمنية)، تحدد طرق التحقق من الهوية والتشفير لحماية البيانات.
لمحة عن حزمة TCP/IP
تعتبر حزمة TCP/IP العمود الفقري للإنترنت ومعظم الشبكات الحديثة. تبسيطًا، يمكن التفكير فيها كطبقات أو وظائف تعمل معًا لتمكين الاتصال.
4.1 IP – بطاقات العناوين والمسارات
IP (Internet Protocol): هو المسؤول عن تحديد العناوين المنطقية للأجهزة (مثل IPv4 و IPv6) ويهتم بتوجيه حزم البيانات (Packets) بين الشبكات المختلفة.
خصائص: يقدم خدمة "أفضل جهد" (Best Effort) أي أنه لا يضمن وصول الحزم ولا يضمن ترتيب وصولها. لذلك، نحتاج إلى بروتوكول نقل يضيف الموثوقية (مثل TCP) فوق IP.
4.2 TCP – الموثوقية وترتيب البيانات
TCP (Transmission Control Protocol): يوفر اتصالاً موثوقًا وموجهًا نحو الاتصال (Connection-Oriented). يُستخدم عندما يكون ضمان وصول البيانات وترتيبها أمرًا حاسمًا.
أهم الآليات:
المصافحة الثلاثية (3-Way Handshake): (SYN → SYN/ACK → ACK) لإنشاء اتصال موثوق قبل بدء نقل البيانات.
الأرقام التسلسلية والإقرار (Sequence & ACK Numbers): لضمان تسليم البيانات بالترتيب الصحيح ولتأكيد استلام الأجزاء المختلفة من البيانات.
إعادة الإرسال والتحكم في الازدحام (Retransmission & Congestion Control): يتم إعادة إرسال البيانات التي لم يتم الإقرار باستلامها. كما يتحكم TCP في معدل إرسال البيانات لتجنب إغراق الشبكة بالازدحام.
💡 TCP vs UDP (للمعرفة العامة):
TCP: موثوق، يضمن الترتيب، أبطأ نسبيًا. مناسب للتطبيقات التي تتطلب دقة كاملة مثل تصفح الويب، البريد الإلكتروني، ونقل الملفات.
UDP: غير موثوق (لا يضمن الوصول أو الترتيب)، بدون اتصال، أسرع. مناسب للتطبيقات التي تفضل السرعة على الدقة الكاملة، مثل البث المباشر للفيديو والصوت، والألعاب عبر الإنترنت، واستعلامات DNS.
بروتوكولات تطبيق شائعة
5.1 HTTP وHTTPS
HTTP (HyperText Transfer Protocol): هو بروتوكول الطبقة التطبيقية المستخدم لتبادل صفحات الويب والبيانات عبر الإنترنت. يعمل عادةً فوق TCP على المنفذ 80.
HTTPS: هو ببساطة HTTP مغلَّف داخل قناة اتصال مؤمّنة بواسطة TLS (Transport Layer Security)، والذي كان يُعرف سابقًا بـ SSL (Secure Sockets Layer). يعمل عادةً على المنفذ 443.
سمات مهمة:
طرائق HTTP (Methods): تحدد الإجراء المطلوب على المورد. أمثلة: GET (لقراءة البيانات)، POST (لإرسال/إنشاء بيانات)، PUT/PATCH (لتعديل البيانات)، DELETE (لحذف البيانات).
أكواد الاستجابة (Status Codes): أرقام تُرسل من الخادم لبيان حالة الطلب. أمثلة: 200 OK (نجاح)، 301/302 (إعادة توجيه)، 404 Not Found (المورد غير موجود)، 500 Internal Server Error (خطأ داخلي بالخادم).
5.2 FTP
FTP (File Transfer Protocol): بروتوكول لنقل الملفات بين عميل وخادم. يعمل فوق TCP ويستخدم منفذين عادةً: منفذ للتحكم ومنفذ للبيانات.
وضعان للتشغيل:
Active Mode: الخادم يبدأ اتصال البيانات عائدًا إلى منفذ يحدده العميل.
Passive Mode: العميل يبدأ اتصال البيانات بمنفذ يفتحه الخادم (أسهل في التعامل مع جدران الحماية Firewalls).
ملاحظات أمنية: FTP التقليدي ينقل البيانات وكلمات المرور بنص واضح (غير مُشفّر)، مما يجعله غير آمن للمعلومات الحساسة. البدائل الآمنة هي FTPS (FTP over TLS/SSL) أو SFTP (Secure File Transfer Protocol) الذي ينقل الملفات عبر SSH وليس امتدادًا لـFTP.
SSL/TLS – الأمان في الشبكات
SSL (Secure Sockets Layer) و TLS (Transport Layer Security) (والذي هو الإصدار الأحدث والأكثر أمانًا من SSL) هما بروتوكولا تشفير يقعان بين طبقة التطبيق وطبقة النقل.
الغاية:
تشفير الاتصال: لجعل البيانات غير قابلة للقراءة لأي طرف يتنصت.
التحقق من الهوية (Authentication): التأكد من هوية الخادم (وفي بعض الحالات العميل) باستخدام الشهادات الرقمية.
ضمان سلامة الرسائل (Integrity): التأكد من أن البيانات لم يتم تعديلها أثناء النقل.
الفكرة الأساسية لبدء جلسة TLS (TLS Handshake):
يتفق الطرفان (العميل والخادم) على مجموعة التعمية (Cipher Suite) التي سيستخدمونها للتشفير.
يتحقق العميل من شهادة الخادم الرقمية للتأكد من هويته وموثوقيته.
يتبادل الطرفان المفاتيح بشكل آمن لبناء قناة مشفرة متناظرة سريعة.
النتيجة: أي بيانات لاحقة (مثل HTTP) تنتقل داخل "نفق" آمن ومشفر. هذا ما يجعل HTTPS آمنًا.
⚠️ تذكّر: "SSL" مصطلح قديم وقديم في الواقع العملي (تم اكتشاف ثغرات فيه). الممارسات الحديثة تشير دائمًا إلى TLS (بإصداراته الأحدث مثل TLS 1.2, TLS 1.3) فهي أكثر أمانًا وتطورًا.
وحدات قياس البيانات والسرعة
7.1 وحدات السعة (حجم البيانات)
Bit (b): أصغر وحدة للبيانات في الحاسوب (إما 0 أو 1).
Byte (B): مجموعة من 8 Bits. وهو الوحدة الأساسية المستخدمة لقياس حجم الملفات والتخزين.
الكِبَر (تقريبًا بنظام عشري في عالم الشبكات، بناءً على قوى 1000):
1 kB (كيلوبايت) $\approx 1,000 \text{ B}$
1 MB (ميجابايت) $\approx 1,000,000 \text{ B}$
1 GB (جيجابايت) $\approx 1,000,000,000 \text{ B}$
ملاحظة: في مجال التخزين (مثل أقراص التخزين)، قد تستخدم وحدات ثنائية (بناءً على قوى 1024) مثل KiB (كيلوبايت ثنائي، $1024 \text{ B}$)، MiB (ميجابايت ثنائي، $1024^2 \text{ B}$)، GiB (جيجابايت ثنائي، $1024^3 \text{ B}$).
7.2 وحدات السرعة (معدل النقل)
bps = bits per second (بت/ثانية): الوحدة الأساسية لقياس معدل نقل البيانات في الشبكات.
Kbps, Mbps, Gbps: مضاعفات لـ bps تعني بالترتيب: ألف، مليون، مليار بت في الثانية.
Bandwidth (سعة القناة / عرض النطاق): هو أقصى معدل نظري لتمرير البيانات عبر وصلة شبكية في فترة زمنية معينة. يمثل "أقصى سعة" يمكن للوصلة تحملها (مثل حجم الأنبوب).
Throughput (المُنجَز / المحمول الفعلي): هو معدل نقل البيانات الفعلي الذي يصل إلى التطبيق أو المستخدم. يكون دائمًا أقل من Bandwidth بسبب عوامل مثل ترويسات البروتوكولات (Overhead)، الازدحام (Congestion)، وفواقد الحزم (Packet Loss).
Latency (الكمون / التأخير): هو الزمن الذي تستغرقه حزمة البيانات للانتقال من نقطة إلى أخرى (يُقاس عادةً بالملّي ثانية ms). يمكن أن يكون زمن ذهاب وإياب (Round-Trip Time - RTT) أو زمن في اتجاه واحد (One-Way Latency).
Jitter (تذبذب الكمون): هو التباين أو الاختلاف في التأخير بين وصول حزم البيانات المتتالية. يعد Jitter عاملاً مهمًا جدًا في جودة تطبيقات الزمن الحقيقي مثل الاتصالات الصوتية (VoIP) والفيديو عبر الإنترنت، حيث يمكن أن يسبب تقطيعًا أو عدم وضوح.
أمثلة حسابية عملية
المثال (1): تحويل السرعة
إذا كان لديك اتصال إنترنت بسرعة 100 Mbps (ميجابت في الثانية) → كم تعادل هذه السرعة بـ MB/s (ميجابايت في الثانية)؟
الحل:
بما أن $1 \text{ Byte} = 8 \text{ bits}$، نقسم السرعة بالبت على 8 لتحويلها إلى بايت:
$$100 \text{ Mbps} \div 8 = 12.5 \text{ MB/s}$$
المثال (2): تقدير زمن نقل ملف
لنفترض أن لديك ملف حجمه 1.5 GB (جيجابايت) وتريد نقله عبر وصلة إنترنت بسرعة 50 Mbps (ميجابت في الثانية). أهمل الفواقد (Overhead) والازدحام (Congestion) للتبسيط.
الحل:
حوّل حجم الملف من GB إلى Mb (ميجابت):
هنا نستخدم التقريب العشري الشائع في عالم الشبكات للتحويل من جيجا بايت إلى ميجا بايت ($1 \text{ GB} \approx 1000 \text{ MB}$):
إذا كانت سرعة التحميل المعروضة في متصفحك أو برنامج التنزيل هي 6.25 MB/s (ميجابايت في الثانية)، فكم تعادل هذه السرعة بوحدة الـ Mbps (ميجابت في الثانية) التي عادةً ما يعلن عنها مزودو خدمة الإنترنت؟
الحل:
نضرب السرعة بالبايت في 8 لتحويلها إلى بت:
$$6.25 \text{ MB/s} \times 8 = 50 \text{ Mbps}$$
💡 ملاحظة هامة: في الواقع العملي، سيكون زمن نقل الملف أطول قليلاً من التقديرات الحسابية البسيطة. وذلك بسبب: ترويسات البروتوكولات الإضافية (مثل رؤوس TCP/IP)، الازدحام في الشبكة، وإعادة إرسال الحزم المفقودة أو التالفة. هذه العوامل تجعل الـ Throughput (المعدل الفعلي) دائمًا أقل من الـ Bandwidth (السعة النظرية).
جداول ملخصة
9.1 بروتوكولات شائعة وطبقاتها
البروتوكول
الطبقة المفاهيمية (نموذج TCP/IP)
الاستخدام الرئيسي
IP
الشبكة (Network)
العنونة المنطقية وتوجيه الحزم بين الشبكات.
TCP
النقل (Transport)
اتصال موثوق وموجه نحو الاتصال، يضمن ترتيب وسلامة البيانات.
UDP
النقل (Transport)
اتصال غير موثوق وبدون اتصال، سريع ومناسب للتدفق.
HTTP
التطبيق (Application)
بروتوكول أساسي للويب ونقل صفحات الويب والواجهات.
HTTPS
التطبيق (+ أمان عبر TLS)
نسخة آمنة من HTTP، تستخدم TLS لتشفير القناة والتحقق من الهوية.
FTP
التطبيق (Application)
نقل الملفات بين الخادم والعميل (غير آمن).
FTPS/SFTP
التطبيق (+ أمان عبر TLS/SSH)
نقل الملفات بشكل آمن ومُشفر.
TLS
بين النقل والتطبيق
تشفير القناة، التحقق من الهوية، وضمان سلامة البيانات (لاحقًا لـ SSL).
9.2 تحويلات سريعة
من → إلى
القاعدة
مثال
Mbps → MB/s
اقسم على 8
100 Mbps / 8 = 12.5 MB/s
MB/s → Mbps
اضرب × 8
12.5 MB/s × 8 = 100 Mbps
GB → Mb
GB × 1000 × 8 (تقريب عشري شبكي)
1 GB = 1000 MB = 8000 Mb
MB → kb (كيلوبت)
MB × 8 × 1000
1 MB = 8000 kb
أخطاء شائعة يجب تجنبها
الخلط بين Mb وMB: تذكر دائمًا أن b الصغيرة تعني بت، و B الكبيرة تعني بايت. الفارق 8 أضعاف!
اعتبار Bandwidth = Throughput: الـ Bandwidth هو السعة القصوى النظرية (مثل عرض الطريق)، بينما الـ Throughput هو الأداء الفعلي (عدد السيارات التي تمر فعلاً)، وهو دائمًا أقل أو يساوي Bandwidth.
الظن أن HTTPS هو بروتوكول مستقل: هو ليس بروتوكولًا منفصلاً عن HTTP، بل هو HTTP يعمل داخل قناة آمنة يوفرها بروتوكول TLS.
استخدام FTP لنقل ملفات حساسة دون تشفير: FTP التقليدي غير آمن. استخدم دائمًا FTPS أو SFTP للملفات التي تحتوي على معلومات حساسة.
أنشطة وتمارين
تمارين قصيرة:
تمرين 1: حوِّل 200 Mbps إلى MB/s.
تمرين 2: كم يستغرق رفع ملف حجمه 700 MB عبر وصلة 20 Mbps (تقريبيًا، أهمل الفواقد)؟
تمرين 3: اذكر اختلافين رئيسيين بين TCP وUDP من حيث الموثوقية والضمانات.
تمرين 4: لماذا نحتاج إلى TLS فوق HTTP؟ وما هو المنفذ الذي يستخدمه HTTPS عادةً؟
نشاط عملي (مقترح):
نشاط 1:
استخدم برنامج تحليل الحزم مثل Wireshark لالتقاط جلسة تصفح ويب عادية (HTTP) ثم جلسة آمنة (HTTPS). لاحظ الفارق في إمكانية قراءة المحتوى المعروض في Wireshark في كلتا الحالتين.
نشاط 2:
إذا كان لديك إمكانية الوصول إلى خادم FTP وخادم يدعم FTPS/SFTP، جرّب تنزيل ملف صغير عبر FTP أولاً ثم عبر FTPS/SFTP. لاحظ رسائل التفاوض على القناة المؤمّنة (إذا كان Wireshark مفتوحًا) وكيف تختلف طريقة نقل البيانات.
مواد إثرائية
لتعميق فهمك، نوصي بالمصادر التالية:
دليل مبسط: ابحث عن "شرح حزمة TCP/IP للمبتدئين" لمراجعة مفاهيمها الأساسية والشروحات المرئية.
دروس تأسيسية: دروس من أكاديمية Cisco NetAcad حول "البروتوكولات وطبقات الشبكات" توفر شرحًا تفصيليًا.
أدوات عملية:
Wireshark: أداة قوية لتحليل حزم الشبكة والتعرف على عمل البروتوكولات.
curl: أداة سطر أوامر لاختبار طلبات HTTP/HTTPS.
iperf: أداة لقياس أداء الشبكة (Bandwidth, Throughput, Jitter).
التقييم المقترح
اختبار قصير: يتضمن أسئلة متعددة الخيارات ومطابقة حول مفاهيم البروتوكولات، تحويل وحدات السرعة، وأسئلة سيناريوهات بسيطة لتحديد البروتوكول المناسب.
واجب منزلي: تقرير من صفحة واحدة يشرح لماذا تقل السرعة الفعلية التي يحصل عليها المستخدم (Throughput) عن السرعة الاسمية للوصلة (Bandwidth)، مع ذكر أمثلة رقمية توضيحية لآثار (Overhead / Latency / Loss).
المدة الزمنية المقترحة
لإكمال هذه الوحدة بفاعلية، يُقترح تخصيص 6–8 ساعات تدريبية (تشمل المحاضرات، التطبيقات العملية، والتقييم).