একক ওয়েব সার্ভারে একাধিক ক্লায়েন্ট সংযোগগুলি কীভাবে তৈরি হয়?


16

আসলে আমি কম্পিউটার নেটওয়ার্ক শিখছি এবং এটির সময়ে আমি কীভাবে একটি ওয়েব সার্ভার একাধিক সংযোগ রক্ষণাবেক্ষণে বিভ্রান্ত হয়ে পড়েছি ?

সহজভাবে বলতে গেলে, আমি গর্ত শিখেছি কিছু গুগলিং হ'ল সকেটগুলি প্রতিটি ক্লায়েন্টের অনুরোধটি পরিচালনা করে।

সুতরাং যাক একটি ওয়েব সার্ভার আছে এবং আইপি সহ 2 ক্লায়েন্ট বলতে দিন

Client A: 5.5.5.5
Client B: 10.10.10.10 

তারা উভয়ই পোর্ট ৮০ এ সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করে

এখন, আমি যা পেয়েছি তা গুগল করা থেকে, সার্ভার আগত অনুরোধগুলির জন্য 80 পোর্টে শুনবে । তারপরে বলা যাক একটি ক্লায়েন্ট এ সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করে (টিসিপি / আইপি সংযোগ তৈরি করুন)। যার সময় এই দুজনের মধ্যে একটি সকেট তৈরি করা হয়। তারপরে এটির আরও যোগাযোগের জন্য পৃথক থ্রেড হিসাবে কার্যকর করা হয় যাতে সার্ভারটিকে সেই নির্দিষ্ট বন্দরে অন্য ক্লায়েন্টের অনুরোধগুলি আবার শোনা যায়। এবং ক্লায়েন্ট বি একইভাবে সংযোগ করে।

এখন আমার প্রথম প্রশ্নটি হ'ল:

1. How does server communicate with these two clients simultaneously  
   after the connection has been established?

এখন ব্যবহারিকভাবে কেবল 2 জন ক্লায়েন্টই নয়, হাজার এবং মিলিয়ন ব্যবহারকারী কোনও সার্ভারের সাথে সংযোগ স্থাপন করতে পারেন।

তারপরে আমার পরবর্তী প্রশ্নটি হ'ল:

2. Now, how do those thousands of clients get connected to a single server?

   If we assume every client is connected to the server through wire, it is not 
   practically possible to maintain that many sockets on a hardware for
   connection. How those thousands connections are made and handled?

সবশেষে, আমার তৃতীয় প্রশ্নটি হ'ল:

3. Above I said (actually heard) how **client A** connected to the the server
   and similarly the client B.

   But I didn't get the part stating "after a TCP/IP connection is made they
   continue separately in a separate socket and making server to listen for 
   other client requests." What does that mean? If one client is communicating
   to the server, how come other can communicate at the same time to same server.

   Isn't it like while a student is asking question to a teacher, other can't
   ask at the same time since that particular student is busy or occupying the
   teacher at the moment so others should wait, which we compare than client B 
   should wait when client A is communicating.

এগুলি আমার বেসিক প্রশ্ন যা আমি পাচ্ছি না। আমি যদি সব ভুল হয়ে যাচ্ছি তবে দয়া করে আমাকে সংশোধন করুন। উত্তরগুলি বিস্তারিতভাবে নির্দিষ্ট অংশটিতে নির্দিষ্টভাবে মনোনিবেশ না করা থাকলে আপনি আমাকে কয়েকটি বই / পিডিএফ পড়ার পরামর্শ দিতে পারেন। ধন্যবাদ


কোন উত্তর কি আপনাকে সাহায্য করেছে? যদি তা হয় তবে আপনার উত্তরটি গ্রহণ করা উচিত যাতে উত্তরটি সন্ধান করে চিরকালের জন্য পপ আপ না হয়। বিকল্পভাবে, আপনি নিজের উত্তর সরবরাহ করতে এবং গ্রহণ করতে পারেন।
রন মউপিন

উত্তর:


6

এখন, আমি যা পেয়েছি তা গুগল করা থেকে, সার্ভার আগত অনুরোধগুলির জন্য 80 পোর্টে শুনবে।

প্রকৃতপক্ষে, আরও নির্দিষ্টভাবে একটি বিশেষ ধরণের সকেট রয়েছে যার নাম "শ্রবণ" সকেট।

সাধারণত একটি সকেট স্থানীয় আইপি, লোকাল পোর্ট, রিমোট আইপি এবং রিমোট পোর্টের সংমিশ্রণের সাথে যুক্ত।

শোনার সকেট আলাদা। এটি কোনও নির্দিষ্ট দূরবর্তী আইপি এবং পোর্টের সাথে সম্পর্কিত নয়। এটি একটি নির্দিষ্ট স্থানীয় বন্দরের সাথে সম্পর্কিত। এটি নির্দিষ্ট স্থানীয় আইপির সাথে যুক্ত হতে পারে বা নাও হতে পারে।

সাধারণত আপনার ওয়েব সার্ভারে 80 এর স্থানীয় পোর্টের সাথে একটি শ্রবণ সকেট থাকবে

তারপরে বলা যাক একটি ক্লায়েন্ট এ সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করে (টিসিপি / আইপি সংযোগ তৈরি করুন)। যার সময় এই দুজনের মধ্যে একটি সকেট তৈরি করা হয়।

সকেটের একজোড়া আসলে ক্লায়েন্টে একটি, সার্ভারে একটি।

ক্লায়েন্ট অ্যাপ্লিকেশন একটি সকেট তৈরি করে এবং ক্লায়েন্ট ওএসকে এটি সার্ভারের সাথে সংযোগ করতে বলে।

ক্লায়েন্ট ওএস একটি এলোমেলো স্থানীয় পোর্ট বরাদ্দ করে, একটি স্থানীয় আইপি বেছে নেয় (সাধারণত কোন ইন্টারফেসের ভিত্তিতে প্যাকেটটি প্রেরণ করা হবে) এবং ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা অনুরোধ করা দূরবর্তী আইপি এবং পোর্ট পূরণ করে। তারপরে এটি সার্ভারের সাথে সংযোগের প্রক্রিয়া শুরু করে।

সার্ভার ওএস শ্রবণকারী সকেটের ধারককে জানিয়েছে যে একটি নতুন সংযোগ আসছে The সার্ভার অ্যাপ্লিকেশনটি সংযোগটি গ্রহণ করে এবং এটি পরিচালনা করার জন্য একটি নতুন সকেট তৈরি করা হয়েছে।

একাধিক থ্রেড বা এমনকি প্রক্রিয়া একই তালিকা সকেট নিরীক্ষণ করতে পারে। ওএস নিশ্চিত করবে যে ঠিক তাদের মধ্যে একটি প্রদত্ত সংযোগ গ্রহণ করবে।

তারপরে এটি আরও যোগাযোগের জন্য পৃথক থ্রেড হিসাবে কার্যকর করা হয়

এটি সার্ভার অ্যাপ্লিকেশনটির প্রয়োগকারী পর্যন্ত। তারা একাধিক থ্রেড ব্যবহার করতে পারে বা তারা "নির্বাচন করুন" বা "পোল" এর মতো একটি এআইপি ব্যবহার করতে পারে যা একক থ্রেডকে ক্রিয়াকলাপের জন্য একাধিক সকেট নিরীক্ষণ করতে দেয়।


  1. সংযোগ স্থাপনের পরে সার্ভার কীভাবে একই সাথে এই দুটি ক্লায়েন্টের সাথে যোগাযোগ করবে?

সোর্স আইপি, সোর্স পোর্ট, গন্তব্য আইপি এবং গন্তব্য পোর্টের সংমিশ্রণে সার্ভার ওএস পকেটগুলির সাথে মিলবে এবং উপযুক্ত সকেটে সরবরাহ করবে।

  1. এখন, সেই হাজার হাজার ক্লায়েন্ট কীভাবে একটি একক সার্ভারের সাথে সংযুক্ত হবেন?

    যদি আমরা ধরে নিই যে প্রতিটি ক্লায়েন্ট তারের মাধ্যমে সার্ভারের সাথে সংযুক্ত রয়েছে, তবে সংযোগের জন্য কোনও হার্ডওয়ারের মধ্যে এমন অনেকগুলি সকেট বজায় রাখা কার্যত সম্ভব নয়। কীভাবে এই হাজার সংযোগগুলি তৈরি এবং পরিচালনা করা হয়?

এই প্রসঙ্গে "সকেট" কোনও শারীরিক সকেটকে বোঝায় না, কেবল অপারেটিং সিস্টেমের মধ্যে একটি ডেটা কাঠামোকে।

তবুও সীমাবদ্ধতা রয়েছে, একটি আধুনিক সার্ভারে হাজার হাজার ইজিলি করণীয়, লক্ষ লক্ষ লোক কঠিন হয়ে পড়ে।

একজন শিক্ষার্থী যখন একজন শিক্ষককে প্রশ্ন জিজ্ঞাসা করছেন, তখন কি এটি ঠিক নয়, অন্যরা একই সাথে জিজ্ঞাসা করতে পারে না যেহেতু সেই নির্দিষ্ট শিক্ষার্থী এই মুহুর্তে শিক্ষককে ব্যস্ত বা দখল করে রাখছে তাই অন্যরা অপেক্ষা করা উচিত, যা আমরা ক্লায়েন্ট বি অপেক্ষা অপেক্ষা করার চেয়ে তুলনা করি যখন ক্লায়েন্ট এ যোগাযোগ করছেন।

কম্পিউটারগুলি তাদের মনোযোগ বিভক্ত করার চেয়ে লোকের চেয়ে আরও ভাল better স্পষ্টতই যদি সার্ভারটির একটি মাত্র প্রসেসর কোর থাকে তবে এটি একবারে কেবল একটি কাজ করতে পারে তবে এটি যদি খুব দ্রুত জিনিসগুলির মধ্যে স্যুইচ করতে পারে তবে ক্লায়েন্টরা তা খেয়াল করবে না।

এবং অবশ্যই আজকাল অনেক সার্ভারের একাধিক প্রসেসরের কোর থাকে।


সকেট নয়, একটি নতুন সংযোগ তৈরি হয়। আমি মনে করি আপনি সকেট কী তা নিয়ে ওপি'র বিভ্রান্তি বাড়িয়ে দিচ্ছেন।

দেখে মনে হচ্ছে সমস্যাটি হল যে সকেটের সংজ্ঞা অনুসারে আরএফসি প্রকৃত অনুশীলন থেকে আলাদা।

আমি মাত্র গিয়েছিলাম এবং তিনটি বড় অপারেটিং সিস্টেমের জন্য "গ্রহণ" এর জন্য ডকুমেন্টেশন সন্ধান করেছি, তারা সকলেই একটি নতুন সকেট তৈরির বিষয়ে গ্রহণ সম্পর্কে কথা বলে।

http://man7.org/linux/man-pages/man2/accept.2.html

https://www.freebsd.org/cgi/man.cgi?query=accept&sektion=2

https://msdn.microsoft.com/en-us/library/windows/desktop/ms737526%28v=vs.85%29.aspx


১. এর উত্তরের জন্য আমি সকেটের স্বতন্ত্রতা সম্পর্কে জানি। আমি যা বলতে চাইছিলাম তা হ'ল যদি সেখানে 2 টি অনন্য সকেট এবং সার্ভার জানেন যে তারা আলাদা they তাহলে কি সার্ভার প্রতিটি সকেটকে অনুরোধটি একই সাথে পরিচালনা করে চালানোর জন্য একটি সময় স্লাইস দেয়? আমি যদি গুগলে সংযোগ করি এবং আমার অনুরোধটি প্রক্রিয়া করছি তবে এর অর্থ এই নয় যে অন্যান্য মিলিয়ন ব্যবহারকারীদের অনুরোধ মুলতুবিতে রয়েছে?
সাগরিয়াল

এছাড়াও ২. আমি যখন ল্যানের মতো কোনও নেটওয়ার্কের সাথে সংযোগ স্থাপন করতে চাই তখন প্রকৃত দৈহিক জাতীয় বন্দরগুলি বোঝাতে চাইতাম। আমি এখানে শব্দগুলি ভুল ব্যাখ্যা করতে পারে। বলি আমি আবার গুগলে সংযোগ করি। এবং অন্যান্য লক্ষ লক্ষ লোকের মতো single একক গুগল সার্ভারে সংযুক্ত হচ্ছে। আমি আমার বাসা থেকে একইভাবে সেই মিলিয়ন লোককে গুগলে সংযোগ করি। এই সংযোগগুলি কীভাবে সার্ভার দ্বারা পরিচালিত হয়। আমার কম্পিউটার ইন্টারনেট ব্যবহারের জন্য আমার রাউটারের বা বেতারভাবে কোনও পোর্টের সাথে সংযোগ স্থাপন করা দরকার। শারীরিকভাবে কি তাদের লক্ষ লক্ষ বন্দর রয়েছে? এখন আমি মনে করি এটি সার্ভার সম্পর্কে নয় তবে ওয়্যারলেস সংযোগটি কি এটি?
সাগরিয়াল

" সাধারণত একটি সকেট স্থানীয় আইপি, লোকাল পোর্ট, রিমোট আইপি এবং রিমোট পোর্টের সংমিশ্রনের সাথে জড়িত। " আরএফসির সংজ্ঞা অনুসারে একটি সকেট হল স্থানীয় আইপি ঠিকানা এবং টিসিপি পোর্ট, এবং এটির দূরবর্তী ঠিকানাগুলির সাথে কোনও সম্পর্ক নেই " । একটি সংযোগ , স্থানীয় ও দূরবর্তী সকেট সমন্বয়, তাই স্থানীয় IP ঠিকানা, স্থানীয় TCP পোর্ট, দূরবর্তী IP ঠিকানা, এবং দূরবর্তী TCP পোর্ট হয়। আপনি বিষয়টি বিভ্রান্ত করেছেন।
রন Maupin

2
" সার্ভার ওএস শ্রবণকারী সকেটের ধারককে জানিয়ে দেয় যে একটি নতুন সংযোগ আসছে The সার্ভার অ্যাপ্লিকেশনটি সংযোগটি গ্রহণ করে এবং এটি পরিচালনা করার জন্য একটি নতুন সকেট তৈরি করা হয় " " সকেট নয়, একটি নতুন সংযোগ তৈরি হয়। আমি মনে করি আপনি সকেট কী তা নিয়ে ওপি'র বিভ্রান্তি বাড়িয়ে দিচ্ছেন।
রন Maupin

" সার্ভার অপারেটিং সিস্টেম উৎস আইপি, উৎস পোর্ট, গন্তব্য আইপি এবং গন্তব্য পোর্ট সমন্বয় দ্বারা সকেট বিরুদ্ধে প্যাকেট ম্যাচ হবে এবং তাদের উপযুক্ত সকেট পৌঁছে দেই। " আবার, আপনি বিভ্রান্ত হচ্ছে সকেট সঙ্গে সংযোগ
রন Maupin
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.