الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شرح للTCP/IP - بالتفصيل (1)

مغلق
بدأه Adel Khayata في 5 فبراير 2002 · 3 رد · 2,028 مشاهدة · في منتدى الشبكات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هناك طريقتين مشهوريتين لوسائل الاتصال في الشبكات. الطريقة الأولى قد تم استخدامها من قبل المنظمة العالمية للقواعد (Internationa Organization for Standardization) والطريقة الثانية هي لوزارة الدفاع الأمريكية. سنبدأ بمنوذج وزارة الدفاع إن شاء الله تعالى.

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

1) طبقة البرامج والعمليات (Process/Application Layer)

2) طبقة المضيف إلى المضيف (Host to Host Layer)

3) طبقة الانترنت (Internet Layer)

4) طبقة دخول الشبكة (Network Access Layer)

سنقوم إن شاء الله تعالى بالقاء نظرة على عمليات كل طبقة، وفي النهاية سنأخذ مثال على كيفية ارسال معلومة من جهاز إلى جهاز آخر.

1. البرامج والعمليات:

البروتوكولات الموجودة في هذه الطبقة تستعمل في عمليات توصيل العقدة إلى العقدة (Node to Node) وتتحكم في مواصفات الواجهة الأمامية للمستخدم (user interface)

2. المضيف إلى المضيف:

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

3. الانترنت:

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

4. دخول الشبكة:

هذه الطبقة تراقب عملية تبادل البيانات بين المستضيف والشبكة. وهي مسؤولة عن عنوان الهاردوير. البروتوكولات الموجودة في هذه الطبقة مسؤولة عن النقل المادي للبيانات.

سنقوم الآن باذن الله مراجعة لبعض البروتوكولات الموجودة في كل طبقة.

TCP1.jpg

_______________________________________________________________________

أولا: بروتوكولات طبقة البرامج والعمليات:

1. الشبكة التلفونية Telnet

Telnet هو اختصار لـTelephone Network

من خلال هذا البروتوكول، يستطيع مستخدم الشبكة التليفونية باستعمال الموارد المتاحة في جهاز آخر يسمى بخادم الشبكة التليفونية.

2. بروتوكول نقل الملفات FTP

FTP هو اختصار لـFile Transfer Protocol

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

3. بروتوكول بسيط لنقل الملفات TFTP

Trivial File Transfer Protocol

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

4. نظام ملف الشبكة Network File System NFS

هذا النظام يسمح لأنظمة الملفات المختلفة أن تعمل مع بعضها هكذا: لنفترض أنه عندنا شبكة خادم/زبون ونظام NT يعمل على الخادم وأنظمة الزبون هي Unix. نظام ملف الشبكة يسمح لجزء في ذاكرة RAM الخادم بتخزين ملفات Unix وبذلك تستطيع أجهزة الزبون استعمال هذه الملفات. فعلى الرغم من أن نظام الملفات في NT وUnix تخلتفان - من ناحية طول اسم الملف، أمن، وطريقة تسمية الملف - فإن مستخدمي NT وUnix يستطيعون الوصول إلى هذه الملفات بصورة طبيعية وبدون الحاجة لتغييرات.

5. بروتوكول نقل البريد البسيط Simple Main Transfer Protocol SMTP

يُستعمل هذا البروتوكول في نقل البريد الالكتروني.

6. Line Printer Daemon

صمم هذا البروتوكول من أجل المشاركة في الطابعات. فـLPD بالاضافة إلى LRP يستخدمان لارسال أوامر الطبع إلى طابعات الشبكة عن طريق TCP/IP

7. نافذة اكس X Window

صممت نافذة اكس من أجل عمليات الخادم/الزبون. فهي تُعرف البروتوكول المسؤول عن استخدام واجهة تصويرية للمستخدم Graphical User Interface في علميات الخادم/الزبون.

8. بروتوكول بسيط لادارة الشبكة Simple Network Management Protocol SNMP

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

9. خدمة نطاق الاسم Domain Name Service DNS

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

10. Bootstrap Protocol

11. Dynamic Host Configuration Protocol DHCP

قد تم الحديث عن 10 و11 هنا بواسطة الأخ المرشد:

http://www.c4arab.com/showclass.php?cid=12...sid=58&clid=402

_______________________________________________________________________

ثانياً: بروتوكولات طبقة المضيف إلى المضيف:

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

1) بروتوكول تحكم التوصيل: Transmission COntrol Protocol TCP

2) User Datagram Protocol

أولا: بروتوكول تحكم التوصيل: Transmission COntrol Protocol TCP

يقوم هذا البروتوكول بأخذ مجموعة كبيرة من البيانات من برنامج معين ومن ثم تكسيرها إلى أجزاء صغيرة وتُرقم هذه الأجزاء وترتبها. وعندا يتم ارسال هذه الأجزاء المرقمة، فإن TCP في الجهاز المرسل ينتظر رسالة تأكيد وصول من الـTCP في الجهاز المُستقبل. فإن لم تصل رسالة تأكيد وصول إلى TCP جهاز المرسل، فإن TCP يقوم بإعادة ارسال الأجزاء التي لم يأتي تأكيد بوصولها.

قُبيل عملية بدأ الارسال، يقوم TCP الجهاز المرسل بارسال رسالة إلى TCP الجهاز المستقبل مستفسرا عن امكانية ارسال الرسالة الآن. فإن أتت الإجابة بالايجاب يقوم TCP الجهاز المرسل ببدأ عملية الارسال. وإن كانت الإجابة بلا، فإن TCP الجهاز المرسل ينتظر قليلا قبل أن يرسل رسالة استفسار مرة أخرى. وإن لم يأت الجواب على رسالة الاستفسار، فإن TCP الجهاز المرسل يقوم بإعادة ارسال رسالة الاستفسار.

وعندما تأتي رسالة الإيجاب، فإن TCP الجهاز المرسل يقوم بارسال الأجزاء المرقمة. ويتفق TCP الجهاز المرسل مع TCP الجهاز المستقبل على كمية الأجزاء المرسلة قبل الحصول على رسالة تأكيد وصول آخرى من الجهاز المستقبل. وفي هذه الأثناء ومع بدأ الارسال فإن TCP المرسل يكون دائرة واقعية Virtual Circuit مع TCP المستقبل.

بنية جزء الـTCP

segment.jpg

فيما يلي، سيكون شرحا لبنية جزء TCP

منفذ المصدر Source Port

رقم منفذ الجهاز الذي يقوم بالارسال (سنشرح ما المقصود بالمنفذ في مقال لاحق)

منفذ المستقبل Destination port

رقد منفذ الجهاز الذي يستلم البيانات.

رقم التسلسل Sequence Number

رقم جزء الـTCP الذي يساعد على عملية التجميع عند وصول البيانات إلى غايتها.

رقم التوكيد Aknowledgmenet Number

يحدد أي TCP يجب أن يرسل الآن

طول المقدمة Header Length

محجوز Reserved

دوما يساوي صفر

شفرات البت Code Bits

خواص تحكيم لبدأ ونهاية الدورة session

نافذة Window

حجم النافذة المسموح بارساله في وقت معين.

Checksum

يحتاج لمقالة بنفسها ولكنها برنامج معين لكشف الأخطاء بالرسائل

مؤشر عاجل Urgent Pointer

يؤشر إلى نهاية البيانات المستعجلة

خيار Option

يحدد أعلى قيمة للـTCP

بيانات Data

البيانات المراد توصيلها

كما ترى يا عزيزي القارئ، فإن هناك الكثير من الأمور التي يجب الإحاطة بها لارسال البيانات عن طريق TCP، مما يؤدي إلى بطء في عملية الارسال. ولكن الناحية الإيجابية هي الاعتمادية: فيمكن الاعتماد على TCP لارسال بيانات صحيحة وخالية من الخطأ. ولكن TCP قد صنع في السبعينات من القرن الماضي، عندما لم تكن طبقات التوصيل متطورة بالشكل اللازم، فكانت الكثير من البيانات تضيع أثناء الارسال أو يتم تحويرها. فاستدعت الحاجة انشاء بروتوكول ذو اعتمادية كبيرة. ولكن الآن ومع التطوير في بنية الطبقات وتحسين عمليات تصحيح الأخطاء، أصبحت اعتمادية TCP غير مهمة على النحو السابق، ولكن في هذا العصر السريع تطلب الأمر استحداث بروتوكول جديد يفي هذا الطلب من ناحية السرعة واعتمادية أقل وهي User Datagram Protocol

ثانياً: User Datagram Protocol

هذه هي بنية جزء UDP

udp.jpg

منفذ المصدر Source Port

رقم منفذ الجهاز الذي يقوم بالارسال (سنشرح ما المقصود بالمنفذ في مقال لاحق)

منفذ المستقبل Destination port

رقد منفذ الجهاز الذي يستلم البيانات.

Checksum

يحتاج لمقالة بنفسها ولكنها برنامج معين لكشف الأخطاء بالرسائل

طول المقدمة Header Length

بيانات Data

البيانات المراد توصيلها

فقط! قارن بين هذه المتطلبات وتركيب TCP! ترى بأن UDP يتطلب معلومات أقل، وهذا يؤدي إلى سرعة في الأداء ولكن مع انخفاض في الاعتمادية.

وفي الجزء القادم سنتكلم عن المنافذ أو ports وبروتوكولات طبقة الانترنت

أرجو انكم استمتعتم بوقتكم :)

والسلام

#2

يعطيك العافيه اخوي AbdulJabbar Al-Bastaki

ارجوا ان ترد على سؤالي في هذا القسم من المنتدى..

#3

السلام عليكم.

الله يعطيك العافية أخ عبد الجبار :)

انا في بالي من زمان انو اسوي دروس في الشبكات تبدأ من الصفر و نضعها في مكان ثابت بس انا مضغوط حاليا في الوقت و الحمد لله انو بعتلنا اياك :P

شكرا لك مرة أخرى :)

مع التحيات.

#4

السلام عليكم جميعا

وإياكم

أخي عمار، أي سؤال بالضبط؟ فأسئلتك كثيرة وقد قام الإخوة بالإجابة عليها :) :)

أخي عادل

الحمد لله على كل حال :)

الرابط الأصلي للمقالة موجود في:

http://forums.c4arab.net/showthread.php?s=...=&threadid=5154

والسلام :)

هذا الموضوع مغلق.

مواضيع مشابهة