رابعاً : طبقة النقل Transport Layer
تتمم طبقة النقل خدمات طبقة الشبكة فلذلك نلاحظ أن هناك إنسجاماً بين بروتوكولي هاتان الطبقتان وعلى سبيل المثال نذكر TCP/IP حيث
IP لطبقة الشبكة ، TCP لطبقة النقل
نذكر أيضاً SPX/IPX حيث
IPX لطبقة الشبكة ، SPX لطبقة النقل
وفي هذه الطبقة هناك نوعان من البروتوكولات (تستطيع أن تقول أن هذه الطبقة تعمل بطريقتين) :
1- خدمات تعتمد على الإتصال Connection Oriented
2- خدمات عديمة الإتصال Connectionless
سنشرحهما بالتفصيل فلا تقلق
وكمثال على النوع الأول نذكر البروتوكول TCP بروتوكول التحكم في النقل
وكمثال على النوع الثاني نذكر البروتوكول UDP بروتوكول المخطط البياني للمستخدم
شوف يا سيدي ببساطة النوع الأول TCP يعمل مثل الــ مكالمات التليفونية نضرب الرقم ويرن في الطرف الآخر وإن كان الشخص فاضي بيرد فتتأسس قناة إتصال خلصت المكالمة طيب سلامو عليكو وعليكم السلام
أما النوع الثاني فيعمل مثل خطاب سترسله من مصر إلى أحد أصدقائك في السعودية فتروح البريد طبعاً لن يسأل البريد الشخص السعودي إن كان عنده إستعداد لإستقبال الرسالة بل البريد يأخذ منك الرسالة ويرسلها ويفاجأ الشخص بأن لديه رسالة
خليني أضرب لكم مثال عندنا في الشبكات
النوع الأول مثل البريد الإلكتروني مش لما بترسل رسالة بريد إلكتروني بيقولك في الآخر ويطمنك Your Message Has Send
النوع الثاني مثل الشات يعني أنا هأقولك كيف الحال هأكتبها توصلك على طول
طبعاً لن أقول لك ممكن أقولك كيف الحال تقوم إنت تقولي ممكن أقوم أقولك كيف الحال وبعدين أسألك هي رسالة كيف الحال وصلتك ولا لأ تقوم إنت تقولي وصلت ... كلام فاضي ده الإسلوب الأول لا ينفع هنا
وعلى فكرة لا أحد يظن أن أحد الطريقتين أفضل من الثانية بل كل طريقة لها أوقات تستخدم فيها وحالات مناسبة لها يعني الشات مش ينفع فيه الـ TCP والإيميل مش ينفع فيه إسلوب الـ UDP
أرجو يكون الكلام واضح
ففي هذه الطبقة وكما قلت يتم إضافة رأس للبيانات هذا الرأس في حالة الــ TCP حجمه كبير 20 Bytes وفي حالة الــ UDP حجمه 8 Byte
وهذا طبعاً كلام معقول ومفهوم لسبب كون TCP يقدم خدمات إضافية لا يستطيع أن يوفرها UDP ومن بين هذه الخدمات التي يقدمها الـ TCP
الخدمات التي يقدمها TCP ولا يقدمها UDP :
1- تقطيع البيانات Data Segmentation :
وفوائدها :
أ- إذا كان حجم البيانات المتبادلة على الشبكة كبير كنقل الملفات فيكون من الصعب أن يستقبل جهاز ما مثل هذه الكميات دفعة واحدة لأن هذا يبطء الشبكة لكون جهاز واحد يستخدم الشبكة والأجهزة الأخرى متوقفة
ب- بل إذا حدث خطأ في الإرسال سيضطر النظام المرسل إلى إعادة عملية الإرسال من جديد لقدر كبير من البيانات والتقطيع يحل مثل هذه المشاكل حيث يستخدم الشبكة جهاز جهاز بالتناوب في إرسال القطع Segment وإذا حدث خطأ يرسل فقط الـ segment الذي حدث به خطأ
مش فاكرين كنت بقول ملوحظة مهمة البيانات في هذه المرحلة أو الطبقة تسمى قطعة Segment لأن طبقة النقل تقطع البيانات
2- ترقيم وترتيب الأجزاء المرسلة :
عندما ترسل segments أجزاء أو قطع لملف واحد على الشبكة ، فهناك إحتمال أن تصل هذه الأجزاء في ترتيب غير سليم بسبب إتخاذها لمسارات مختلفة بعضها مزحوم مثلاً والآخر على مسافات بعيدة ... ولكن TCP هو المسئول عن ترتيب هذه الأجزاء وتجميعها
3- رقم المنفذ Port no. :
الموضوع بتاع رقم المنفذ ده موضوع كبير عايز قعدة صغيرة (إبتسامة)
فاكرين البروتوكولات لكل بروتوكول رقم يمثله يعني البروتوكول FTP المسئول عن نقل الملفات رقمه 20 و 21 والبروتوكول HTTP رقمه 80 والبروتوكول ..... زور الموقع ده وإنت تطلع على أرقام المنافذ لجميع البروتوكولات منهم 1024 المهمين أو المستخدمين
https://www.iana.org/assignments/port-numbers
وعلى فكرة لا يلزم حفظهم
المهم إيه اللي دخل موضوع رقم المنفذ ده في طبقة النقل Transport Layer آه مش قلنا هذه الطبقة بتضيف رأس Header للبيانات هذا الرأس من أهم مكوناته رقم المنفذ مش فاهم برده
أقولك أنا
يعني أنا عايز أنقل ملف من على موقع أو سيرفر www.Yahoo.com فسأرسل له رسالة خلينا بقى نقول بيانات تمام وأضيف عليها رقم المنفذ الخاص بي ورقم المنفذ الخاص به المرسل يعني والمستقبل تمام
يعني كام أليس البروتوكول المسئول عن نقل الملفات هو FTP خلاص سأكتب عندي رقم أكبر من 1023 وعنده 20 يعني بقوله سعادتك سيادتك عندك خدمة أو ملف أنا عايز أنقله وأنا فقير إلى الله ليس عندي شيء أقدمه لك
على طول يرد عليك ويقولك أنا 20 وموافق أعطيك الملف يا رقمك
إذن فهذه الطبقة تتميز بالقدرة على توجيه التطبيقات إلى المنافذ اللازمة Ports في الجهاز المستقبل
4- الإشعار بإستلام الرزم Packet Acknowledgment
SRC à ACK à DST
المرسل يسأل المستقبل هل هو جاهز لفتح إتصال وإستقبال البيانات
SRC <-- Rep <-- DST
يرد عليه بالقبول
SRC à Data à DST
يتم إرسال البيانات
SRC <-- Rep <-- DST
تأكيد عملية الإستقبال تم الإستقبال بنجاح
وهذا يشعر بأن البروتوكول TCP بروتوكول موثوق به مش بيضيع البيانات ولد مؤدب وشاطر (إبتسامة)
5- البروتوكول TCP أيضاً له إمكانية التحكم في جريان البيانات وكشف وتصحيح الأخطاء
التحكم في جريان البيانات Data Flow Control يعني الجهاز المستقبل مش ملاحق على المصدر فيقولوا هدي اللعب يا عم شوية (إبتسامة) فيتم الإتفاق على حجم البيانات المرسلة Windowing
ونرقم الخطوات حتى يسهل موضوع التصحيح
SRC à ACK 1 à DST
المرسل يسأل المستقبل هل هو جاهز لفتح إتصال وإستقبال البيانات
SRC <-- Rep 2 <-- DST
يرد عليه بالقبول
SRC à Data 3 à DST
يتم إرسال البيانات
SRC à Data 4 à DST
يتم إرسال البيانات
SRC à Data 5 à DST
يتم إرسال البيانات
SRC à Data 6 à DST
يتم إرسال البيانات
SRC <-- Rep 7 <-- DST
تأكيد عملية الإستقبال تم الإستقبال بنجاح
كل هذا يتم الإتفاق عليه أي نعطي كل خطوة رقم
وشوف هناك ثلاث مصطلحات في الموضوع ده لازم تعرفها
الأول Seq وهو ترقيم للقطعة المرسلة
الثاني ACK هو رقم يتفق عليه يرسل في حالة إستقبالي لجميع الـ Seq
WINdow إتفاق على إجمالي حجم الـ Segment المرسلة
معلش طولت عليكم ولو فيه أي إستفسار أنا تحت الأمر والطلب
أخوكم
عادل الحميدي
المفضلات