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

بروتوكول Sctp اكتب ما تعرفه هنا.

بدأه prof_1982 في 4 سبتمبر 2008 · 9 رد · 2,914 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الاعزاء بعد العمل الجاد والمضني لمدة 4 شهور لقد اتممت برنامج محادثة صوتية نظام غرف صوتية وكانت النتيجة رائعة اثناء التجربة علي الشبكة الداخلية حيث تم دخول 30 شخص في غرفة واحدة وكان الصوت رائع وانا استخدمت TCP في عملية نقل الصوت ولكن الكارثة عندما تم تركيبه علي الانترنت اصبح هناك مشكلة في الصوت ، فقد قمت بالبحث عن حل للمشكلة فقرأت عن بروتوكول SCTP وهو يدمج بين النظامين TCP/UDP

حيث يدمج اهم خصائص ال TCP من حيث القدرة والسيطرة علي عملية الاتصال وانهائه والقراء والكتابة علي نفس القناة وترتيب الحزم، وخصائص UDP من حيث السرعة وعدم الاكتراث للحزم المفقودة يعني بالمختصر بروتوكول رائع بكل معني الكلمة ، ولكن قرأت اخبار متضاربة عن انه ليس مدعوما في ويندوز فقط في لينكس، وبالفعل لم اجد له اسم يذكر في بنية الSocket الاساسية فهل من احد عنده اي خبر او اي شيئ يخدم هذا الاتجاه .

تحياتي للجميع .

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#2

أخى الكريم

لدى اسئلة للإجابة على اسألتك .. لأنى قمت بتجريب برنامج قبل ذلك وعمل بالفعل :-

1. ماهى اداة الأتصال ؟ TCP , Sokcet's

2. هل يوجد أكثر من بورت للبرنامج ام يوجد بورت واحد للأتصال والصوت ؟

3. ما خصائص الجهاز المستضيف ؟ Ram / Connection

4. ماهو المكون الذى اعتمدت عليه لعمل Voice Streaming ؟

5.هل البرنامج ديلفى أم فيجول بيسك ؟ أنى أراك دائماً بالفيجول .

بالتوفيق

تم تعديل هذه المشاركة بواسطة Swift في 4 سبتمبر 2008 في 03:14

Comming Soon

#3

اهلا بيك اخي Swift وشكرا علي مشاركتك بالنسبة لاسئلتك

اولا اداة الاتصال هي TNetClientSocket , TNetServerSocket وهما مشتقتان من الاداة الرئيسية في دلفيTClientSocket , TServerSocket ولكن قمت بالتطوير عليهما بشكل كبير ليخدماني في هذا المشروع .

2-بالنسبة للبورتات يوجد لكل مهمة بورت مثلا الدردشة الكتابية بورت والصوت بورت والفيديو بورت ايضا .

3- التجربة الاولي كانت علي جهاز عادي رام 512 ميغا واتصال dsl 512 ، والتجربة الثانية كانت علي جهاز سيرفر HP معالجين ورام 512 واتصال 512 تجاري ولا اعتقد المشكلة في الاتصال لانها ظهرت عند وجود شخصين في الغرفة حيث واحد يتكلم والاخر يستمع ،وحجم باكيت الصوت 1625 بايت في الثانية كأي برنامج محادثة اخر ، واستخدمت فورمات صوت GSM6.10 المستخدم في معظم دردشات الصوت في العالم .

4- فقط استخدمت مكون لقراءة الصوت من المايك والكتابة الي مخرج الصوت وما بين ذلك كله جهد شخصي .

5- البرنامج طبعا دلفي :) وانا انتقلت الي دلفي منذ عامين دلفاوي :) ، واعمل علي دلفي 7 .

تحياتي

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#4

انا اعلم جيدا ان المشكلة فقط في طبيعة بروتوكول TCP الذي لا يسمح لاي باكيت بالسقوط ، فهو بطيئ نسبيا ، ويعيق جريان تدفق البيانات عندما يقوم باعادة طلب باكيت سقطت . وهذا ما يسبب المشكلة .

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#5

جميل جداً

جاوبت على 1 / 2/ 3 / 5 بقى السؤال الرابع اسم المكون المستعمل

بالنسبة لتجربتى الشخصية :

أولا: بحب اقولك انى ميش شرط أنى تكون المشكلة بالبرتوكول .. بعض الأشخاص كانوا يتحدثون عن اشياء أكبر من هذا Voip وكل هذه الأشياء

سوف لا تعيقك فى هذا المشروع

أنا قمت بتجربة برنامج كان يعمل على :-

1. اداة اتصال TSocket's

2. أربع بورتات للبرنامج واحد للصوت وواحد للفديو وواحد لنقل الملفات وواحد للأتصال .

- بالنسبة للسيرفر لازم تفتح بورت Forward Port لكل بورت من البورتات المستخدمة لبرنامجك .

3. المكون المستعمل لنقل الصوت هو TMM والكوديك المستعمل كان Speex القوى .

- احدى العوائق كانت عندما نختار كوديك أعلى من الكوديك الموجود مثلا 44.000/s الى 192.000/s كان الصوت يقطع .

حسناً قم بفتح البورت الخاص بالصوت وأخبرنى بالنتيجة .

تم تعديل هذه المشاركة بواسطة Swift في 4 سبتمبر 2008 في 11:58

Comming Soon

#6

اخي العزيز بروف

هل المشكلة تقطيع في الصوت فقط؟؟

اقتباس
حيث واحد يتكلم والاخر يستمع ،وحجم باكيت الصوت 1625 بايت في الثانية كأي برنامج محادثة اخر

يوجد امر يجب مراعاته هنا, هل ترسل الـBuffer مرة كل ثانية ؟ ام تجزئه ؟

الأمر الآخر يجب الأخذ بعين الإعتبار حجم الـMTU لشبكة وبناء عليها يكون حجم الباكيت وكمثال الـMTU للإنترنت هو 576 Bytes اما للـEthernet فهو 1500 Bytes ولذلك لن تستطيع ارسال باكيت الصوت إذا تجاوز حجم الـMTU لشبكة التي ترسل عليها هذا الأمر في الـUDP اما في الـTCP فسوف يقوم بتقسيم باكيت الصوت إلى عدة اجزاء حتى يمكن ارساله عبر الشبكة فمثلا سيقوم بتقسيم 1625 Bytes التي ترسلها على الإنترنت إلى 3 باكيتس على الأقل وقد يسبب ذلك تقطيع في الصوت لعدة اسباب واهمها زيادة حجم الداتا وايضا مشكلة محاولة ارسال البيانات في حال فقدانها وهذا الأمر مستحيل في برمجيات الدردشة الصوتية كون ان الـBuffer سيتم افراغه حال ارسال البيانات مما يؤدي إلى مشكلة الـTime Out وبذلك زيادة كبيرة في الـDelay مما لا يمكنك من سماع شيء.

الحل هو استخدام الـRTP/UDP كون أن الـSCTP غير مدعم بالـTCP/IP بشكل افتراضي في الويندوز.

لمزيد من المعلومات عن الـRTP وكيفية ادارة الـBuffer أنظر إلى سلسلة دروس برمجة الـRTP هنا

بالتوفيق

#7

ماذا وصلت بالموضوع ؟

أتمنى بعد انتهاء العمل على برنامجك أن تضع درساً يختص ببرمجة نقل الصوت من بين

Client <> Server <> Client

وطريقة p2p أيضاًَ حتى استفاد ويستفاد الأعضاء ايضاً فى هذا المجال

لأنى اعشق برمجة الشبكات

تم تعديل هذه المشاركة بواسطة Swift في 11 سبتمبر 2008 في 03:13

Comming Soon

#8

بناء علي توصية الاخ فادي قمت بتصغير الباكيت للنصف تقريبا وزالت مشكلة الصوت بنسبة 90% الحمد لله ، ساقوم بعمل درس ان شاء الله

لو مسموح تنزيل البرنامج EXE هنا كان نزلت الكلاينت والسيرفر للتجريب وابداء الاراء ، واللي يحب يستفسر عن شيئ فيه .

تحياتي .

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#9
اقتباس
بناء علي توصية الاخ فادي قمت بتصغير الباكيت للنصف تقريبا وزالت مشكلة الصوت بنسبة 90% الحمد لله

أشرت الى هذه النقطة اعلاه ولكن بطريقة أخرى

اقتباس
- احدى العوائق كانت عندما نختار كوديك أعلى من الكوديك الموجود مثلا 44.000/s الى 192.000/s كان الصوت يقطع .
اقتباس
لو مسموح تنزيل البرنامج EXE هنا كان نزلت الكلاينت والسيرفر للتجريب وابداء الاراء ، واللي يحب يستفسر عن شيئ فيه
اعتقد انة غير مسموح لو تم وضعة فى صيغة exe ويعتبر مخالف

ممكن ترفق مثال بسيط على برمجة الشبكات مدموج معه Voice Streaming وحيث تطرح الأسئلة علية ..

بالتوفيق

Comming Soon

#10
prof_1982 كتب:
لو مسموح تنزيل البرنامج EXE هنا كان نزلت الكلاينت والسيرفر للتجريب وابداء الاراء

حسب قوانين المنتدى الحالية ممنوع ارفاق ملف تنفيذي

لكن ليس ممنوع وضع رابط لملف تنفيذي

يمكنك وضعه باي موقع تحميل وتضع رابط هنا

والسلام عليكم

d4baa0.gif

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…