مادة 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/IP | Ch 1 |
| 3-5 | طبقة التطبيقات: HTTP، DNS، SMTP، FTP | Ch 2 |
| 6-8 | طبقة النقل: UDP، TCP، التحكم في الازدحام | Ch 3 |
| 9-11 | طبقة الشبكة: IP، التوجيه (Routing) | Ch 4-5 |
| 12-13 | طبقة ربط البيانات: Ethernet، Wi-Fi، عناوين MAC | Ch 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 طبقات:
| رقم الطبقة | الاسم | الوظيفة | وحدة البيانات | أمثلة على البروتوكولات |
|---|---|---|---|---|
| 7 | Application (التطبيقات) | واجهة المستخدم والخدمات | Data | HTTP, DNS, SMTP, FTP |
| 6 | Presentation (العرض) | التشفير والضغط وتحويل الصيغ | Data | SSL/TLS, JPEG, ASCII |
| 5 | Session (الجلسة) | إدارة فتح وإغلاق الجلسات | Data | NetBIOS, RPC |
| 4 | Transport (النقل) | تقسيم البيانات وضمان الوصول | Segment | TCP, UDP |
| 3 | Network (الشبكة) | العنونة والتوجيه | Packet | IP, ICMP, ARP |
| 2 | Data Link (ربط البيانات) | النقل المحلي وكشف الأخطاء | Frame | Ethernet, Wi-Fi (802.11) |
| 1 | Physical (الفيزيائية) | الإشارات والكابلات والبتات | Bits | كابلات UTP، ألياف ضوئية |
نموذج TCP/IP الأربع طبقات
نموذج TCP/IP هو النموذج العملي الذي يشتغل عليه الإنترنت فعليا. يدمج طبقات OSI في 4 طبقات فقط:
| طبقة TCP/IP | تقابل في OSI | البروتوكولات الرئيسية |
|---|---|---|
| Application (التطبيقات) | 5 + 6 + 7 | HTTP, DNS, SMTP, FTP, SSH |
| Transport (النقل) | 4 | TCP, UDP |
| Internet (الإنترنت) | 3 | IP, ICMP, ARP |
| Network Access (الوصول للشبكة) | 1 + 2 | Ethernet, 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 خطوة بخطوة
- تكتب
kau.edu.saفي المتصفح: جهازك يسأل أولا الـ DNS Resolver المحلي (عادة مزود الإنترنت) - Resolver يسأل Root DNS Server: السيرفر الجذري يحيله لسيرفر
.sa - Resolver يسأل TLD DNS Server لـ
.sa: يحيله لسيرفرedu.sa - Resolver يسأل Authoritative DNS Server لـ
kau.edu.sa: يرجع عنوان IP الفعلي - Resolver يخزن النتيجة في Cache: ويرسل عنوان IP لمتصفحك
- المتصفح يتصل بـ 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 للإرسال المشفر).
رحلة البريد الإلكتروني:
- أنت ترسل إيميل من تطبيقك (Mail User Agent)
- التطبيق يرسله عبر SMTP لسيرفر البريد الصادر (Mail Server)
- السيرفر يرسله عبر SMTP لسيرفر البريد الخاص بالمستلم
- المستلم يجلب الإيميل عبر POP3 أو IMAP
الفرق بين POP3 وIMAP:
| المعيار | POP3 | IMAP |
|---|---|---|
| تنزيل الرسائل | ينزلها ويحذفها من السيرفر | يبقيها على السيرفر |
| الوصول من أجهزة متعددة | صعب | سهل |
| المنفذ | 110 | 143 |
| الأنسب لـ | جهاز واحد | أجهزة متعددة |
ملخص بروتوكولات طبقة التطبيقات
| البروتوكول | الاختصار | المنفذ | يستخدم | الوظيفة |
|---|---|---|---|---|
| HTTP | HyperText Transfer Protocol | 80 / 443 | TCP | تصفح الويب |
| DNS | Domain Name System | 53 | UDP (أحيانا TCP) | ترجمة الأسماء |
| SMTP | Simple Mail Transfer Protocol | 25 / 587 | TCP | إرسال البريد |
| POP3 | Post Office Protocol v3 | 110 | TCP | استلام البريد |
| IMAP | Internet Message Access Protocol | 143 | TCP | إدارة البريد |
| FTP | File Transfer Protocol | 20/21 | TCP | نقل الملفات |
| SSH | Secure Shell | 22 | TCP | اتصال آمن بعيد |
| Telnet | Telnet | 23 | TCP | اتصال بعيد (غير آمن) |
| DHCP | Dynamic Host Configuration Protocol | 67/68 | UDP | توزيع عناوين 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
- SYN: العميل يرسل للسيرفر حزمة SYN (Synchronize) يقول فيها “أريد الاتصال” مع رقم تسلسلي عشوائي (Sequence Number)
- SYN-ACK: السيرفر يرد بـ SYN-ACK: “قبلت طلبك” ويرسل رقمه التسلسلي الخاص
- 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 | الاختصار | الاستخدام |
|---|---|---|
| SYN | Synchronize | بدء الاتصال |
| ACK | Acknowledge | تأكيد الاستلام |
| FIN | Finish | إنهاء الاتصال |
| RST | Reset | إعادة تعيين الاتصال بشكل مفاجئ |
| PSH | Push | إرسال البيانات فورا بدون انتظار |
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:
| المعيار | TCP | UDP |
|---|---|---|
| نوع الاتصال | Connection-oriented | Connectionless |
| الموثوقية | ضمان الوصول والترتيب | لا ضمان |
| الترتيب | مضمون | غير مضمون |
| حجم الـ Header | 20 bytes (كحد أدنى) | 8 bytes |
| Flow Control | نعم | لا |
| Congestion Control | نعم | لا |
| السرعة | أبطأ | أسرع |
| الاستخدامات | HTTP, FTP, Email | DNS, 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/8 | Loopback (الجهاز نفسه) |
ℹ️ 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 (Dijkstra’s Algorithm):
هنا الراوتر يعرف خريطة الشبكة كاملة. يستخدم خوارزمية Dijkstra لإيجاد أقصر مسار لكل وجهة. أكثر دقة لكن يحتاج موارد أكثر. يستخدمه بروتوكول OSPF.
2. Distance-Vector Routing (Bellman-Ford):
كل راوتر يعرف فقط مسافته لجيرانه. يتشارك هذه المعلومات مع جيرانه وتدريجيا يتكوّن جدول توجيه. أبسط لكن أبطأ في التقارب. يستخدمه بروتوكول RIP.
بروتوكولات التوجيه الرئيسية:
| البروتوكول | النوع | الاستخدام | الخوارزمية |
|---|---|---|---|
| RIP | Distance-Vector | شبكات صغيرة | Bellman-Ford |
| OSPF | Link-State | شبكات متوسطة وكبيرة | Dijkstra |
| BGP | Path-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) يحل هذه المشكلة:
- جهازك يبث رسالة ARP Request: “من عنده IP كذا؟”
- الجهاز الذي عنده هذا الـ IP يرد بـ ARP Reply يعطي عنوان MAC الخاص بيه
- جهازك يخزّن النتيجة في 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):
- Carrier Sense: الجهاز يستمع للكابل. لو فيه إشارة (أحد يرسل)، ينتظر
- Multiple Access: أكثر من جهاز يمكن أن يستخدم نفس الكابل
- Collision Detection: لو حدث تصادم، الأجهزة تتوقف وتنتظر وقتا عشوائيا قبل إعادة الإرسال
في الشبكات الحديثة مع السويتشات (Switches)، كل منفذ Full-Duplex ولا يحدث تصادم.
Wi-Fi، الشبكة اللاسلكية
Wi-Fi يستخدم معيار IEEE 802.11. بعكس Ethernet، في الشبكات اللاسلكية لا يمكن اكتشاف التصادم أثناء الإرسال (لأن الجهاز إذا كان يرسل لا يسمع نفس الوقت). لذلك Wi-Fi يستخدم CSMA/CA (Collision Avoidance) بدل CD.
أجهزة الشبكة
| الجهاز | الطبقة | الوظيفة |
|---|---|---|
| Hub | Physical (1) | يبث البيانات لجميع المنافذ |
| Switch | Data Link (2) | يحوّل البيانات بناء على MAC |
| Router | Network (3) | يوجّه الحزم بناء على IP |
| Firewall | 3-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 في الاختبار
- الخلط بين طبقات OSI وTCP/IP: اللي يتشابهوا على الجدول. احفظ الجدول المقارن واستوعب إن TCP/IP يدمج طبقات
- نسيان أن DNS يستخدم UDP: كثير يفترضون TCP لأن البيانات مهمة. UDP لأنه أسرع والطلبات صغيرة
- الخلط بين عنوان IP وعنوان MAC: IP يتغير بين الشبكات (Logical)، MAC ثابت في الهاردوير (Physical)
- نسيان TTL وفائدته: يمنع الحزمة من الدوران إلى الأبد في حلقة توجيه
- الخلط بين Routing وForwarding: Routing = بناء جدول التوجيه (عملية إدارية). Forwarding = تحويل الحزمة فعليا بناء على الجدول
- عدم فهم حساب RTT في HTTP: في الاختبار يطلبون منك تحسب كم RTT يحتاج تحميل صفحة. استوعب الفرق بين Persistent وNon-Persistent
- الخلط بين Switch وRouter: Switch يعمل بـ MAC وLinked للشبكة المحلية. Router يعمل بـ IP ويربط بين شبكات مختلفة
- نسيان 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، أرسل لنا التفاصيل على واتساب ونرد بعرض سعر خلال ساعة.
أرسل واجبك الآن