কার্নেল স্পেসে প্যাকেট ক্যাপচারের জন্য বাফার সাইজ?


16

ম্যান পৃষ্ঠাতে গিয়ে tcpdumpমনে হচ্ছে, বাফার পূর্ণ থাকলে কার্নেল প্যাকেটগুলি ফেলে দিতে পারে। আমি ভাবছি যদি হয়:

  1. যে আকারটি কনফিগারযোগ্য এবং / অথবা is
  2. আমি আমার ডিস্ট্রো এর জন্য আকারটি কোথায় দেখতে পাব?

ম্যান পৃষ্ঠা থেকে (সহজ রেফারেন্সের জন্য):

প্যাকেটগুলি nel ker কার্নেল দ্বারা নামিয়ে দেওয়া হয়েছে '' (ওএসের প্যাকেট ক্যাপচার পদ্ধতিতে যে টিসিপিডাম্প চলছে সেগুলি দ্বারা, বাফারের জায়গার অভাবে এই প্যাকেটগুলি ফেলে দেওয়া হয়েছিল), যদি ওএস অ্যাপ্লিকেশনগুলিতে সেই তথ্যটি রিপোর্ট করে; যদি তা না হয় তবে এটি 0 হিসাবে প্রতিবেদন করা হবে।

উত্তর:


27

টিসিপিডম্পে -Bক্যাপচার বাফার আকার সেট করার বিকল্প রয়েছে । এর পরে pcap_set_buffer_size()ফাংশনের মাধ্যমে মানটি libpcap (প্রকৃত প্যাকেট ক্যাপচারিংয়ের জন্য tcpdump দ্বারা ব্যবহৃত লাইব্রেরি) এ পাঠানো হয় । Tcpdump ম্যানপেজটি -B-দিয়ে বাফার আকারটি নির্দিষ্ট করে কোন ইউনিটগুলিতে নির্দিষ্ট করে না তবে উত্স থেকে মনে হয় এটি কিবি।

ম্যানুয়াল পৃষ্ঠাটি pcap_set_buffer_size()ডিফল্ট বাফার আকার নির্দিষ্ট করে না (যা এই ফাংশনটি বলা না হলে এটি ব্যবহৃত হয়), তবে আবার, libpcap উত্স থেকে, এটি 2 মাইবি বলে মনে হচ্ছে, কমপক্ষে লিনাক্সে (তবে সম্ভবত সিস্টেম নির্ভর)।

প্যাকেট বাফারিং এবং ড্রপিংয়ের ক্ষেত্রে আপনার -sসেই অনুযায়ী স্ন্যাপলেন ( ) পরামিতি সেট করার দিকেও মনোযোগ দেওয়া উচিত । man tcpdump:

-s     Snarf  snaplen bytes of data from each packet rather than the
default of 65535 bytes.  Packets truncated because of a limited snapshot
are indicated in the output with ``[|proto]'', where proto is the name of
the protocol level at which the truncation has occurred. Note that  taking
larger  snapshots both increases the amount of time it  takes  to
process packets and, effectively, decreases the amount of packet buffering.
This may cause packets to be lost. You should limit snaplen to the
smallest number that will capture the protocol information you're
interested in. Setting snaplen to 0 sets it to the default of 65535, for
back-wards compatibility with recent older versions of tcpdump.

এর অর্থ হ'ল স্থির বাফার আকারের সাহায্যে আপনি স্ন্যাপলিনের আকার হ্রাস করে বাফারে ফিট হওয়া প্যাকেটের সংখ্যা বাড়িয়ে তুলতে পারেন (এবং এভাবে বাদ দেওয়া হবে না)।


2
আমি জানি এটি একটি পুরানো থ্রেড (এবং আমি এই উত্তরটি পছন্দ করি) তবে আপনি যখন গিটহাবের উত্সগুলি উদ্ধৃত করেন, দয়া করে বর্তমান প্রতিশ্রুতিটি নির্দেশ করুন (যেমন মাস্টার শাখা পরিবর্তন করতে পারে), যেমন: github.com/mcr/tcpdump/blob/ …
ব্রুনো nery

@ ব্রুননারি স্ট্যাক এক্সচেঞ্জ সাইটগুলির ক্ষেত্রে এটি কোনও সমস্যা নয়, যেখানে পোস্টটি নিজেই বেশ পুরানো হলেও আমরা উত্তরগুলি উন্নত করতে ব্যবহারকারীদের আসলে উত্সাহিত করি। (ফোরামগুলির বিপরীতে যেখানে এটি উদ্ভাসিত রয়েছে))
লায়ো লাম

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