sudo netstat -antp পিআইডি দেখাচ্ছে না


1

আমি সকেটগুলির সাথে স্টাফ পরীক্ষা করছি এবং আমি সেই আজব ঘটনাটির মুখোমুখি হয়েছি:

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

এখানে সার্ভারের কোডের একটি অংশ রয়েছে:

//listen()
if( (listen(sock,5)) == -1) {
  perror("listen");
  exit(-1);
}

//accept()
if( (cli = accept(sock, (struct sockaddr *) &client, &len)) == 1 ){
  perror("accept");
  exit(-1);
}

printf("entrez un int : ");
scanf("%d",&toto);

সার্ভার যখন ব্যবহারকারীকে একটি পূর্ণসংখ্যা প্রবেশ করতে বলে, আমি একাধিক ক্লায়েন্টকে টেলনেটের সাথে সংযোগ দেওয়ার চেষ্টা করি।

প্রথম কেল্লা, খোলামেলা ঠিক আছে:

root@[...] :/home/[...]/workspace/sockets# netstat -antp | grep 10003
tcp        0      0 0.0.0.0:10003           0.0.0.0:*               LISTEN      25832/toto      
tcp        0      0 127.0.0.1:10003         127.0.0.1:51166         ESTABLISHED 25832/toto      
tcp        0      0 127.0.0.1:51166         127.0.0.1:10003         ESTABLISHED 25845/telnet

তবে তারপরে প্রথমটির পরে, যদিও আমি মূল, তবুও কিছু সংযোগ রয়েছে যা আমি প্রক্রিয়াটির মালিকানা এবং এর পিড দেখতে পাচ্ছি না:

root@[...] :/home/[...]/workspace/sockets# netstat -antp | grep 10003
tcp        0      0 0.0.0.0:10003           0.0.0.0:*               LISTEN      25832/toto      
tcp        0      0 127.0.0.1:10003         127.0.0.1:51166         ESTABLISHED 25832/toto      
tcp        0      0 127.0.0.1:51166         127.0.0.1:10003         ESTABLISHED 25845/telnet    
tcp        0      0 127.0.0.1:10003         127.0.0.1:51168         ESTABLISHED -               
tcp        0      0 127.0.0.1:51168         127.0.0.1:10003         ESTABLISHED 25852/telnet

তৃতীয়টি:

root@[...] :/home/[...]/workspace/sockets# netstat -antp | grep 10003
tcp        0      0 0.0.0.0:10003           0.0.0.0:*               LISTEN      25832/toto      
tcp        0      0 127.0.0.1:10003         127.0.0.1:51166         ESTABLISHED 25832/toto      
tcp        0      0 127.0.0.1:51166         127.0.0.1:10003         ESTABLISHED 25845/telnet    
tcp        0      0 127.0.0.1:10003         127.0.0.1:51172         ESTABLISHED -               
tcp        0      0 127.0.0.1:10003         127.0.0.1:51168         ESTABLISHED -               
tcp        0      0 127.0.0.1:51168         127.0.0.1:10003         ESTABLISHED 25852/telnet    
tcp        0      0 127.0.0.1:51172         127.0.0.1:10003         ESTABLISHED 25860/telnet

আমি কয়েক দিন পরে নেটস্ট্যাট-অ্যান্টপকে মূল হিসাবে চেষ্টা করেছি এবং আমি যা পেয়েছি তা এখানে:

root@[...] :/home/[...]/workspace/sockets# netstat -antpe | grep 10003
tcp        0      0 0.0.0.0:10003           0.0.0.0:*               LISTEN      1000       327680      22399/toto      
tcp        0      0 127.0.0.1:33286         127.0.0.1:10003         ESTABLISHED 1000       417202      22884/telnet    
tcp        0      0 127.0.0.1:10003         127.0.0.1:33046         ESTABLISHED 0          0           -               
tcp        0      0 127.0.0.1:10003         127.0.0.1:33286         ESTABLISHED 0          0           -               
tcp        0      0 127.0.0.1:33044         127.0.0.1:10003         ESTABLISHED 1000       332810      22402/telnet    
tcp        0      0 127.0.0.1:33046         127.0.0.1:10003         ESTABLISHED 1000       331200      22410/telnet    
tcp        0      0 127.0.0.1:10003         127.0.0.1:33044         ESTABLISHED 1000       332801      22399/toto

কিভাবে একটি প্রক্রিয়া বা সংযোগ 0 এর ইনোড থাকতে পারে? কেউ কি আমাকে ব্যাখ্যা করতে পারেন যে কি চলছে?


গ্রহণের জন্য ব্যাকলগ কী? আমি সন্দেহ করি এটি 2।
— ইউজেন রিইক

যদি আমি সঠিকভাবে বুঝতে পারি এবং ব্যাকলোগটি মুলতুবি থাকা অযোগ্য সংযোগগুলির সারির আকার হয়, তবে কোডটি যেমনটি ইঙ্গিত করে তবে এটি 5 হয় the উপায় দ্বারা, আমি আরও বুঝতে পেরেছি যে সার্ভারটি উল্লিখিত চেয়ে 2 টি আরও ক্লায়েন্টের সাথে সংযোগ স্থাপন করতে পারে ব্যাকলগ, আমি সম্ভবত এটি সম্পর্কিত একটি অন্য পোস্ট পোস্ট করব
— জোসেফ এম'বিম্বি-বেন

উত্তর:


0

লিনাক্স শোনার ব্যাকলগটিতে দ্বি-সারিতে দৃষ্টিভঙ্গি ব্যবহার করে। এর অর্থ হ'ল সম্পূর্ণ সংযোগের পাশাপাশি (আপনার কোড হিসাবে 5 টি) অসম্পূর্ণ রচনার একটি সারিও থাকতে পারে , যেখানে 3 ওয়ে হ্যান্ডশেক এখনও সম্পূর্ণ হয়নি।

এই রাজ্যে সংযোগগুলি এখনও কোনও প্রক্রিয়াতে বরাদ্দ করা হয়নি, সুতরাং সেগুলি কার্নেলের সাথে সম্পর্কিত মাত্র 0 এর একটি প্রক্রিয়া আইডি তৈরি করে This কার্নেলের নকশা অনুসারে আচরণ

দ্বি-কাতারের পদ্ধতির বিশদের জন্য এখানে দেখুন ।

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