Tcpdump - قيادة لينكس - قيادة يونيكس

اسم

tcpdump - تفريغ حركة المرور على الشبكة

موجز

tcpdump [ -adeflnNOpqRStuvxX ] [ عدد -c ]

[ -C file_size ] [ ملف -F ]

[ -i interface ] [ -m module ] [ -r file ]

[ -s snaplen ] [ -T type ] [ -U user ] [ -w file ]

[ -E algo: secret ] [ expression ]

وصف

يطبع Tcpdump رؤوس الحزم على واجهة شبكة تتطابق مع التعبير المنطقي. يمكن أيضًا تشغيلها باستخدام العلامة -w ، والتي تؤدي إلى حفظ بيانات الحزمة إلى ملف لتحليله لاحقًا ، و / أو باستخدام العلامة - r ، مما يؤدي إلى قراءتها من ملف حزمة محفوظة بدلاً من قراءة الحزم من واجهة الشبكة. في جميع الحالات ، تتم معالجة الحزم التي تطابق التعبير فقط بواسطة tcpdump .

Tcpdump ، إذا لم يتم تشغيله باستخدام العلامة -c ، استمر في التقاط الحزم حتى يتم مقاطعتها بواسطة إشارة SIGINT (تم إنشاؤها ، على سبيل المثال ، بكتابة حرف المقاطعة الخاص بك ، عادةً C-control) أو إشارة SIGTERM (عادةً ما يتم توليدها بقتل (1) قيادة) ؛ إذا تم تشغيلها باستخدام العلامة -c ، فستلتقط الحزم حتى يتم مقاطعتها بإشارة SIGINT أو SIGTERM أو تتم معالجة العدد المحدد من الرزم.

عندما تنتهي tcpdump من التقاط الحزم ، ستقوم بإعداد تقارير عن:

الحزم `` التي تلقاها الفلتر '' (يعتمد هذا المعنى على نظام التشغيل الذي تقوم بتشغيل tcpdump عليه ، وربما على طريقة تهيئة نظام التشغيل - إذا تم تحديد مرشح في سطر الأوامر ، على بعض أنظمة تشغيل فإنه يحتسب الحزم بغض النظر عما إذا كانت مطابقة مع تعبير الفلتر ، وعلى أنظمة تشغيل أخرى ، فإنها تحسب فقط الحزم التي تم مطابقتها بتعبير المرشح وتمت معالجتها بواسطة tcpdump ) ؛

الحزم "` انخفض بنواة "(هذا هو عدد الحزم التي تم إسقاطها ، بسبب نقص مساحة المخزن المؤقت ، من خلال آلية التقاط الحزمة في نظام التشغيل الذي تعمل عليه tcpdump ، إذا كان نظام التشغيل يقوم بالإبلاغ عن تلك المعلومات إلى التطبيقات ؛ إذا لم يكن كذلك ، فسيتم الإبلاغ عنها كـ 0).

على الأنظمة الأساسية التي تدعم إشارة SIGINFO ، مثل معظم BSDs ، ستقوم بالإبلاغ عن هذه التهم عندما تتلقى إشارة SIGINFO (تم إنشاؤها ، على سبيل المثال ، بكتابة الحرف `'status' 'الخاص بك ، عادةً control-T) وستستمر في التقاط الحزم .

قد تتطلب قراءة الحزم من واجهة الشبكة امتلاك امتيازات خاصة:

تحت SunOS 3.x أو 4.x مع NIT أو BPF:

يجب أن يكون لديك حق الوصول للقراءة إلى / dev / nit أو / dev / bpf * .

تحت Solaris مع DLPI:

يجب أن يكون لديك حق الوصول للقراءة / الكتابة إلى جهاز الشبكة الزائفة ، على سبيل المثال / dev / le . على الأقل بعض إصدارات Solaris ، هذا لا يكفي للسماح tcpdump للقبض في وضع مختلط؛ على تلك الإصدارات من سولاريس ، يجب أن تكون الجذر ، أو يجب تثبيت tcpdump setuid إلى الجذر ، من أجل التقاط في الوضع مختلط. لاحظ أنه على العديد من الواجهات (ربما كلها) ، إذا لم تقم بالتقاط في الوضع المختلط ، فلن ترى أي رزم صادرة ، لذا قد لا يكون الالتقاط الذي لم يتم في الوضع المختلط مفيدًا للغاية.

تحت HP-UX مع DLPI:

يجب أن تكون الجذر أو يجب تثبيت tcpdump setuid إلى الجذر.

تحت IRIX مع snoop:

يجب أن تكون الجذر أو يجب تثبيت tcpdump setuid إلى الجذر.

ضمن Linux:

يجب أن تكون الجذر أو يجب تثبيت tcpdump setuid إلى الجذر.

تحت Ultrix و Digital UNIX / Tru64 UNIX:

يمكن لأي مستخدم التقاط حركة مرور الشبكة باستخدام tcpdump . ومع ذلك ، لا يمكن لأي مستخدم (ولا حتى المستخدم الفائق) الالتقاط في الوضع المختلط على واجهة ما إلا إذا قام المستخدم super-user بتمكين تشغيل الوضع المختلط على هذه الواجهة باستخدام pfconfig (8) ، ولم يكن هناك مستخدم (ولا حتى المستخدم المتميز ) يمكن التقاط حركة المرور أحادي الإرسال التي يتلقاها أو يرسلها الجهاز على واجهة ما إلا إذا قام المستخدم المتميز بتمكين عملية النسخ على كل الوضع على هذه الواجهة باستخدام pfconfig ، لذا قد يتطلب التقاط الحزمة المفيدة على واجهة إما وضع غير شرعي أو نسخة يتم تمكين تشغيل الوضع الخاص ، أو كلا أساليب التشغيل ، على هذه الواجهة.

تحت BSD:

يجب أن يكون لديك حق الوصول للقراءة / dev / bpf * .

قراءة ملف حزمة محفوظة لا يتطلب امتيازات خاصة.

خيارات

محاولة تحويل عناوين الشبكة والبث إلى الأسماء.

-c

الخروج بعد تلقي حزم البيانات.

-C

قبل كتابة حزمة raw إلى savefile ، تحقق مما إذا كان الملف أكبر من file_size حاليًا ، وإذا كان الأمر كذلك ، فقم بإغلاق ملف savefile الحالي وفتح ملف جديد. سيحتوي Savefiles بعد الحفظ الأول على الاسم المحدد مع علامة -w ، برقم بعده ، يبدأ من 2 ويستمر لأعلى. وحدات file_size هي الملايين من البايتات (1،000،000 بايت ، لا بايت 1،048،576).

تفريغ رمز المطابقة حزمة المترجمة في نموذج قابل للقراءة الإنسان إلى الإخراج القياسي والتوقف.

-dD

تفريغ رمز مطابقة الحزمة كـ جزء برنامج C.

-ddd

تفريغ رمز مطابقة الحزمة كأرقام عشرية (مسبوقة بعدد).

-e

اطبع رأس مستوى الارتباط على كل سطر تفريغ.

-E

استخدم algo: secret لفك تشفير حزم IPSec ESP. قد تكون الخوارزميات des-cbc أو 3des -cbc أو blowfish- cbc أو rc3-cbc أو cast128-cbc أو لا شيء . الافتراضي هو des-cbc . القدرة على فك حزم الحزم موجودة فقط إذا تم تجميع tcpdump مع التشفير ممكنا. سر النص ascii لمفتاح سر ESP. لا يمكننا اتخاذ قيمة ثنائية عشوائية في هذه اللحظة. يفترض الخيار RFC2406 ESP ، وليس RFC1827 ESP. الخيار هو فقط لأغراض التصحيح ، واستخدام هذا الخيار مع مفتاح `سرية 'حقا هو بالإحباط. من خلال تقديم مفتاح IPsec السري على سطر الأوامر ، يمكنك جعله مرئيًا للآخرين ، عبر ps (1) ومناسبات أخرى.

-F

اطبع عناوين الإنترنت "الأجنبية" عدديًا بدلاً من الرمز (هذا الخيار مخصص للتغلب على الأضرار الخطيرة في الدماغ في خادم yp yp-- --- عادة ما يتم تعليقه إلى الأبد لترجمة أرقام الإنترنت غير المحلية).

-F

استخدم الملف كمدخل لتعبير المرشح. يتم تجاهل تعبير إضافي معطى في سطر الأوامر.

-أنا

الاستماع على واجهة . إذا كان غير محدد ، يبحث tcpdump عن قائمة واجهة النظام لأدنى واجهة رقمية مرقمة (باستثناء الاسترجاع). يتم كسر الروابط عن طريق اختيار أقرب مباراة.

في أنظمة Linux ذات 2.2 أو أحدث الحبيبات ، يمكن استخدام وسيطة واجهة '`any' 'لالتقاط الحزم من جميع الواجهات. لاحظ أن الالتقاط على جهاز `'أي' 'لن يتم في وضع مختلط.

-l

جعل خط stdout مخزنة. مفيد إذا كنت ترغب في رؤية البيانات أثناء التقاطها. على سبيل المثال،
`` tcpdump -l | tee dat '' or `` tcpdump -l> dat & tail -f dat ''.

-m

تحميل تعريفات وحدة SMI MIB من وحدة الملف. يمكن استخدام هذا الخيار عدة مرات لتحميل عدة وحدات MIB إلى tcpdump .

-n

لا تحول عناوين المضيف إلى أسماء. يمكن استخدام هذا لتجنب عمليات البحث عن DNS.

-NN

لا تقم بتحويل البروتوكول وأرقام المنافذ إلخ إلى أسماء سواء.

-N

لا تطبع مؤهلات اسم النطاق لأسماء المضيفين. على سبيل المثال ، إذا قمت بإعطاء هذه العلامة ، فستقوم tcpdump بطباعة "nic" بدلاً من "nic.ddn.mil".

-O

لا تقم بتشغيل مُحسِّن التعليمات البرمجية لمطابقة الحزمة. هذا مفيد فقط إذا كنت تشك في خطأ في المحسن.

-p

لا تضع الواجهة في الوضع المختلط. لاحظ أن الواجهة قد تكون في وضع مختلط لسبب آخر. وبالتالي ، لا يمكن استخدام "-p" كاختصار لـ "مضيف ether {local-hw-addr} أو بث ether".

-q

إخراج سريع (هادئ؟). طباعة معلومات بروتوكول أقل حتى خطوط الإخراج أقصر.

-R

افترض أن حزم ESP / AH تستند إلى المواصفات القديمة (RFC1825 إلى RFC1829). إذا كان محددًا ، فلن يطبع tcpdump حقل منع إعادة التشغيل. نظرًا لعدم وجود حقل إصدار بروتوكول في مواصفات ESP / AH ، يتعذر على tcpdump استنتاج إصدار بروتوكول ESP / AH.

-r

قراءة الحزم من الملف (الذي تم إنشاؤه باستخدام الخيار -w). يتم استخدام الإدخال القياسي إذا كان الملف "` - ".

-S

طباعة أرقام تسلسل مطلق وليس نسبيًا.

-s

snapf snapf بايت من البيانات من كل حزمة وليس الافتراضي من 68 (مع NIT SunOS ، والحد الأدنى هو في الواقع 96). 68 بايت كافية لـ IP و ICMP و TCP و UDP ولكن قد تقوم باقتطاع معلومات البروتوكول من ملقم الاسم وحزم NFS (انظر أدناه). يشار إلى الحزم المقتطعة بسبب لقطة محدودة في المخرجات باستخدام `` [| proto ] '' ، حيث يكون proto هو اسم مستوى البروتوكول الذي يحدث فيه الاقتطاع. لاحظ أن أخذ لقطات أكبر يزيد من مقدار الوقت المستغرق لمعالجة الحزم ، ويقلل بشكل فعال من مقدار تخزين الحزمة. قد يتسبب هذا في فقدان الحزم. يجب أن تحد من عدد الأحرف الصغيرة إلى أصغر عدد يمكنه التقاط معلومات البروتوكول التي تهتم بها. تعيين snaplen إلى 0 يعني استخدام الطول المطلوب لالتقاط حزم كاملة.

-T

يتم تفسير الحزم القوية المحددة بواسطة " التعبير " بالنوع المحدد. الأنواع المعروفة حاليًا هي cnfp (بروتوكول Cisco NetFlow) ، RPC (استدعاء الإجراء البعيد) ، rtp (بروتوكول التطبيقات في الوقت الفعلي) ، rtcp (بروتوكول التحكم في التطبيقات في الوقت الفعلي) ، snmp (بروتوكول إدارة الشبكة البسيط) ، vat (أداة الصوت المرئي) ) و wb (توزيع لوحة بيضاء).

-t

لا تطبع طابعًا زمنيًا على كل سطر تفريغ.

-tt

طباعة طابع زمني غير منسق على كل سطر تفريغ.

-U

يسقط امتيازات الجذر ويغير معرف المستخدم إلى المستخدم ومعرف المجموعة إلى المجموعة الأساسية للمستخدم .

ملحوظة! يسقط Red Hat Linux الامتيازات للمستخدم "pcap" تلقائيًا إذا لم يتم تحديد أي شيء آخر.

-ttt

اطبع دلتا (بالدقائق الصغرى) بين الخط الحالي والسابق على كل سطر تفريغ.

-tttt

طباعة طابع زمني في تنسيق افتراضي تابع حسب التاريخ على كل سطر تفريغ.

-u

طباعة مقابض NFS undECoded.

-الخامس

(أكثر قليلا) إخراج مطول. على سبيل المثال ، تتم طباعة وقت العيش وتحديد الهوية والطول الكلي والخيارات في حزمة IP. كما يتيح فحوصات تكامل حزم إضافية مثل التحقق من المجموع الاختباري لرأسية IP و ICMP.

-vv

مزيد من الانتاج مطول. على سبيل المثال ، تتم طباعة حقول إضافية من حزم الرد NFS و يتم فك ترميز الحزم SMB بشكل كامل.

-vvv

مزيد من الانتاج مطول. على سبيل المثال ، يتم طباعة Telnet SB ... SE الخيارات بالكامل. مع خيارات -X telnet يتم طباعتها في ست عشري كذلك.

-w

اكتب الحزم الأولية في الملف بدلاً من تحليلها وطباعتها. يمكن أن تتم طباعتها لاحقًا باستخدام الخيار -r. يتم استخدام الإخراج القياسي إذا كان الملف "` - ".

-x

قم بطباعة كل حزمة (ناقص رأس مستوى الرابط) في ست عشري. ستتم طباعة أصغر الحزمة أو بايت snaplen بالكامل. لاحظ أن هذه هي حزمة طبقة الارتباط بالكامل ، لذا بالنسبة لطبقات الوصل التي الوسادة (مثل Ethernet) ، ستتم طباعة وحدات البايت الخاصة بالحشو أيضًا عندما تكون حزمة الطبقة الأعلى أقصر من الحشو المطلوب.

-X

عند طباعة عرافة ، اطبع ascii أيضًا. وهكذا إذا تم تعيين -x أيضًا ، يتم طباعة الحزمة في hex / ascii. هذا مفيد جدا لتحليل البروتوكولات الجديدة. حتى إذا لم يتم تعيين -x أيضًا ، فقد تتم طباعة بعض أجزاء بعض الحزم في hex / ascii.

التعبير

يحدد الحزم التي سيتم التخلص منها. إذا لم يتم إعطاء أي تعبير ، سيتم التخلص من جميع الحزم على الشبكة. خلاف ذلك ، سيتم التخلص فقط من الحزم التي يتم التعبير عن 'true'.

يتكون التعبير من واحد أو أكثر من الأوليات. تتكون Primitives عادةً من معرف (اسم أو رقم) يسبقه مؤهل واحد أو أكثر. هناك ثلاثة أنواع مختلفة من المؤهلات:

اكتب

تشير المؤهلات إلى نوع الأمر الذي يشير إليه اسم أو رقم التعريف. الأنواع المحتملة هي المضيف والشبكة والمنفذ . على سبيل المثال ، `host foo '،` net 128.3' ، `port 20 '. إذا لم يكن هناك نوع مؤهل ، يفترض المضيف .

دير

تحدد المؤهلات اتجاه نقل معين إلى و / أو من معرف . الاتجاهات المحتملة هي src أو dst أو src أو dst و src و dst . على سبيل المثال ، `src foo '،' dst net 128.3 '،` src أو dst port ftp-data'. إذا لم يكن هناك مؤهل دير ، يفترض src أو dst . لطبقات الارتباط "خالية" (أي بروتوكولات نقطة إلى نقطة مثل الانزلاق) يمكن استخدام المؤهلات الواردة والصادرة لتحديد الاتجاه المطلوب.

بروتو

تحدد المؤهلات المطابقة إلى بروتوكول معين. البروتونات المحتملة هي: الأثير ، fddi ، tr ، ip ، ip6 ، arp ، rarp ، decnet ، tcp و udp . على سبيل المثال ، `ether src foo '،` arp net 128.3' ، `tcp port 21 '. إذا لم يكن هناك مؤهل أولي ، فستفترض جميع البروتوكولات المتوافقة مع النوع. على سبيل المثال ، `src foo 'تعني` (ip أو arp أو rarp) src foo' (باستثناء أن الجملة ليست بنية قانونية) ، `net bar 'تعني' net أو arp or rarp) net bar 'و` port 53' تعني `(tcp أو udp) المنفذ 53 '.

[fddi] هو في الواقع اسم مستعار لـ "الأثير" ؛ يعاملها المحلل اللغوي بشكل متماثل كـ "مستوى ارتباط البيانات المستخدم في واجهة الشبكة المحددة". تحتوي رؤوس FDDI على عناوين مصدر ووجهة Ethernet ، وتحتوي غالبًا على حزم حزم تشبه إيثرنت ، لذا يمكنك التصفية على حقول FDDI هذه كما هو الحال مع حقول Ethernet المماثلة. تحتوي رؤوس FDDI أيضًا على حقول أخرى ، ولكن لا يمكنك تسميةها بشكل صريح في تعبير عامل تصفية.

وبالمثل ، فإن 'tr' هو اسم مستعار لـ 'ether' ؛ تنطبق أيضًا عبارات الفقرة السابقة حول رؤوس FDDI على رؤوس Token Ring.]

بالإضافة إلى ما سبق ، هناك بعض الكلمات الرئيسية الخاصة "البدائية" التي لا تتبع النمط: عبّارة ، إذاعة ، وأقل ، وأكثر تعبيرات حسابية. كل هذه موضحة أدناه.

يتم إنشاء تعبيرات تصفية أكثر تعقيدًا باستخدام الكلمات ، أو عدم الجمع بين الأوليات. على سبيل المثال ، `foo المضيف وليس المنفذ ftp وليس المنفذ ftp-data '. لحفظ الكتابة ، يمكن حذف قوائم مؤهلة مماثلة. على سبيل المثال ، "tcp dst port ftp أو ftp-data أو domain" هو نفسه تمامًا مثل tpp dst port ftp أو tpp dst port ftp-data or tcp dst port domain ".

الأوليات المسموح بها هي:

مضيف مضيف مضيف

صحيح إذا كان حقل الوجهة IPv4 / v6 الخاص بالحزمة هو المضيف ، والذي قد يكون عنوانًا أو اسمًا.

استضافة مضيف src

صحيح إذا كان حقل مصدر IPv4 / v6 الخاص بالحزمة هو المضيف .

مضيف المضيف

صحيح إذا كان مصدر IPv4 / v6 أو وجهة الحزمة هو المضيف . يمكن إرفاق أي من تعبيرات المضيف أعلاه بكلمات رئيسية ، أو ip ، أو arp ، أو rarp ، أو ip6 كما في:

المضيف المضيف IP

وهو ما يعادل:

الأثير proto \ ip والمضيف المضيف

إذا كان المضيف اسمًا يحتوي على عناوين IP متعددة ، فسيتم التحقق من كل عنوان لمطابقة.

ايثر DST ehost

صحيح إذا كان عنوان وجهة إيثرنت هو ehost . قد يكون Ehost إما اسمًا من / etc / ethers أو رقمًا (انظر الإيثر (3N) للتنسيق الرقمي).

الأثير src ehost

صحيح إذا كان عنوان مصدر إيثرنت هو ehost .

ايثر المضيف ايوست

صحيح إذا كان عنوان إيثرنت أو عنوان الوجهة هو ehost .

المضيف بوابة

صحيح إذا كانت الحزمة تستخدم المضيف كبوابة. أي أن عنوان مصدر أو عنوان إيثرنت كان مضيفًا ولكن لم يكن مصدر IP ولا وجهة IP مضيفًا . يجب أن يكون المضيف اسمًا ويجب أن يتم العثور عليه من خلال آليات حل عنوان المضيف للمفتاح إلى عنوان IP الخاص بالجهاز (ملف اسم المضيف ، DNS ، NIS ، إلخ) وعبر تحليل اسم المضيف إلى Ethernet لعنوان الجهاز آلية (/ etc / ethers ، وما إلى ذلك). (تعبير معادل هو

إيثر المضيف إيوست وليس المضيف المضيف

التي يمكن استخدامها مع أسماء أو أرقام المضيف / ehost .) لا يعمل بناء الجملة هذا في تكوين تمكين IPv6 في هذه اللحظة.

صافي صافي صافي

صحيح إذا كان عنوان IPv4 / v6 الخاص بالحزمة يحتوي على رقم شبكة من الشبكة . قد يكون صافي إما اسمًا من / etc / networks أو رقم شبكة (انظر الشبكات (4) لمزيد من التفاصيل).

شبكة الصافي

صحيح إذا كان عنوان IPv4 / v6 المصدر للحزمة يحتوي على رقم شبكة من الشبكة .

صافي شبكة

صحيح إذا كان عنوان IPv4 / v6 المصدر أو عنوان الحزمة له رقم شبكة من الشبكة .

صافي قناع الشبكة صافي قناع

صحيح إذا كان عنوان IP يطابق net باستخدام قناع الشبكة المحدد. قد تكون مؤهلة مع src أو dst . لاحظ أن بناء الجملة هذا غير صالح لصافي IPv6.

صافي شبكة / لين

صحيح إذا كان عنوان IPv4 / v6 يطابق net ببتينات قناع netmask واسع. قد تكون مؤهلة مع src أو dst .

منفذ ميناء dst

صحيح إذا كانت الحزمة هي ip / tcp ، ip / udp ، ip6 / tcp أو ip6 / udp ولها قيمة منفذ منفذ المنفذ . يمكن أن يكون المنفذ رقمًا أو اسمًا مستخدمًا في / etc / services (راجع tcp (4P) و udp (4P). إذا تم استخدام اسم ، يتم فحص كل من رقم المنفذ والبروتوكول. إذا تم استخدام رقم أو اسم ملتبس ، يتم فحص رقم المنفذ فقط (على سبيل المثال ، سيقوم منفذ dst 513 بطباعة حركة مرور TCP / تسجيل الدخول و / udp / الذي يقوم بحركة المرور ، وسيقوم مجال المنفذ بطباعة حركة مرور النطاق / النطاق و udp / domain).

ميناء ميناء src

صحيح إذا كانت الحزمة لديها قيمة منفذ المصدر من المنفذ .

ميناء الميناء

صواب إذا كان منفذ المصدر أو الوجهة الخاص بالحزمة هو المنفذ . يمكن إرفاق أي من تعبيرات المنفذ أعلاه بكلمات رئيسية ، أو tcp أو udp ، كما في:

منفذ منفذ tcp src

الذي يطابق فقط حزم tcp التي يكون منفذ المصدر الخاص بها منفذًا .

أقل طول

صحيح إذا كان طول الحزمة أقل من أو يساوي الطول . هذا يعادل:

طول <= الطول .

طول أكبر

صحيح إذا كان طول الحزمة أكبر من أو يساوي الطول . هذا يعادل:

طول > طول .

بروتوكول ip بروتو

صحيح إذا كانت الحزمة حزمة IP (راجع ip (4P)) من بروتوكول نوع البروتوكول . يمكن أن يكون البروتوكول عبارة عن رقم أو واحد من أسماء icmp أو icmp6 أو igmp أو igrp أو pim أو ah أو esp أو vrrp أو udp أو tcp . لاحظ أن المعرّفات tcp و udp و icmp هي أيضًا كلمات أساسية ويجب أن يتم تخطيها عبر شرطة مائلة للخلف (\) ، وهي \\ في C-shell. لاحظ أن هذا البدائي لا يطارد سلسلة رأس البروتوكول.

بروتوكول ip6 بروتو

صحيح إذا كانت الحزمة عبارة عن حزمة IPv6 من بروتوكول نوع البروتوكول . لاحظ أن هذا البدائي لا يطارد سلسلة رأس البروتوكول.

بروتوكول ip6 protochain

صحيح إذا كانت الحزمة هي حزمة IPv6 ، وتحتوي على عنوان بروتوكول مع بروتوكول الكتابة في سلسلة رأس البروتوكول الخاص به. فمثلا،

ip6 protochain 6

تطابق أي حزمة IPv6 مع رأس بروتوكول TCP في سلسلة رأس البروتوكول. قد تحتوي الحزمة ، على سبيل المثال ، رأس المصادقة ، رأس التوجيه ، أو رأس خيار القفزة حسب المفتاح ، بين رأس IPv6 ورأس TCP. يعتبر رمز BPF المنبعث من هذا الجهاز البدائي معقدًا ولا يمكن تحسينه بواسطة رمز مُحسِّن BPF في tcpdump ، لذا يمكن أن يكون هذا بطيئًا نوعًا ما.

بروتوكول ip protochain

أي ما يعادل بروتوكول IP6 protochain ، لكن هذا لـ IPv4.

بث الأثير

صحيح إذا كانت الحزمة عبارة عن حزمة بث Ethernet. الكلمة الأثير اختيارية.

بث IP

صحيح إذا كانت الحزمة حزمة بث IP. يقوم بالتحقق من كل اصطلاحات كل الأصفار وكلها البث ، ويبحث عن قناع الشبكة الفرعية المحلية.

إيثر الإرسال المتعدد

صحيح إذا كانت الحزمة عبارة عن حزمة بث متعدد إيثرنت. الكلمة الأثير اختيارية. هذا اختزال لـ ether [0] & 1! = 0 '.

ip التراسل

صحيح إذا كانت الحزمة حزمة الإرسال المتعدد IP.

ip6 الإرسال المتعدد

صحيح إذا كانت الحزمة حزمة البث المتعدد IPv6.

بروتوكول البروتوكولات الأثير

صحيح إذا كانت الحزمة من بروتوكول نوع الأثير. يمكن أن يكون البروتوكول رقمًا أو واحدًا من أسماء IP أو ip6 أو arp أو rarp أو atalk أو aarp أو decnet أو sca أو lat أو mopdl أو moprc أو iso أو stp أو ipx أو netbeui . لاحظ أن هذه المعرفات هي أيضًا كلمات أساسية ويجب أن يتم تجاوزها عبر الشرطة المائلة للخلف (\).

[في حالة FDDI (على سبيل المثال ، ` fddi protocol arp ') و Token Ring (على سبيل المثال ،` tr tr protocol ') ، لمعظم هذه البروتوكولات ، فإن تعريف البروتوكول يأتي من عنوان 802.2 Logical Link Control (LLC) ، يتم عادةً وضع الطبقات أعلى رأس FDDI أو Token Ring.

عند التصفية لمعظم معرفات البروتوكول على FDDI أو Token Ring ، يتحقق tcpdump فقط من حقل معرف البروتوكول لرأس LLC في ما يسمى بتنسيق SNAP مع معرف الوحدة التنظيمية (OUI) من 0x000000 ، من أجل Ethernet المغلف ؛ لا يتحقق ما إذا كانت الحزمة بتنسيق SNAP مع OUI من 0x000000.

الاستثناءات هي iso ، حيث تقوم بالتحقق من DSAP (نقطة وصول خدمة الوجهة) وحقول SSAP (مصدر خدمة نقطة الوصول) لرأس LLC ، stp و netbeui ، حيث تقوم بالتحقق من DSAP لرأس LLC ، و atalk ، حيث يتحقق من حزمة تنسيق SNAP مع OUI من 0x080007 و appletalk etype.

في حالة Ethernet ، يتحقق tcpdump من حقل نوع Ethernet لمعظم هذه البروتوكولات ؛ الاستثناءات هي iso و sap و netbeui ، حيث تقوم بالتحقق من إطار 802.3 ثم تقوم بالتحقق من رأس LLC كما تفعل لـ FDDI و Token Ring ، atalk ، حيث تقوم بالتحقق لكل من etletnet appletalk في إطار Ethernet ومن أجل حزمة تنسيق SNAP كما يفعل لـ FDDI و Token Ring ، aarp ، حيث تقوم بالتحقق لـ etlet Appletalk ARP إما في إطار Ethernet أو إطار SNAP 802.2 مع OUI من 0x000000 ، و ipx ، حيث تقوم بالتحقق من etype IPX في إطار Ethernet و IPX DSAP في رأس LLC و 802.3 مع عدم وجود رأس تغليف LLC لـ IPX و IPX etype في إطار SNAP.]

decnet src host

صحيح إذا كان عنوان مصدر DECNET مضيفًا ، والذي قد يكون عنوانًا للنموذج "` 10.123 "، أو اسم مضيف DECNET. يتوفر [دعم اسم المضيف لـ DECNET فقط على أنظمة Ultrix التي تم تكوينها لتشغيل DECNET.]

ديسيت مضيف dst

صحيح إذا كان عنوان الوجهة DECNET هو المضيف .

المضيف المضيف ديت

صحيح إذا كان مصدر DECNET أو عنوان الوجهة هو المضيف .

ip ، ip6 ، arp ، rarp ، atalk ، aarp ، decnet ، iso ، stp ، ipx ، netbeui

الاختصارات لـ:

الأثير بروتو ص

حيث p واحد من البروتوكولات أعلاه.

lat ، moprc ، mopdl

الاختصارات لـ:

الأثير بروتو ص

حيث p واحد من البروتوكولات أعلاه. لاحظ أن tcpdump لا تعرف حالياً كيفية تحليل هذه البروتوكولات.

شبكة محلية ظاهرية [vlan_id]

صحيح إذا كانت الحزمة عبارة عن حزمة IEEE 802.1Q VLAN. إذا تم تحديد [vlan_id] ، فإن true فقط هو أن الحزمة تحتوي على vlan_id المحدد. لاحظ أن الكلمة الرئيسية vLAN الأولى التي تمت مواجهتها في التعبير تؤدي إلى تغيير إزاحة فك التشفير لبقية التعبير على افتراض أن الحزمة عبارة عن حزمة VLAN.

tcp ، udp ، icmp

الاختصارات لـ:

ip proto p أو ip6 proto p

حيث p واحد من البروتوكولات أعلاه.

بروتوكول ايزو بروتو

صحيح إذا كانت الحزمة حزمة OSI من بروتوكول نوع البروتوكول . يمكن أن يكون البروتوكول رقمًا أو واحدًا من أسماء clnp أو esis أو isis .

clnp ، esis ، isis

الاختصارات لـ:

ايزو بروتو ص

حيث p واحد من البروتوكولات أعلاه. لاحظ أن tcpdump يقوم بعمل غير مكتمل من تحليل هذه البروتوكولات.

expr relop expr

صحيح إذا كانت العلاقة تحمل ، حيث relop هي واحدة من> ، <،> = ، <= ، = ،! = ، و expr عبارة عن تعبير حسابي يتألف من ثوابت صحيحة (معبر عنها في بناء الجملة C) ، والمشغلين الثنائيين العاديين [+ ، - ، * ، / ، & ، |] ، مشغل طول ، و accessor بيانات الحزمة الخاصة. للوصول إلى البيانات داخل الحزمة ، استخدم بناء الجملة التالي:

proto [ expr : size ]

Proto هو واحد من ether ، fddi ، tr ، ppp ، slip ، link ، ip ، arp ، rarp ، tcp ، udp ، icmp أو ip6 ، ويشير إلى طبقة بروتوكول لتشغيل الفهرس. ( يشير كل من ether و fddi و tr و ppp والانزلاق والارتباط إلى طبقة الارتباط.) لاحظ أن tcp و udp وأنواع بروتوكول الطبقة العليا الأخرى لا تنطبق إلا على IPv4 وليس IPv6 (سيتم إصلاح ذلك في المستقبل). يتم إعطاء إزاحة البايت ، نسبة إلى طبقة البروتوكول المشار إليه ، بواسطة expr . الحجم اختياري ويشير إلى عدد وحدات البايت في مجال الاهتمام ؛ يمكن أن تكون إما واحدة أو اثنتين أو أربعة ، وتعترض واحدة. يعطي عامل الطول ، المشار إليه بواسطة الكلمة len ، طول الرزمة.

على سبيل المثال ، ' ether [0] & 1! = 0 ' catches all traffic for multicast. يقوم التعبير ` ip [0] & 0xf! = 5 'بتخزين جميع حزم IP مع خيارات. التعبير ` ip [6: 2] و 0x1fff = 0 'يمسك فقط كتل البيانات غير المجزأة وفراغ الصفر من كتل البيانات المجزأة. يتم تطبيق هذا التدقيق ضمنيًا على عمليات برنامج tcp و udp . على سبيل المثال ، يعني tcp [0] دائماً البايت الأول من رأس TCP ، ولا يعني أبداً البايت الأول من جزء متداخل.

قد يتم التعبير عن بعض الإزاحات وقيم الحقل كأسماء بدلاً من قيم رقمية. تتوفر إزاحات حقول رأس البروتوكول التالية: icmptype (حقل نوع ICMP) و icmpcode (حقل رمز ICMP) و tcpflags (حقل إشارات TCP).

تتوفر قيم حقل نوع ICMP التالية: icmp-echoreply ، icmp-unreach ، icmp-sourcequench ، icmp-redirect ، icmp-echo ، icmp-routeradvert ، icmp-routersolicit ، icmp-timxceed ، icmp-paramprob ، icmp-tstamp ، icmp -ststampreply ، icmp-ireq ، icmp-ireqreply ، icmp-maskreq ، icmp-maskreply .

تتوفر قيم حقل إشارات TCP التالية: tcp-fin ، tcp-syn ، tcp-rst ، tcp-push ، tcp-push ، tcp-ack ، tcp-urg .

يمكن الجمع بين الأوليات باستخدام:

مجموعة متلاصقة من الأوليات والمشغلين (بين قوسين خاصين بشركة Shell ويجب التخلص منها).

نفي (" ! " أو " لا ").

تسلسل (` && 'أو` و ').

التناوب (' || ' أو ` أو ').

النفض له أسبقية. التناوب والتسلسل لهما الأسبقية المتساوية ويربطان من اليسار إلى اليمين. لاحظ أن الصريح والرموز ، وليس التجاور ، مطلوبة الآن للتسلسل.

إذا تم إعطاء معرف بدون كلمة رئيسية ، فسيتم افتراض أحدث كلمة رئيسية. فمثلا،

لا تستضيف مقابل وأيس

هو اختصار ل

لا استضافة مقابل واستضافة الآس

لا ينبغي الخلط مع

لا (المضيف أو الآس)

يمكن تمرير وسائط Expression إلى tcpdump كوسيطة واحدة أو كوسائط متعددة ، أيهما أكثر ملاءمة. بشكل عام ، إذا كان التعبير يحتوي على أحرف أولية لـ Shell ، فمن الأسهل تمريرها كحجة واحدة ، يتم اقتباسها. يتم ربط الوسائط المتعددة بمسافات قبل أن يتم تحليلها.

أمثلة

لطباعة جميع الحزم التي تصل إلى أو تغادر من غروب الشمس :

مضيف tcpdump

لطباعة حركة المرور بين الهيليوم وإما الساخنة أو الآس :

tcpdump host helios و \ (hot or ace \)

لطباعة جميع حزم IP بين ace وأي مضيف باستثناء helios :

tcpdump ip المضيف الآس وليس هيليوس

لطباعة جميع الزيارات بين المضيفين والمضيفين المحليين في بيركلي:

tcpdump net ucb-ether

لطباعة كل حركة مرور ftp من خلال بوابة بوابة الإنترنت: (لاحظ أن التعبير مقتبس لمنع shell من (mis-) تفسير الأقواس):

tcpdump 'بوابة snup و (port ftp أو ftp-data)'

لطباعة حركة مرور غير مصدّقة من مضيف محلي أو مقدر لها (إذا قمت بالعبور إلى شبكة أخرى ، لا يجب أن تجعلها هذه الأشياء على الشبكة المحلية).

TCP IP tcpdump وليس صافي localnet

لطباعة حزم البداية والنهاية (الحزم SYN و FIN) لكل محادثة TCP تتضمن مضيفًا غير محلي.

tcpdump 'tcp [tcpflags] & (tcp-syn | tcp-fin)! = 0 وليس src و dst net localnet '

لطباعة حزم IP أطول من 576 بايت المرسلة عبر snup العبّارة:

tcpdump 'gateway snup and ip [2: 2]> 576'

لطباعة بث IP أو حزم بث متعدد لم يتم إرسالها عبر بث Ethernet أو بث متعدد:

tcpdump 'ether [0] & 1 = 0 و ip [16]> = 224'

لطباعة جميع حزم ICMP التي لا تردد طلبات / ردود (على سبيل المثال ، لا حزم ping):

tcpdump 'icmp [icmptype]! = icmp-echo و icmp [icmptype]! = icmp-echoreply'

تنسيق الإخراج

إخراج tcpdump يعتمد على البروتوكول. يوضح ما يلي وصفًا موجزًا ​​وأمثلة على معظم التنسيقات.

رؤوس مستوى الارتباط

إذا تم إعطاء الخيار "-e" ، تتم طباعة رأس مستوى الارتباط. في ethernets ، تتم طباعة عناوين المصدر والوجهة ، البروتوكول وطول الحزمة.

على شبكات FDDI ، يؤدي الخيار "-e" إلى tcpdump لطباعة حقل "control frame" وعناوين المصدر والوجهة وطول الرزمة. (يحكم حقل "التحكم في الإطار" تفسير بقية الحزمة. الحزم العادية (مثل تلك التي تحتوي على كتل بيانات IP) هي رزم "غير متزامنة " ، مع قيمة أولوية بين 0 و 7 ؛ على سبيل المثال ، " async4 ". يفترض أن تحتوي الرزم على حزمة 802.2 من التحكم في الارتباط المنطقي (LLC) ؛ تتم طباعة رأس LLC إذا لم يكن مخطط بيانات ISO أو ما يسمى حزمة SNAP.

على شبكات Token Ring ، يؤدي الخيار "-e" إلى tcpdump لطباعة حقلي "التحكم في الوصول" و "التحكم في الإطار" ، وعناوين المصدر والوجهة ، وطول الرزمة. كما هو الحال في شبكات FDDI ، من المفترض أن تحتوي الرزم على حزمة LLC. بغض النظر عما إذا كان الخيار "-e" محددًا أم لا ، فإن معلومات توجيه المصدر تتم طباعتها للحزم الموجهة من المصدر.

(ملاحظة: الوصف التالي يفترض الإلمام باستخدام خوارزمية ضغط SLIP الموضحة في RFC-1144.)

في ارتباطات SLIP ، يتم طباعة مؤشر اتجاه (`` '' للداخل و `O '' للخارج) ونوع الحزمة ومعلومات الضغط. تتم طباعة نوع الحزمة أولاً. الأنواع الثلاثة هي ip و utcp و ctcp . تتم طباعة أية معلومات ارتباط إضافية لحزم ip . بالنسبة لحزم TCP ، تتم طباعة معرّف الاتصال بعد النوع. إذا كانت الحزمة مضغوطة ، فستتم طباعة رأسها المشفر. تتم طباعة الحالات الخاصة كـ S * n و * SA + n ، حيث n هي الكمية التي تغير بها رقم التسلسل (أو رقم التسلسل و ack). إذا لم تكن حالة خاصة ، فستتم طباعة صفر أو أكثر من التغييرات. يتم الإشارة إلى التغيير بواسطة U (مؤشر عاجل) ، W (إطار) ، A (ack) ، S (رقم التسلسل) ، I (معرف الحزمة) ، متبوعًا بدلتا (+ n أو - n) ، أو قيمة جديدة (= ن). وأخيراً ، تتم طباعة كمية البيانات الموجودة في الحزمة وطول الرأس المضغوط.

على سبيل المثال ، يعرض السطر التالي حزمة TCP مضغوطة الصادرة ، مع معرف اتصال ضمني ؛ تم تغيير ack بمقدار 6 ، ورقم التسلسل في 49 ، ومعرف الحزمة بمقدار 6 ؛ هناك 3 بايت من البيانات و 6 بايت من رأس مضغوط:

O ctcp * A + 6 S + 49 I + 6 3 (6)

حزم ARP / RARP

يعرض ARP / rarp نوع الطلب ووسائطه. الغرض من هذا التنسيق هو التوضيح الذاتي. إليك عينة قصيرة مأخوذة من بداية `rlogin 'من مضيف rtsg إلى csam المضيف:

ARP الذي لديه csam يقول rtsg ARP الرد csam is-at CSAM

السطر الأول يقول أن rtsg أرسلت حزمة arp تطلب عنوان إيثرنت من csam مضيف الإنترنت. رد Csam بعنوان الإيثرنت الخاص به (في هذا المثال ، عناوين الإيثرنت في أحرف كبيرة وعناوين إنترنت في حالة الأحرف الصغيرة).

سيبدو هذا أقل تكرارًا إذا أجرينا tcpdump -n :

ARP الذي لديه 128.3.254.6 يخبر 128.3.254.68 arp رد 128.3.254.6 في 02: 07: 01: 00: 01: c4

إذا فعلنا tcpdump -e ، فإن حقيقة أن الحزمة الأولى يتم بثها والثانية هي نقطة إلى نقطة ستكون مرئية:

RTSG Broadcast 0806 64: arp who-has csam tell rtsg CSAM RTSG 0806 64: arp csam reply is at CSAM

بالنسبة للحزمة الأولى ، يشير هذا إلى أن عنوان مصدر الإيثرنت هو RTSG ، والوجهة هي عنوان بث Ethernet ، وأن حقل الكتابة يحتوي على 0806 (نوع ETHER_ARP) وأن الطول الإجمالي كان 64 بايت.

حزم TCP

(ملاحظة: يفترض الوصف التالي الإلمام ببروتوكول TCP الموضح في RFC-793. إذا لم تكن على دراية بالبروتوكول ، فلن يكون هذا الوصف أو tcpdump مفيدًا لك.)

الشكل العام لخط بروتوكول tcp هو:

src> dst: flags data-seqno ack window options options

Src و dst هي عناوين IP ومنافذ المصدر والوجهة. الأعلام هي مزيج من S (SYN) ، F (FIN) ، P (PUSH) أو R (RST) أو واحدة `. (لا أعلام). تصف البيانات seqno الجزء من حيز التسلسل الذي تغطيه البيانات في هذه الحزمة (انظر المثال أدناه). Ack هو رقم تسلسل من البيانات التالية المتوقعة الاتجاه الآخر على هذا الاتصال. الإطار هو عدد وحدات البايت من مساحة المخزن المؤقت للتلقي المتوفرة في الاتجاه الآخر على هذا الاتصال. تشير Urg إلى وجود بيانات "عاجلة" في الحزمة. الخيارات هي خيارات tcp محاطة بأقواس زاوية (على سبيل المثال ، ).

Src و dst وعلامات موجودة دائماً. ﺗﻌﺘﻤﺪ اﻟﺤﻘﻮل اﻷﺧﺮى ﻋﻠﻰ ﻣﺤﺘﻮﻳﺎت رأس ﺑﺮوﺗﻮﻛﻮل tcp ﻟﻠﺤﺰﻣﺔ وﺗﻜﻮن ﻣﺨﺮﺟﺔ ﻓﻘﻂ إذا ﻛﺎن ذﻟﻚ ﻣﻨﺎﺳﺒًﺎ.

في ما يلي الجزء الافتتاحي من rlogin من المضيف rtsg إلى csam المضيف.

rtsg.1023> csam.login: S 768512: 768512 (0) win 4096 csam.login> rtsg.1023: S 947648: 947648 (0) ack 768513 win 4096 rtsg.1023> csam. تسجيل الدخول: . ack 1 win 4096 rtsg.1023> csam.login: P 1: 2 (1) ack 1 win 4096 csam.login> rtsg.1023:. ack 2 win 4096 rtsg.1023> csam.login: P 2:21 (19) ack 1 win 4096 csam.login> rtsg.1023: P 1: 2 (1) ack 21 win 4077 csam.login> rtsg.1023: P 2: 3 (1) ack 21 win 4077 urg 1 csam.login> rtsg.1023: P 3: 4 (1) ack 21 win 4077 urg 1

السطر الأول يقول أن tcp port 1023 على rtsg أرسل حزمة لتسجيل الدخول إلى المنفذ على csam. يشير S إلى أنه تم تعيين علامة SYN . رقم تسلسل الحزمة كان 768512 ولم يتضمن أي بيانات. (الترميز هو `الأول: الأخير (nbytes) 'الذي يعني` أرقام التسلسل لأول مرة حتى ولكن ليس بما في ذلك الماضي الذي هو بايت بايت من بيانات المستخدم'.) لم يكن هناك ack المدعومة بالخنزير ، وكانت نافذة الاستقبال المتاحة 4096 بايت و كان هناك خيار حجم قطعة - الحد الأقصى طلب mss من 1024 بايت.

رد Csam باستخدام حزمة مماثلة باستثناء أنه يحتوي على ack المدعوم بالأصباغ لـ SYN الخاص بـ rtsg. Rtsg ثم aSs csam's SYN. `. يعني لم يتم تعيين أي علم. لا تحتوي الحزمة على بيانات حتى لا يوجد رقم تسلسل للبيانات. لاحظ أن رقم تسلسل ack هو عدد صحيح صغير (1). في المرة الأولى التي يرى فيها tcpdump a tcp `conversation '، فإنه يطبع رقم التسلسل من الرزمة. في حزم لاحقة من المحادثة ، تتم طباعة الفرق بين رقم تسلسل الحزمة الحالي ورقم التسلسل الأولي هذا. وهذا يعني أن أرقام التسلسل بعد الأول يمكن تفسيرها على أنها مواضع بايت نسبيًا في تدفق بيانات المحادثة (مع أول بايت للبيانات يكون لكل اتجاه `1). سيؤدي `-S 'إلى إلغاء هذه الميزة ، مما يؤدي إلى إخراج أرقام التسلسل الأصلية.

في السطر السادس ، يرسل rtsg csam 19 بايتًا من البيانات (البايت من 2 إلى 20 في الجانب rtsg -> csam للمحادثة). يتم تعيين علامة PUSH في الحزمة. في السطر السابع ، يقول csam أنه تلقى البيانات المرسلة بواسطة rtsg حتى لا تتضمن البايت 21. ويبدو أن معظم هذه البيانات يجلس في مخزن مأخذ التوصيل حيث أن نافذة استقبال csam أصبحت أصغر بـ 19 بايت. يرسل Csam أيضًا بايت واحد من البيانات إلى rtsg في هذه الحزمة. في السطور الثامن والتاسع ، يرسل csam وحدتي بايت من البيانات العاجلة والمدفوعة إلى rtsg.

إذا كانت اللقطة صغيرة بما فيه الكفاية بحيث لم تقم tcpdump بتسجيل رأس TCP الكامل ، فإنها تفسر أكبر قدر من الرأس كما يمكن ومن ثم تقوم بالإبلاغ عن `` [| tcp ] '' للإشارة إلى أن الباقي لا يمكن تفسيره. إذا كان الرأس يحتوي على خيار زائف (أحدهما بطول إما صغير جدًا أو بعيدًا عن نهاية العنوان) ، فإن tcpdump تفيد بأنه `` [ bad opt ] '' ولا يفسر أي خيارات إضافية (لأنه من المستحيل معرفة حيث تبدأ). إذا كان طول الرأس يشير إلى وجود خيارات ولكن طول مخطط بيانات IP ليس طويلاً بما يكفي لأن تكون الخيارات موجودة بالفعل ، فإن tcpdump تفيد بأنه `` [ طول الشريط الجانبي السيئ ] ''.

التقاط حزم TCP مع مجموعات علم معينة (SYN-ACK ، URG-ACK ، وما إلى ذلك)

توجد 8 بتات في قسم وحدات التحكم من رأس TCP:

CWR | اللجنة الاقتصادية لأوروبا URG | ACK | PSH | RST | SYN | FIN

لنفترض أننا نريد مشاهدة الحزم المستخدمة في إنشاء اتصال TCP. تذكر أن بروتوكول TCP يستخدم بروتوكول مصافحة ثلاثي الاتجاهات عندما يقوم بتهيئة اتصال جديد ؛ تسلسل الاتصال فيما يتعلق بتات التحكم TCP

1) يرسل المتصل SYN

2) يستجيب المستلم مع SYN و ACK

3) يرسل المتصل ACK

نحن الآن مهتمون بالتقاط الحزم التي لديها مجموعة بت SYN فقط (الخطوة 1). لاحظ أننا لا نريد الحزم من الخطوة 2 (SYN-ACK) ، مجرد SYN الأولي العادي. ما نحتاجه هو تعبير مرشح صحيح لـ tcpdump .

تذكر بنية رأس TCP بدون خيارات:

0 15 31 ----------------------------------------------- ------------------ | منفذ المصدر | ميناء المقصد -------------------------------------------------- --------------- | رقم التسلسل | -------------------------------------------------- --------------- | رقم الإشعار | -------------------------------------------------- --------------- | HL | rsvd | C | E | U | A | P | R | S | F | حجم النافذة | -------------------------------------------------- --------------- | اختباري TCP | مؤشر عاجل | -------------------------------------------------- ---------------

تحمل رأس TCP عادة 20 ثمانية من البيانات ، ما لم تكن هناك خيارات. يحتوي السطر الأول من الرسم البياني على الثمانيات من 0 إلى 3 ، ويعرض السطر الثاني الثمانيات من 4 إلى 7 وما إلى ذلك.

بدءاً من العد 0 ، ترد بتات التحكم TCP ذات الصلة في octet 13:

0 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | ---------------- | HL | rsvd | C | E | U | A | P | R | S | F | حجم النافذة | ---------------- | --------------- | --------------- | - --------------- | | الثالث عشر ثمانية | | |

دعونا نلقي نظرة فاحصة على الثماني لا. 13:

| | | --------------- | | C | E | U | A | P | R | S | F | | --------------- | | 7 5 3 0 |

هذه هي بتات التحكم TCP التي نحن مهتمون بها. لقد قمنا بترقيم البتات في هذا الثماني من 0 إلى 7 ، من اليمين إلى اليسار ، وبالتالي فإن بت PSH هو رقم البت 3 ، في حين أن بت URG هو رقم 5.

أذكر أننا نريد التقاط الحزم مع مجموعة SYN فقط. لنرى ماذا يحدث في ثماني عشرة في حالة وصول مخطط بيانات TCP مع تعيين SYN bit في رأس الصفحة:

| C | E | U | A | P | R | S | F | | --------------- | 0 0 0 0 0 0 1 0 | | --------------- | | 7 6 5 4 3 2 1 0 |

وبالنظر إلى قسم وحدات التحكم ، نرى أنه تم تعيين رقم البت 1 (SYN) فقط.

بافتراض أن رقم الثماني عشرة هو عدد صحيح بدون إشارة 8 بت في ترتيب بايت شبكة الاتصال ، تكون القيمة الثنائية لهذا الثماني

00000010

وتمثيلها العشري هو

7 6 5 4 3 2 1 0 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 = 2

لقد انتهينا تقريبًا ، لأننا نعلم الآن أنه في حالة تعيين SYN فقط ، يجب أن تكون قيمة الثمانية عشر الثالثة عشر في رأس TCP ، عندما يتم تفسيرها على أنها عدد صحيح بدون علامة 8 بت في ترتيب شبكة الاتصال ، قيمة 2 بالضبط.

يمكن التعبير عن هذه العلاقة

برنامج التعاون الفني [13] == 2

يمكننا استخدام هذا التعبير كعامل تصفية لـ tcpdump لمشاهدة الحزم التي لديها مجموعة SYN فقط:

tcpdump -i xl0 tcp [13] == 2

يقول التعبير "دع الثماني عشرة من مخطط بيانات TCP يحتوي على القيمة العشرية 2" ، وهو بالضبط ما نريد.

الآن ، لنفترض أننا بحاجة إلى التقاط حزم SYN ، لكننا لا نهتم إذا تم تعيين ACK أو أي بت آخر للتحكم TCP في نفس الوقت. لنرى ماذا يحدث في الثمانية عشر عندما يصل مخطط بيانات TCP مع مجموعة SYN-ACK:

| C | E | U | A | P | R | S | F | | --------------- | 0 0 0 1 0 0 1 0 | | --------------- | | 7 6 5 4 3 2 1 0 |

الآن يتم تعيين البتتين 1 و 4 في الثماني عشر الثالث عشر. القيمة الثنائية لـ octet 13 هي


00010010

الذي يترجم إلى عشري

7 6 5 4 3 2 1 0 0 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 = 18

الآن لا يمكننا استخدام 'tcp [13] == 18' في تعبير تصفية tcpdump ، لأن ذلك سيحدد فقط الحزم التي تم تعيين SYN-ACK عليها ، وليس تلك التي تحتوي على مجموعة SYN فقط. تذكر أننا لا نهتم إذا تم تعيين ACK أو أي عنصر تحكم آخر طالما تم تعيين SYN.

من أجل تحقيق هدفنا ، نحتاج إلى قيمة ثنائية وثمانية عشرة مع قيمة أخرى للحفاظ على SYN bit. نحن نعلم أننا نريد تعيين SYN على أي حال ، لذلك سنكون منطقيًا وقيمة في الثمانية عشر الثالثة مع القيمة الثنائية لـ SYN:

00010010 SYN-ACK 00000010 SYN و 00000010 (نحن نريد SYN) و 00000010 (نريد SYN) -------- -------- = 00000010 = 00000010

ونحن نرى أن هذه العملية تقدم نفس النتيجة بغض النظر عما إذا تم تعيين ACK أو بت آخر تحكم TCP. إن التمثيل العشري لقيمة AND بالإضافة إلى نتيجة هذه العملية هو 2 (رقم 00000010) ، لذلك نعلم أنه بالنسبة للحزم ذات تعيين SYN يجب أن تكون العلاقة التالية صحيحة:

((قيمة octet 13) و (2)) == (2)

هذا يشير بنا إلى تعبير مرشح tcpdump

tcpdump -i xl0 'tcp [13] & 2 == 2'

لاحظ أنه يجب استخدام علامات الاقتباس المفردة أو الخط المائل العكسي في التعبير لإخفاء الحرف الخاص ('&') من shell.

حزم UDP

تنسيق UDP موضح بواسطة حزمة rwho هذه:

actinide.who> broadcast.who: udp 84

هذا يقول أن الميناء الذي على مضيف الأكتينيد أرسلت datagram udp إلى المنفذ الذي بث على المضيف ، عنوان البث على شبكة الإنترنت. تحتوي الحزمة على 84 بايت من بيانات المستخدم.

يتم التعرف على بعض خدمات UDP (من رقم منفذ المصدر أو الوجهة) ومن طباعة معلومات البروتوكول ذات المستوى الأعلى. على وجه الخصوص ، طلبات خدمة اسم المجال (RFC-1034/1035) ومكالمات Sun RPC (RFC-1050) إلى NFS.

طلبات خادم اسم UDP

(ملاحظة: يفترض الوصف التالي الإلمام ببروتوكول خدمة النطاق الموضح في RFC-1035. إذا لم تكن مألوفًا مع البروتوكول ، سيظهر الوصف التالي مكتوبًا باللغة اليونانية.)

يتم تنسيق طلبات خادم الأسماء كـ

src> dst: id op؟ الأعلام qtype qclass name (len) h2opolo.1538> helios.domain: 3+ A؟ ucbvax.berkeley.edu. (37)

طلب المضيف h2opolo خادم النطاق على helios لسجل العنوان (qtype = A) المرتبطة بالاسم ucbvax.berkeley.edu. رقم تعريف الاستعلام كان 3. تشير العلامة "+" إلى العودية التي تم تعيين العلامة المطلوبة عليها. كان طول الاستعلام 37 بايت ، بما في ذلك رؤوس UDP وبروتوكول IP. كانت عملية الاستعلام هي العملية العادية ، Query ، لذا تم حذف حقل op. إذا كان قد تم op أي شيء آخر ، فإنه قد تم طباعتها بين '3' و '+'. وبالمثل ، كانت qclass هي الطبقة العادية ، C_IN ، وتم حذفها. أي qclass أخرى قد تمت طباعتها مباشرة بعد `A '.

يتم التحقق من بعض الحالات الشاذة وقد ينتج عنها حقول إضافية محاطة بأقواس مربعة: إذا كان استعلام يحتوي على إجابة ، فستتم طباعة سجلات المرجع أو السجلات الإضافية أو العدد أو nscount أو arcount على أنها `[ n a] '،` [ n n ] "أو" [ n au] "حيث تمثل n العدد المناسب. إذا تم تعيين أي من وحدات بت الاستجابة (AA أو RA أو rcode) أو تم تعيين أي من البتات "يجب أن تكون صفرية" في البايتين الثاني والثالث ، تتم طباعة [b2 & 3 = x ] ، حيث x هي القيمة السداسية بايت رأس اثنين وثلاثة.

استجابات خادم اسم UDP

يتم تنسيق استجابات خادم الأسماء كـ

src> dst: id op rcode flags a / n / au type class data (len) helios.domain> h2opolo.1538: 3 3/3/7 A 128.32.137.3 (273) helios.domain> h2opolo.1537: 2 NXDomain * 0/1/0 (97)

في المثال الأول ، تستجيب هيليوس للاستعلام عن id 3 من h2opolo مع 3 سجلات إجابات و 3 سجلات لخادم الاسم و 7 سجلات إضافية. سجل الإجابة الأول هو النوع أ (العنوان) وبياناته هو عنوان الإنترنت 128.32.137.3. بلغ الحجم الإجمالي للاستجابة 273 بايت ، باستثناء رؤوس UDP و IP. تم حذف op (Query) ورمز الاستجابة (NoError) ، كما تم الفئة (C_IN) من سجل A.

في المثال الثاني ، يستجيب helios للاستعلام 2 مع رمز الاستجابة من المجال غير موجود (NXDomain) مع عدم وجود إجابات ، خادم اسم واحد ولا سجلات سلطة. تشير العلامة "*" إلى أنه تم تعيين بتة الرد الموثوق . نظرًا لعدم وجود إجابات ، لم تتم طباعة أي نوع أو فئة أو بيانات.

أحرف علامة أخرى قد تظهر هي - - (العودية المتاحة ، RA ، لم يتم ضبطها) و `| (رسالة مبتورة ، TC ، مجموعة). إذا كان قسم "السؤال" لا يحتوي على إدخال واحد تمامًا ، فستتم طباعة "[ n q]".

لاحظ أن طلبات واستجابات ملقم الأسماء تميل إلى أن تكون كبيرة وأن المفاجئة الافتراضية لـ 68 بايت قد لا تقوم بالتقاط ما يكفي من الحزمة للطباعة. استخدم علامة -s لزيادة snaplen إذا كنت بحاجة إلى التحقق بجدية من حركة مرور خادم الاسم. لقد عملت " 128 " بشكل جيد بالنسبة لي.

فك SMB / CIFS

يتضمن tcpdump الآن فك تشفير واسع إلى حد ما لـ SMB / CIFS / NBT للبيانات على UDP / 137 و UDP / 138 و TCP / 139. يتم أيضًا إجراء بعض عمليات فك التشفير البادئة لبيانات IPX و NetBEUI SMB.

بشكل افتراضي ، يتم إجراء فك التشفير إلى الحد الأدنى ، مع فك تشفير أكثر تفصيلاً إذا تم استخدام -v. كن حذرًا من أن حزمة SMB واحدة قد تستهلك صفحة أو أكثر ، لذا استخدمها فقط إذا كنت تريد كل التفاصيل الدامية.

إذا كنت تقوم بفك ترميز جلسات SMB تحتوي على سلاسل unicode ، فقد ترغب في تعيين متغير البيئة USE_UNICODE إلى 1. سيكون موضعًا ترحيبًا بالكشف عن التصحيح التلقائي unicode srings.

للحصول على معلومات حول تنسيقات حزم SMB وماذا يعني كل حقول te أنظر www.cifs.org أو pub / samba / specs / directory على موقع مرآة samba.org المفضل لديك. تم كتابة بقع SMB بواسطة Andrew Tridgell (tridge@samba.org).

طلبات NFS والردود

تتم طباعة طلبات NFS (نظام ملفات الشبكة) والردود على النحو التالي:

src.xid> dst.nfs: len op args src.nfs> dst.xid: reply stat len ​​op results sushi.6709> wrl.nfs: 112 readlink fh 21،24 / 10.73165 wrl.nfs> sushi.6709: reply ok 40 readlink "../var" sushi.201b> wrl.nfs: 144 lookup fh 9،74 / 4096.6878 "xcolors" wrl.nfs> sushi.201b: reply ok 128 lookup fh 9،74 / 4134.3150

في السطر الأول ، يرسل sushi المضيف معاملة مع id 6709 إلى wrl (لاحظ أن الرقم الذي يلي مضيف src هو رقم معاملة ، وليس منفذ مصدر). كان الطلب 112 بايت ، باستثناء رؤوس UDP و IP. كانت العملية عبارة عن رابط للقراءة (قراءة رابط رمزي) على مقبض الملف ( fh ) 21،24 / 10.731657119. (إذا كان أحد المحظوظين ، كما في هذه الحالة ، يمكن تفسير مؤشر الملف على أنه زوج رقم جهاز رئيسي ثانوي ، متبوعًا برقم inode ورقم الإنشاء .) Wrl الردود 'ok' بمحتويات الارتباط.

في السطر الثالث ، يطلب السوشي من wrl البحث عن اسم ` xcolors 'في ملف الدليل رقم 9،74 / 4096.6878. لاحظ أن البيانات المطبوعة تعتمد على نوع العملية. الغرض من هذا التنسيق هو أن يكون توضيحيًا إذا تمت قراءته بالاقتران مع مواصفات بروتوكول NFS.

إذا تم إعطاء علامة v (verbose) ، تتم طباعة معلومات إضافية. فمثلا:

sushi.1372a> wrl.nfs: 148 read fh 21،11 / 12.195 8192 bytes @ 24576 wrl.nfs> sushi.1372a: reply ok 1472 read REG 100664 ids 417/0 sz 29388

(- v يطبع أيضاً رأسية عنوان IP لبروتوكول TTL و ID و length و fragmentation ، والتي تم حذفها من هذا المثال.) في السطر الأول ، يطلب sushi من wrl قراءة 8192 بايت من الملف 21،11 / 12.195 ، عند الإزاحة بالبايت 24576. رد على الردود `ok '؛ الحزمة الموضحة في السطر الثاني هي الجزء الأول من الرد ، وبالتالي يبلغ طولها 1472 بايت فقط (ستتبعها البايتات الأخرى في الأجزاء اللاحقة ، ولكن هذه الأجزاء لا تحتوي على NFS أو حتى رؤوس UDP وربما لا تتم طباعتها ، اعتمادا على تعبير مرشح المستخدمة). نظرًا لتعريف علامة -v ، تتم طباعة بعض سمات الملف (التي يتم إرجاعها بالإضافة إلى بيانات الملف): نوع الملف (`` REG '، للملف العادي) ، وضع الملف (في octal) ، و uid و gid ، وحجم الملف.

إذا تم إعطاء علامة -v أكثر من مرة ، فستتم طباعة المزيد من التفاصيل.

لاحظ أن طلبات NFS كبيرة جدًا ولن تتم طباعة جزء كبير من التفاصيل ما لم يتم زيادة snaplen . جرب استخدام ` s-192 'لمشاهدة حركة NFS.

لا تقم حزم الرد NFS بتعريف عملية RPC بشكل صريح. بدلاً من ذلك ، يقوم tcpdump بتتبع الطلبات '' الحديثة '' ، ومطابقتها مع الردود باستخدام معرف المعاملة. إذا لم يرد الرد عن كثب على الطلب المقابل ، فقد لا يكون قابلًا للطباعة.

طلبات AFS والردود

تتم طباعة طلبات وطلبات Transarc AFS (نظام الملفات أندرو) كما يلي:

src.sport> dst.dport: rx packet-type src.sport> dst.dport: rx packet-type call call-name args src.sport> dst.dport: rx packet-type service call-name args elvis. 7001> pike.afsfs: rx data fs call rename old fid 536876964/1/1 ".newsrc.new" new fid 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx data fs reply rename

في السطر الأول ، يرسل المضيف الفيس حزمة RX إلى رمح. كانت هذه حزمة بيانات RX لخدمة fs (fileserver) وهي بداية استدعاء RPC. كان استدعاء RPC إعادة تسمية ، مع معرف ملف الدليل القديم من 536876964/1/1 واسم ملف قديم من ".newsrc.new" ، ومعرف ملف دليل جديد من 536876964/1/1 واسم ملف جديد من `. newsrc. يستجيب رمح المضيف برفض RPC إلى استدعاء إعادة التسمية (الذي كان ناجحًا ، لأنه كان عبارة عن حزمة بيانات وليس حزمة إحباط).

بشكل عام ، يتم فك جميع RPCs AFS على الأقل بواسطة اسم استدعاء RPC. لدى معظم RPCs AFS على الأقل بعض الحجج decoded (بشكل عام فقط الحجج "مثيرة للاهتمام" ، للحصول على تعريف بعض للاهتمام).

الغرض من هذا التنسيق هو وصف الذات ، ولكن ربما لن يكون مفيدًا للأشخاص الذين ليسوا على دراية بأداء AFS و RX.

إذا تم إعطاء علامة v (verbose) مرتين ، تتم طباعة حزم الإقرار ومعلومات رأس إضافية ، مثل معرف المكالمة RX ورقم الاتصال ورقم التسلسل والرقم التسلسلي وعلامة RX.

إذا تم إعطاء علامة v- مرتين ، تتم طباعة معلومات إضافية ، مثل معرف المكالمة RX والرقم التسلسلي وعلامة RX. تتم أيضًا طباعة معلومات تفاوض MTU من حزم RX ack.

إذا تم إعطاء علامة -v ثلاث مرات ، فستتم طباعة فهرس الأمان ومعرف الخدمة.

تتم طباعة رموز الخطأ للحزم التي تم إجهاضها ، باستثناء حزم منارات Ubik (نظرًا لاستخدام حزم abort للإشارة إلى التصويت بنعم لبروتوكول Ubik).

لاحظ أن طلبات AFS كبيرة جدًا ولن يتم طباعة العديد من الوسيطات ما لم يتم زيادة snaplen . حاول استخدام ` -s 256 'لمشاهدة حركة مرور AFS.

لا تقوم حزم الرد AFS بتعريف عملية RPC بشكل صريح. بدلاً من ذلك ، يقوم tcpdump بتتبع الطلبات '' الأخيرة '' ، ومطابقتها مع الردود باستخدام رقم الاتصال ومعرف الخدمة. إذا لم يرد الرد عن كثب على الطلب المقابل ، فقد لا يكون قابلًا للطباعة.

تطبيق KIP Appletalk (DDP في UDP)

حزم Dletagl DDP مغلفة في مخططات بيانات UDP يتم فكها وإلقاؤها كحزم DDP (أي ، يتم تجاهل كافة معلومات رأس UDP). يتم استخدام الملف /etc/atalk.names لترجمة أسماء netletalk net و node. خطوط في هذا الملف يكون النموذج

اسم الرقم 1.254 ether 16.1 icsd-net 1.254.110 ace

أول سطرين يعطي أسماء شبكات appletalk. السطر الثالث يعطي اسم مضيف معين (يتميز المضيف عن الشباك عن طريق الثمانية الثالثة في العدد - يجب أن يكون الرقم الصافي على ثمانية ثماني عدد ويجب أن يكون رقم المضيف ثلاث ثمانيات). يجب فصل الرقم واسم بواسطة whitespace (الفراغات أو علامات التبويب). قد يحتوي الملف /etc/atalk.names على أسطر فارغة أو سطور تعليق (خطوط تبدأ بـ `# ').

تتم طباعة عناوين Appletalk في النموذج:

net.host.port 144.1.209.2> icsd-net.112.220 office.2> icsd-net.112.220 jssmag.149.235> icsd-net.2

(إذا كان /etc/atalk.names غير موجود أو لا يحتوي على إدخال لبعض المضيف / رقم net appletalk ، تتم طباعة العناوين في شكل رقمي.) في المثال الأول ، NBP (منفذ DDP 2) على net 144.1 إرسال العقدة 209 إلى ما يستمع على المنفذ 220 من العقدة icsd net 112. السطر الثاني هو نفسه باستثناء الاسم الكامل للعقدة المصدر معروف (`office '). السطر الثالث هو إرسال من المنفذ 235 على nss nss nnet 149 للبث على منفذ NBP icsd-net (لاحظ أن عنوان البث (255) يشار إليه باسم شبكة بدون رقم مضيف - ولهذا السبب من المستحسن للحفاظ على أسماء عقدة وأسماء net مميزة في /etc/atalk.names).

NBP (بروتوكول ربط الاسم) و ATP (بروتوكول معاملة بروتوكول Appletalk) لها محتوياتها تفسر. البروتوكولات الأخرى فقط تفريغ اسم البروتوكول (أو رقم إذا لم يتم تسجيل أي اسم للبروتوكول) وحجم الحزمة.

يتم تنسيق حزم NBP مثل الأمثلة التالية:

icsd-net.112.220> jssmag.2: nbp-lkup 190: "=: LaserWriter @ *" jssmag.209.2> icsd-net.112.220: nbp-reply 190: "RM1140: LaserWriter @ *" 250 techpit.2> icsd -net.112.220: nbp-reply 190: "techpit: LaserWriter @ *" 186

السطر الأول هو طلب البحث عن اسم لمستخدمي الليزر المرسلة من قبل المضيف 112 icsd و يبث على net jssmag. معرف nbp للبحث هو 190. يظهر السطر الثاني رد على هذا الطلب (لاحظ أنه يحتوي على نفس المعرف) من المضيف jssmag.209 قائلا أنه يحتوي على مورد ليزر خطي يدعى "RM1140" مسجل على المنفذ 250. الثالث الخط هو رد آخر على نفس الطلب قائلا المضيف techpit لديه ليزر "techpit" مسجل على المنفذ 186.

تنسيق حزمة ATP يتم توضيحه بواسطة المثال التالي:

jssmag.209.165> helios.132: atp-req 12266 <0-7> 0xae030001 helios.132> jssmag.209.165: atp-resp 12266: 0 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 1 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 2 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 3 (512) 0xae040000 helios.132> jssmag.209.165: atp- resp 12266: 4 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 5 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 6 (512) 0xae040000 helios.132> jssmag. 209.165: atp-resp * 12266: 7 (512) 0xae040000 jssmag.209.165> helios.132: atp-req 12266 <3،5> 0xae030001 helios.132> jssmag.209.165: atp-resp 12266: 3 (512) 0xae040000 helios .132> jssmag.209.165: atp-resp 12266: 5 (512) 0xae040000 jssmag.209.165> helios.132: atp-rel 12266 <0-7> 0xae030001 jssmag.209.133> helios.132: atp-req * 12267 <0 -7> 0xae030002

يبدأ Jssmag.209 معرف المعاملة 12266 مع helios المضيف عن طريق طلب ما يصل إلى 8 حزم (`<0-7> '). الرقم السداسي في نهاية السطر هو قيمة الحقل `userdata 'في الطلب.

تستجيب هيليوس بحزم 8 بايت 512. يعطي الرقم ':' الذي يلي رقم تعريف المعاملة رقم تسلسل الحزمة في المعاملة والرقم الموجود في parens هو مقدار البيانات في الحزمة ، باستثناء رأسية atp. يشير `` 'في الحزمة رقم 7 إلى أنه تم تعيين بت EOM.

يطلب Jssmag.209 ثم الحزم 3 & 5 يتم إعادة إرسالها. هيليوس يبعث لهم ثم jssmag.209 النشرات المعاملة. وأخيرًا ، يبدأ jssmag.209 الطلب التالي. تشير العلامة "*" على الطلب إلى أنه لم يتم تعيين XO ("مرة واحدة بالضبط").

تجزئة IP

تتم طباعة datagrams الإنترنت المجزأة كـ

( معرف الفارق : حجم @ تعويض +) ( معرف خردة : حجم @ تعويض )

(يشير النموذج الأول إلى وجود المزيد من الأجزاء. ويشير الثاني إلى أن هذا هو الجزء الأخير.)

معرف هو معرف الجزء. الحجم هو حجم الجزء (بالبايت) باستثناء رأس IP. الإزاحة هي إزاحة هذا الجزء (بالبايت) في مخطط البيانات الأصلي.

معلومات جزء الإخراج لكل جزء. يحتوي الجزء الأول على رأس بروتوكول المستوى الأعلى ويتم طباعة معلومات frag بعد معلومات البروتوكول. أجزاء بعد الأول لا تحتوي على رأس بروتوكول مستوى أعلى ويتم طباعة معلومات frag بعد عناوين المصدر والوجهة. على سبيل المثال ، هنا جزء من بروتوكول نقل الملفات من arizona.edu إلى lbl-rtsg.arpa عبر اتصال CSNET لا يبدو أنه يتعامل مع وحدات بيانات بايت 576:

arizona.ftp-data> rtsg.1170:. 1024: 1332 (308) ack 1 win 4096 (frag 595a: 328 @ 0 +) arizona> rtsg: (frag 595a: 204 @ 328) rtsg.1170> arizona.ftp-data:. ack 1536 win 2560

هناك أمران يجب ملاحظتهما هنا: أولاً ، لا تتضمن العناوين في السطر الثاني أرقام المنافذ. هذا لأن معلومات بروتوكول TCP موجودة في الجزء الأول وليس لدينا أي فكرة عن أرقام المنفذ أو التسلسل عندما نطبع الأجزاء اللاحقة. ثانيًا ، تتم طباعة معلومات تسلسل tcp في السطر الأول كما لو كان هناك 308 بايت من بيانات المستخدم عندما تكون 512 بايت (308 في الشريحة الأولى و 204 في الثانية). إذا كنت تبحث عن ثقوب في مساحة التسلسل أو تحاول مطابقة acks مع الحزم ، فإن هذا يمكن أن يخدعك.

يتم وضع علامة على حزمة مع علامة IP لا جزء مع زائدة (DF) .

الطوابع

بشكل افتراضي ، تسبق جميع خطوط الإخراج طابع زمني. الطابع الزمني هو وقت الساعة الحالي في النموذج

HH: MM: ss.frac

ودقيقة مثل ساعة النواة. يعكس الطابع الزمني الوقت الذي شاهدت فيه النواة الحزمة لأول مرة. لم يتم إجراء أي محاولة لحساب الفارق الزمني بين إزالة واجهة Ethernet للحزمة من السلك وعند قيام kernel بخدمة المقاطعة "الحزمة الجديدة".

أنظر أيضا

حركة المرور (1C) ، أحمق (4P) ، bpf (4) ، pcap (3)

هام: استخدم الأمر man ( ٪ man ) لمعرفة كيفية استخدام أمر ما على جهاز الكمبيوتر الخاص بك.