বন্দরগুলি বোঝার: একসাথে একাধিক ব্রাউজার ট্যাব কীভাবে যোগাযোগ করে? [বন্ধ]


18

আমি আজ উপলব্ধি করেছি যে বন্দর যোগাযোগ কীভাবে কাজ করে তা আমি মৌলিকভাবে বুঝতে পারি না।

যদি আমি পোর্ট ৮০ তে কোনও ওয়েবসভার শোনার কোনও উদাহরণ ছুঁড়ে ফেলি তবে এটি অনেকগুলি বিভিন্ন ব্রাউজারের ট্যাব থেকে প্রাপ্ত অনুরোধের প্রতিক্রিয়া জানাতে পারে, সবগুলিই পোর্ট ৮০ এর মাধ্যমে যোগাযোগ করে।

যাইহোক, আমি সার্ভারের দুটি উদাহরণ শুরু করতে পারি না, উভয়ই পোর্ট ৮০ তে শুনছি, কারণ এটি একটি বন্দর দ্বন্দ্বের কারণ।

আমি সর্বদা এটি প্রদত্ত হিসাবে নিয়েছি, (কেবলমাত্র একটি প্রক্রিয়া নির্দিষ্ট সময়ে একটি নির্দিষ্ট বন্দরকে আবদ্ধ করতে পারে) সত্যিকার অর্থে এটি চিন্তা না করেই - পোর্ট ৮০ এ যোগাযোগের একাধিক প্রক্রিয়া নেই? (যেমন, ব্রাউজারে চলমান প্রতিটি ট্যাব?)

উত্তর:


24

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

আরও বিশদ এখানে


প্রকৃতপক্ষে একই বন্দরে আপনি একাধিক প্রক্রিয়া শুনতে পাচ্ছেন। উদাহরণস্বরূপ আপনি যদি একাধিক udp পাঠকদের সাথে এটি করেন তবে আপনি কার্নেল স্তরে লোড-ব্যালেন্সিং পাবেন। প্রথমে শোনার জন্য সকেটটি খুলুন, তারপরে কাঁটাচামচ করুন recv()এবং প্রতিটি প্রক্রিয়াতে চেষ্টা করুন ।
ভাইরাপুর

5
@ ভাইরাপটার: সত্য, তবে ইউডিপি যেমন সংযোগহীন, "শ্রবণ" এবং "গ্রহণ" এর মধ্যে আসলে কোনও পার্থক্য নেই।
অ্যাডাম রবিনসন

একই ধারণা টিসিপি-র সাথে কাজ করে, শোনার সকেট দিয়ে প্রক্রিয়া তৈরি করে এবং উভয়টিতে () গ্রহণ করে।
ভাইরাপটার

আসলে, যোগাযোগের জন্য একটি সকেট কেবল একটি "শেষ পয়েন্ট"। আমি অনুমান করি আপনি যা বলতে চেয়েছেন তা হল একটি সংযুক্ত সকেট হ'ল স্থানীয় আইপি / পোর্ট এবং দূরবর্তী আইপি / ঠিকানা / দূরবর্তী পোর্টের সংমিশ্রণ। সকেট শব্দটি প্রায়শই ব্যবহৃত হয় যে এর আসল বর্ণনাটি কী তা বোঝা আমার পক্ষে কঠিন ছিল
ওয়েস্টোউক

14

ব্রাউজারটি আপনার কম্পিউটারের এলোমেলো উচ্চ (অর্থাত্> 1024) বন্দর থেকে একটি রিমোট সার্ভারের বন্দরে 80 তে সংযোগ স্থাপন করে Therefore সুতরাং আপনার মেশিনে কোনও বন্দরের বিরোধ নেই।

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


2
এটা সঠিক উত্তর. টিসিপি সংযোগগুলির উভয় প্রান্তে একটি পোর্ট নম্বর রয়েছে। জড়িত উভয় কম্পিউটারই সংযোগ ওয়েবসাইটের মধ্যে পার্থক্য করতে পারে: 80 <-> ব্রাউজার: 12397 এবং বিভিন্ন সংযোগ ওয়েবসাইট: 80 <-> ব্রাউজার: 22958।
pjc50

7

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

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

একটি সম্ভাবনা হ'ল এটি একই প্রক্রিয়াতে সকেট-অবজেক্টটিকে একটি নতুন থ্রেডে পাস করে। এই সকেটের মাধ্যমে যখনই যোগাযোগ ঘটে, এই থ্রেড এটি পরিচালনা করবে। অভিভাবক প্রক্রিয়া মধ্যস্থতা করে যে কোনও সময় যে থ্রেডগুলি সক্রিয় রয়েছে, যা অনেক বেশি হতে পারে।

আরেকটি সম্ভাবনা হ'ল এটি একটি নতুন প্রক্রিয়া স্পিন করে এবং সকেট-অবজেক্টটি প্রক্রিয়াতে চলে যায়। আমি এটি বুঝতে পেরেছি, এখন এই অপারেটিং সিস্টেমের সকেট সিস্টেমের উপর নির্ভর করে এই শিশু-প্রক্রিয়াগুলি এবং তাদের লক্ষ্যগুলির মধ্যে যোগাযোগের মধ্যস্থতা করে। মূল প্রক্রিয়াটির এখনও প্রক্রিয়াগুলির উপর কিছুটা নিয়ন্ত্রণ থাকে যেমন হ্যাংগুলিকে হত্যা করা এবং অন্যান্য আন্ত-প্রক্রিয়া যোগাযোগগুলি।

এই পদ্ধতির মধ্যে কোনটি আরও কার্যকর অপারেটিং সিস্টেমের উপর নির্ভর করে। আইআইআরসি, অ্যাপাচি দুটি মোডে চলতে পারে।

সংক্ষেপে, সকেট গ্রন্থাগারটি ওয়েব-সার্ভারে সমান্তরাল প্রক্রিয়াকরণের একটি স্তর সরবরাহ করে। নতুন সংযোগ গ্রহণের সময় এটি একাধিক একযোগে সংযোগগুলি সক্রিয়ভাবে ডেটা স্থানান্তর করতে পারে।

কোনও ব্রাউজারের জন্য যা লোডের সময়ের উন্নতি করতে কোনও ওয়েবসভারের সাথে একাধিক সংযোগের প্রচেষ্টা স্পিন করতে পারে, ব্রাউজারের শেষেও সমান্তরালতা প্রযোজ্য, এটি একটি ভাল এবং দুর্দান্ত জিনিস। ব্রাউজারটি পৃষ্ঠাটি লোড হওয়ার সাথে সাথে তার অবস্থার উপর নজর রাখে এবং একাধিক সংযোগের প্রচেষ্টা এটি ছড়িয়ে দেয় এটি প্রক্রিয়াটির সমস্ত অংশ part


অনেক উপায়ে সঠিক হওয়ার জন্য +1 :)
মাইকেল লোম্যান

2

কার্যকরভাবে, স্ট্রিম সকেটগুলির দুটি "প্রকার" রয়েছে। একটিতে ওয়াইল্ড কার্ড রয়েছে "অন্য প্রান্ত", একটিতে একটি নির্দিষ্ট হোস্ট রয়েছে: অন্য প্রান্তের জন্য পোর্ট।

কোনও দুটি সকেটের (বা, বরং কখনও হওয়া উচিত) একই "এই শেষ" এবং "অন্যান্য প্রান্ত" সনাক্তকারী থাকতে পারে। "শোনো" এমন সকেটটি (আগত সংযোগগুলি গ্রহণ করে) এমন একটি যা ওয়াইল্ড-কার্ডের "অন্য প্রান্ত" রয়েছে, তাই একবারে কেবল একটির উপস্থিতি থাকতে পারে। সংযোগগুলি আসার সাথে সাথে একটি হয়ে acceptযায়, একটি হোস্টের সাথে একটি সকেট ফেরত: অন্য প্রান্তের জন্য পোর্ট টিপল।


1

আপনার প্রশ্ন আমাকে কয়েক বছর আগে সিসকো সিসএনএ-এর আগে মনে করিয়ে দেয় - একই সন্দেহ ছিল :)

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

যাইহোক, যখন আপনার ব্রাউজারটি ওয়েব সার্ভারের সাথে যোগাযোগ করে, ওয়েব সার্ভারে প্রেরিত ট্র্যাফিকের গন্তব্য বন্দরটি 80 বন্দর হয়, তবে উত্স বন্দরটি একটি এলোমেলো সংখ্যা। সোর্স পোর্টটি হ'ল ওয়েবসারকে জানিয়ে দেওয়া উচিত যে কোন পোর্টে আপনার সাথে আবার যোগাযোগ করা উচিত। প্রতিটি HTTP প্রতিষ্ঠিত সংযোগটি আপনার কম্পিউটারে এটির নিজস্ব বন্দর থাকবে। কয়েকটি ওয়েবসাইট খোলার সাথে নেটস্যাট চালানোর চেষ্টা করুন এবং আমার অর্থ কী তা আপনি তাত্ক্ষণিকভাবে দেখতে পাবেন।

আপনি হাসতে পারেন তবে এই বইটি টিসিপি / আইপি বুনিয়াদি নামানোর দুর্দান্ত এবং দ্রুত উপায়। এটা আমাকে অনেক সাহায্য করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.