من الممكن استخدام المزيد من المنافذ 65535 لتنفيذ XMPP PubSub أو Comet؟
-
22-09-2019 - |
سؤال
في المذنب/عكس Ajax/PubSub التكنولوجيا/الأساس هو الاقتراع الطويل. لذلك يتم الحفاظ على الاتصال مفتوحًا لمدة دقيقة أو نحو ذلك ..
ووفقًا لمعرفتي الصغيرة حول الشبكات ونظام التشغيل ، يدعم TCP/IP فقط 65535 منفذًا ، لذلك سؤالي هو كيف يمكن لأي خادم دعم المزيد من اتصالات 65535 بشكل متزامن؟
في التطبيق أنا أقوم ببناءه ، سيقوم جميع المستخدمين بالاتصال في نفس الوقت ، ويريد تحديثات حية من الخادم .. مثل تحديثات Trough Tread في الوقت الفعلي ..
هتافات،
المحلول
أنت محق في أن هناك 65535 منفذًا فريدًا أعداد, ، لكن تطبيق خادم TCP يتيح للعديد من العملاء الاتصال بـ نفس منفذ على الخادم. على سبيل المثال ، في خادم الويب ، يتصل جميع العملاء بالمنفذ 80. يتم تحديد الاتصالات بشكل فريد بواسطة 4-Tuple (SRC-Address ، SRC-Port ، Dest-Address ، Dest-Port).
سوف ترغب بالتأكيد في قراءة ما يسمى مشكلة C10K عند تصميم التنفيذ الخاص بك.
نصائح أخرى
يعزى كل اتصال على النحو التالي:
- مصدر IP (يمكن أن يكون أي)
- منفذ المصدر (يمكن أن يكون في النطاق 1024-65535)
- IP الوجهة (IP الخادم الخاص بك)
- منفذ الوجهة (منفذ محدد يعمل تطبيقك)
وبالتالي فإن عدد الاتصالات للخادم محدود بعدد جميع IPs الممكنة المضروبة في 64000 (تقريبًا). لا يمكن لأي خادم التعامل مع ذلك حتى الآن ... :)