أساسيات برمجة الشبكات: بروتوكولات TCP و UDP والمنافذ.

تتصل أجهزة الكمبيوتر التي تعمل على الإنترنت ببعضها البعض عن طريق الشبكات باستخدام إما بروتوكول التحكم في الإرسال (TCP) أو بروتوكول مخطط بيانات المستخدم (UDP).

عندما تكتب برامج Java التي تتصل عبر الشبكة، فأنت تقوم بالبرمجة في طبقة التطبيق من نموذج الشبكات OSI. عادةً، لا داعي للقلق بشأن طبقات TCP و UDP. بدلاً من ذلك، يمكنك استخدام الفئات الموجودة في حزمة java.net.

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


بروتوكول TCP.

بروتوكول التحكم في الإرسال (TCP – Transmission Control Protocol) هو بروتوكول قائم على الاتصال يوفر تدفقًا موثوقًا للبيانات بين جهازي كمبيوتر.

عندما يرغب تطبيقان في الاتصال ببعضهما البعض بشكل موثوق، يقومان بإنشاء اتصال وإرسال البيانات ذهابًا وإيابًا عبر هذا الاتصال. هذا مشابه لإجراء مكالمة هاتفية. إذا كنت تريد التحدث إلى صديق ما، يتم إنشاء اتصال عندما تطلب رقم هاتفها وتجيب. يمكنك إرسال البيانات ذهابًا وإيابًا عبر الاتصال من خلال التحدث مع بعضكما البعض عبر خطوط الهاتف.

مثل شركة الهاتف، يضمن TCP أن البيانات المرسلة من أحد طرفي الاتصال تصل فعليًا إلى الطرف الآخر وبنفس الترتيب الذي تم إرسالها به. خلاف ذلك، تم الإبلاغ عن خطأ. كما يوفر TCP قناة من نقطة إلى نقطة للتطبيقات التي تتطلب اتصالات موثوقة.

يعد بروتوكول نقل النص التشعبي (HTTP) وبروتوكول نقل الملفات (FTP) و Telnet كلها أمثلة على التطبيقات التي تتطلب قناة اتصال موثوقة. يعد الترتيب الذي يتم به إرسال البيانات واستلامها عبر الشبكة أمرًا بالغ الأهمية لنجاح هذه التطبيقات.

عند استخدام HTTP للقراءة من عنوان URL، يجب استلام البيانات بالترتيب الذي تم إرسالها به. خلاف ذلك، ينتهي بك الأمر مع ملف HTML مختلط أو ملف مضغوط تالف أو بعض المعلومات غير الصالحة الأخرى.


بروتوكول UDP.

بروتوكول مخطط بيانات المستخدم (UDP – User Datagram Protocol) هو بروتوكول يرسل حزم بيانات مستقلة، تسمى مخططات البيانات، من كمبيوتر إلى آخر خلال الشبكات دون أي ضمانات حول الوصول.

لا يعتمد بروتوكول UDP على الاتصال مثل بروتوكول TCP. يوفر بروتوكول UDP اتصالاً غير مضمون بين تطبيقين على الشبكة. لا يعتمد UDP على الاتصال مثل TCP. بدلاً من ذلك، فإنه يرسل حزم بيانات مستقلة، تسمى مخططات البيانات، من تطبيق إلى آخر.

يشبه إرسال مخططات البيانات إلى حد كبير إرسال رسالة عبر الخدمة البريدية: ترتيب التسليم ليس مهمًا وغير مضمون، وكل رسالة مستقلة عن أي رسالة أخرى.

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

في الواقع، قد يتم إبطائها بسبب الحمل الزائد أو قد يؤدي الاتصال الموثوق به إلى إبطال الخدمة تمامًا. ضع في اعتبارك، على سبيل المثال، خادم ساعة يرسل الوقت الحالي إلى العميل عندما يُطلب منه القيام بذلك. إذا فات العميل حزمة، فليس من المنطقي حقًا إعادة إرسالها لأن الوقت سيكون غير صحيح عندما يستلمها العميل في المحاولة الثانية.

إذا قدم العميل طلبين واستقبل حزمًا من الخادم خارج الترتيب، فلا يهم حقًا لأن العميل يمكنه معرفة أن الحزم معطلة وتقديم طلب آخر. موثوقية TCP غير ضرورية في هذه الحالة لأنها تسبب تدهور الأداء وقد تعوق فائدة الخدمة.

إقرأ أيضاً… برمجة الشبكات باستخدام الجافا.


المنافذ Ports.

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

البيانات المنقولة عبر الإنترنت تكون مصحوبة بمعلومات عنونة تحدد الكمبيوتر والمنفذ المخصص له. يتم التعرف على الكمبيوتر من خلال عنوان IP الخاص به 32 بت، والذي يستخدمه IP لتوصيل البيانات إلى الكمبيوتر الصحيح على الشبكات. يتم تحديد المنافذ برقم 16 بت، والذي يستخدمه TCP و UDP لتسليم البيانات إلى التطبيق الصحيح.

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