شرح مادة CPCS 371 شبكات الحاسب 1 - جامعة الملك عبدالعزيز

فريق زدني فريق زدني 16 مارس 2026
15 دقيقة للقراءة
شرح مادة CPCS 371 شبكات الحاسب 1 - جامعة الملك عبدالعزيز

مادة CPCS 371، شبكات الحاسب 1 (Computer Networks I). هي واحدة من أهم المواد في خطة قسم علوم الحاسب بكلية الحاسبات وتقنية المعلومات (FCIT) بجامعة الملك عبدالعزيز. كثير من الطلاب يدخلون هذه المادة وعندهم تصور إنها مجرد حفظ بروتوكولات وأرقام، ويطلعون منها بفهم مختلف تماما: الشبكات هي العمود الفقري لكل تطبيق تستخدمه يوميا، من واتساب والتيك توك لحد الحوسبة السحابية والذكاء الاصطناعي.

الكتاب المعتمد هو Computer Networking: A Top-Down Approach لـ James Kurose و Keith Ross، وهو من أفضل كتب الشبكات في العالم لسبب وجيه: يبدأ من ما تراه المستخدم (المتصفح، البريد الإلكتروني) وينزل تدريجيا حتى يوصل للأسلاك والإشارات. هذا المنهج يخليك تفهم الصورة الكاملة قبل ما تغرق في التفاصيل.

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

📋 ملخص سريع

  • رمز المادة: CPCS 371، شبكات الحاسب 1 (Computer Networks I)
  • الساعات المعتمدة: 3 ساعات نظري
  • المتطلب السابق: CPCS 214 (أنظمة التشغيل)
  • المستوى: المستوى الخامس أو السادس (السنة الثالثة أو الرابعة)
  • الكتاب المقرر:Computer Networking: A Top-Down Approach”، Kurose & Ross
  • المواضيع الرئيسية: نماذج الطبقات، طبقة التطبيقات، TCP وUDP، بروتوكول IP والتوجيه، الطبقة الفيزيائية وطبقة ربط البيانات، أمن الشبكات
  • يقود إلى: مواد الشبكات المتقدمة، الحوسبة السحابية، أمن المعلومات

ليش مادة CPCS 371 مهمة؟

قبل ما ندخل في تفاصيل المادة، خلنا نفهم ليش هي أساسية جدا في مسارك:

  • كل شيء حولك يعمل بالشبكات: تطبيقات الجوال، الألعاب الإلكترونية، بث الفيديو، الذكاء الاصطناعي، كلها تعتمد على بروتوكولات تتعلمها في هذه المادة
  • سوق العمل يطلبها: مهندسو الشبكات وهندسة الأنظمة ومهندسو السحابة يحتاجون هذه المفاهيم يوميا
  • أساس لمواد متقدمة: أمن المعلومات، الشبكات اللاسلكية، الحوسبة السحابية، كلها تبني على CPCS 371
  • تفهم كيف يشتغل الإنترنت فعليا: وليس مجرد “اتصل بالواي فاي وانتهى”

المادة تعتمد على ما تعلمته في أنظمة التشغيل خصوصا في موضوع العمليات (Processes) والمنافذ (Ports).

نظرة عامة على مادة CPCS 371

المادة تتوزع على 15 أسبوع تقريبا وتتبع منهج الكتاب من الأعلى للأسفل (Top-Down):

الأسابيعالموضوعفصول Kurose & Ross
1-2مقدمة في الشبكات، نماذج OSI وTCP/IPCh 1
3-5طبقة التطبيقات: HTTP، DNS، SMTP، FTPCh 2
6-8طبقة النقل: UDP، TCP، التحكم في الازدحامCh 3
9-11طبقة الشبكة: IP، التوجيه (Routing)Ch 4-5
12-13طبقة ربط البيانات: Ethernet، Wi-Fi، عناوين MACCh 6
14أمن الشبكات (Network Security)Ch 8
15مراجعة شاملة واختبار نهائي

ℹ️ منهج Top-Down وليش هو الأفضل

معظم كتب الشبكات القديمة تبدأ من الطبقة الفيزيائية (الأسلاك والإشارات) وتصعد. Kurose & Ross يعكس الموضوع: يبدأ من التطبيقات اللي تستخدمها يوميا (HTTP، DNS) وينزل للأسفل. هذا يخلي المادة أكثر منطقية، لأنك تفهم “ليش” قبل “كيف”.

1. نماذج طبقات الشبكة، OSI وTCP/IP (الأسابيع 1-2)

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

نموذج OSI السبع طبقات

نموذج OSI (Open Systems Interconnection) هو النموذج المرجعي النظري. فيه 7 طبقات:

رقم الطبقةالاسمالوظيفةوحدة البياناتأمثلة على البروتوكولات
7Application (التطبيقات)واجهة المستخدم والخدماتDataHTTP, DNS, SMTP, FTP
6Presentation (العرض)التشفير والضغط وتحويل الصيغDataSSL/TLS, JPEG, ASCII
5Session (الجلسة)إدارة فتح وإغلاق الجلساتDataNetBIOS, RPC
4Transport (النقل)تقسيم البيانات وضمان الوصولSegmentTCP, UDP
3Network (الشبكة)العنونة والتوجيهPacketIP, ICMP, ARP
2Data Link (ربط البيانات)النقل المحلي وكشف الأخطاءFrameEthernet, Wi-Fi (802.11)
1Physical (الفيزيائية)الإشارات والكابلات والبتاتBitsكابلات UTP، ألياف ضوئية

نموذج TCP/IP الأربع طبقات

نموذج TCP/IP هو النموذج العملي الذي يشتغل عليه الإنترنت فعليا. يدمج طبقات OSI في 4 طبقات فقط:

طبقة TCP/IPتقابل في OSIالبروتوكولات الرئيسية
Application (التطبيقات)5 + 6 + 7HTTP, DNS, SMTP, FTP, SSH
Transport (النقل)4TCP, UDP
Internet (الإنترنت)3IP, ICMP, ARP
Network Access (الوصول للشبكة)1 + 2Ethernet, Wi-Fi, MAC

OSI مقابل TCP/IP، الفروقات الرئيسية

المعيارنموذج OSIنموذج TCP/IP
عدد الطبقات7 طبقات4 طبقات
النوعنظري ومرجعيعملي ومطبّق
من طوّره؟ISO (المنظمة الدولية للمعايير)DARPA (وزارة الدفاع الأمريكية)
وقت التطوير1984السبعينيات
الاستخدام الفعليللتعليم والمرجعيةالإنترنت الحقيقي
التشفيرPresentation Layer مستقلةمدمجة في Application Layer
إدارة الجلساتSession Layer مستقلةمدمجة في Application Layer

💡 طريقة سهلة لحفظ طبقات OSI

من الأسفل للأعلى: Please Do Not Throw Sausage Pizza Away. الحرف الأول من كل كلمة يمثل: Physical, Data Link, Network, Transport, Session, Presentation, Application. هذه الجملة يستخدمها طلاب الشبكات حول العالم منذ عقود.

Encapsulation وDe-encapsulation

لما ترسل رسالة على الشبكة، البيانات تنزل من طبقة التطبيقات لحد الطبقة الفيزيائية. كل طبقة تضيف header (ترويسة) تحتوي معلوماتها الخاصة. هذا يُسمى Encapsulation. لما تصل للمستلم، كل طبقة تزيل الـ header الخاص بها وترسل البيانات للطبقة اللي فوقها. هذا يُسمى De-encapsulation.

2. طبقة التطبيقات (Application Layer) (الأسابيع 3-5)

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

HTTP، بروتوكول الويب

HTTP (HyperText Transfer Protocol) هو البروتوكول اللي يشتغل عليه الويب. لما تكتب google.com في المتصفح، يرسل المتصفح طلب HTTP للسيرفر والسيرفر يرد بصفحة HTML.

الخصائص الأساسية لـ HTTP:

  • يعمل على منفذ 80 (و443 لـ HTTPS)
  • يعتمد على نموذج Client-Server: العميل يطلب، السيرفر يستجيب
  • Stateless: السيرفر لا يتذكر العميل بين الطلبات (كل طلب مستقل)
  • يستخدم TCP في طبقة النقل لضمان وصول البيانات

أنواع طلبات HTTP:

الطريقةالاستخدام
GETجلب بيانات من السيرفر (قراءة صفحة)
POSTإرسال بيانات للسيرفر (نموذج تسجيل)
PUTتحديث بيانات موجودة
DELETEحذف بيانات

رموز استجابة HTTP الشائعة:

الرمزالمعنى
200 OKالطلب نجح
301 Moved Permanentlyالصفحة انتقلت لعنوان جديد بشكل دائم
404 Not Foundالصفحة غير موجودة
500 Internal Server Errorخطأ في السيرفر

HTTP Persistent vs Non-Persistent:

في HTTP/1.0 كان كل طلب يفتح اتصال TCP جديد (Non-Persistent)، وهذا بطيء جدا. في HTTP/1.1 صار الاتصال يبقى مفتوحا لأكثر من طلب (Persistent) وهذا يوفر وقت. في الاختبار غالبا يسألونك تحسب عدد RTTs في كل حالة.

حساب RTT (Round-Trip Time):

  • Non-Persistent HTTP: 2 RTT + وقت نقل الملف لكل كائن
  • Persistent HTTP: 2 RTT (لفتح الاتصال + الطلب الأول) + 1 RTT لكل كائن إضافي

DNS، دليل الهاتف للإنترنت

DNS (Domain Name System) يحوّل الأسماء المقروءة مثل kau.edu.sa إلى عناوين IP مثل 212.26.22.5. بدون DNS كنت تحتاج تحفظ أرقام IP لكل موقع تزوره.

كيف يعمل DNS:

رحلة طلب DNS خطوة بخطوة

  1. تكتب kau.edu.sa في المتصفح: جهازك يسأل أولا الـ DNS Resolver المحلي (عادة مزود الإنترنت)
  2. Resolver يسأل Root DNS Server: السيرفر الجذري يحيله لسيرفر .sa
  3. Resolver يسأل TLD DNS Server لـ .sa: يحيله لسيرفر edu.sa
  4. Resolver يسأل Authoritative DNS Server لـ kau.edu.sa: يرجع عنوان IP الفعلي
  5. Resolver يخزن النتيجة في Cache: ويرسل عنوان IP لمتصفحك
  6. المتصفح يتصل بـ IP: ويجيب الصفحة

أنواع DNS Records المهمة:

النوعالوظيفة
A Recordاسم نطاق لعنوان IPv4
AAAA Recordاسم نطاق لعنوان IPv6
CNAMEاسم نطاق لاسم نطاق آخر (alias)
MX Recordيحدد سيرفر البريد الإلكتروني
NS Recordيحدد Nameservers للنطاق

⚠️ DNS يستخدم UDP وليس TCP

معظم طلاب يتوقعون إن DNS يستخدم TCP لأن البيانات مهمة. لكن DNS يستخدم UDP على منفذ 53 لأن الطلبات صغيرة جدا وسرعة الاستجابة أهم من ضمان الوصول. الاستثناء: لما تكون الاستجابة كبيرة جدا (أكثر من 512 بايت) يتحول لـ TCP.

SMTP، بروتوكول البريد الإلكتروني

SMTP (Simple Mail Transfer Protocol) يستخدم لإرسال البريد الإلكتروني. يعمل على منفذ 25 (أو 587 للإرسال المشفر).

رحلة البريد الإلكتروني:

  1. أنت ترسل إيميل من تطبيقك (Mail User Agent)
  2. التطبيق يرسله عبر SMTP لسيرفر البريد الصادر (Mail Server)
  3. السيرفر يرسله عبر SMTP لسيرفر البريد الخاص بالمستلم
  4. المستلم يجلب الإيميل عبر POP3 أو IMAP

الفرق بين POP3 وIMAP:

المعيارPOP3IMAP
تنزيل الرسائلينزلها ويحذفها من السيرفريبقيها على السيرفر
الوصول من أجهزة متعددةصعبسهل
المنفذ110143
الأنسب لـجهاز واحدأجهزة متعددة

ملخص بروتوكولات طبقة التطبيقات

البروتوكولالاختصارالمنفذيستخدمالوظيفة
HTTPHyperText Transfer Protocol80 / 443TCPتصفح الويب
DNSDomain Name System53UDP (أحيانا TCP)ترجمة الأسماء
SMTPSimple Mail Transfer Protocol25 / 587TCPإرسال البريد
POP3Post Office Protocol v3110TCPاستلام البريد
IMAPInternet Message Access Protocol143TCPإدارة البريد
FTPFile Transfer Protocol20/21TCPنقل الملفات
SSHSecure Shell22TCPاتصال آمن بعيد
TelnetTelnet23TCPاتصال بعيد (غير آمن)
DHCPDynamic Host Configuration Protocol67/68UDPتوزيع عناوين IP

3. طبقة النقل (Transport Layer) (الأسابيع 6-8)

طبقة النقل هي الجسر بين التطبيقات وطبقة الشبكة. وظيفتها توصيل البيانات بين تطبيقات محددة على الأجهزة، وليس فقط بين الأجهزة. هذا التمييز مهم جدا: عنوان IP يحدد الجهاز، لكن رقم المنفذ (Port Number) يحدد التطبيق.

Multiplexing وDemultiplexing

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

  • Multiplexing: دمج بيانات تطبيقات متعددة في تدفق واحد عند الإرسال
  • Demultiplexing: فرز البيانات الواصلة وتوجيهها للتطبيق الصحيح عند الاستقبال

UDP، البروتوكول السريع

UDP (User Datagram Protocol) هو البروتوكول الخفيف والسريع. لا يضمن وصول البيانات ولا ترتيبها، لكنه أسرع بكثير من TCP.

خصائص UDP:

  • Connectionless: لا يوجد إعداد للاتصال قبل الإرسال
  • Unreliable: لا يضمن وصول البيانات أو ترتيبها
  • Low overhead: الـ header صغير (8 bytes فقط)
  • No congestion control: يرسل بأقصى سرعة ممكنة

UDP Header (8 bytes):

| Source Port (16 bit) | Destination Port (16 bit) |
| Length (16 bit)      | Checksum (16 bit)         |
| Data ...                                          |

متى تستخدم UDP؟

  • البث المباشر (Streaming): يوتيوب، نتفليكس، الاتصالات المرئية. إطار صورة مفقود أهون من توقف الفيديو
  • الألعاب الإلكترونية: السرعة أهم من الدقة المطلقة
  • DNS: الطلبات صغيرة وتحتاج استجابة فورية
  • VoIP: المكالمات الصوتية، تأخير الصوت أسوأ من فقدان صوت لحظي

TCP، البروتوكول الموثوق

TCP (Transmission Control Protocol) هو البروتوكول الموثوق. يضمن وصول جميع البيانات بالترتيب الصحيح، لكنه أبطأ من UDP بسبب الآليات الإضافية.

خصائص TCP:

  • Connection-oriented: يبني اتصالا (Three-Way Handshake) قبل إرسال البيانات
  • Reliable: يضمن وصول جميع البيانات بالترتيب الصحيح
  • Flow Control: يتحكم في معدل الإرسال حسب قدرة المستلم
  • Congestion Control: يتحكم في معدل الإرسال حسب ازدحام الشبكة

Three-Way Handshake، بناء الاتصال:

خطوات إنشاء اتصال TCP

  1. SYN: العميل يرسل للسيرفر حزمة SYN (Synchronize) يقول فيها “أريد الاتصال” مع رقم تسلسلي عشوائي (Sequence Number)
  2. SYN-ACK: السيرفر يرد بـ SYN-ACK: “قبلت طلبك” ويرسل رقمه التسلسلي الخاص
  3. ACK: العميل يرسل ACK (Acknowledge): “تأكدت من ردك، نبدأ الإرسال”

TCP Header الأساسي (20 bytes كحد أدنى):

| Source Port (16)       | Destination Port (16)  |
| Sequence Number (32)                            |
| Acknowledgment Number (32)                      |
| Header Len | Flags    | Window Size (16)        |
| Checksum (16)          | Urgent Pointer (16)     |
| Options (variable)                              |
| Data ...                                        |

الـ Flags المهمة في TCP:

الـ Flagالاختصارالاستخدام
SYNSynchronizeبدء الاتصال
ACKAcknowledgeتأكيد الاستلام
FINFinishإنهاء الاتصال
RSTResetإعادة تعيين الاتصال بشكل مفاجئ
PSHPushإرسال البيانات فورا بدون انتظار

Four-Way Handshake، إنهاء الاتصال:

إنهاء اتصال TCP يحتاج 4 خطوات لأن الاتصال ثنائي الاتجاه (Full-Duplex): العميل يغلق اتجاهه بـ FIN، السيرفر يؤكد بـ ACK ثم يغلق اتجاهه بـ FIN، والعميل يؤكد بـ ACK.

Flow Control وWindow Size:

TCP يستخدم Sliding Window لضبط معدل الإرسال. المستلم يخبر المرسل بحجم الـ window (كمية البيانات اللي يقدر يستقبلها قبل ما يحتاج تأكيدا). لو الـ window صغيرة، المرسل يبطئ.

Congestion Control:

TCP يكتشف الازدحام لما يلاحظ فقدان حزم (Packet Loss). الخوارزميات الرئيسية:

  • Slow Start: يبدأ بـ window صغيرة ويضاعفها كل RTT حتى يصل threshold
  • Congestion Avoidance: بعد الـ threshold يزيد الـ window ببطء (1 MSS لكل RTT)
  • Fast Retransmit: لو استقبل 3 ACKs متكررة لنفس الرقم، يعيد إرسال الحزمة المفقودة فورا

مقارنة TCP وUDP:

المعيارTCPUDP
نوع الاتصالConnection-orientedConnectionless
الموثوقيةضمان الوصول والترتيبلا ضمان
الترتيبمضمونغير مضمون
حجم الـ Header20 bytes (كحد أدنى)8 bytes
Flow Controlنعملا
Congestion Controlنعملا
السرعةأبطأأسرع
الاستخداماتHTTP, FTP, EmailDNS, Video, Gaming, VoIP

طبقة النقل صعبة عليك والاختبار قريب؟

TCP وUDP من أكثر المواضيع اللي يطلب فيها طلاب CPCS 371 مساعدة، خصوصا حسابات RTT والـ Congestion Control. أرسل لنا المادة على واتساب ونرد بعرض سعر خلال ساعة.

تواصل معنا على واتساب

حسابات RTT والـ Three-Way Handshake مو واضحة؟

أسئلة HTTP وTCP من أكثر المواضيع اللي تجي في اختبارات CPCS 371. أرسل لنا السؤال ونشرح لك الحل بالتفصيل مع رسم توضيحي

أرسل سؤالك الآن

4. طبقة الشبكة (Network Layer) (الأسابيع 9-11)

طبقة الشبكة مسؤولة عن أمرين رئيسيين: العنونة (Addressing) والتوجيه (Routing). هنا يسكن بروتوكول IP، العمود الفقري للإنترنت.

عنوان IP

كل جهاز على الإنترنت يحتاج عنوان فريد. عنوان IPv4 يتكون من 32 bit مكتوبة في 4 أجزاء مفصولة بنقاط:

192.168.1.100

قيمة كل جزء (Octet) تتراوح من 0 إلى 255.

أقسام العنوان:

كل عنوان IP يتكون من جزأين:

  • Network Prefix: يحدد الشبكة اللي ينتمي لها الجهاز
  • Host Part: يحدد الجهاز نفسه داخل تلك الشبكة

Subnet Mask يحدد أين ينتهي الـ Network Prefix وأين يبدأ الـ Host Part.

مثال:

IP Address:  192.168.1.100
Subnet Mask: 255.255.255.0 (أو /24)
Network:     192.168.1.0
Host:        .100
Broadcast:   192.168.1.255

CIDR Notation:

بدل ما تكتب 255.255.255.0 تكتب /24 (يعني 24 bit للـ network prefix).

192.168.1.0/24    يعني subnet mask 255.255.255.0
10.0.0.0/8        يعني subnet mask 255.0.0.0
172.16.0.0/16     يعني subnet mask 255.255.0.0

العناوين الخاصة (Private IP):

النطاقالاستخدام
10.0.0.0/8شبكات الشركات الكبيرة
172.16.0.0/12شبكات متوسطة
192.168.0.0/16الشبكات المنزلية والصغيرة
127.0.0.0/8Loopback (الجهاز نفسه)

ℹ️ IPv4 وIPv6

IPv4 يدعم نظريا حوالي 4.3 مليار عنوان فريد. لكن مع انتشار الأجهزة الذكية وإنترنت الأشياء، نفذت العناوين. IPv6 جاء بعناوين 128 bit يعطي عدد عناوين خيالي. لكن CPCS 371 يركّز بشكل رئيسي على IPv4، وIPv6 يُشرح بإيجاز.

بروتوكول IP وهيكل الحزمة

IP Datagram Header (20 bytes كحد أدنى):

| Version | Header Len | DSCP      | Total Length (16) |
| Identification (16)  | Flags | Fragment Offset (13)|
| TTL (8)  | Protocol (8)       | Header Checksum (16)|
| Source IP Address (32)                              |
| Destination IP Address (32)                         |
| Options (variable)                                  |
| Data ...                                            |

حقول مهمة في IP Header:

  • TTL (Time To Live): عداد ينقص بواحد في كل راوتر. لو وصل 0 يتم حذف الحزمة ويُرسل رسالة ICMP للمرسل. يمنع الحزم من الدوران للأبد
  • Protocol: يحدد البروتوكول في طبقة النقل (6 = TCP، 17 = UDP)
  • Fragmentation: لو الحزمة كبيرة جدا للشبكة اللي ستمر منها، تنقسم إلى قطع أصغر ثم تُجمع عند المستلم

التوجيه، Routing

التوجيه هو عملية إيجاد أفضل مسار للحزمة من المرسل للمستلم. الراوتر (Router) هو الجهاز المسؤول عن هذه العملية.

جدول التوجيه (Routing Table):

كل راوتر عنده جدول توجيه يحتوي قواعد مثل: “لو الوجهة في هذه الشبكة، أرسل من هذه الواجهة”. الراوتر يطابق عنوان IP الوجهة مع الإدخال الأنسب في الجدول (Longest Prefix Match).

خوارزميات التوجيه:

هناك نوعان رئيسيان:

1. Link-State Routing (Dijkstras Algorithm):

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

2. Distance-Vector Routing (Bellman-Ford):

كل راوتر يعرف فقط مسافته لجيرانه. يتشارك هذه المعلومات مع جيرانه وتدريجيا يتكوّن جدول توجيه. أبسط لكن أبطأ في التقارب. يستخدمه بروتوكول RIP.

بروتوكولات التوجيه الرئيسية:

البروتوكولالنوعالاستخدامالخوارزمية
RIPDistance-Vectorشبكات صغيرةBellman-Ford
OSPFLink-Stateشبكات متوسطة وكبيرةDijkstra
BGPPath-Vectorبين مزودي الإنترنت (Inter-AS)Path selection

AS (Autonomous System):

الإنترنت مقسّم لـ Autonomous Systems. كل AS هو شبكة تحت إدارة واحدة (مثل STC أو Mobily). التوجيه داخل AS يُسمى Intra-AS Routing (OSPF أو RIP)، والتوجيه بين الـ AS يُسمى Inter-AS Routing (BGP).

NAT، ترجمة عناوين الشبكة

لأن عناوين IPv4 ناقصة، تم اختراع NAT (Network Address Translation). الراوتر المنزلي يعطي كل جهاز عندك عنوان خاص (مثل 192.168.1.x)، ولما أي جهاز يتصل بالإنترنت، الراوتر يستبدل العنوان الخاص بعنوانه العام الواحد.

ICMP، بروتوكول التشخيص

ICMP (Internet Control Message Protocol) يستخدم للتشخيص وإرسال رسائل الخطأ. أشهر أوامر تستخدم ICMP:

  • ping: يرسل ICMP Echo Request ويستقبل Echo Reply. يُستخدم للتحقق من أن الجهاز متصل ومستجيب
  • traceroute: يعرض مسار الحزمة من جهازك لأي وجهة بزيادة TTL تدريجيا

5. طبقة ربط البيانات والطبقة الفيزيائية (الأسابيع 12-13)

طبقة ربط البيانات (Data Link Layer) مسؤولة عن النقل بين جهازين متصلين مباشرة على نفس الشبكة المحلية. تقابل الطبقة الثانية في OSI.

عناوين MAC

كل بطاقة شبكة (Network Interface Card) عندها عنوان MAC (Media Access Control) فريد يتكون من 48 bit (عادة يُكتب هكذا: 00:1A:2B:3C:4D:5E). بعكس عنوان IP الذي يمكن تغييره، عنوان MAC مُدمج في الهاردوير.

الفرق بين IP وMAC:

  • IP: عنوان منطقي يُستخدم للتوجيه عبر الشبكات (مثل عنوان مدينتك)
  • MAC: عنوان فيزيائي يُستخدم للنقل على الشبكة المحلية (مثل رقم بيتك)

ARP، ربط IP بـ MAC

لما جهازك يريد إرسال بيانات لعنوان IP معين على نفس الشبكة، يحتاج عنوان MAC الخاص بيه. بروتوكول ARP (Address Resolution Protocol) يحل هذه المشكلة:

  1. جهازك يبث رسالة ARP Request: “من عنده IP كذا؟”
  2. الجهاز الذي عنده هذا الـ IP يرد بـ ARP Reply يعطي عنوان MAC الخاص بيه
  3. جهازك يخزّن النتيجة في ARP Cache لاستخدامها لاحقا

Ethernet، بروتوكول الشبكة السلكية

Ethernet هو أشيع بروتوكول لشبكات LAN السلكية. Ethernet Frame Structure:

| Preamble (7) | SFD (1) | Dest MAC (6) | Src MAC (6) |
| Type/Length (2) | Data (46-1500) | CRC (4)         |

CSMA/CD، تجنب التصادم في Ethernet:

Ethernet الكلاسيكي (على كابلات مشتركة) يستخدم CSMA/CD (Carrier Sense Multiple Access with Collision Detection):

  1. Carrier Sense: الجهاز يستمع للكابل. لو فيه إشارة (أحد يرسل)، ينتظر
  2. Multiple Access: أكثر من جهاز يمكن أن يستخدم نفس الكابل
  3. Collision Detection: لو حدث تصادم، الأجهزة تتوقف وتنتظر وقتا عشوائيا قبل إعادة الإرسال

في الشبكات الحديثة مع السويتشات (Switches)، كل منفذ Full-Duplex ولا يحدث تصادم.

Wi-Fi، الشبكة اللاسلكية

Wi-Fi يستخدم معيار IEEE 802.11. بعكس Ethernet، في الشبكات اللاسلكية لا يمكن اكتشاف التصادم أثناء الإرسال (لأن الجهاز إذا كان يرسل لا يسمع نفس الوقت). لذلك Wi-Fi يستخدم CSMA/CA (Collision Avoidance) بدل CD.

أجهزة الشبكة

الجهازالطبقةالوظيفة
HubPhysical (1)يبث البيانات لجميع المنافذ
SwitchData Link (2)يحوّل البيانات بناء على MAC
RouterNetwork (3)يوجّه الحزم بناء على IP
Firewall3-7يفلتر حركة البيانات حسب سياسات أمنية

⚠️ الفرق بين Switch وHub مهم في الاختبار

الـ Hub يبث كل حزمة لجميع المنافذ (Broadcast Domain واحد)، وهذا يعني إن كل الأجهزة الموصولة فيه تكون في نفس الـ Collision Domain. الـ Switch يتعلم عناوين MAC ويرسل البيانات فقط للمنفذ الصحيح. كل منفذ على السويتش هو Collision Domain مستقل.

6. أمن الشبكات، Network Security (الأسبوع 14)

مبادئ أمن الشبكات تعتمد على ثلاث ركائز أساسية تُعرف بـ CIA Triad:

  • Confidentiality (السرية): البيانات لا يراها إلا من يملك الصلاحية
  • Integrity (النزاهة): البيانات لم تتغير أثناء النقل
  • Availability (التوافر): الخدمة متاحة للمستخدمين المصرح لهم

التشفير

Symmetric Encryption (التشفير المتماثل): نفس المفتاح للتشفير وفك التشفير. أسرع، لكن مشكلة تبادل المفتاح. أمثلة: AES، DES.

Asymmetric Encryption (التشفير غير المتماثل): مفتاح عام (Public Key) للتشفير ومفتاح خاص (Private Key) لفك التشفير. يحل مشكلة تبادل المفاتيح. أبطأ. أمثلة: RSA.

SSL/TLS وHTTPS

TLS (Transport Layer Security) هو البروتوكول اللي يشفّر الاتصالات على الإنترنت. HTTPS = HTTP + TLS. يوفر:

  • تشفير البيانات (Confidentiality)
  • التحقق من هوية الموقع (Authentication)
  • التأكد من سلامة البيانات (Integrity)

هجمات شائعة يجب معرفتها

  • DNS Poisoning: إدخال معلومات خاطئة في DNS Cache لتوجيه المستخدمين لمواقع مزيفة
  • Man-in-the-Middle (MITM): المهاجم يضع نفسه بين الطرفين ويستطيع قراءة البيانات أو تعديلها
  • DoS / DDoS: إغراق السيرفر بطلبات حتى يتوقف عن العمل
  • SYN Flood: إرسال كميات ضخمة من SYN بدون إكمال الـ Handshake، يستهلك موارد السيرفر

Firewall وIDS

  • Firewall: يفلتر حركة البيانات الداخلة والخارجة بناء على قواعد محددة (يمنع بناء على IP أو منفذ أو بروتوكول)
  • IDS (Intrusion Detection System): يراقب الشبكة ويُنبّه عند اكتشاف نشاط مشبوه
  • IPS (Intrusion Prevention System): مثل IDS لكنه يتخذ إجراءات تلقائية لمنع الهجوم

7. برمجة السوكيت، Socket Programming

في CPCS 371 عادة يكون فيه جزء عملي (لاب أو مشروع) يتعلق ببرمجة السوكيت. السوكيت هو واجهة برمجية (API) تتيح للتطبيقات التواصل عبر الشبكة.

نموذج TCP Client-Server

Server (Python):

import socket

# إنشاء السوكيت
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8080))  # الارتباط بالمنفذ 8080
server_socket.listen(5)  # الانتظار للاتصالات
print("السيرفر يستمع على المنفذ 8080...")

while True:
    client_socket, address = server_socket.accept()
    print(f"اتصال جديد من: {address}")

    message = client_socket.recv(1024).decode('utf-8')
    print(f"الرسالة الواصلة: {message}")

    response = f"استلمت رسالتك: {message}"
    client_socket.send(response.encode('utf-8'))
    client_socket.close()

Client (Python):

import socket

# الاتصال بالسيرفر
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 8080))

message = "مرحبا من العميل!"
client_socket.send(message.encode('utf-8'))

response = client_socket.recv(1024).decode('utf-8')
print(f"رد السيرفر: {response}")
client_socket.close()

نموذج UDP Client-Server

# UDP Server
import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind(('localhost', 9090))
print("UDP Server يستمع...")

while True:
    data, address = server_socket.recvfrom(1024)
    print(f"من {address}: {data.decode('utf-8')}")
    server_socket.sendto(b"استلمت رسالتك", address)
# UDP Client
import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client_socket.sendto(b"رسالة UDP", ('localhost', 9090))
data, server = client_socket.recvfrom(1024)
print(f"الرد: {data.decode('utf-8')}")
client_socket.close()

💡 TCP مقابل UDP في برمجة السوكيت

الفرق في الكود: TCP يستخدم SOCK_STREAM ويحتاج connect() و accept() (اتصال). UDP يستخدم SOCK_DGRAM ويرسل مباشرة بـ sendto() بدون اتصال مسبق.

أخطاء شائعة في CPCS 371 وكيف تتجنبها

أخطاء يقع فيها طلاب CPCS 371 في الاختبار

  1. الخلط بين طبقات OSI وTCP/IP: اللي يتشابهوا على الجدول. احفظ الجدول المقارن واستوعب إن TCP/IP يدمج طبقات
  2. نسيان أن DNS يستخدم UDP: كثير يفترضون TCP لأن البيانات مهمة. UDP لأنه أسرع والطلبات صغيرة
  3. الخلط بين عنوان IP وعنوان MAC: IP يتغير بين الشبكات (Logical)، MAC ثابت في الهاردوير (Physical)
  4. نسيان TTL وفائدته: يمنع الحزمة من الدوران إلى الأبد في حلقة توجيه
  5. الخلط بين Routing وForwarding: Routing = بناء جدول التوجيه (عملية إدارية). Forwarding = تحويل الحزمة فعليا بناء على الجدول
  6. عدم فهم حساب RTT في HTTP: في الاختبار يطلبون منك تحسب كم RTT يحتاج تحميل صفحة. استوعب الفرق بين Persistent وNon-Persistent
  7. الخلط بين Switch وRouter: Switch يعمل بـ MAC وLinked للشبكة المحلية. Router يعمل بـ IP ويربط بين شبكات مختلفة
  8. نسيان Three-Way Handshake: SYN، SYN-ACK، ACK. وإنهاء الاتصال بالـ Four-Way: FIN، ACK، FIN، ACK

نصائح للمذاكرة واجتياز الاختبار

كتاب Kurose & Ross كبير، وكثير من الطلاب يتوهون فين يبدأون. إليك خطة مذاكرة مجربة:

💡 أهم ما تركّز عليه في كل فصل

Ch 1 (مقدمة): أنواع التأخير (Transmission، Propagation، Queuing)، Throughput، نماذج الطبقات. Ch 2 (Application): HTTP (Persistent/Non-Persistent وحسابات RTT)، DNS (كيف يعمل وأنواع Records)، SMTP. Ch 3 (Transport): الفرق بين TCP وUDP، Three-Way Handshake، Congestion Control (Slow Start). Ch 4-5 (Network): IP Header وTTL، Subnetting وCIDR، خوارزميات التوجيه. Ch 6 (Link): ARP، MAC، Ethernet، الفرق بين Switch وHub.

استراتيجية المذاكرة

  • ابدأ بالصورة الكبيرة: افهم كيف تتكامل الطبقات مع بعض قبل ما تحفظ تفاصيل كل طبقة
  • ارسم الرسوم التوضيحية بنفسك: DNS lookup، Three-Way Handshake، Routing Table. الرسم يثبت المعلومة أكثر من القراءة
  • حل مسائل الحسابات: حسابات RTT وSubnetting تأتي في الاختبارات. التمرين عليها ضروري
  • استخدم WireShark: برنامج مجاني يتيح لك مشاهدة حزم الشبكة فعليا. رؤية HTTP request أو DNS query حقيقية يثبت المعلومة بشكل لا يقارنه شرح نظري
  • اعمل على تمارين نهاية الفصل: كتاب Kurose & Ross عنده تمارين ممتازة، خصوصا المسائل الحسابية

أنواع أسئلة الاختبار المتوقعة

  • أسئلة الاختيار من متعدد: الفرق بين البروتوكولات، أرقام المنافذ، طبقات النماذج
  • مسائل حسابية: حساب RTT، حساب عدد عناوين IP في شبكة، حسابات Subnetting
  • رسم رحلة البيانات: يطلبون منك ترسم كيف تنتقل حزمة من A لـ B عبر الطبقات أو الأجهزة
  • خوارزميات التوجيه: تطبيق Dijkstra أو Bellman-Ford على رسم شبكة

🔴 ركّز على Subnetting من اليوم الأول

Subnetting (تقسيم الشبكات الفرعية) موضوع يأتي فيه سؤال شبه مضمون في الاختبار. كثير من الطلاب يتركونه لآخر لحظة ثم يكتشفون إنه يحتاج تدريبا. ابدأ بتمارين Subnetting من أول ما تدرس الفصل الرابع.

ربط المادة بمسارك الأكاديمي والمهني

مادة CPCS 371 هي البوابة لعالم الشبكات والأنظمة الموزعة. بعد إنهائها:

  • CPCS 372 (شبكات الحاسب 2): تعمّق في مواضيع مثل الشبكات اللاسلكية المتقدمة، QoS، وبروتوكولات إضافية
  • أمن المعلومات: التشفير، أمن التطبيقات، اختبار الاختراق
  • الحوسبة السحابية: AWS وAzure وGCP كلها مبنية على مفاهيم الشبكات
  • DevOps وهندسة الأنظمة: فهم الشبكات ضروري لنشر التطبيقات وإدارة السيرفرات

المادة تبني مباشرة على أنظمة التشغيل خصوصا في مواضيع العمليات (Processes) والمنافذ (Ports)، وهي مكملة تماما لـ هياكل البيانات خصوصا في خوارزميات التوجيه مثل Dijkstra.

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

خلاصة

مادة CPCS 371 تبدو في البداية مخيفة بسبب كثرة البروتوكولات والأرقام والاختصارات. لكن الحقيقة إنها من أكثر المواد منطقية وترابطا: كل طبقة تخدم الطبقة اللي فوقها، وكل بروتوكول يحل مشكلة محددة.

المفتاح هو إنك ما تحفظ، تفهم. فهم ليش HTTP يستخدم TCP وليش DNS يستخدم UDP أهم بكثير من حفظ أرقام المنافذ. فهم كيف يبني TCP اتصاله عبر Three-Way Handshake يخليك تجاوب على أسئلة لم ترها سابقا.

ما تنسى:

  • OSI 7 طبقات نظري، TCP/IP 4 طبقات عملي
  • HTTP على TCP منفذ 80، DNS على UDP منفذ 53
  • TCP موثوق ولكنه أبطأ، UDP سريع ولكن بدون ضمان
  • IP يحدد الجهاز، MAC يحدد بطاقة الشبكة فيزيائيا
  • Router يعمل على Layer 3 بـ IP، Switch يعمل على Layer 2 بـ MAC

واجب CPCS 371 أو مشروع السوكيت ضاغط عليك؟

فريقنا متخصص في مواد كلية الحاسبات بجامعة الملك عبدالعزيز. سواء كان واجب Subnetting أو مشروع Socket Programming أو شرح خوارزمية Dijkstra، أرسل لنا التفاصيل على واتساب ونرد بعرض سعر خلال ساعة.

أرسل واجبك الآن
هل تحتاج خصوصي؟