টিসিপি উত্স বন্দরটি কি হোস্ট প্রতি অনন্য হতে হবে?


10

আমি শিখেছি যে টিসিপি সংযোগটি টিপল (সোর্স আইপি, উত্স পোর্ট, গন্তব্য আইপি, গন্তব্য পোর্ট) দ্বারা চিহ্নিত করা হয়েছে। তাত্ত্বিকভাবে, এভাবে হোস্ট 1: পোর্ট 1 থেকে ক্লায়েন্ট সার্ভার 1: পোর্ট 1 এর সাথে সংযুক্ত হওয়া এবং একই সাথে অন্য ক্লায়েন্ট (হোস্ট 1 তে চলমান) হোস্ট 1: পোর্ট 1 থেকে সার্ভার 2: পোর্ট 1 এ থাকা সম্ভব হবে।

আমি জাভাতে কিছুটা পরীক্ষা করেছি এবং এখন পর্যন্ত এটি সম্ভব বলে মনে হচ্ছে।

তবে, আমি একাধিকবার পড়েছি যে হোস্ট অ্যাড্রেসের জন্য সোর্স পোর্টটি অনন্য হতে হবে, যা মূলত এর অর্থ হ'ল সর্বাধিক 65536 একত্রে বহির্গামী টিসিপি সংযোগগুলির একটি হার্ড সীমা রয়েছে। এটা কি সত্যি?

আপডেট: এখানে আমার জাভা কোড। এটি কাজ করছে বলে মনে হচ্ছে এবং নেটসট্যাট-তে পরিষ্কারভাবে দুটি সক্রিয়, পোর্ট 9990 (এক থেকে 9997, এক থেকে 9998) এর বহির্গামী সংযোগগুলি দেখায় । কমপক্ষে একটি আধুনিক লিনাক্সে, এটি কি সম্ভব বলে মনে হচ্ছে?

Socket s1 = new Socket();
s1.setReuseAddress(true);
SocketAddress saremote = new InetSocketAddress("localhost",9999);
SocketAddress salocal = new InetSocketAddress("localhost",9990);
s1.bind(salocal);
s1.connect(saremote);


Socket s2 = new Socket();
s2.setReuseAddress(true);
SocketAddress saremote2 = new InetSocketAddress("localhost",9998);
SocketAddress salocal2 = new InetSocketAddress("localhost",9990);
s2.bind(salocal2);
s2.connect(saremote2);

এবং নেটস্যাট-ট আউটপুট (কেটে গেছে):

tcp6       0      0 localhost:9990          localhost:9998          CONNECTED 
tcp6       0      0 localhost:9990          localhost:9999          CONNECTED 

"আপনি যদি ভাল ডিজাইন করা সিস্টেমগুলির উপরের সীমা সম্পর্কে জিজ্ঞাসা করেন তবে আপনি অবশ্যই এটি ভুল করছেন ™ "
ক্রিস এস

উত্তর:


16

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


2
ধন্যবাদ, এটি আমার প্রশ্নের তাত্ত্বিক অংশটির সম্পূর্ণ উত্তর দেয়! আমার ধারণা, প্রতিটি টিসিপি বাস্তবায়নের জন্য আমাকে চেষ্টা করতে হবে।
lxgr

5

বাস্তবে এটি সর্বোচ্চ উদাহরণস্বরূপ লিনাক্স net.ipv4.ip_local_portবহিরাগত সংযোগের জন্য ব্যবহৃত পোর্টগুলি নির্ধারণ করতে কার্নেল প্যারামিটার ব্যবহার করে । এটি সাধারণত এরকম কিছু

sysctl net.ipv4.ip_local_port_range 32768 to 61000

আপনি সিস্টেস্টেল সহ উপলভ্য সংখ্যা বৃদ্ধি করতে পারেন

sysctl -w net.ipv4.ip_local_port_range="10000 64000"

অথবা আপনি একই তথ্য দিয়ে /etc/sysctl.conf সম্পাদনা করতে পারেন

net.ipv4.ip_local_port_range = 10000 65535

আমি যে উদাহরণগুলি পেয়েছি তার সবগুলিই ন্যূনতম মানটি 1024 হতে দেখায়।


1

আইনের উত্তর (উপরে) ছাড়াও, আপনার কার্নেল দ্বারা আউটগোয়িং সংযোগের জন্য কেবল 10,000 টি পোর্টের অনুমতি থাকতে পারে, তাত্ত্বিকভাবে অ্যাডাপ্টারের আইপি ঠিকানায় আপনার কমপক্ষে এক্সএক্স, বিএসএক্স পোর্টগুলির মধ্যে একটি সীমাবদ্ধ। যেহেতু 127.1 স্থানীয় নেটওয়ার্কে থাকা, বাইরের বিশ্বের কাছে উপলব্ধ নেই, তবে একে অপরের আইপি ঠিকানার ( বাহ্যিক ) জন্য আপনার 65 কে পোর্ট সীমার মধ্যে বহির্গামী পোর্টগুলির একটি সেট রয়েছে।

বহির্গামী সীমাটি আসলে:

  With 1 IP Address: XX,XXX (or 2 x XX,XXX on internal network)
  With 2 IP addresses: 2 x XX,XXX (or 3 x XX,XXX on internal network)
  With 3 IP addresses: 3 x XX,XXX (or 4 x XX,XXX on internal network)
  etc.

এই কাজটি করার জন্য, আপনাকে এই থ্রেডের উত্তরটি পড়তে হবে ।


0

হ্যাঁ. এটা সত্য.

পোর্টগুলি আবদ্ধ করতে হবে এবং নেটওয়ার্কের সাথে অ্যাপ্লিকেশনগুলি।

আপনার কাছে CP৫৫৩৩ টির বেশি অ্যাপ্লিকেশন টিসিপি দ্বারা এবং 65535 ইউডিপি দ্বারা একই হোস্টে সংযুক্ত থাকতে পারে না। অপারেটিং সিস্টেমগুলি টিপিকভাবে ডাইনামিক্যালি পোর্টগুলি নেটওয়ার্কের সাথে সংযুক্ত প্রতিটি অ্যাপ্লিকেশানের জন্য একটি বরাদ্দ দেয় managed

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


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

0

যদিও কোনও সিস্টেমে খোলা টিসিপি সংযোগের সংখ্যার সীমা থাকতে পারে, তবে সাধারণত ব্যবহৃত বন্দর নম্বর সম্পর্কিত কোনও বিধিনিষেধ নেই। একটি ভাল টিসিপি বাস্তবায়ন অবশ্যই দু'বার একই জোড়া সকেট ব্যবহার করা আটকাতে হবে। (সকেট = আইপি ঠিকানা + পোর্ট)। কোনও বন্দরটি কোনও সংযোগ চুরি রোধ করার জন্য একটি প্রক্রিয়াতে বরাদ্দ করা হয়, এবং স্বাভাবিক পদ্ধতিটি শ্রবণ বন্দরের জন্য বা বহির্গামীটির জন্য একটি মুক্ত পোর্টের জন্য অনুরোধ করা হয়। এটি সদৃশ আউটগোয়িং সকেটগুলিকে বাধা দেয় এবং তাই ডুপ্লিকেট সংযোগগুলি। এই পদ্ধতিটি ব্যবহার করতে ব্যর্থ হওয়া, অ্যাপ্লিকেশনটি নিজেই নকল সংযোগ তৈরি আটকাতে হবে prevent


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