Lecture 4 - TCP IP Model

مقدمه
  • ا TCP/IP (Transmission Control Protocol/Internet Protocol) هو suite of protocols (مجموعة بروتوكولات) اتعملت في بداية السبعينات من DARPA (وكالة مشاريع الأبحاث المتطورة التابعة لوزارة الدفاع الأمريكية).
  • معروف كمان باسم Internet Protocol Suite.
  • ا TCP/IP أقدم من OSI Model — ا OSI جه سنة 1984، لكن TCP/IP كان موجود من قبله.
  • ا OSI Model هو reference model, لكن TCP/IP هو الـ protocol suite اللي فعليًا بيشتغل عليه الإنترنت والـ intranets.
  • ا TCP/IP مش tied to a vendor — ده open standard protocol وده سبب انتشاره.
  • ا TCP/IP v4 هو المستخدم دلوقتي، والـ Next version هو v6.
  • ا النموذج الأصلي كان 4 layers مبنيين على الـ hardware.

Application Layer (Layer 4)

  • دي الطبقة اللي المستخدم بيتفاعل معاها مباشرة.

  • فيها البروتوكولات اللي بتخدم التطبيقات زي:

    • ا HTTP / HTTPS للمواقع
    • ا SMTP / POP3 / IMAP للبريد الإلكتروني
    • ا FTP / SFTP لنقل الملفات
      • ا DNS لحليل الأسماء
    • ا SSH / Telnet للـ remote access
    • ا DHCP للتوزيع التلقائي للـ IPs
  • مسؤولة عن إن البيانات تكون formatted properly قبل ما تتنقل.

Note
  • الفرق بين OSI و TCP/IP إن OSI بيكسر الطبقة دي لـ 3 طبقات: Application, Presentation, Session.
  • ا TCP/IP ضمهم كلهم في طبقة واحدة عشان التطبيق العملي.

Transport Layer (Layer 3)

  • مسؤولة عن إنها تضبط عملية نقل البيانات بين جهازين.
  • بتوفر connection establishment و reliable data transmission.
  • أشهر بروتوكولين فيها:
ا TCP (Transmission Control Protocol)
  • ا Connection-oriented (لازم تعمل connection قبل ما تبعت)
  • بيضمن التوصيل بالترتيب وبدون فقدان
  • بيستخدم في: الويب، الإيميل، نقل الملفات
  • بيشتغل بـ Three-way handshake عشان يفتح connection
ا UDP (User Datagram Protocol)
  • ا Connectionless (مش محتاج connection مسبق)

  • سريع لكن مش مضمون (no error correction)

  • بيستخدم في: live streaming، الألعاب، VoIP

  • كل segment له Source Port و Destination Port عشان يحدد التطبيق اللي هيستقبل البيانات.

  • كل segment له Sequence Number عشان يظبط ترتيب الـ segments.


Internet Layer (Layer 2)

  • مسؤولة عن Logical Addressing و Routing.

  • بتضيف الـ IP Header على البيانات عشان تكون Datagrams.

  • الـ IP Header فيه:

    • ا Source IP Address
    • ا Destination IP Address
  • مسؤولة عن إنها تلاقي أحسن مسار (Route) للبيانات توصل منه للـ destination.

    بروتوولات في الطبقة دي:
  • ا IP (Internet Protocol) — البروتوكول الأساسي للعنونة والتوجيه

  • ا ICMP (Internet Control Message Protocol) — للـ error reporting والتشخيص (زي ping)

  • ا ARP (Address Resolution Protocol) — عشان يجيب الـ MAC Address من الـ IP Address (بيشتغل بين الـ Internet و Network Access layers)


Network Access Layer (Layer 1)

  • أدنى طبقة في الـ TCP/IP model.
  • بتعرف إزاي البيانات تتبعت فعليًا على الوسط الفيزيائي:
    • كابلات (Ethernet)
    • إشارات راديوية (Wi-Fi)
    • ألياف ضوئية (Fiber Optics)
    • شبكات خلوية (Cellular)
  • بتحول البيانات لـ Bits (إشارات كهربائية / ضوئية / راديوية).
  • بروتوكولات زي Ethernet و Wi-Fi (802.11) شغالة هنا.
Note
  • ا OSI model بيكسر الطبقة دي لـ 2: Data Link Layer و Physical Layer.
  • التقسيم ده بيدي مرونة أكتر للمطورين لأنه بيفصل الـ organizing functions عن الـ accessing functions.

الفرق بين TCP و IP

ا TCP ا IP
بيدير ازاي الرسالة بتتقطع وتتجمّع طبقة 3 في TCP/IP model
بيعمل connection قبل ما يبعت مسؤول عن الـ data communications عبر الشبكات
بيتحكم في حجم ومعدل الـ packets بيحدد وجهة البيانات والـ routes
بيستخدم IP عشان ينقل الـ packets الـ packets محتاجة تت reorganized بعد الإرسال
بيقدر يوصل devices و apps بيضمنش التوصيل

Three-Way Handshake (TCP Connection)

قبل ما client يبدأ يتكلم مع server في TCP، لازم الاتنين يأسسوا connection عن طريق الـ Three-way handshake:

  1. ا Client ← Server (SYN):

    • ا Client بيبعت SYN packet بـ sequence number عشوائي (خلينا نقول 4321).
    • ده بداية طلب الاتصال.
  2. ا Server ← Client (SYN-ACK):

    • ا Server بيرد بـ SYN = 5501 (الـ sequence number بتاعه).
    • و ACK = 4322 (seq بتاع الـ Client + 1).
    • بيأكد إنه استلم طلب الاتصال.
  3. ا Client ← Server (ACK):

    • ا Client بيبعت ACK = 5502 (seq بتاع الـ Server + 1).
    • كده الاتصال اشتغل رسميًا.

Data Packages (Package Names)

البيانات بتاخد أسماء مختلفة في كل layer :

ا Layer ا Package Name
ا Application Layer Message
ا Transport Layer (TCP) Segment
ا Transport Layer (UDP) Datagram
ا Internet Layer Datagram / Packet
ا Network Access Layer Frame (وبعدين Bit Stream)

Encapsulation — ازاي البيانات بتتنقل

لما Device A يبعت بيانات لـ Device B:

  • ا Application Layer: البيانات بتتضاف عليها الـ application header (زي HTTP header) ← Message
  • ا Transport Layer: ا Message بيتغلف في Segment وبيتضاف Source/Destination Port و Sequence Number
  • ا Internet Layer: ا Segment بيتغلف في Datagram/Packet وبيتضاف Source/Destination IP
  • ا Network Access Layer: ا Datagram بيتغلف في Frame وبيتضاف Source/Destination MAC Address وبعدين بيت حول لـ Bits

عكسياً في الاستقبال — كل layer بتشيل header بتاعها وتعدي البيانات للي فوقها.

Tip
  • الموضوع زي الـ Russian nesting dolls (الدُمى الروسية) — كل طبقة بتغلف اللي جوة وتضيف حاجة، وفي الاستقبال بيتفكوا واحد واحد.

OSI Model vs TCP/IP Model

ا OSI Model (7 Layers) ا TCP/IP Model (4 Layers)
Application Application (دمج Session + Presentation + Application)
Presentation
Session
Transport Transport
Network Internet
Data Link Network Access (دمج Physical + Data Link)
Physical
  • ا TCP/IP هو الـ practical model المستخدم فعليًا على الإنترنت.
  • ا OSI بيفصل الـ Data Link عن Physical بينما الـ TCP/IP بيدمجهم مع بعض في الـ Network Access.
  • ا OSI بيفصل الـ Application layer لـ 3 طبقات عشان يدي alternatives أكتر للتطبيقات بينما الـ TCP/IP بيدمجهم مع بعض .
  • الـ Network layer في الـ OSI Model اسمه Internet layer في الـ TCP/IP
  • ا OSI بيزيد في الـ flexibility و subdivision عشان الـ developers.

بروتوكولات TCP/IP

1. ا TCP/IP

  • ا Standard protocol suite للإنترنت عن طريق packet switching
  • ا IP: بيدي unique addresses للأجهزة
  • ا TCP: اconnection-oriented, بيكسر البيانات لـ packets ويضمن التوصيل
  • الـ default protocol لكل أنظمة التشغيل الحديثة

2. ا HTTP

  • ا Application-layer protocol لنقل صفحات الويب
  • بيشتغل client-server (request / response)
  • ا Stateless — مش بيحتفظ بمعلومات الجلسة
  • مش secure — عشان كده بنستخدم HTTPS

3. ا HTTPS

  • النسخة الآمنة من HTTP
  • بيستخدم SSL/TLS encryption عشان Confidentiality, Integrity, Authentication
  • بيحمي بيانات حساسة (credit cards, passwords, OTPs)

4. ا SMTP

  • ا Application-layer protocol لإرسال (مش استقبال) الإيميلات
  • بينقل الإيميل من sender's mail server لـ receiver's mail server
  • بيدعم multimedia عن طريق MIME extensions

5. ا POP3

  • بيسترجع الإيميلات من الـ mail server للـ local device
  • الإيميلات بتت shift من الـ server بعد التحميل
  • ا Ports: 110 (unencrypted), 995 (secure)
  • مناسب لجهاز واحد

6. ا IMAP

  • بيدير الإيميلات على الـ server نفسه (مش بتحملها)
  • بيدعم access من أجهزة متعددة مع synchronization
  • أكتر مرونة من POP3 في الاستخدام الحديث
الفرق بين SMTP vs POP3 vs IMAP
ا SMTP ا POP3 ا IMAP
لإرسال الإيميلات (outgoing) لاستقبال وتحميلها على الجهاز لاستقبال وإدارتها على الـ server
بينقل من sender's mail server لـ receiver's الإيميلات بتتشال من الـ server بعد التحميل الإيميلات بتفضل على الـ server
مش بيستخدم للاستقبال مناسب لجهاز واحد بيدعم أجهزة متعددة مع synchronization
بيدعم MIME extensions Ports: 110 / 995 (secure) أكتر مرونة و folders على الـ server

7. ا FTP

  • لنقل الملفات بين client و server
  • بيحتاج authentication وبيدعم TCP
  • استخدامات: website management, file sharing
  • مش secure إلا مع encryption

8. ا SFTP

  • نسخة آمنة من FTP بتشتغل فوق SSH
  • بت encrypt البيانات والأوامر
  • بديل آمن لـ FTP العادي

9. ا SSH

  • ا Secure remote login عبر شبكة غير آمنة
  • بيستخدم public-key cryptography
  • بيدعم SCP و SFTP — أأمن من Telnet

10. ا TELNET

  • ا Remote login protocol
  • المشكلة: بينقل البيانات plain text من غير تشفير
  • مش secure — اتستبدل بـ SSH

11. ا ICMP

  • ا Network-layer protocol للـ error messages و diagnostics
  • أنواعه: Echo Request/Reply (ping), Destination Unreachable, Time Exceeded, Redirect
  • بيستخدم في troubleshooting وقياس RTT

12. ا IPv4

  • ا 32-bit addresses (~4.3 مليار عنوان)
  • مكتوب بـ dotted decimal: 192.168.1.1
  • بيعاني من address exhaustion

13. ا IPv6

  • ا 128-bit addresses — خلصت مشكلة نقص العناوين
  • فيه built-in IPsec للأمان
  • بيتم اعتماده تدريجيًا

14. ا PPP

  • ا Data link layer protocol للاتصال المباشر بين device و device
  • بيدعم authentication (PAP, CHAP) — بيستخدمه ISPs

15. ا Gopher

  • من أقدم الـ Internet protocols للـ file retrieval
  • نظام hierarchical menu-based
  • ا Obsolete — مستبدل بـ HTTP و FTP

16. ا UDP

  • اConnectionless — مش بيحتاج connection مسبق
  • سريع لكن لا يضمن التوصيل (no error correction)
  • استخدامات: streaming, gaming, VoIP

Nour Eldeen Mahmoud