Tcpdump - Linux Command - Unix Command

NAME

tcpdump-dump traffic on a network

SYNOPSIS

tcpdump [ -adeflnNOpqRStuvxX ] [ -c count ]

[ -C file_size ] [ -F file ]

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

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

[ -E algo: secret ] [ expression ]

DESCRIPTION

Tcpdump ພິມອອກຫົວຂອງແພັກເກັດໃນອິນເຕີເຟດເຄືອຂ່າຍທີ່ກົງກັບການ ສະແດງ boolean. ມັນຍັງສາມາດດໍາເນີນການກັບ flag -w ເຊິ່ງເຮັດໃຫ້ມັນສາມາດບັນທຶກຂໍ້ມູນ packet ໃນໄຟລ໌ສໍາລັບການວິເຄາະຕໍ່ມາແລະ / ຫຼືມີ flag -r ເຊິ່ງເຮັດໃຫ້ມັນອ່ານຈາກໄຟລ໌ packet ທີ່ບັນທຶກໄວ້ແທນທີ່ຈະອ່ານ packets ຈາກອິນເຕີເຟດເຄືອຂ່າຍ. ໃນທຸກໆກໍລະນີ, ພຽງແຕ່ແພັກເກັດທີ່ກົງກັນກັບ ການສະແດງອອກ ຈະຖືກດໍາເນີນການໂດຍ tcpdump .

ຖ້າ Tcpdump ຈະບໍ່ດໍາເນີນການກັບຂະ ຫນານ -c , ສືບຕໍ່ການເກັບກໍາຂໍ້ມູນບັນຈຸຈົນກ່ວາມັນຖືກລົບກວນໂດຍສັນຍານ SIGINT (ຕົວຢ່າງ, ໂດຍການພິມຕົວອັກສອນຂື້ນຂອງທ່ານ, ປົກກະຕິ C-Control) ຫຼືສັນຍານ SIGTERM (1) ຄໍາສັ່ງ) ຖ້າເຮັດວຽກກັບທຸງ -c , ມັນຈະເກັບເອົາບັນຈຸຂໍ້ມູນຈົນກວ່າຈະຖືກລົບກວນໂດຍສັນຍານ SIGINT ຫຼື SIGTERM ຫຼືຈໍານວນຂໍ້ມູນທີ່ຖືກກໍານົດໄວ້.

ເມື່ອ tcpdump ຈົບການເກັບກໍາຂໍ້ມູນ, ມັນຈະລາຍງານການນັບຂອງ:

packets `` ທີ່ໄດ້ຮັບໂດຍການກັ່ນຕອງ '' (ຫມາຍຄວາມວ່ານີ້ແມ່ນຂຶ້ນກັບລະບົບປະຕິບັດການທີ່ທ່ານກໍາລັງແລ່ນ tcpdump ແລະອາດຈະມີການຕັ້ງຄ່າລະບົບປະຕິບັດການ - ຖ້າມີການກັ່ນຕອງໃນລະບົບຄໍາສັ່ງ, ແພັກເກັດບໍ່ວ່າຈະເປັນພວກເຂົາຖືກຈັບໂດຍການສະແດງຜົນການກັ່ນຕອງແລະໃນລະບົບປະຕິບັດການອື່ນ ໆ ມັນນັບວ່າແພັກເກັດເທົ່ານັ້ນທີ່ຖືກຈັບໂດຍການສະແດງຜົນການກັ່ນຕອງແລະຖືກປະຕິບັດໂດຍ tcpdump );

ແພັກເກັດ `` ຫຼຸດລົງໂດຍແກ່ນ '' (ນີ້ແມ່ນຈໍານວນຂອງແພັກເກັດທີ່ຖືກຫຼຸດລົງເນື່ອງຈາກຂາດຊ່ອງຫວ່າງ buffer ໂດຍກົນໄກການເກັບກໍາຂໍ້ມູນໃນຊຸດ OS ໃນທີ່ tcpdump ກໍາລັງດໍາເນີນການຖ້າ OS ລາຍງານວ່າຂໍ້ມູນສໍາລັບຄໍາຮ້ອງສະຫມັກ; ຖ້າບໍ່, ມັນຈະຖືກລາຍງານເປັນ 0).

ໃນລະບົບທີ່ສະຫນັບສະຫນູນສັນຍານ SIGINFO, ເຊັ່ນ BSDs ສ່ວນໃຫຍ່, ມັນຈະລາຍງານຄ່າເຫຼົ່ານັ້ນເມື່ອມັນໄດ້ຮັບສັນຍານ SIGINFO (ຕົວຢ່າງ, ໂດຍການພິມຕົວອັກສອນ `` ສະຖານະ `` ຂອງທ່ານ, ໂດຍປົກກະຕິ 'T-Control') ແລະຈະສືບຕໍ່ການບັນທຶກຂໍ້ມູນ ທີ່ຢູ່

ການອ່ານຊຸດຂໍ້ມູນຈາກອິນເຕີເຟດເຄືອຂ່າຍອາດຈະຮຽກຮ້ອງໃຫ້ທ່ານມີສິດພິເສດ:

ພາຍໃຕ້ SunOS 3.x ຫຼື 4.x ກັບ NIT ຫຼື BPF:

ທ່ານຕ້ອງມີການອ່ານການເຂົ້າເຖິງ / dev / nit ຫຼື / dev / bpf * .

ພາຍໃຕ້ Solaris ດ້ວຍ DLPI:

ທ່ານຕ້ອງມີການອ່ານ / ຂຽນເຂົ້າໃນອຸປະກອນ pseudo ເຄືອຂ່າຍ, ເຊັ່ນ / dev / le . ຢ່າງຫນ້ອຍບາງເວີຊັນຂອງ Solaris, ຢ່າງໃດກໍຕາມ, ນີ້ແມ່ນບໍ່ພຽງພໍທີ່ຈະອະນຸຍາດໃຫ້ tcpdump ການເກັບກໍາໃນຮູບແບບ promiscuous; ໃນເວີຊັນຂອງ Solaris, ທ່ານຕ້ອງເປັນ root, ຫຼື tcpdump ຕ້ອງໄດ້ຕິດຕັ້ງ setuid ເພື່ອຮາກ, ເພື່ອບັນທຶກໃນໂຫມດ promiscuous. ໃຫ້ສັງເກດວ່າ, ໃນຫຼາຍໆປະເພດ (ບາງທີອາດມີ) ການຕິດຕໍ່, ຖ້າຫາກວ່າທ່ານບໍ່ໄດ້ເກັບໃນຮູບແບບ promiscuous, ທ່ານຈະບໍ່ເຫັນຊຸດໃດໆທີ່ອອກໄປ, ດັ່ງນັ້ນ capture ທີ່ບໍ່ເຮັດໃນໂຫມດ promiscuous ອາດບໍ່ມີປະໂຫຍດຫຼາຍ.

ພາຍໃຕ້ HP-UX ທີ່ມີ DLPI:

ທ່ານຕ້ອງເປັນ root ຫຼື tcpdump ຕ້ອງຕິດຕັ້ງ setuid ເພື່ອຮາກ.

ພາຍໃຕ້ IRIX ດ້ວຍ snoop:

ທ່ານຕ້ອງເປັນ root ຫຼື tcpdump ຕ້ອງຕິດຕັ້ງ setuid ເພື່ອຮາກ.

ພາຍໃຕ້ Linux:

ທ່ານຕ້ອງເປັນ root ຫຼື tcpdump ຕ້ອງຕິດຕັ້ງ setuid ເພື່ອຮາກ.

ພາຍໃຕ້ Ultrix ແລະດິຈິຕອນ UNIX / Tru64 UNIX:

ຜູ້ໃຊ້ໃດຫນຶ່ງອາດຈະເກັບກໍາການເຂົ້າຊົມເຄືອຂ່າຍດ້ວຍ tcpdump . ຢ່າງໃດກໍ່ຕາມ, ບໍ່ມີຜູ້ໃຊ້ (ບໍ່ແມ່ນຜູ້ໃຊ້ Super) ສາມາດຈັບພາບໄດ້ໃນຮູບແບບທີ່ໂປ່ງໃສໃນການໂຕ້ຕອບເວັ້ນເສຍແຕ່ວ່າຜູ້ໃຊ້ Super ໄດ້ເປີດໃຊ້ງານ ໂປຣແກຣມແບບໂປ່ງໃສໃນ ການໂຕ້ຕອບທີ່ໃຊ້ pfconfig (8) ແລະບໍ່ມີຜູ້ໃຊ້ ) ສາມາດເກັບກໍາຂໍ້ມູນການເຂົ້າເຖິງ unicast ທີ່ໄດ້ຮັບໂດຍຫຼືສົ່ງໂດຍເຄື່ອງໃນການໂຕ້ຕອບເວັ້ນເສຍແຕ່ວ່າຜູ້ໃຊ້ Super ໄດ້ເປີດໃຊ້ງານສໍາເນົາແບບຟອມທັງຫມົດໃນຫນ້າຈໍທີ່ໃຊ້ pfconfig ນັ້ນ, - ການປະຕິບັດງານທັງຫມົດ, ຫຼືທັງສອງທິບາຍຮູບແບບຂອງການປະຕິບັດງານ, ຈະຖືກເປີດໃຊ້ໃນການໂຕ້ຕອບນັ້ນ.

ພາຍໃຕ້ BSD:

ທ່ານຕ້ອງມີການອ່ານການເຂົ້າເຖິງ / dev / bpf * .

ການອ່ານໄຟລ໌ packet ທີ່ບັນທຶກໄວ້ບໍ່ຈໍາເປັນຕ້ອງມີສິດພິເສດ.

OPTIONS

-a

ຄວາມພະຍາຍາມທີ່ຈະປ່ຽນເຄືອຂ່າຍແລະການອອກອາກາດທີ່ຢູ່ໃນຊື່.

-c

ອອກຈາກພາຍຫຼັງທີ່ໄດ້ຮັບບັນຊີ ນັບນັບ .

-C

ກ່ອນທີ່ຈະຂຽນຂໍ້ມູນເປັນວັດຖຸດິບໃຫ້ savefile, ກວດເບິ່ງວ່າໄຟລ໌ແມ່ນຂະຫນາດໃຫຍ່ກວ່າ file_size ແລະຖ້າເປັນດັ່ງນັ້ນ, ປິດ savefile ປັດຈຸບັນແລະເປີດໃຫມ່. Savefiles ຫຼັງຈາກ savefile ຄັ້ງທໍາອິດຈະມີຊື່ທີ່ກໍານົດໄວ້ກັບ flag -w , ມີຈໍານວນຫຼັງຈາກມັນ, ເລີ່ມຕົ້ນຢູ່ທີ່ 2 ແລະສືບຕໍ່ເພີ່ມຂຶ້ນ. ຫນ່ວຍງານຂອງ file_size ແມ່ນລ້ານ bytes (1,000,000 bytes, ບໍ່ 1,048,576 bytes).

-d

ຖອດລະຫັດທີ່ຖືກລວບລວມໄວ້ໃນຮູບແບບທີ່ສາມາດອ່ານໄດ້ຈາກມະນຸດໄປຫາມາດຕະຖານຜົນແລະຢຸດ.

-dd

Dump ລະຫັດແພທັອບທີ່ເຫມາະສົມເປັນຊິ້ນໂຄງການ C.

-ddd

Dump ລະຫັດແພທັອບທີ່ເປັນຫມາຍເລກທະສະນິຍົມ (ກ່ອນທີ່ຈະນັບ).

-e

ພິມ header ລະດັບ link-link ໃນແຕ່ລະ dump line.

-E

ໃຊ້ algo: ລັບ ສໍາລັບການ decrypting IPsec ESP packets. ບັນດາ algorithms ອາດຈະ des-cbc , 3des-cbc , blowfish-cbc , rc3-cbc , cast128-cbc , ຫຼື none . ຄ່າເລີ່ມຕົ້ນແມ່ນ des-cbc . ຄວາມສາມາດໃນການຖອດລະຫັດຂໍ້ມູນເປັນພຽງແຕ່ຖ້າວ່າ tcpdump ຖືກລວບລວມດ້ວຍການໃຊ້ລະຫັດຜ່ານ. ລັບ ຂໍ້ຄວາມ ascii ສໍາລັບກຸນແຈລັບ ESP. ພວກເຮົາບໍ່ສາມາດໃຊ້ມູນຄ່າຄູ່ກັນໃນເວລານີ້. ຕົວເລືອກຈະພິຈາລະນາ RFC2406 ESP, ບໍ່ແມ່ນ RFC1827 ESP. ຕົວເລືອກແມ່ນສໍາລັບຈຸດປະສົງການແກ້ໄຂ debugging, ແລະການໃຊ້ຕົວເລືອກນີ້ດ້ວຍປຸ່ມ `ລັບ 'ທີ່ແທ້ຈິງແມ່ນຖືກທໍ້ຖອຍໃຈ. ໂດຍສະແດງຄີຄີ IPsec ໃສ່ເສັ້ນຄໍາສັ່ງທ່ານສາມາດເບິ່ງເຫັນຄົນອື່ນໂດຍຜ່ານ ps (1) ແລະບາງຄັ້ງອື່ນ.

-f

ພິມຕົວເລກອິນເຕີເນັດຂອງຕ່າງປະເທດຫຼາຍກວ່າສັນຍາລັກ (ຕົວເລືອກນີ້ແມ່ນເພື່ອເຮັດໃຫ້ເກີດຄວາມເສຍຫາຍຮ້າຍແຮງໃນສະຫມອງຂອງ Sun's yp server --- ປົກກະຕິມັນ hangs ຕະຫຼອດການແປພາສາອິນເຕີເນັດທີ່ບໍ່ແມ່ນພາຍໃນທ້ອງຖິ່ນ).

-F

ໃຊ້ ໄຟລ໌ ເປັນຂໍ້ມູນສໍາລັບການສະແດງຜົນການກັ່ນຕອງ. ການສະແດງອອກເພີ່ມເຕີມທີ່ໃຫ້ຢູ່ໃນເສັ້ນຄໍາສັ່ງຖືກຍົກເລີກ.

-i

ຟັງກ່ຽວກັບ ການໂຕ້ຕອບ . ຖ້າບໍ່ໄດ້ລະບຸ, tcpdump ຈະຊອກຫາບັນດາລະບົບການຕິດຕໍ່ລະບົບສໍາລັບອິນເຕີເຟດທີ່ມີຈໍານວນນ້ອຍທີ່ສຸດ, ການຕັ້ງຄ່າສູງສຸດ (ໄມ່ລວມ loopback). ສາຍພົວພັນແມ່ນຖືກແຍກໂດຍການເລືອກການແຂ່ງຂັນທໍາອິດ.

ໃນລະບົບ Linux ທີ່ມີແກ່ນ 2.2 ຫຼືຫຼາຍກວ່ານັ້ນ, ການ ໂຕ້ ຖຽງການໂຕ້ ຕອບ ຂອງ `` ໃດໆ '' ສາມາດຖືກນໍາໃຊ້ເພື່ອເກັບກໍາຂໍ້ມູນຈາກທຸກໆ interface. ໃຫ້ສັງເກດວ່າການເກັບກໍາຂໍ້ມູນກ່ຽວກັບອຸປະກອນ `` ໃດໆ '' ຈະບໍ່ຖືກເຮັດໃນໂຫມດໂປ່ງໃສ.

-l

ເຮັດເສັ້ນ stdout buffered. ມີປະໂຫຍດຖ້າທ່ານຕ້ອງການເບິ່ງຂໍ້ມູນໃນຂະນະທີ່ຈັບມັນ. Eg,
`` 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

ຢ່າ ເອົາໃຈໃສ່ໃນການໂຕ້ຕອບໃນຮູບແບບທີ່ໂປ່ງໃສ. ໃຫ້ສັງເກດວ່າການໂຕ້ຕອບອາດຈະຢູ່ໃນຮູບແບບ promiscuous ສໍາລັບບາງເຫດຜົນອື່ນ; ດັ່ງນັ້ນ, `-p 'ບໍ່ສາມາດຖືກນໍາໃຊ້ເປັນລາຍລັກອັກສອນສໍາລັບ` ether host {local-hw-addr} ຫຼືການອອກອາກາດ ether'.

-q

ຜົນຜະລິດໄວ (ງຽບ?). ພິມຂໍ້ມູນໂປຣແກຣມຫນ້ອຍລົງເພື່ອໃຫ້ສາຍຜົນຜະລິດສັ້ນ.

-R

ສົມມຸດວ່າບັນດາເອກະສານ ESP / AH ແມ່ນອີງໃສ່ຂໍ້ກໍານົດເກົ່າ (RFC1825 ກັບ RFC1829). ຖ້າລະບຸໄວ້, tcpdump ຈະບໍ່ພິມເຂດການປ້ອງກັນການຫຼິ້ນແບບໃຫມ່. ເນື່ອງຈາກບໍ່ມີໂປຣແກຣມໂປຣແກຣມໂປຣແກຣມໃດໆໃນຂໍ້ກໍານົດຂອງ ESP / AH, tcpdump ບໍ່ສາມາດນໍາໃຊ້ສະບັບຂອງໂປຣແກຣມ ESP / AH.

-r

ອ່ານຊຸດຂໍ້ມູນຈາກ ໄຟລ໌ (ທີ່ສ້າງໂດຍຕົວເລືອກ -w). ການນໍາໃຊ້ມາດຕະຖານຖືກນໍາໃຊ້ຖ້າ ໄຟລ໌ ແມ່ນ `- - '.

-S

ພິມ absolute, ແທນທີ່ຈະທຽບເທົ່າ, ເລກລໍາດັບ TCP.

-s

Snapfen snaplen bytes ຂອງຂໍ້ມູນຈາກແຕ່ລະແພັກເກດແທນທີ່ຈະເປັນຄ່າເລີ່ມຕົ້ນຂອງ 68 (ດ້ວຍ NIT ຂອງ SunOS, ທີ່ສຸດແມ່ນ 96). 68 bytes ແມ່ນພຽງພໍສໍາລັບ IP, ICMP, TCP ແລະ UDP ແຕ່ອາດຈະຕັດຂໍ້ມູນໂປໂຕນຈາກຊື່ເຄື່ອງແມ່ຂ່າຍແລະ NFS packets (ເບິ່ງຂ້າງລຸ່ມນີ້). ແພັກເກັດຖືກຕັດອອກຍ້ອນວ່າພາບຖ່າຍທີ່ຈໍາກັດຖືກສະແດງໃນຜົນຜະລິດທີ່ມີ `` [| proto ] '', ບ່ອນທີ່ proto ແມ່ນຊື່ຂອງລະດັບໂປໂຕຄອນໃນເວລາທີ່ truncation ເກີດຂຶ້ນ. ໃຫ້ສັງເກດວ່າການຖ່າຍພາບພາບຖ່າຍຂະຫນາດໃຫຍ່ຈະຊ່ວຍເພີ່ມຂະຫນາດເວລາທີ່ມັນໃຊ້ເວລາໃນການປະມວນຜົນຂອງແພັກເກັດແລະ, ປະສິດທິຜົນ, ຫຼຸດລົງຈໍານວນເງິນຂອງການບີບອັດຂໍ້ມູນ. ນີ້ອາດເຮັດໃຫ້ແພັກເກັດຖືກສູນເສຍ. ທ່ານຄວນຈໍາກັດ snaplen ກັບຈໍານວນນ້ອຍທີ່ສຸດທີ່ຈະເກັບຂໍ້ມູນໂປໂຕຄອນທີ່ທ່ານສົນໃຈ. ການຕັ້ງຄ່າ snaplen ກັບ 0 ຫມາຍຄວາມວ່າໃຊ້ຄວາມຍາວທີ່ຕ້ອງການເພື່ອການຈັບແພັກທັງຫມົດ.

-T

ບັງຄັບແພໍກເກັດທີ່ເລືອກໂດຍ " ການສະແດງອອກ " ທີ່ຈະຕີລາຄາ ປະເພດ ທີ່ກໍານົດໄວ້. ປະເພດທີ່ຮູ້ຈັກໃນປະຈຸບັນແມ່ນ cnfp (Cisco NetFlow ໂປຣແກຣມ), rpc (Remote Procedure Call), rtp (ໂປແກຼມການໃຊ້ເວລາທີ່ແທ້ຈິງ), rtcp (ໂປຣແກຼມການຄຸ້ມຄອງແບບງ່າຍດາຍ), snmp ), ແລະ wb (ກະດານຂາວກະຈາຍ).

-t

ຢ່າ ພິມຕາຕະລາງເວລາໃນແຕ່ລະບັນດາຂໍ້ມູນ.

-tt

ພິມຮູບເວລາທີ່ບໍ່ໄດ້ກໍານົດໄວ້ໃນແຕ່ລະບັນທັດ.

-U

ຫຼຸດລົງສິດທິຮາກແລະການປ່ຽນແປງລະຫັດ ຜູ້ໃຊ້ ໃຫ້ ຜູ້ໃຊ້ ແລະລະຫັດກຸ່ມເພື່ອກຸ່ມ ຜູ້ໃຊ້ ຕົ້ນຕໍ.

ຫມາຍ​ເຫດ​! Red Hat Linux ໂດຍອັດຕະໂນມັດຈະປ່ອຍສິດທິພິເສດໃຫ້ຜູ້ໃຊ້ `` pcap '' ຖ້າບໍ່ມີຂໍ້ມູນອື່ນໃດຖືກລະບຸ.

-ttt

ພິມເສັ້ນ delta (ໃນວິນາທີຂະຫນາດນ້ອຍ) ລະຫວ່າງເສັ້ນປະຈຸບັນແລະສາຍກ່ອນຫນ້າໃນແຕ່ລະບັນຫາ.

-tttt

ພິມຕາຕະລາງເວລາໃນຮູບແບບເລີ່ມຕົ້ນໂດຍດໍາເນີນການໂດຍວັນທີໃນແຕ່ລະບັນດາເສັ້ນ.

-u

Print undecoded NFS handles

-v

(ເລັກນ້ອຍຫຼາຍ) ຜົນຜະລິດອອກກໍາລັງກາຍ. ຕົວຢ່າງ, ເວລາທີ່ຈະຢູ່, ການກໍານົດ, ຄວາມຍາວທັງຫມົດແລະຕົວເລືອກໃນ IP packet ຈະຖືກພິມ. ນອກຈາກນີ້ຍັງສາມາດກວດສອບຄວາມສົມບູນແບບຂອງ packet ເພີ່ມເຕີມເຊັ່ນການກວດສອບ IPs ແລະ ICMP header checksum.

-vv

ເຖິງແມ່ນວ່າການຜະລິດອອກກໍາລັງກາຍຫຼາຍ. ຕົວຢ່າງເຊັ່ນ, ທົ່ງນາເພີ່ມເຕີມຖືກພິມອອກມາຈາກບັນດາຊຸດຂໍ້ມູນ NFS ແລະຂໍ້ມູນ SMB ຖືກລົບອອກຢ່າງເຕັມສ່ວນ.

-vvv

ເຖິງແມ່ນວ່າການຜະລິດອອກກໍາລັງກາຍຫຼາຍ. ຕົວຢ່າງ, ທາງເລືອກ telnet SB ... SE ແມ່ນຖືກພິມເປັນຢ່າງເຕັມທີ່. ມີຕົວເລືອກ telnet -X ແມ່ນພິມຢູ່ໃນ hex ເຊັ່ນດຽວກັນ.

-w

ຂຽນຂໍ້ມູນແພັກຖຸດິບເພື່ອບັນ ທຶກໄຟລ໌ ແທນທີ່ຈະແຍກແລະພິມອອກ. ຫຼັງຈາກນັ້ນພວກເຂົາສາມາດພິມດ້ວຍຕົວເລືອກ -r. ຜົນຜະລິດມາດຕະຖານຖືກນໍາໃຊ້ຖ້າ ໄຟລ໌ `` - ''.

-x

ພິມແຕ່ລະແພັກເກັດ (ລົບຫົວຂໍ້ລະດັບການເຊື່ອມໂຍງຂອງມັນ) ໃນ hex. ຂະຫນາດນ້ອຍກວ່າຂອງແພັກຕະ ຟອມ ຫຼື snaplen bytes ຈະຖືກພິມ. ໃຫ້ສັງເກດວ່ານີ້ແມ່ນຊຸດການເຊື່ອມຕໍ່ layer ທັງຫມົດ, ດັ່ງນັ້ນສໍາລັບ layer ການເຊື່ອມຕໍ່ທີ່ pad (eg Ethernet), ການ byad padding ຈະຖືກພິມອອກເມື່ອຊັ້ນແພັກເກດທີ່ສູງຂຶ້ນກ່ວາ padding ທີ່ຈໍາເປັນ.

-X

ເມື່ອພິມ hex, ພິມ ascii ເກີນໄປ. ດັ່ງນັ້ນຖ້າ -x ແມ່ນກໍານົດໄວ້ແລ້ວ, ຊຸດເອກະສານຖືກພິມອອກໃນ hex / ascii. ນີ້ແມ່ນມີປະໂຫຍດຫຼາຍສໍາລັບການວິເຄາະໂປຣແກຣມໃຫມ່. ເຖິງແມ່ນວ່າ -x ບໍ່ໄດ້ກໍານົດໄວ້ແລ້ວ, ບາງສ່ວນບາງສ່ວນຂອງຂໍ້ມູນຈໍານວນຫນຶ່ງອາດຖືກພິມອອກໃນ hex / ascii.

ການສະແດງອອກ

ເລືອກຊຸດທີ່ຈະຖືກຖິ້ມ. ຖ້າບໍ່ມີ ການສະແດງອອກ , ທຸກໆແພັກເກັດສຸດທິຈະຖືກຖິ້ມ. ຖ້າບໍ່ດັ່ງນັ້ນ, ພຽງແຕ່ແພັກເກັດສໍາລັບ ການສະແດງອອກວ່າ `` ຄວາມຈິງ '' ຈະຖືກຖິ້ມ.

ການ ສະແດງອອກ ປະກອບດ້ວຍຫນຶ່ງຫຼືຫຼາຍກວ່າ primitives. Primitives ປົກກະຕິແລ້ວປະກອບມີ id (ຊື່ຫຼືເລກ) ກ່ອນທີ່ຈະມີຫນຶ່ງຫຼືຫຼາຍກວ່າ qualifiers. ມີສາມປະເພດທີ່ແຕກຕ່າງກັນຂອງຄຸນລັກສະນະ:

ປະເພດ

qualifiers ເວົ້າວ່າປະເພດຂອງສິ່ງທີ່ຊື່ id ຫຼືເລກຫມາຍເຖິງ. ປະເພດທີ່ເປັນໄປໄດ້ແມ່ນ ໂຮດ , ເນັດ ແລະ ພອດ . Eg, `host foo ',` net 1283', `port 20 '. ຖ້າບໍ່ມີຄຸນສົມບັດແບບປະເພດໃດກໍ່ຕາມ, ເຈົ້າພາບ ຈະຖືກຄາດ.

dir

qualifiers ກໍານົດທິດທາງການຍົກຍ້າຍໂດຍສະເພາະກັບແລະ / ຫຼືຈາກ id . ຄໍາແນະນໍາທີ່ເປັນໄປໄດ້ແມ່ນ src , dst , src ຫຼື dst ແລະ src ແລະ dst . Eg, `src foo ',` dst net 1283', `src ຫຼື dst port ftp-data '. ຖ້າບໍ່ມີຄຸນສົມບັດ dir, src ຫຼື dst ຈະຖືກຄາດ. ສໍາລັບຊັ້ນການເຊື່ອມໂຍງ `null '(ເຊົ່ນໂປແກມ point to point ເຊັ່ນ slip) qualifiers ຂາອອກ ແລະ ຂາອອກ ສາມາດໃຊ້ເພື່ອກໍານົດທິດທາງທີ່ຕ້ອງການ.

proto

qualifiers restrict match ກັບໂປຣແກຣມໂດຍສະເພາະ. Protos ທີ່ເປັນໄປໄດ້ແມ່ນ: ether , fddi , tr , ip , ip6 , arp , rarp , decnet , tcp ແລະ udp . Eg, `ether src foo ',` arp net 1283', `tcp port 21 ' ຖ້າບໍ່ມີເງື່ອນໄຂ, ໂປແກຼມທັງຫມົດສອດຄ່ອງກັບປະເພດແມ່ນຖືກຄາດໄວ້. Eg, `src foo 'ຫມາຍຄວາມວ່າ (ip ຫະລື arp ຫະລື rarp) src foo (ຍົກເວັ້ນຫລັງບໍ່ແມ່ນໄວຢາກອນທາງກົດຫມາຍ),` net bar' ຫມາຍຄວາມວ່າ 'net bar (ip or arp or rarp)' ແລະ 'port 53' `(tcp or udp) port 53 '

[`fddi 'ແມ່ນຕົວຈິງແລ້ວເປັນ alias ສໍາລັບ` ether'; ຫົວຂໍ້ FDDI ມີ Ethernet ຄ້າຍຄືແຫຼ່ງແລະທີ່ຢູ່ຈຸດຫມາຍປາຍທາງ, ແລະມັກມີ Ethernet ເຊັ່ນ: ຊະນິດຂອງແພັກເກັດ, ດັ່ງນັ້ນທ່ານສາມາດກັ່ນຕອງໃນຂົງເຂດ FDDI ເຫຼົ່ານີ້. ເຊັ່ນດຽວກັນກັບຂົງເຂດ Ethernet ຄ້າຍຄືກັນ. headers FDDI ຍັງມີຂົງເຂດອື່ນໆ, ແຕ່ທ່ານບໍ່ສາມາດລະບຸຊື່ເຫລົ່ານັ້ນໄດ້ຢ່າງຊັດເຈນໃນການສະແດງຜົນການກັ່ນຕອງ.

ເຊັ່ນດຽວກັນ, `tr 'ແມ່ນນາມແຝງສໍາລັບ` ether'; ຂໍ້ກໍານົດຂອງວັກກ່ອນຫນ້ານີ້ກ່ຽວກັບຫົວຂໍ້ FDDI ຍັງໃຊ້ກັບ headers Token Ring.]

ນອກເຫນືອໄປຈາກຂ້າງເທິງນີ້, ມີບາງຄໍາທີ່ມີຄໍາວ່າ "primitive" ພິເສດທີ່ບໍ່ໄດ້ປະຕິບັດຕາມຮູບແບບ: ການເປີດ ປະຕູ , ການ ອອກອາກາດ , ການສະ ແດງອອກ ຫນ້ອຍລົງ , ແລະການຄໍານວນເລກຄະນິດສາດ. ທັງຫມົດເຫຼົ່ານີ້ແມ່ນໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້.

ການສະແດງຕົວກອງທີ່ສະລັບສັບຊ້ອນຫຼາຍຂຶ້ນກໍ່ຖືກສ້າງຂື້ນໂດຍການນໍາໃຊ້ຄໍາສັບຕ່າງໆ ແລະ , ຫຼື ບໍ່ ສົມທົບກັບ primitives. ຕົວຢ່າງ, `host foo ແລະບໍ່ port ftp ແລະບໍ່ port ftp-data '. ເພື່ອຊ່ວຍປະຢັດການພິມ, ບັນຊີລາຍຊື່ຄຸນລັກສະນະດຽວກັນສາມາດຍົກເລີກໄດ້. ຕົວຢ່າງ, `tcp dst port ftp ຫຼື ftp ຂໍ້ມູນຫຼືໂດເມນ 'ແມ່ນແທ້ຄືກັນກັບ` tcp dst port ftp ຫຼື tcp dst port ftp-data ຫຼື tcp dst port port'.

Primitives ອະນຸຍາດໃຫ້ມີ:

dst host host

ຄວາມຈິງຖ້າເຂດຈຸດຫມາຍປາຍທາງ IPv4 / v6 ຂອງແພັກເກັດແມ່ນ ໂຮດ , ເຊິ່ງອາດຈະເປັນທີ່ຢູ່ຫຼືຊື່.

src host host

ຕົວຈິງແລ້ວຖ້າພາກສະຫນາມແຫຼ່ງ IPv4 / v6 ຂອງແພັກເກັດແມ່ນ ໂຮດ .

host host

ຄວາມຈິງຖ້າວ່າແມ່ນແຫຼ່ງ IPv4 / v6 ຫຼືຈຸດຫມາຍປາຍທາງຂອງແພັກເກັດແມ່ນ ໂຮດ . ທຸກຄໍາສະແດງຂອງເຈົ້າພາບຂ້າງເທິງສາມາດໄດ້ຮັບການຕິດຕໍ່ດ້ວຍຄໍາ, ip , arp , rarp , ຫຼື ip6 ເຊັ່ນໃນ:

IP host host

ເຊິ່ງທຽບເທົ່າກັບ:

ether proto \ ip ແລະ host host

ຖ້າ ໂຮດ ເປັນຊື່ທີ່ມີທີ່ຢູ່ IP ຫຼາຍ, ແຕ່ລະສະຖານທີ່ຈະຖືກກວດສອບສໍາລັບການແຂ່ງຂັນ.

ether dst ehost

ຄວາມຈິງຖ້າເສັ້ນທາງປາຍທາງ Ethernet ແມ່ນ ehost . Ehost ອາດຈະເປັນຊື່ຈາກ / etc / ethers ຫະລືຫມາຍເລກ (ເບິ່ງ ເອເອດເທີ (3N) ສໍາຫລັບຮູບແບບຈໍານວນຫລາຍ).

ether src ehost

ຄວາມຈິງຖ້າວ່າທີ່ຢູ່ແຫຼ່ງ Ethernet ແມ່ນ ehost .

ether host ehost

ຄວາມຈິງຖ້າວ່າແຫຼ່ງ Ethernet ຫຼືທີ່ຢູ່ປາຍທາງແມ່ນ ehost .

gateway host

ຄວາມຈິງຖ້າແພັກເກັດນໍາໃຊ້ ໂຮດ ເປັນ gateway. ຕົວຢ່າງ, ແຫຼ່ງ Ethernet ຫຼືທີ່ຢູ່ຈຸດຫມາຍປາຍທາງແມ່ນ ໂຮດ ແຕ່ບໍ່ແມ່ນແຫຼ່ງ IP ຫຼືຈຸດປາຍ IP ແມ່ນ ໂຮດ . ເຄື່ອງແມ່ຂ່າຍ ຕ້ອງເປັນຊື່ແລະຕ້ອງໄດ້ພົບທັງເຄື່ອງກົນໄກການແກ້ໄຂ address-host-to-IP ຂອງເຄື່ອງ (ຊື່ເຄື່ອງແມ່ຂ່າຍ, DNS, NIS, ແລະອື່ນໆ) ແລະໂດຍການແກ້ໄຂ address-host-to-Ethernet address machine. ກົນໄກ (/ etc / ethers, ຯ ລະຯ ) (ການສະແດງອອກທີ່ຄ້າຍຄືກັນແມ່ນ

ether host ehost ແລະບໍ່ໂຮດ ໂຮດ

ເຊິ່ງສາມາດນໍາໃຊ້ດ້ວຍຊື່ຫຼືຕົວເລກສໍາລັບ host / ehost .) syntax ນີ້ບໍ່ໄດ້ເຮັດວຽກໃນການຕັ້ງຄ່າ IPv6 ທີ່ເປີດໃນປັດຈຸບັນນີ້.

dst net net

ຄວາມຈິງຖ້າ IPv4 / v6 ທີ່ຢູ່ປາຍທາງຂອງແພັກເກັດມີຈໍານວນເຄືອຂ່າຍ. Net ອາດຈະເປັນຊື່ຈາກ / etc / networks ຫຼືຫມາຍເລກເຄືອຂ່າຍ (ເບິ່ງ ເຄືອຂ່າຍ (4) ສໍາລັບລາຍລະອຽດ).

src net net

ຄວາມຈິງຖ້າວ່າທີ່ຢູ່ IPv4 / v6 ຂອງແພັກເກັດມີຈໍານວນເຄືອຂ່າຍຂອງເຄືອຂ່າຍ.

net net

ຄວາມຈິງຖ້າວ່າທີ່ຢູ່ IPv4 / v6 ທີ່ຢູ່ຫລືປາຍທາງຂອງແພັກເກັດມີຈໍານວນເຄືອຂ່າຍຂອງເຄືອຂ່າຍ.

net net mask mask netmask

ຄວາມຈິງຖ້າວ່າທີ່ຢູ່ IP ກົງກັບ ເຄືອຂ່າຍ netmask ສະເພາະ. ອາດຈະມີຄຸນສົມບັດທີ່ມີ src ຫຼື dst . ໃຫ້ສັງເກດວ່າ syntax ນີ້ບໍ່ຖືກຕ້ອງສໍາລັບ IPv6 ສຸດທິ .

net net / len

ຄວາມຈິງຖ້າວ່າ IPv4 / v6 ທີ່ກົງກັນກັບ ເຄືອຂ່າຍ netmask len bits ກວ້າງ. ອາດຈະມີຄຸນສົມບັດທີ່ມີ src ຫຼື dst .

dst port port

ຄວາມຈິງຖ້າແພັກເກັດແມ່ນ ip / tcp, ip / udp, ip6 / tcp ຫຼື ip6 / udp ແລະມີມູນຄ່າ port port ປາຍທາງ. port ສາມາດເປັນຈໍານວນຫລືຊື່ທີ່ໃຊ້ໃນ / etc / services (ເບິ່ງ tcp (4P) ແລະ udp (4P)). ຖ້າຊື່ຖືກໃຊ້, ທັງສອງປະຕູແລະໂປຣແກຣມຈະຖືກກວດສອບ. ຖ້າມີຊື່ຫມາຍເລກຫລືແປກໆ, ມີພຽງແຕ່ຫມາຍເລກພອດທີ່ຖືກກວດສອບ (ຕົວຢ່າງ: dst port 513 ຈະພິມທັງການເຂົ້າຊົມ tcp / login ແລະ udp / those traffic, ແລະ ໂດເມນ ຈະພິມທັງ tcp / domain ແລະ udp / domain traffic).

src port port

ຄວາມຈິງຖ້າແພັກເກັດມີມູນຄ່າພອດຕົ້ນສະບັບຂອງ ພອດ .

port port

ຄວາມຈິງຖ້າຫາກວ່າທີ່ Port ແຫຼ່ງຫຼືປາຍທາງຂອງແພັກເກັດແມ່ນ ພອດ . ການສະແດງອອກຂອງ port ຂ້າງເທິງນີ້ສາມາດໄດ້ຮັບການຕິດຕັ້ງດ້ວຍຄໍາສໍາຄັນ, tcp ຫຼື udp , ເຊັ່ນ:

tcp src port port

ເຊິ່ງເທົ່າກັບພຽງແຕ່ packet tcp ທີ່ມີພອດ source ແມ່ນ ພອດ .

less length

ຄວາມຈິງຖ້າແພັກເກັດມີຄວາມຍາວຫນ້ອຍກວ່າຫຼືເທົ່າກັບ ຄວາມຍາວ . ນີ້ແມ່ນເທົ່າກັບ:

len <= length

ຄວາມ ຍາວ ຫຼາຍກວ່າເກົ່າ

ຄວາມຈິງຖ້າແພັກເກັດມີຄວາມຍາວຫຼາຍກວ່າຫຼືເທົ່າກັບ ຄວາມຍາວ . ນີ້ແມ່ນເທົ່າກັບ:

len> = length

ip protocol proto

ຄວາມຈິງຖ້າແພັກເກັດເປັນໂປຼແກຼມ IP (ເບິ່ງ ip (4P)) ຂອງໂປໂຕຄອນປະເພດ ໂປໂຕຄອນ . Protocol ສາມາດເປັນຈໍານວນຫນຶ່ງຫຼືຊື່ຂອງ icmp , icmp6 , igmp , igrp , pim , ah , esp , vrrp , udp , ຫຼື tcp . ໃຫ້ສັງເກດວ່າຕົວລະບຸຊື່ tcp , udp , ແລະ icmp ແມ່ນຄໍາຫລັກແລະຕ້ອງໄດ້ຮັບການຍົກເວັ້ນຈາກ backslash (\) ເຊິ່ງແມ່ນ \\ ໃນ C-shell. ໃຫ້ສັງເກດວ່າ primitive ນີ້ບໍ່ໄດ້ແລ່ນໄປຫາລໍາດັບຂອງໂປແກມ header protocol.

ip6 proto protocol

ຄວາມຈິງຖ້າແພັກເກັດເປັນແພັກເກັດ IPv6 ຂອງໂປໂຕຄອນປະເພດ ໂປໂຕຄອນ . ໃຫ້ສັງເກດວ່າ primitive ນີ້ບໍ່ໄດ້ແລ່ນໄປຫາລໍາດັບຂອງໂປແກມ header protocol.

ip6 protochain protocol

ຄວາມຈິງຖ້າແພັກເກັດແມ່ນ IPv6 packet ແລະປະກອບດ້ວຍ header ຂອງໂປຣແກຣມທີ່ມີໂປຣແກຣມປະເພດໃນຫ່ວງໂຊ່ໂປໂຕຄອນຂອງມັນ. ຍົກ​ຕົວ​ຢ່າງ,

ip6 protochain 6

matches ທຸກ packet IPv6 ກັບຫົວຂໍ້ໂຕ້ຕອບ TCP ໃນສັນຍາລັກ header ຂອງໂປໂຕຄອນ. ແພັກເກັດອາດມີຕົວຢ່າງເຊັ່ນການກວດສອບຫົວ, ຫົວຂໍ້ເສັ້ນທາງ, ຫຼື header ທາງເລືອກ hop-by-hop, ລະຫວ່າງ header IPv6 ແລະ header TCP. ລະຫັດ BPF ອອກໂດຍ primitive ນີ້ແມ່ນສັບສົນແລະບໍ່ສາມາດຖືກປັບປຸງໂດຍ BPF optimizer code ໃນ tcpdump , ດັ່ງນັ້ນນີ້ສາມາດເປັນບາງຢ່າງຊ້າໆ.

ip protocol protochain

ທຽບເທົ່າກັບ ໂປໂຕຄອນ protochain ip6 , ແຕ່ນີ້ແມ່ນສໍາລັບ IPv4.

ether broadcast

ຄວາມຈິງຖ້າແພັກເກັດເປັນແພັກເກັດ Ethernet. ຄໍາສໍາຄັນຂອງ ເອເອີ ແມ່ນເປັນທາງເລືອກ.

ip broadcast

ຄວາມຈິງຖ້າແພັກເກັດເປັນແພັກໂປສເຕີ້ IP. ມັນກວດສອບສໍາລັບທັງຫມົດ zeroes ທັງຫມົດແລະສົນທິສັນຍາການອອກສຽງທັງຫມົດ, ແລະເບິ່ງເຖິງຫນ້າກາກ subnet ທ້ອງຖິ່ນ.

ether multicast

ຄວາມຈິງຖ້າແພັກເກັດເປັນແພັກເກັດ multicast Ethernet. ຄໍາສໍາຄັນຂອງ ເອເອີ ແມ່ນເປັນທາງເລືອກ. ນີ້ແມ່ນຕົວເລກສໍາລັບ ` ether [0] & 1! = 0 '.

ip multicast

ຄວາມຈິງຖ້າແພັກເກັດເປັນແພັກເກັດ IP multicast.

ip6 multicast

ຄວາມຈິງຖ້າແພັກເກັດເປັນແພັກເກັດ multicast IPv6.

ether proto protocol

ຄວາມຈິງຖ້າແພັກເກັດແມ່ນ ໂປໂຕຄອນ ແບບເອເຊີ. Protocol ສາມາດເປັນຈໍານວນຫນຶ່ງຫຼືຊື່ຂອງ ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx , ຫຼື netbeui . ຫມາຍເຫດຫມາຍເລກເຫຼົ່ານີ້ແມ່ນຄໍາຫລັກແລະຕ້ອງໄດ້ຮັບການຍົກເວັ້ນຈາກ backslash (\).

[ໃນະກໍລະນີຂອງ FDDI (ເຊົ່ນ ' fddi protocol arp ') ແລະ Token Ring (ເຊົ່ນ ' tr protocol arp ') ສໍາຫລັບສ່ວນໃຫຍ່ຂອງໂປໂຕຄອນເຫລົ່ານີ້ການກໍາຫນົດໂປໂຕຄອນຈະມາຈາກຫົວຂໍ້ຄວບຄຸມລິ້ງລິ້ງ Link Control (LLC) 802,2 ຊຶ່ງ ປົກກະຕິແລ້ວແມ່ນຢູ່ດ້ານເທິງຂອງ header FDDI ຫຼື Token Ring.

ໃນເວລາທີ່ການກັ່ນຕອງສໍາລັບຕົວລະຫັດໂປໂຕຄອນຫຼາຍທີ່ສຸດໃນ FDDI ຫຼື Token Ring, tcpdump ກວດສອບເສພາະໂປເຈກ ID ຂອງໂປແກມ LLC header ໃນຮູບແບບ SNAP ທີ່ມີອົງປະກອບຫນ່ວຍງານອົງການຈັດຕັ້ງ (OUI) ຂອງ 0x000000 ສໍາລັບ Ethernet encapsulated; ມັນບໍ່ໄດ້ກວດສອບວ່າແພັກເກັດຢູ່ໃນຮູບແບບ SNAP ທີ່ມີ OUI 0x000000.

ຂໍ້ຍົກເວັ້ນແມ່ນ iso , ສໍາລັບການກວດສອບ DSAP (Destination Access Service Point) ແລະ SSAP (Source Access Point Access) ຂອງຫົວຂໍ້ LLC, stp ແລະ netbeui , ບ່ອນທີ່ມັນກວດເບິ່ງ DSAP ຂອງ header LLC ແລະ atalk ບ່ອນທີ່ມັນ ກວດສອບສໍາລັບແພັກເກັດຮູບແບບ SNAP ທີ່ມີ OUI ຂອງ 0x080007 ແລະຮູບແບບຂອງ Appletalk.

ໃນກໍລະນີຂອງ Ethernet, tcpdump ຈະກວດສອບສະຫນາມປະເພດ Ethernet ສໍາລັບສ່ວນໃຫຍ່ຂອງໂປແກຼມເຫລົ່ານັ້ນ; ຂໍ້ຍົກເວັ້ນແມ່ນ iso , sap , ແລະ netbeui , ເຊິ່ງມັນຈະກວດສອບພາສ 802.3 ແລະຫຼັງຈາກນັ້ນກວດເບິ່ງຫົວຂໍ້ LLC ເຊັ່ນດຽວກັນສໍາລັບ FDDI ແລະ Token Ring, atalk , ບ່ອນທີ່ມັນກວດສອບທັງ Appletalk etype ໃນກອບ Ethernet ແລະສໍາລັບ SNAP format packet ເຊັ່ນດຽວກັນສໍາລັບ FDDI ແລະ Token Ring, aarp , ບ່ອນທີ່ມັນກວດສອບ appletalk ARP etype ໃນ Ethernet frame ຫຼື 802.2 SNAP frame ທີ່ມີ OUI 0x000000 ແລະ ipx , ບ່ອນທີ່ມັນກວດສອບ IPX etype in ເປັນພາ Ethernet, IPX DSAP ໃນຫົວຂໍ້ LLC, 802.3 ທີ່ບໍ່ມີຫົວຂໍ້ LLC encapsulation ຂອງ IPX, ແລະ IPX etype ໃນກອບ SNAP.]

decnet src host

ຄວາມຈິງຖ້າວ່າແຫຼ່ງທີ່ມາຂອງ DECNET ແມ່ນ ໂຮດ , ເຊິ່ງອາດເປັນທີ່ຢູ່ຂອງແບບຟອມ `` 10.123 '', ຫຼືຊື່ເຈົ້າຂອງ DECNET. [DECNET ສະຫນັບສະຫນູນຊື່ເຈົ້າຂອງແມ່ນມີພຽງແຕ່ໃນລະບົບ Ultrix ທີ່ຖືກກໍານົດໃຫ້ໃຊ້ DECNET]

decnet dst host

ຄວາມຈິງຖ້າທີ່ຢູ່ປາຍທາງ DECNET ແມ່ນ ໂຮດ .

decnet host host

ຄວາມຈິງຖ້າວ່າແມ່ນແຫຼ່ງ DECNET ຫຼືທີ່ຢູ່ປາຍທາງແມ່ນ ໂຮດ .

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

ຕົວຫຍໍ້ສໍາລັບ:

ether proto p

ບ່ອນທີ່ p ແມ່ນຫນຶ່ງໃນໂປຣແກຣມຂ້າງເທິງ.

lat , moprc , mopdl

ຕົວຫຍໍ້ສໍາລັບ:

ether proto p

ບ່ອນທີ່ p ແມ່ນຫນຶ່ງໃນໂປຣແກຣມຂ້າງເທິງ. ໃຫ້ສັງເກດວ່າ tcpdump ບໍ່ໄດ້ຮູ້ຈັກວິທີການທີ່ຈະແຍກໂປແກຼມເຫຼົ່ານີ້.

vlan [vlan_id]

ຄວາມຈິງຖ້າແພັກເກັດເປັນແພັກເກັດ IEEE 802QQ VLAN. ຖ້າ [vlan_id] ຖືກລະບຸ, ພຽງແຕ່ຄວາມຈິງແມ່ນແພັກເກັດມີ vlan_id ທີ່ລະບຸໄວ້. ໃຫ້ສັງເກດວ່າຄໍາທີ່ໃຊ້ vlan ທໍາອິດທີ່ພົບໃນ ການສະແດງຜົນ ປ່ຽນແປງການສະທ້ອນອອກແບບສໍາລັບສ່ວນທີ່ເຫຼືອຂອງ ການສະແດງອອກ ໃນການສົມມຸດວ່າແພັກເກັດເປັນຊຸດ VLAN.

tcp , udp , icmp

ຕົວຫຍໍ້ສໍາລັບ:

ip proto p or ip6 proto p

ບ່ອນທີ່ p ແມ່ນຫນຶ່ງໃນໂປຣແກຣມຂ້າງເທິງ.

iso proto protocol

ຄວາມຈິງຖ້າແພັກເກັດເປັນຊຸດເອກະສານ OSI ຂອງໂປໂຕຄອນປະເພດ ໂປໂຕຄອນ . Protocol ສາມາດເປັນຈໍານວນຫນຶ່ງຫຼືຊື່ຫນຶ່ງຂອງຊື່ clnp , esis , ຫຼື isis .

clnp , esis , isis

ຕົວຫຍໍ້ສໍາລັບ:

iso proto p

ບ່ອນທີ່ p ແມ່ນຫນຶ່ງໃນໂປຣແກຣມຂ້າງເທິງ. ໃຫ້ສັງເກດວ່າ tcpdump ເຮັດວຽກທີ່ບໍ່ຄົບຖ້ວນຂອງການແຍກຕົວໂຕ້ຕອບເຫຼົ່ານີ້.

expr relop expr

ຄວາມຈິງຖ້າການພົວພັນຖືບ່ອນທີ່ relop ແມ່ນຫນຶ່ງໃນ>, <,> =, <=, =,! = ແລະ expr ແມ່ນການສະແດງອອກເປັນປະຈໍາຂອງສະກຸນຈໍານວນປະກອບ (ສະແດງອອກໃນຄໍານິຍາມ C ແບບມາດຕະຖານ) , -, *, /, &, |], ຜູ້ດໍາເນີນການໄລຍະຍາວແລະຜູ້ເຂົ້າເຖິງຂໍ້ມູນແພັກເກດພິເສດ. ເພື່ອເຂົ້າເຖິງຂໍ້ມູນພາຍໃນແພັກເກັດ, ໃຫ້ໃຊ້ syntax ຕໍ່ໄປນີ້:

proto [ expr : size ]

Proto ແມ່ນຫນຶ່ງໃນ ເອເຊີ, fddi, tr, ppp, slip, link, ip, arp, rarp, tcp, udp, icmp ຫຼື ip6 , ແລະສະແດງເຖິງ layer protocol ສໍາລັບການເຮັດວຽກ index. ( ether, fddi, tr, ppp, slip ແລະ ເຊື່ອມຕໍ່ ທັງຫມົດທີ່ອ້າງອີງໃສ່ layer link). Note ວ່າ tcp, udp ແລະຮູບແບບໂປແກຼມຊັ້ນເທິງອື່ນໆໃຊ້ກັບ IPv4, ບໍ່ແມ່ນ IPv6 (ນີ້ຈະຖືກແກ້ໄຂໃນອະນາຄົດ). ການປົດຕໍາ byte, ທີ່ກ່ຽວຂ້ອງກັບ layer protocol ທີ່ໄດ້ຖືກກໍານົດໄວ້ໂດຍ expr . ຂະຫນາດ ແມ່ນທາງເລືອກແລະສະແດງຈໍານວນ bytes ໃນຂົງເຂດທີ່ສົນໃຈ; ມັນສາມາດເປັນຫນຶ່ງ, ສອງ, ຫຼືສີ່, ແລະຄ່າເລີ່ມຕົ້ນເປັນຫນຶ່ງ. ຜູ້ປະຕິບັດງານໄລຍະຍາວ, ສະແດງໂດຍ len ຄໍາສໍາຄັນ, ເຮັດໃຫ້ຄວາມຍາວຂອງແພັກເກັດ.

ຕົວຢ່າງ, ` ether [0] & 1! = 0 'ຈັບທັງຫມົດການຈະລາຈອນ multicast. ການສະແດງອອກຂອງ ` ip [0] & 0xf! = 5 'ຈັບທັງຫມົດເອກະສານ IP ທີ່ມີທາງເລືອກ. ການສະແດງອອກ ` ip [6: 2] & 0x1fff = 0 'ພຽງແຕ່ເກັບກໍາຂໍ້ມູນ datagrams unfragmented ແລະ frag zero ຂອງ datagrams fragmented. ການກວດນີ້ຖືກນໍາໃຊ້ຢ່າງຖືກຕ້ອງກັບການປະຕິບັດງານຂອງ tcp ແລະ udp index. ຕົວຢ່າງເຊັ່ນ tcp [0] ສະເຫມີຫມາຍຄວາມວ່າໄບທໍາອິດຂອງ ຫົວ TCP, ແລະບໍ່ເຄີຍຫມາຍຄວາມວ່າ byte ທໍາອິດຂອງຊິ້ນສ່ວນ intervening.

ບາງລະດັບ offsets ແລະມູນຄ່າພາກສະຫນາມອາດຈະຖືກສະແດງເປັນຊື່ຫຼາຍກວ່າຄ່າຕົວເລກ. ໂປແກມໂປແກມໂປແກມໂປແກຼມຕົ້ນຕໍຕໍ່ໄປນີ້ມີຢູ່: icmptype ( ກ່ອງ ປະເພດ ICMP), icmpcode ( ກ່ອງ ລະຫັດ ICMP), ແລະ tcpflags ( ທົ່ງນາ TCP flags).

ປະຈຸບັນ, ICMP ປະກອບມີມູນຄ່າຂອງພາກສະຫນາມດັ່ງຕໍ່ໄປນີ້: icmp-echoreply , icmp-unreach , icmp -sourcequench , icmp -redirect , icmp-echo , icmp -routeradvert , icmp -routersolicit , icmp-timxceed , icmp-paramprob , icmp-tstamp , icmp -tstampreply , icmp -ireq , icmp -ireqreply , icmp-maskreq , icmp-maskreply

ຄ່າ TCP ທຸລະກິດດັ່ງຕໍ່ໄປນີ້ແມ່ນມີ: tcp-fin , tcp-syn , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

Primitives ອາດຈະຖືກນໍາໃຊ້ໂດຍໃຊ້:

ກຸ່ມຍ່ອຍຂອງ primitives ແລະ operator (ວົງເລັບແມ່ນພິເສດກັບ Shell ແລະຕ້ອງໄດ້ຮັບການປົດປ່ອຍ).

ການລົບ (` ! 'ຫຼື` not ').

Concatenation (` && 'or` and ')

ການທົດແທນ (` || 'ຫຼື` ຫຼື ').

ການລົບແມ່ນມີຄວາມສໍາຄັນສູງສຸດ. ການທົດແທນແລະການເຊື່ອມໂຍງມີຄວາມຄືບຫນ້າແລະການເຊື່ອມໂຍງກັນກັບສິດທິໃນການເທົ່າທຽມກັນ. ໃຫ້ສັງເກດວ່າການໂຕ້ຖຽງ ແລະ ໂຕ້ແຍ້ງຢ່າງຊັດເຈນ, ບໍ່ແມ່ນຄວາມຍືດຫຍຸ່ນ, ແມ່ນຕ້ອງມີການຕິດຕໍ່ກັນ.

ຖ້າຕົວລະບຸແມ່ນຖືກນໍາໃຊ້ໂດຍບໍ່ມີຄໍາສັບໃດຫນຶ່ງ, ຄໍາທີ່ໃຊ້ມາຫຼ້າສຸດຈະຖືກຄາດໄວ້. ຍົກ​ຕົວ​ຢ່າງ,

ບໍ່ host vs ແລະນ້ອຍດຽວ

ແມ່ນສັ້ນສໍາລັບ

ບໍ່ host vs ແລະ host ace

ທີ່ບໍ່ຄວນສັບສົນກັບ

ບໍ່ (host vs or ace)

ການໂຕ້ຖຽງການສະແດງອອກສາມາດຖືກສົ່ງໄປຫາ tcpdump ເປັນການໂຕ້ຖຽງດຽວຫຼືເປັນການໂຕ້ຖຽງຫຼາຍ, ທີ່ເຫມາະສົມກວ່າ. ໂດຍທົ່ວໄປ, ຖ້າວ່າການສະແດງອອກມີ Shell metacharacters, ມັນງ່າຍທີ່ຈະຜ່ານມັນເປັນການໂຕ້ຖຽງດຽວ, ການໂຕ້ຖຽງ. ການໂຕ້ຖຽງຈໍານວນຫຼາຍແມ່ນສອດຄ້ອງກັບສະຖານທີ່ກ່ອນທີ່ຈະຖືກແຍກຕົວ.

ຕົວຢ່າງ

ການພິມທຸກແພັກເກັດທີ່ມາຮອດຫຼືອອກຈາກ ເວລາທ່ຽງຄືນ :

tcpdump host sundown

ເພື່ອພິມການຈະລາຈອນລະຫວ່າງ helios ແລະທັງ ຮ້ອນ ຫລື ນ້ອຍ :

tcpdump host helios ແລະ \ (hot or ace \)

ການພິມທໍ່ IP ທັງຫມົດລະຫວ່າງ ace ແລະ host ໃດນອກເຫນືອຈາກ helios :

tcpdump ip host ace and not helios

ການພິມການເຂົ້າຊົມທັງຫມົດລະຫວ່າງເຈົ້າພາບແລະເຈົ້າພາບໃນທ້ອງຖິ່ນທີ່ Berkeley:

tcpdump net ucb-ether

ພິມທຸກການເຊື່ອມຕໍ່ FTP ຜ່ານທາງອິນເຕີເນັດ snup : (ໃຫ້ສັງເກດວ່າການສະແດງອອກຈະຖືກກ່າວເຖິງເພື່ອປ້ອງກັນບໍ່ໃຫ້ shell ຈາກ (mis-) ແປຄວາມຫມາຍຂອງວົງເລັບ:

tcpdump 'gateway snup ແລະ (ftp ftp ຫຼືຂໍ້ມູນ ftp)'

ເພື່ອພິມການຈະລາຈອນທີ່ບໍ່ແມ່ນແຫຼ່ງທີ່ມາສໍາລັບເຈົ້າພາບໃນທ້ອງຖິ່ນ (ຖ້າທ່ານເຂົ້າໄປໃນເຄືອຂ່າຍອື່ນ, ສິ່ງນີ້ບໍ່ຄວນຈະໃສ່ໃນເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານ).

tcpdump ip and not net net

ການພິມແພັກເກັດເລີ່ມຕົ້ນແລະສິ້ນສຸດ (ຂໍ້ມູນ SYN ແລະ FIN) ຂອງແຕ່ລະການສົນທະນາ TCP ທີ່ກ່ຽວຂ້ອງກັບເຄື່ອງແມ່ຂ່າຍທີ່ບໍ່ແມ່ນທ້ອງຖິ່ນ.

tcpdump 'tcp [tcpflags] & (tcp-syn | tcp-fin)! = 0 ແລະບໍ່ src ແລະ dst net localnet '

ພິມ IP packets ຍາວກວ່າ 576 bytes ທີ່ສົ່ງຜ່ານ snup gateway:

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

ການພິມແພັກເກດ IP ຫຼື multicast ທີ່ ບໍ່ໄດ້ ຖືກສົ່ງຜ່ານການອອກສຽງ Ethernet ຫຼື multicast:

tcpdump 'ether [0] & 1 = 0 ແລະ ip [16]> = 224'

ພິມທຸກຊຸດ ICMP ທີ່ບໍ່ແມ່ນຄໍາຮ້ອງຂໍ / ຕອບຄໍາຖາມ (ເຊັ່ນ: ບໍ່ແມ່ນ packets ping):

tcpdump 'icmp [icmptype]! = icmp-echo ແລະ icmp [icmptype]! = icmp-echoreply'

OUTPUT FORMAT

ຜົນຜະລິດຂອງ tcpdump ແມ່ນຂື້ນກັບໂປຣແກຣມ. ຕໍ່ໄປນີ້ໃຫ້ຄໍາອະທິບາຍສັ້ນໆແລະຕົວຢ່າງຂອງຮູບແບບສ່ວນໃຫຍ່.

Link Level Headers

ຖ້າຕົວເລືອກ '-e' ຖືກມອບໃຫ້, header ລະດັບການເຊື່ອມໂຍງຖືກພິມອອກ. ໃນ ethernets, ແຫຼ່ງແລະຈຸດຫມາຍປາຍທາງ, ໂປໂຕຄອນ, ແລະຄວາມຍາວຂອງແພັກເກັດຖືກພິມ.

ໃນເຄືອຂ່າຍ FDDI, ທາງເລືອກ '-e' ເຮັດໃຫ້ tcpdump ພິມພາກສະຫນາມ `ຄວບຄຸມພາ, 'ທີ່ຢູ່ແຫຼ່ງແລະປາຍທາງ, ແລະຄວາມຍາວຂອງແພັກເກັດ. (ຂອບເຂດການຄວບຄຸມກອບ 'ຄວບຄຸມການຕີລາຄາຂອງສ່ວນທີ່ເຫລືອຂອງແພໍກເກັດ) ບັນທັດປະກະຕິ (ເຊົ່ນທີ່ບັນຈຸຂໍ້ມູນ IP) ເປັນ' async 'ແພໍກເກັດທີ່ມີຄ່າຄວາມສໍາຄັນລະຫວ່າງ 0 ແລະ 7 ຕົວຢ່າງເຊັ່ນ' async4 ' ບັນດາເອກະສານທີ່ຄາດວ່າຈະມີບັນຊີ 802.2 Logical Link Control (LLC), ຫົວຂໍ້ຂອງ LLC ຈະຖືກພິມຖ້າວ່າມັນ ບໍ່ແມ່ນ datagram ທີ່ເປັນ ISO ຫຼືເປັນ packet SNAP.

ໃນເຄືອຂ່າຍ Token Ring, ທາງເລືອກ 'e' ເຮັດໃຫ້ tcpdump ພິມບ່ອນຄວບຄຸມການເຂົ້າເຖິງ 'ແລະຄວບຄຸມຂອບ', ທີ່ຢູ່ແຫຼ່ງແລະປາຍທາງ, ແລະຄວາມຍາວຂອງແພັກເກັດ. ໃນລະບົບເຄືອຂ່າຍ FDDI, ຊຸດຂໍ້ມູນຈະຖືກເກັບໄວ້ເປັນ packet LLC. ໂດຍບໍ່ຄໍານຶງເຖິງວ່າຕົວເລືອກ 'e' ແມ່ນຖືກກໍານົດຫລືບໍ່, ຂໍ້ມູນເສັ້ນທາງແຫຼ່ງຈະຖືກພິມສໍາລັບບັນດາເອກະສານທີ່ຖືກສົ່ງອອກຈາກແຫຼ່ງ.

(NB: ຄໍາອະທິບາຍດັ່ງຕໍ່ໄປນີ້ແມ່ນຄວາມສໍາຄັນກັບລະບົບການບີບອັດ SLIP ທີ່ໄດ້ອະທິບາຍໃນ RFC-1144.)

ໃນການເຊື່ອມຕໍ່ SLIP, ຕົວຊີ້ທິດທາງ (`` ຂ້ອຍສໍາລັບການເຂົ້າ, `` O 'ສໍາລັບ outbound), ປະເພດ packet, ແລະຂໍ້ມູນການບີບອັດແມ່ນພິມອອກ. ປະເພດແພັກເກັດຖືກພິມເປັນຄັ້ງທໍາອິດ. ສາມປະເພດແມ່ນ ip , utcp , ແລະ ctcp . ບໍ່ມີຂໍ້ມູນການເຊື່ອມຕໍ່ເພີ່ມເຕີມສໍາລັບ ip packets. ສໍາລັບແພັກເກັດ TCP, ຕົວກໍານົດການເຊື່ອມຕໍ່ຈະຖືກພິມຕາມປະເພດ. ຖ້າແພັກເກັດຖືກບີບອັດ, ຫົວຂອງມັນຖືກພິມອອກ. ກໍລະນີພິເສດຖືກພິມອອກເປັນ * S + n ແລະ * SA + n , ບ່ອນທີ່ n ເປັນຈໍານວນທີ່ເລກລໍາດັບ (ຫຼືລໍາດັບເລກແລະ ack) ມີການປ່ຽນແປງ. ຖ້າມັນບໍ່ແມ່ນກໍລະນີພິເສດ, ການປ່ຽນແປງທີ່ບໍ່ມີການປ່ຽນແປງຫຼາຍຫຼືຫຼາຍກວ່າຈະຖືກພິມ. ການປ່ຽນແປງແມ່ນສະແດງໂດຍ U (ຕົວຊີ້ບອກດ່ວນ), W (window), A (ack), S (ລໍາດັບຫມາຍເລກ) ແລະ I (packet ID), followed by delta (+ n or -n), or a new value (= n) ສຸດທ້າຍ, ຈໍານວນເງິນຂອງຂໍ້ມູນໃນແພັກເກັດແລະຄວາມຍາວ header ບີບຖືກພິມ.

ສໍາລັບຕົວຢ່າງ, ເສັ້ນດັ່ງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນເປັນ packet TCP compressed outbound, ທີ່ມີຕົວກໍານົດການເຊື່ອມຕໍ່ implicit; ack ໄດ້ມີການປ່ຽນແປງໂດຍ 6, ເລກລໍາດັບທີ່ 49, ແລະ ID ແພັກທີ 6; ມີ 3 bytes ຂອງຂໍ້ມູນແລະ 6 bytes ຫົວຂໍ້ບີບອັດ:

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

ARP / RARP Packets

ຜົນໄດ້ຮັບ Arp / rarp ສະແດງໃຫ້ເຫັນປະເພດຂອງການຮ້ອງຂໍແລະການໂຕ້ຖຽງຂອງມັນ. ຮູບແບບດັ່ງກ່າວແມ່ນເພື່ອເປັນການອະທິບາຍດ້ວຍຕົນເອງ. ນີ້ແມ່ນຕົວຢ່າງສັ້ນທີ່ໄດ້ຈາກການເລີ່ມຕົ້ນຂອງ `rlogin 'ຈາກ host rtsg ກັບ host csam :

arp ຜູ້ທີ່ມີ csam ບອກ rtsg arp ຕອບ csam ຢູ່ CSAM

ເສັ້ນທໍາອິດກ່າວວ່າ rtsg ສົ່ງຊຸດຂອງ arp ທີ່ຂໍເອົາ address ethernet ຂອງ host csam ອິນເຕີເນັດ. Csam ຕອບກັບທີ່ຢູ່ອີເທີເນັດຂອງຕົນ (ໃນຕົວຢ່າງນີ້, ອີເທີເນັດທີ່ຢູ່ໃນຕົວອັກສອນແລະທີ່ຢູ່ອິນເຕີເນັດໃນກໍລະນີນ້ອຍ).

ນີ້ຈະເບິ່ງບໍ່ຈໍາກັດຫນ້ອຍຖ້າພວກເຮົາໄດ້ເຮັດ tcpdump -n :

arp who-has 128.3.254.6 tell 128.3.254.68 arp ຕອບ 128.3.254.6 is-at 02: 07: 01: 00: 01: c4

ຖ້າພວກເຮົາໄດ້ເຮັດ tcpdump -e , ຄວາມຈິງທີ່ວ່າແພັກເກັດທໍາອິດຈະຖືກອອກອາກາດແລະທີສອງແມ່ນຈຸດຫາຈຸດທີ່ຈະເຫັນໄດ້:

RTSG Broadcast 0806 64: arp ຜູ້ທີ່ມີ csam ບອກ rtsg CSAM RTSG 0806 64: arp ຕອບ csam ຢູ່ CSAM

ສໍາລັບແພັກເກັດທໍາອິດບອກວ່າແຫຼ່ງແຫຼ່ງ Ethernet ແມ່ນ RTSG, ຈຸດຫມາຍປາຍທາງແມ່ນການອອກອາກາດອີເທີເນັດ, ເຂດຂໍ້ມູນທີ່ມີ hex 0806 (ປະເພດ ETHER_ARP) ແລະຄວາມຍາວທັງຫມົດແມ່ນ 64 bytes.

TCP Packets

(NB: ຄໍາອະທິບາຍດັ່ງຕໍ່ໄປນີ້ແມ່ນຄວາມຄຸ້ນເຄີຍກັບໂປຣແກຣມ TCP ທີ່ໄດ້ອະທິບາຍໄວ້ໃນ RFC-793. ຖ້າທ່ານບໍ່ຄຸ້ນເຄີຍກັບໂປຣແກຣມ, neither description nor tcpdump ນີ້ຈະມີຜົນປະໂຫຍດຫຼາຍກັບທ່ານ.)

ຮູບແບບທົ່ວໄປຂອງເສັ້ນການໂຕ້ຕອບ tcp ແມ່ນ:

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

Src ແລະ dst ແມ່ນແຫຼ່ງແລະຈຸດຫມາຍປາຍທາງ IP ແລະພອດ. ທຸງ ແມ່ນບາງປະສົມປະສານຂອງ S (SYN), F (FIN), P (PUSH) ຫຼື R (RST) ຫຼືຫນຶ່ງ ``. (ໄມ່ມີທົງ) Data-seqno ອະທິບາຍເຖິງສ່ວນຂອງຊ່ອງລໍາດັບທີ່ປົກຄຸມດ້ວຍຂໍ້ມູນໃນຊຸດນີ້ (ເບິ່ງຕົວຢ່າງຂ້າງລຸ່ມນີ້). Ack ແມ່ນເລກລໍາດັບຂອງຂໍ້ມູນຕໍ່ໄປຄາດວ່າທິດທາງອື່ນກ່ຽວກັບການເຊື່ອມຕໍ່ນີ້. ປ່ອງຢ້ຽມ ແມ່ນຈໍານວນ bytes ທີ່ໄດ້ຮັບຊ່ອງຫວ່າງ buffer ທີ່ມີທິດທາງອື່ນກ່ຽວກັບການເຊື່ອມຕໍ່ນີ້. Urg ລະບຸວ່າມີຂໍ້ມູນທີ່ທັນສະໄຫມໃນຊຸດຂໍ້ມູນ. ຕົວເລືອກ ແມ່ນຕົວເລືອກ tcp ທີ່ຕິດຢູ່ໃນວົງເລັບມຸມ (ຕົວຢ່າງເຊັ່ນ ).

Src, dst ແລະ ທົງ ແມ່ນສະເຫມີໄປ. ຂົງເຂດອື່ນໆແມ່ນຂຶ້ນຢູ່ກັບເນື້ອໃນຂອງໂປແກຼມໂປຼແກຼມ tcp packet ຂອງຫົວຂໍ້ແລະຈະສົ່ງອອກເທົ່ານັ້ນຖ້າເຫມາະສົມ.

ນີ້ແມ່ນສ່ວນເປີດຂອງ rlogin ຈາກ host rtsg ກັບ host csam .

rtsg1023> csamlogin: S 768512: 768512 (0) win 4096 csamlogin> rtsg1023: S 947648: 947648 (0) ack 768513 win 4096 rtsg1023> csam ເຂົ້າ​ສູ່​ລະ​ບົບ: . ack 1 win 4096 rtsg1023> csamlogin: P 1: 2 (1) ack 1 win 4096 csamlogin> rtsg1023: ack 2 win 4096 rtsg1023> csamlogin: P 2:21 (19) ack 1 win 4096 csamlogin> rtsg1023: P 1: 2 (1) ack 21 win 4077 csamlogin> rtsg1023: P 2: 3 (1) ack 21 win 4077 urg 1 csamlogin> rtsg1023: P 3: 4 (1) ack 21 win 4077 urg 1

ເສັ້ນທໍາອິດກ່າວວ່າ tcp port 1023 ສຸດ rtsg ສົ່ງ packet ໄປ port ເຂົ້າສູ່ລະບົບ csam. S ໄດ້ ສະແດງໃຫ້ເຫັນວ່າທົງ SYN ຖືກຕັ້ງໄວ້. ຈໍານວນລໍາດັບບັນຊີແມ່ນ 768512 ແລະມັນບໍ່ມີຂໍ້ມູນ. (ຫມາຍເຫດແມ່ນ `ຄັ້ງທໍາອິດ: ສຸດທ້າຍ (nbytes) 'ຊຶ່ງຫມາຍຄວາມວ່າລໍາດັບລໍາດັບ ທໍາອິດ ເຖິງແຕ່ບໍ່ລວມ ສຸດທ້າຍ ທີ່ເປັນໄບໄບໄບຕ໌ຂອງຂໍ້ມູນຜູ້ໃຊ້.) ບໍ່ມີຫນ້າທີ່ຮັບຮອງຫມູ, ຫນ້າທີ່ຮັບທີ່ມີຢູ່ແມ່ນ 4096 bytes ແລະ ມີທາງເລືອກທີ່ສູງສຸດຂະຫນາດຂະຫນາດທີ່ຕ້ອງການ mss ຂອງ 1024 bytes.

Csam ຕອບກັບຊຸດຂໍ້ມູນທີ່ຄ້າຍຄືກັນຍົກເວັ້ນມັນລວມມີ ack ຫມູທີ່ສະຫນັບສະຫນູນສໍາລັບ rtsg ຂອງ SYN. Rtsg ແລ້ວ acks csam ຂອງ SYN. The `. ' ຫມາຍຄວາມວ່າບໍ່ມີທົງຖືກກໍານົດ. ແພັກເກັດບໍ່ມີຂໍ້ມູນດັ່ງນັ້ນບໍ່ມີເລກລໍາດັບຂໍ້ມູນ. ໃຫ້ສັງເກດວ່າເລກລໍາດັບ ack ເປັນຈໍານວນເຕັມເລັກນ້ອຍ (1). ຄັ້ງທໍາອິດ tcpdump ເຫັນການສົນທະນາ tcp, ມັນພິມຕົວເລກລໍາດັບຈາກແພັກເກັດ. ໃນບັນດາຊຸດຂອງການສົນທະນາ, ຄວາມແຕກຕ່າງລະຫວ່າງຈໍານວນລໍາດັບຂອງໂປຼແກຼມໃນປັດຈຸບັນແລະເລກລໍາດັບເບື້ອງຕົ້ນນີ້ຖືກພິມ. ນີ້ຫມາຍຄວາມວ່າຈໍານວນລໍາດັບຫຼັງຈາກທໍາອິດສາມາດຖືກຕີຄວາມເປັນຕໍາແຫນ່ງ byte relative ໃນຂໍ້ມູນຂອງການສົນທະນາ (ດ້ວຍ byte ຂໍ້ມູນທໍາອິດແຕ່ລະທິດແມ່ນ `1 '). `-S 'ຈະ override ຄຸນນະສົມບັດນີ້, ເຮັດໃຫ້ຈໍານວນລໍາດັບຕົ້ນສະບັບທີ່ຈະອອກ.

ໃນເສັ້ນທີ 6, rtsg ສົ່ງ csam 19 bytes ຂອງຂໍ້ມູນ (bytes 2 ຫາ 20 ໃນ rtsg -> csam ຂ້າງຂອງການສົນທະນາ). ທົງ PUSH ຖືກຕັ້ງໄວ້ໃນແພັກເກັດ. ໃນເສັ້ນທີ 7, csam ບອກວ່າມັນໄດ້ຮັບຂໍ້ມູນທີ່ຖືກສົ່ງໂດຍ rtsg ເຖິງແຕ່ບໍ່ລວມເອົາ byte 21. ສ່ວນໃຫຍ່ຂອງຂໍ້ມູນນີ້ແມ່ນນັ່ງຢູ່ໃນບັຟເຟີຊ້ອນນັບຕັ້ງແຕ່ປ່ອງຢ້ຽມທີ່ໄດ້ຮັບ csam ໄດ້ຮັບ 19 bytes ນ້ອຍກວ່າ. Csam ຍັງສົ່ງຫນຶ່ງໄບຕ໌ຂອງຂໍ້ມູນໃຫ້ rtsg ໃນຊຸດນີ້. ໃນເສັ້ນທີ 8 ແລະທີ 9, csam ສົ່ງສອງ bytes ຂອງຂໍ້ມູນທີ່ຮີບດ່ວນ, ຖືກສົ່ງໃຫ້ rtsg.

ຖ້າ snapshot ແມ່ນຂະຫນາດນ້ອຍພຽງພໍທີ່ tcpdump ບໍ່ໄດ້ເກັບຫົວຂໍ້ TCP ເຕັມ, ມັນແປຄວາມຫມາຍຂອງ header ເທົ່າທີ່ສາມາດເຮັດໄດ້ແລະຫຼັງຈາກນັ້ນລາຍງານວ່າ `` [| tcp ] '' ເພື່ອຊີ້ບອກວ່າສ່ວນທີ່ເຫຼືອບໍ່ສາມາດແປໄດ້. ຖ້າ header ມີທາງເລືອກທີ່ບໍ່ມີປະໂຫຍດ (ຫນຶ່ງທີ່ມີຄວາມຍາວທີ່ມີຂະຫນາດນ້ອຍເກີນໄປຫຼືຫຼັງຈາກສິ້ນສຸດຂອງຫົວຂໍ້), tcpdump ລາຍງານວ່າມັນເປັນ `` ບໍ່ດີເລືອກ '' ແລະບໍ່ສາມາດຕີຄວາມຫມາຍໃດໆ (ເພາະວ່າມັນບໍ່ສາມາດບອກ ບ່ອນທີ່ພວກເຂົາເລີ່ມຕົ້ນ). ຖ້າຄວາມຍາວຂອງຫົວຂໍ້ສະແດງຕົວເລືອກແມ່ນມີຢູ່ແຕ່ວ່າຄວາມຍາວຂອງ datagram IP ບໍ່ຍາວພໍສໍາລັບຕົວເລືອກທີ່ຈະມີຢູ່ນັ້ນ, tcpdump ລາຍງານວ່າມັນເປັນ `` [ຄວາມ ບໍ່ດີ HDH ] '.

ການເກັບກໍາຂໍ້ມູນ TCP ທີ່ມີການປະສົມປະສານທຸລະກິດໂດຍສະເພາະ (SYN-ACK, URG-ACK, ແລະອື່ນໆ)

ມີ 8 bits ໃນສ່ວນຄວບຄຸມ bit ຂອງ header TCP:

CWR | ECE | URG | ACK | PSH | RST | SYN | FIN

ໃຫ້ສົມມຸດວ່າພວກເຮົາຕ້ອງການທີ່ຈະເບິ່ງບັນຊີທີ່ໃຊ້ໃນການສ້າງການເຊື່ອມຕໍ່ TCP. ຈື່ໄວ້ວ່າ TCP ໃຊ້ໂປຣແກຣມ handhake 3 ways ເມື່ອມັນເລີ່ມການເຊື່ອມຕໍ່ໃຫມ່; ລໍາດັບການເຊື່ອມຕໍ່ທີ່ກ່ຽວກັບບິດຄວບຄຸມ TCP ແມ່ນ

1) ຜູ້ໂທສົ່ງ SYN

2) ຜູຕອບຕອບກັບ SYN, ACK

3) ຜູ້ໂທສົ່ງ ACK

ໃນປັດຈຸບັນພວກເຮົາກໍາລັງສົນໃຈໃນການເກັບກໍາຂໍ້ມູນທີ່ມີພຽງແຕ່ຊຸດ SYN bit (ຂັ້ນຕອນທີ 1). ໃຫ້ສັງເກດວ່າພວກເຮົາບໍ່ຕ້ອງການຂໍ້ມູນຈາກຂັ້ນຕອນທີ 2 (SYN-ACK), ພຽງແຕ່ເປັນ SYN ທໍາອິດ. ສິ່ງທີ່ພວກເຮົາຕ້ອງການແມ່ນການສະແດງອອກການກັ່ນຕອງທີ່ຖືກຕ້ອງສໍາລັບ tcpdump .

Recall ໂຄງສ້າງຂອງ header TCP ໂດຍບໍ່ມີທາງເລືອກ:

0 15 31 ----------------------------------------------- ------------------ | source port | destination port | -------------------------------------------------- --------------- | | ລໍາດັບລໍາດັບ | -------------------------------------------------- --------------- | | ຈໍານວນຄວາມຮັບຮູ້ | -------------------------------------------------- --------------- | | HL | rsvd | C | E | U | A | P | R | S | F | window size | -------------------------------------------------- --------------- | | TCP checksum | ຕົວຊີ້ບອກດ່ວນ | -------------------------------------------------- ---------------

ຫົວຫນ້າ TCP ມັກຖື 20 ຂໍ້ມູນໂດຍອັດຕະໂນມັດ, ເວັ້ນເສຍແຕ່ວ່າຕົວເລືອກຕ່າງໆມີຢູ່. ເສັ້ນທໍາອິດຂອງຕາຕະລາງປະກອບດ້ວຍ octets 0-3, ເສັ້ນທີສອງສະແດງ octets 4-7 ແລະອື່ນໆ.

ເລີ່ມນັບນັບ 0, ບິດຄວບຄຸມ TCP ທີ່ກ່ຽວຂ້ອງມີຢູ່ໃນ octet 13:

0 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | | ---------------- | HL | rsvd | C | E | U | A | P | R | S | F | window size | ---------------- | --------------- | --------------- | - --------------- | | | 13th octet | | |

ໃຫ້ມີການເບິ່ງໃກ້ຊິດຢູ່ທີ່ octet ບໍ່ມີ. 13:

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

ພວກນີ້ແມ່ນຕົວບົ່ງຊີ້ TCP ທີ່ພວກເຮົາສົນໃຈ. ພວກເຮົາໄດ້ນັບເລກໃນ octet ນີ້ຈາກ 0 ຫາ 7, ຂວາຫາຊ້າຍ, ດັ່ງນັ້ນ bit PSH ແມ່ນເລກທີ 3, ຂະນະທີ່ bit URG ແມ່ນເລກທີ 5.

ຈື່ໄວ້ວ່າພວກເຮົາຕ້ອງການທີ່ຈະເກັບກໍາຂໍ້ມູນທີ່ມີຊຸດ SYN ເທົ່ານັ້ນ. ໃຫ້ເບິ່ງສິ່ງທີ່ເກີດຂື້ນກັບ octet 13 ຖ້າ datagram TCP ມາຮອດກັບບິດ SYN ທີ່ຕັ້ງໄວ້ໃນ header ຂອງມັນ:

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

ຊອກຫາຢູ່ໃນພາກ bits ການຄວບຄຸມ, ພວກເຮົາເຫັນວ່າພຽງແຕ່ເລກ bit 1 (SYN) ຖືກກໍານົດ.

ສົມມຸດວ່າຫມາຍເລກ octet 13 ແມ່ນຫມາຍເລກເຕັມຈໍານວນ 8 ບິດໃນລະບົບ byte ເຄືອຂ່າຍ, ຄ່າໄບຕ໌ຂອງ octet ນີ້ແມ່ນ

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 ເທົ່ານັ້ນ, ຄ່າຂອງ octet 13 ໃນຫົວ TCP, ເມື່ອຖືກແປເປັນ integer unsigned 8 ບິດໃນຄໍາສັ່ງ byte ເຄືອຂ່າຍ, ຕ້ອງມີ 2.

ສາຍພົວພັນນີ້ສາມາດຖືກສະແດງອອກເປັນ

tcp [13] == 2

ພວກເຮົາສາມາດໃຊ້ການສະແດງອອກນີ້ເປັນຕົວກັ່ນຕອງສໍາລັບ tcpdump ເພື່ອສັງເກດເບິ່ງບັນຊີທີ່ມີພຽງ SYN ເທົ່ານັ້ນ:

tcpdump -i xl0 tcp [13] == 2

ການສະແດງອອກກ່າວວ່າ "ໃຫ້ octet ທີ 13 ຂອງ datagram TCP ມີຄ່າຕື້ 2", ເຊິ່ງແມ່ນສິ່ງທີ່ພວກເຮົາຕ້ອງການ.

ໃນປັດຈຸບັນ, ໃຫ້ສົມມຸດວ່າພວກເຮົາຕ້ອງການເກັບກໍາຂໍ້ມູນ SYN packets, ແຕ່ພວກເຮົາບໍ່ໄດ້ກັງວົນວ່າ ACK ຫຼື Bit ຄວບຄຸມ TCP ອື່ນໆແມ່ນກໍານົດໃນເວລາດຽວກັນ. ໃຫ້ເບິ່ງສິ່ງທີ່ເກີດຂຶ້ນກັບ octet 13 ເມື່ອ datagram 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 |

ຕອນນີ້ bits 1 ແລະ 4 ຖືກຕັ້ງຢູ່ໃນ octet ທີ 13. ຄ່າໄບຕ໌ຂອງ 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 ກໍານົດ.

ເພື່ອບັນລຸເປົ້າຫມາຍຂອງພວກເຮົາ, ພວກເຮົາຈໍາເປັນຕ້ອງມີເຫດຜົນແລະຄ່າໄບນາທີຂອງ octet 13 ດ້ວຍມູນຄ່າອື່ນໆບາງຢ່າງເພື່ອຮັກສາບິດ SYN. ພວກເຮົາຮູ້ວ່າພວກເຮົາຕ້ອງການໃຫ້ SYN ກໍານົດໄວ້ໃນກໍລະນີໃດກໍ່ຕາມ, ດັ່ງນັ້ນພວກເຮົາຈະມີເຫດຜົນແລະຄ່າໃນ octet ທີ 13 ດ້ວຍມູນຄ່າໄບນາລີຂອງ SYN:

00010010 SYN-ACK 00000010 SYN ແລະ 00000010 (ພວກເຮົາຕ້ອງການ SYN) ແລະ 00000010 (ພວກເຮົາຕ້ອງການ SYN) -------- -------- = 00000010 = 00000010

ພວກເຮົາເຫັນວ່າການເຮັດວຽກນີ້ແລະການສະຫນອງຜົນໄດ້ຮັບດຽວກັນໂດຍບໍ່ວ່າ ACK ຫຼື Bit ຄວບຄຸມ TCP ອື່ນແມ່ນກໍານົດ. ຕົວເລກຂອງຕົວເລກຂອງ AND ແລະຄ່າຂອງການເຮັດວຽກນີ້ແມ່ນ 2 (ໄບນາລີ 00000010) ດັ່ງນັ້ນພວກເຮົາຮູ້ວ່າສໍາລັບແພັກເກັດທີ່ມີ SYN ກໍານົດຕໍ່ໄປນີ້ຕ້ອງມີຄວາມຈິງ:

((ຄ່າຂອງ octet 13) AND (2)) == (2)

ນີ້ຊີ້ໃຫ້ພວກເຮົາສະແດງອອກການກັ່ນຕອງ tcpdump

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

ໃຫ້ສັງເກດວ່າທ່ານຄວນໃຊ້ວົງຢືມດຽວຫຼືຮວບຮວມໄວ້ໃນການສະແດງອອກເພື່ອຊ່ອນລັກສະນະພິເສດຂອງ AND ('&') ຈາກແກະ.

UDP Packets

ຮູບແບບ UDP ແມ່ນສະແດງໃຫ້ເຫັນໂດຍຊຸດຂໍ້ມູນ rwho ນີ້:

actinidewho> broadcastwho: udp 84

ນີ້ບອກວ່າທ່າເຮືອ ຜູ້ທີ່ ຢູ່ໃນສະຖານີອະວະກາດໄດ້ສົ່ງຂໍ້ມູນ udp ກັບທ່າເຮືອ ຜູ້ທີ່ ຢູ່ໃນການ ອອກອາກາດຂອງ ເຈົ້າພາບ, ການອອກອາກາດທາງອິນເຕີເນັດ. ແພັກເກັດມີ 84 bytes ຂອງຂໍ້ມູນຜູ້ໃຊ້.

ບາງບໍລິການ UDP ແມ່ນຖືກຮັບຮູ້ (ຈາກຫມາຍເລກປະຕູຫຼືແຫຼ່ງຈຸດຫມາຍປາຍທາງ) ແລະຂໍ້ມູນໂປຣແກຣມລະດັບສູງທີ່ຖືກພິມ. ໂດຍສະເພາະ, ການຮ້ອງຂໍການບໍລິການຊື່ໂດແມນ (RFC-1034/1035) ແລະໂທ RPC RPC (RFC-1050) ໄປ NFS.

UDP Name Server Requests

(NB: ລາຍລະອຽດດັ່ງຕໍ່ໄປນີ້ຖືວ່າມີຄວາມຄຸ້ນເຄີຍກັບໂປແກຼມລະບົບໂດເມນທີ່ອະທິບາຍໃນ RFC-1035. ຖ້າທ່ານບໍ່ຄຸ້ນເຄີຍກັບໂປຣແກຣມ, ຄໍາອະທິບາຍຕໍ່ໄປນີ້ຈະປາກົດເປັນພາສາເກຣັກ.)

ຄໍາຮ້ອງຂໍຂອງເຄື່ອງແມ່ຂ່າຍຊື່ຖືກກໍານົດເປັນ

src> dst: id op? ນາມສະກຸນ qtyp ຊື່ qclass (len) h2opolo1538> heliosdomain: 3+ A? ucbvaxberkeleyedu (37)

Host h2opolo ຖາມເຊີຟເວີໂດເມນທີ່ helios ສໍາລັບບັນທຶກທີ່ຢູ່ (qtype = A) ທີ່ກ່ຽວຂ້ອງກັບຊື່ ucbvax.berkeley.edu. id query ຄື `3 '. `+ 'ຫມາຍເຖິງການ ຖອດຖອນຕົວຕາມຕ້ອງການ . ຄວາມຍາວຂອງການສອບຖາມແມ່ນ 37 bytes, ບໍ່ລວມເອົາ headers ໂປໂຕຄອນ UDP ແລະ IP. ການປະຕິບັດການແບບສອບຖາມແມ່ນແບບສອບຖາມທົ່ວໄປ, Query , ດັ່ງນັ້ນພາກສະຫນາມແມ່ນຖືກຍົກເລີກ. ຖ້າ op ແມ່ນຫຍັງອີກ, ມັນຈະຖືກພິມອອກລະຫວ່າງ `3 'ແລະ` +'. ເຊັ່ນດຽວກັນ, qclass ແມ່ນປົກກະຕິຫນຶ່ງ, C_IN , ແລະຍົກເລີກ. ທຸກກຸ່ມອື່ນໆຈະຖືກພິມອອກທັນທີຫຼັງຈາກທີ່ `A '.

ຂໍ້ຜິດພາດບາງຢ່າງຖືກກວດເບິ່ງແລະອາດຈະສົ່ງຜົນກະທົບຕໍ່ເຂດຂໍ້ມູນເພີ່ມເຕີມທີ່ຢູ່ໃນວົງເລັບສີ່ຫລ່ຽມຖ້າຄໍາຖາມມີຄໍາຕອບ, ຂໍ້ມູນກ່ຽວກັບເອກະສານຫຼືບົດບັນທຶກເພີ່ມເຕີມ, ເລກ , nscount ຫຼື arcount ຖືກພິມເປັນ `[ n a] ',` [ n n ] 'ຫຼື `[ n au]' ບ່ອນທີ່ n ເປັນການນັບທີ່ເຫມາະສົມ. ຖ້າມີ bits ການຕອບສະຫນອງໃດໆຖືກກໍານົດ (AA, RA ຫຼື rcode) ຫຼືຂໍ້ຄວາມໃດຫນຶ່ງຂອງ `bit must be zero 'ແມ່ນ set in bytes ສອງແລະສາມ,` [b2 & 3 = x ]' ຖືກພິມ, ບ່ອນທີ່ x ເປັນຄ່າ hex ຂອງ header bytes ສອງແລະສາມ.

UDP Name Server Responses

ຄໍາຕອບຂອງເຄື່ອງແມ່ຂ່າຍຊື່ຖືກຈັດຮູບແບບເປັນ

src> dst: id op rcode flags a / n / au type data class (len) heliosdomain> h2opolo1538: 3 3/3/7 A 12832133 (273) heliosdomain> h2opolo1537: 2 NXDomain * 0/1/0 (97)

ໃນຕົວຢ່າງທໍາອິດ, helios ຕອບກັບການສອບຖາມ id 3 ຈາກ h2opolo ກັບ 3 ບັນທຶກການຕອບ, 3 ລະບົບບັນທຶກຊື່ແລະ 7 ບັນທຶກເພີ່ມເຕີມ. ບັນທຶກຄໍາຕອບທໍາອິດແມ່ນປະເພດ A (ທີ່ຢູ່) ແລະຂໍ້ມູນຂອງມັນແມ່ນອິນເຕີເນັດ 128.32.137.3. ຂະຫນາດທັງຫມົດຂອງການຕອບສະຫນອງແມ່ນ 273 bytes, ບໍ່ລວມຫົວຫນ້າ UDP ແລະ IP. ລະຫັດລັບ (Query) ແລະການຕອບໂຕ້ (NoError) ຖືກຍົກເລີກ, ເຊັ່ນດຽວກັບລະດັບ (C_IN) ຂອງບັນທຶກ A.

ໃນຕົວຢ່າງທີສອງ, helios ຕອບກັບການສອບຖາມ 2 ດ້ວຍລະຫັດຕອບຂອງໂດເມນທີ່ບໍ່ມີຢູ່ (NXDomain) ທີ່ບໍ່ມີຄໍາຕອບ, ເຄື່ອງແມ່ຂ່າຍຊື່ຫນຶ່ງແລະບໍ່ມີຂໍ້ມູນກ່ຽວກັບສິດອໍານາດ. `* 'ຊີ້ໃຫ້ເຫັນວ່າ ຄໍາຕອບທີ່ ຖືກຕ້ອງຖືກກໍານົດ. ເນື່ອງຈາກບໍ່ມີຄໍາຕອບ, ບໍ່ມີປະເພດ, ປະເພດຫຼືຂໍ້ມູນຖືກພິມ.

ຕົວອັກສອນທຸງອື່ນໆທີ່ອາດຈະປາກົດເປັນ `- '(ການເອີ້ນຄືນ, RA, ບໍ່ ກໍານົດ) ແລະ` |' (ຂໍ້ຄວາມຖືກຕັດອອກ, TC, ຊຸດ). ຖ້າພາກ `ຄໍາຖາມ 'ບໍ່ມີເອກະສານແທ້ໆ,` [ n q]' ຈະຖືກພິມ.

ໃຫ້ສັງເກດວ່າການຮ້ອງຂໍແລະຄໍາຕອບຂອງເຄື່ອງແມ່ຂ່າຍຕ້ອງມີຂະຫນາດໃຫຍ່ແລະ snaplen ເລີ່ມຕົ້ນຂອງ 68 bytes ອາດຈະບໍ່ສາມາດເກັບເອົາພຽງພໍຂອງ ໂປແກມ ພິມໄດ້. ໃຊ້ທຸງຊາດ -s ເພື່ອເພີ່ມ snaplen ຖ້າທ່ານຕ້ອງການທີ່ຈະສືບສວນຢ່າງຮຸນແຮງການຈະລາຈອນຂອງເຄື່ອງແມ່ຂ່າຍຊື່. ` -s 128 'ໄດ້ເຮັດວຽກດີສໍາລັບຂ້ອຍ.

ການຖອດລະຫັດ SMB / CIFS

tcpdump ໃນປັດຈຸບັນປະກອບມີການລະຫັດ SMB / CIFS / NBT ຢ່າງກວ້າງຂວາງສໍາລັບຂໍ້ມູນກ່ຽວກັບ UDP / 137, UDP / 138 ແລະ TCP / 139. ບາງລະຫັດທໍາອິດຂອງຂໍ້ມູນ IPX ແລະ NetBEUI SMB ແມ່ນຖືກເຮັດແລ້ວ.

ໂດຍຄ່າເລີ່ມຕົ້ນການອອກແບບທີ່ນ້ອຍທີ່ສຸດແມ່ນຖືກເຮັດ, ໂດຍມີການລະຫັດທີ່ມີລາຍລະອຽດຫຼາຍຖ້າຫາກວ່າ -v ຖືກນໍາໃຊ້. ໄດ້ຮັບການເຕືອນວ່າມີ -back single SMB ອາດຈະໃຊ້ເວລາເຖິງຫນ້າຫຼືຫຼາຍກວ່ານັ້ນ, ສະນັ້ນການນໍາໃຊ້ -v ຖ້າທ່ານຕ້ອງການລາຍລະອຽດທັງຫມົດ.

ຖ້າທ່ານກໍາລັງເຊັດເວລາການປະຊຸມ SMB ທີ່ມີລະຫັດ unicode ແລ້ວທ່ານອາດຈະຕັ້ງຄ່າຕົວປ່ຽນສະພາບແວດລ້ອມ USE_UNICODE ໃຫ້ 1. ການເພີ້ມການເພີ້ມຕົວອັດຕະໂນມັດເພື່ອກວດຫາສັນຍາລັກ unicode ຈະຍິນດີຕ້ອນຮັບ.

ສໍາລັບຂໍ້ມູນກ່ຽວກັບຮູບແບບຂໍ້ມູນ SMB ແລະສິ່ງທີ່ທົ່ງນາ te ທັງຫມົດຫມາຍຄວາມວ່າເບິ່ງ www. www.cif.org ຫຼືຊື່ pub / samba / specs / ໃນເວັບໄຊທ໌ mirror samba.org ທີ່ທ່ານມັກ. ການແກ້ໄຂ SMB ໄດ້ຖືກຂຽນໂດຍ Andrew Tridgell (tridge@samba.org).

NFS ຄໍາຮ້ອງຂໍແລະຕອບ

Sun NFS (Network File System) ການຮ້ອງຂໍແລະຄໍາຕອບແມ່ນພິມເປັນ:

src.xid> dst.nfs: len op args src.nfs> dst.xid: reply stat len ​​op results sushi6709> wrlnfs: 112 readlink fh 21,24 / 1073165 wrlnfs> sushi6709: reply ok 40 readlink "/ var" sushi201b> wrlnfs: 144 lookup fh 9,74 / 40966878 "xcolors" wrlnfs> sushi201b: reply ok 128 look up fh 9,74 / 4134331

ໃນເສັ້ນທໍາອິດ, host sushi ສົ່ງການໂອນກັບ id 6709 ກັບ wrl (ສັງເກດວ່າຈໍານວນດັ່ງຕໍ່ໄປນີ້ host src ແມ່ນ id transaction, ບໍ່ແມ່ນ port source). ຄໍາຮ້ອງຂໍດັ່ງກ່າວແມ່ນ 112 bytes, ບໍ່ລວມເອົາ headers UDP ແລະ IP. ການດໍາເນີນງານແມ່ນການເຊື່ອມຕໍ່ອ່ານ (ອ່ານການເຊື່ອມໂຍງສັນຍາລັກ) ໃນການຈັບໄຟ ( fh ) 21,24 / 10731657119. (ຖ້າມີໂຊກດີ, ໃນກໍລະນີນີ້, ຈັບໄຟລ໌ສາມາດຖືກຕີຄວາມຫມາຍເປັນຕົວເລກທີ່ມີຂະຫນາດນ້ອຍ, ທີ່ມີຂະຫນາດນ້ອຍ, ຕາມດ້ວຍຫມາຍເລກ inode ແລະຈໍານວນການຜະລິດ.) Wrl ຕອບກັບ 'ok' ກັບເນື້ອໃນຂອງການເຊື່ອມຕໍ່.

ໃນແຖວທີສາມ, sushi ຂໍໃຫ້ wrl ຊອກຫາຊື່ ' xcolors ' ໃນແຟ້ມໂຟນເດີ 9,74 / 4096.6878. ໃຫ້ສັງເກດວ່າຂໍ້ມູນພິມທີ່ຂຶ້ນຢູ່ກັບປະເພດການດໍາເນີນງານ. ຮູບແບບດັ່ງກ່າວແມ່ນມີຈຸດປະສົງເພື່ອອະທິບາຍດ້ວຍຕົນເອງຖ້າອ່ານພ້ອມກັນກັບ spec spec protocol NFS.

ຖ້າມີ flag-v (verbose), ຂໍ້ມູນເພີ່ມເຕີມຈະຖືກພິມ. ຍົກ​ຕົວ​ຢ່າງ:

sushi137a> wrlnfs: 148 read fh 21,11 / 12195 8192 bytes @ 24576 wrlnfs> sushi132a: reply ok 1472 read REG 100664 ids 417/0 sz 29388

(-v ຍັງພິມຕົວຫົວ IP TTL, ID, ຄວາມຍາວແລະຊ່ອງຫວ່າງທີ່ຖືກຍົກເລີກຈາກຕົວຢ່າງນີ້.) ໃນແຖວທໍາອິດ, sushi ຮຽກຮ້ອງ wrl ໃຫ້ອ່ານ 8192 bytes ຈາກເອກະສານ 21,11 / 12,195, ໃນ byte offset 24576 Wrl ຕອບ `ok '; ແພັກເກັດທີ່ສະແດງຢູ່ໃນສາຍທີສອງແມ່ນສ່ວນທໍາອິດຂອງການຕອບ, ແລະດັ່ງນັ້ນພຽງແຕ່ 1472 bytes ຍາວ (bytes ອື່ນໆຈະປະຕິບັດຕາມໃນ fragments ຕໍ່ໆໄປແຕ່ fragments ເຫຼົ່ານີ້ບໍ່ມີ headers NFS ຫຼືເຖິງ UDP ແລະດັ່ງນັ້ນອາດຈະບໍ່ໄດ້ຮັບການພິມ, ອີງໃສ່ການສະແດງອອກຂອງການນໍາໃຊ້ used). ເນື່ອງຈາກແຟ້ມ -v ຖືກໃຫ້, ບາງບັນຫາຂອງໄຟລ໌ (ເຊິ່ງຖືກສົ່ງຄືນນອກຈາກຂໍ້ມູນໄຟລ໌) ຖືກພິມອອກ: ປະເພດໄຟລ໌ (`` REG '', ສໍາລັບໄຟລ໌ປົກກະຕິ), ຮູບແບບໄຟລ໌ (ໃນ octal), uid ແລະ gid, ແລະຂະຫນາດໄຟລ໌.

ຖ້າ flag -v ຖືກມອບໃຫ້ຫຼາຍກວ່າຫນຶ່ງຄັ້ງ, ລາຍລະອຽດຕ່າງໆຈະຖືກພິມອອກ.

ໃຫ້ສັງເກດວ່າການຮ້ອງຂໍ NFS ມີຂະຫນາດໃຫຍ່ຫຼາຍແລະລາຍລະອຽດຈໍານວນຫຼາຍຈະບໍ່ຖືກພິມອອກມາຈົນກ່ວາ snaplen ຈະເພີ່ມຂຶ້ນ. ລອງໃຊ້ ` -s 192 'ເພື່ອເບິ່ງການເຂົ້າຊົມ NFS.

NFS packets ຕອບບໍ່ໄດ້ກໍານົດຢ່າງຊັດເຈນການດໍາເນີນງານ RPC. ແທນທີ່ຈະ, tcpdump ຮັກສາຄໍາຮ້ອງຂໍຂອງ `` ທີ່ຜ່ານມາ '' ແລະຮຽກຮ້ອງໃຫ້ພວກເຂົາຕອບກັບການປະຕິບັດໂດຍໃຊ້ ID ການເຮັດທຸລະກໍາ. ຖ້າການຕອບບໍ່ສອດຄ່ອງກັບຄໍາຮ້ອງຂໍທີ່ສອດຄ້ອງກັນ, ມັນອາດຈະບໍ່ສະຫຼຸບໄດ້.

AFS ຂໍແລະຕອບ

Transarc AFS (Andrew File System) ການຮ້ອງຂໍແລະຕອບແມ່ນພິມເປັນ:

src.sport> dst.dport: rx packet-type src.sport> dst.dport: rx packet-type service call call-name args src.sport> dst.dport: rx packet-type service answer call name args elvis 7001> pikeafsfs: rx data fs call rename old fid 536876964/1/1 "newsnewcnewnew fid 536876964/1/1" newssrc "pikeafsfs> elvis79001: rx data fs reply rename

ໃນເສັ້ນທໍາອິດ, ເຈົ້າພາບ Elvis ສົ່ງຊຸດ RX ໃຫ້ pike. ນີ້ແມ່ນຊຸດຂໍ້ມູນ RX ກັບການບໍລິການ fs (ແຟ້ມ) ແລະເປັນການເລີ່ມຕົ້ນຂອງການເອີ້ນ RPC. ການເອີ້ນ RPC ແມ່ນການປ່ຽນຊື່, ມີແຟ້ມເອກະສານເກົ່າຂອງ 536876964/1/1 ແລະຊື່ໄຟລ໌ເກົ່າຂອງ `.newsrc.new ', ແລະເອກະສານເອກະສານໃຫມ່ຂອງ 536876964/1/1 ແລະຊື່ໄຟລ໌ໃຫມ່ຂອງ`. newsrc ' pike ເຈົ້າພາບຕອບກັບການຕອບ RPC ກັບຊື່ການປ່ຽນຊື່ (ເຊິ່ງສົບຜົນສໍາເລັດ, ເນື່ອງຈາກວ່າມັນແມ່ນຊຸດຂໍ້ມູນແລະບໍ່ແມ່ນການຖອນຂໍ້ມູນ).

ໂດຍທົ່ວໄປແລ້ວ, ທຸກ RPC AFS ຖືກລະຫັດຢ່າງຫນ້ອຍໂດຍຊື່ການເອີ້ນ RPC. ສ່ວນຫຼາຍ RPC AFS ມີຢ່າງຫນ້ອຍບາງຄໍາເຫັນທີ່ຖືກລົບອອກ (ໂດຍທົ່ວໄປແລ້ວພຽງແຕ່ຄໍາເວົ້າທີ່ຫນ້າສົນໃຈ) ສໍາລັບຄໍານິຍາມທີ່ຫນ້າສົນໃຈ).

ຮູບແບບດັ່ງກ່າວແມ່ນມີຈຸດປະສົງເພື່ອສະແດງຕົນເອງແຕ່ມັນອາດຈະບໍ່ເປັນປະໂຫຍດຕໍ່ຜູ້ທີ່ບໍ່ຄຸ້ນເຄີຍກັບຜົນງານຂອງ AFS ແລະ RX.

ຖ້າມີ flag-v (verbose) ຖືກສົ່ງສອງຄັ້ງ, ຂໍ້ມູນທີ່ໄດ້ຮັບການຍອມຮັບແລະຂໍ້ມູນຫົວຂໍ້ເພີ່ມເຕີມຈະຖືກພິມອອກ, ເຊັ່ນ: ID RX, ຫມາຍເລກໂທ, ເລກລໍາດັບ, ຫມາຍເລກໂທລະສັບ, ແລະທົງ RX.

ຖ້າມີ flag -v ຖືກມອບໃຫ້ສອງຄັ້ງ, ຂໍ້ມູນເພີ່ມເຕີມຖືກພິມ, ເຊັ່ນ: ID RX, ຫມາຍເລກ serial, ແລະທົງ RX packets. ຂໍ້ມູນການເຈລະຈາ MTU ແມ່ນຖືກພິມອອກມາຈາກ RX ack packets.

ຖ້າ flag -v ຖືກມອບໃຫ້ສາມຄັ້ງ, ດັດຊະນີຄວາມປອດໄພແລະ id service ຈະຖືກພິມ.

ລະຫັດຄວາມຜິດພາດຖືກພິມສໍາລັບການຖອນເອົາບັນດາເອກະສານ, ຍົກເວັ້ນບລັອກ Ubik Beacon (ເນື່ອງຈາກວ່າການຖອນເອົາບັນດາເອກະສານຖືກນໍາໃຊ້ເພື່ອສະແດງໃຫ້ເຫັນວ່າມີສຽງສໍາລັບໂປແກຼມ Ubik).

ໃຫ້ສັງເກດວ່າການຮ້ອງຂໍ AFS ແມ່ນມີຂະຫນາດໃຫຍ່ຫຼາຍແລະການໂຕ້ຖຽງຈໍານວນຫຼາຍຈະບໍ່ຖືກພິມອອກມານອກຈາກວ່າ snaplen ຈະເພີ່ມຂຶ້ນ. ລອງໃຊ້ ' -s 256 ' ເພື່ອເບິ່ງການຈະລາຈອນ AFS.

ຂໍ້ມູນຂ່າວສານ AFS ບໍ່ໄດ້ກໍານົດຢ່າງຊັດເຈນການດໍາເນີນງານ RPC. ແທນທີ່ຈະ, tcpdump ຮັກສາຕາມຄໍາຮ້ອງຂໍ `` ທີ່ຜ່ານມາ '' ແລະກົງກັບຄໍາຕອບໂດຍໃຊ້ຫມາຍເລກໂທແລະ ID ການບໍລິການ. ຖ້າການຕອບບໍ່ສອດຄ່ອງກັບຄໍາຮ້ອງຂໍທີ່ສອດຄ້ອງກັນ, ມັນອາດຈະບໍ່ສະຫຼຸບໄດ້.

KIP Appletalk (DDP ໃນ UDP)

ບັນດາແພັກເກັດ Appletalk DDP ຖືກຫຸ້ມໄວ້ໃນ UDP datagrams ຖືກ de-encapsulated ແລະຖືກຖິ້ມເປັນ DDP packets (ເຊົ່ນທັງຫມົດຂໍ້ມູນ header ຂອງ UDP ຖືກຍົກເລີກ). ໄຟລ໌ /etc/atalk.names ແມ່ນໃຊ້ແປພາສາ appletalk net ແລະຫມາຍເລກ node ກັບຊື່. ເສັ້ນໃນໄຟລ໌ນີ້ມີແບບຟອມ

ຫມາຍເລກຊື່ 1,254 ether 161 icsd-net 1,254,110 ace

ສອງເສັ້ນທໍາອິດໃຫ້ຊື່ຂອງເຄືອຂ່າຍ appletalk. ເສັ້ນທີສາມໃຫ້ຊື່ຂອງໂຮດໂດຍສະເພາະ (ໂຮດແມ່ນແຍກຈາກສຸດທິໂດຍ octet ທີສາມໃນຈໍານວນ - ຈໍານວນສຸດທິ ຕ້ອງ ມີສອງ octets ແລະຈໍານວນ host ຕ້ອງ ມີສາມ bytes.) ຈໍານວນແລະຊື່ຄວນແຍກ ໂດຍຊ່ອງຫວ່າງ (ແຖບຫຼືກ່ອງ). ໄຟລ໌ /etc/atalk.names ອາດຈະມີສາຍຫວ່າງຫຼືຄໍາສະແດງຄໍາ (ເສັ້ນທີ່ເລີ່ມຕົ້ນດ້ວຍ `# ').

ທີ່ຢູ່ Appletalk ຖືກພິມອອກໃນແບບຟອມ:

nethostport 14412092> icsd-net121220 office2> icsd-net121220 jssmag144935> icsd-net2

(ຖ້າຊື່ /etc/atalk.names ບໍ່ມີຫຼືບໍ່ມີບັນທຶກສໍາລັບບາງບັນດາ appletalk host / net number, ທີ່ຢູ່ຈະຖືກພິມເປັນຮູບແບບຕົວເລກ.) ໃນຕົວຢ່າງທໍາອິດ, NBP (DDP ພອດ 2) ສຸດສຸດທິ 144.1 node 209 ແມ່ນສົ່ງກັບທຸກສິ່ງທີ່ຟັງຢູ່ທີ່ port 220 ຂອງ node icsd ສຸດທິ 112. ສາຍທີສອງແມ່ນຄືກັນກັບເວັ້ນເສຍແຕ່ຊື່ເຕັມຂອງ node ແຫຼ່ງທີ່ຮູ້ຈັກ (`ຫ້ອງ '). ສາຍທີສາມແມ່ນການສົ່ງອອກຈາກ port 235 ສຸດ jssmag node 149 ທີ່ຈະອອກອາກາດຢູ່ໃນພອດ NBP icsd-net (ສັງເກດວ່າທີ່ຢູ່ອອກອາກາດ (255) ຖືກບອກໂດຍຊື່ສຸດທິທີ່ບໍ່ມີຈໍານວນ host - ສໍາລັບເຫດຜົນນີ້ມັນເປັນຄວາມຄິດທີ່ດີ ເພື່ອຮັກສາຊື່ນາມແລະຊື່ທີ່ແຕກຕ່າງໃນ /etc/atalk.names).

ລະຫັດ NBP (ຊື່ຜູກມັດຊື່) ແລະ ATP (ໂປໂຕຄອນການຊື້ຂາຍໂປໂຕຄອນ) ມີເນື້ອໃນຂອງພວກເຂົາທີ່ຖືກຕີລາຄາ. ໂປຣແກຣມອື່ນໆພຽງໃສ່ຊື່ໂປຣແກຣມ (ຫຼືຫມາຍເລກຖ້າບໍ່ມີຊື່ຖືກລົງທະບຽນສໍາລັບໂປໂຕຄອນ) ແລະຂະຫນາດຂອງແພັກເກັດ.

ແພັກເກັດ NBP ແມ່ນຮູບແບບເຊັ່ນ: ຕົວຢ່າງຕໍ່ໄປນີ້:

icsd-net112220> jssmag2: nbp-lkup 190: "=: LaserWriter @ *" jssmag.209.2> icsd-net112220: nbp-reply 190: "RM1140: LaserWriter @ *" 250 techpit2> icsd -net112220: nbp-reply 190: "techpit: LaserWriter @ *" 186

ເສັ້ນທໍາອິດແມ່ນຄໍາຮ້ອງຂໍການຄົ້ນຫາຊື່ສໍາລັບເຄື່ອງສະແກນເລເຊີທີ່ຖືກສົ່ງໂດຍ net icsd host 112 ແລະສົ່ງອອກໃນ jssmag ສຸດທິ. id nbp ສໍາລັບການຊອກຫາແມ່ນ 190. ເສັ້ນທີສອງສະແດງໃຫ້ເຫັນການຕອບສໍາລັບຄໍາຮ້ອງຂໍນີ້ (ສັງເກດວ່າມັນມີ id ດຽວກັນ) ຈາກ host jssmag.209 ບອກວ່າມັນມີຊັບພະຍາກອນ laserwriter ຊື່ "RM1140" ລົງທະບຽນຢູ່ໃນ port 250. ທີສາມ line ແມ່ນການຕອບຕໍ່ກັບຄໍາຮ້ອງຂໍເຊັ່ນດຽວກັນກ່າວວ່າ techpit ເຈົ້າມີ laserwriter "techpit" ລົງທະບຽນຢູ່ໃນທ່າທາງ 186.

ການຈັດຮູບແບບ ເອ ATP ແມ່ນສະແດງໃຫ້ເຫັນໂດຍຕົວຢ່າງຕໍ່ໄປນີ້:

jssmag209165> helios132: atp-req 12266 <0-7> 0xae030001 helios132> jssmag209165: atp-resp 12266: 0 (512) 0xae040000 helios132> jssmag209165: atp-resp 12266: 1 (512) 0xae040000 helios132> jssmag209165: atp-resp 12266: 2 (512) 0xae040000 helios132> jssmag209165: atp-resp 12266: 3 (512) 0xae040000 helios132> jssmag209165: atp- resp: 12266: 4 (512) 0xae040000 helios132> jssmag209165: atp-resp 12266: 5 (512) 0xae040000 helios132> jssmag209165: atp-resp 12266: 6 (512) 0xae040000 helios132> jssmag 209165: atp-resp * 12266: 7 (512) 0xae040000 jssmag209165> helios132: atp-req 12266 <3,5> 0xae030001 helios132> jssmag209165: atp-resp 12266: 3 (512) 0xae040000 helios > 123 <0-7> 0xae030001 jssmag.209.133> helios132: atp-req * 12267 <0 -7> 0xae030002

Jssmag.209 ເລີ່ມຕົ້ນ id ການເຮັດວຽກ 12266 ກັບ helios ໂຮດໂດຍການຮ້ອງຂໍເຖິງ 8 ແພັກເກັດ (`0-7> '). ຈໍານວນ hex ຢູ່ໃນຕອນທ້າຍຂອງເສັ້ນແມ່ນມູນຄ່າຂອງ `userdata 'ພາກສະຫນາມໃນການຮ້ອງຂໍ.

Helios ຕອບສະຫນອງກັບ 8 512 byte packets. ຕົວເລກ `ເລກ 'ຕາມ Id ການເຮັດທຸລະກໍາເຮັດໃຫ້ຈໍານວນລໍາດັບບັນຊີໃນການເຮັດທຸລະກໍາແລະຈໍານວນໃນ parens ແມ່ນຈໍານວນຂໍ້ມູນໃນແພັກເກັດ, ບໍ່ລວມ header atp. ຊຸດ `* 'ເທິງຊຸດ 7 ສະແດງວ່າບິດ EOM ຖືກກໍານົດ.

Jssmag.209 ຫຼັງຈາກນັ້ນຮຽກຮ້ອງໃຫ້ແພັກທີ 3 ແລະ 5 ຖືກສົ່ງຄືນໃຫມ່. Helios ກັບເຂົາເຈົ້າຫຼັງຈາກນັ້ນ jssmag.209 ປ່ອຍການຊື້ຂາຍ. ສຸດທ້າຍ, jssmag.209 ເລີ່ມຕົ້ນການຮ້ອງຂໍຕໍ່ໄປ. `* 'ຕາມຄໍາຮ້ອງຂໍດັ່ງກ່າວຊີ້ໃຫ້ເຫັນວ່າ XO (` ແທ້ຫນຶ່ງຄັ້ງ') ບໍ່ ຖືກກໍານົດ.

IP Fragmentation

ບັນດາ datagrams ອິນເຕີເນັດທີ່ແຕກອອກເປັນພິມເປັນ

(frag id : size @ offset +) (frag id : size @ offset )

(ແບບຟອມທໍາອິດຊີ້ໃຫ້ເຫັນວ່າມີຊິ້ນສ່ວນຫຼາຍກວ່າ, ສ່ວນທີສອງສະແດງວ່າມັນເປັນສ່ວນສຸດທ້າຍ).

Id ເປັນເອກະສານຊິ້ນ. ຂະຫນາດ ແມ່ນ ຂະຫນາດ ຂອງຊິ້ນ (in bytes) ບໍ່ລວມຫົວ IP. ການຊົດເຊີຍ ແມ່ນການຊົດເຊີຍຂອງຊິ້ນນີ້ (ໃນ bytes) ໃນ datagram ຕົ້ນສະບັບ.

ຂໍ້ມູນຊິ້ນສ່ວນແມ່ນຜະລິດຕະພັນສໍາລັບແຕ່ລະຊິ້ນ. ຊິ້ນທໍາອິດປະກອບດ້ວຍ header ໂປໂຕຄອນໃນລະດັບທີ່ສູງກວ່າແລະຂໍ້ມູນທີ່ຖືກຕ້ອງຖືກພິມພາຍຫຼັງຂໍ້ມູນໂປໂຕຄອນ. fragments ຫຼັງຈາກທໍາອິດບໍ່ມີ header ໂປໂຕຄອນໃນລະດັບທີ່ສູງກວ່າແລະຂໍ້ມູນ frag ແມ່ນພິມຫຼັງຈາກທີ່ຢູ່ແຫຼ່ງແລະປາຍທາງ. ຕົວຢ່າງ, ນີ້ແມ່ນສ່ວນຫນຶ່ງຂອງ ftp ຈາກ arizona.edu ກັບ lbl-rtsg.arpa ຜ່ານການເຊື່ອມຕໍ່ CSNET ທີ່ບໍ່ປາກົດວ່າຈະຈັດການກັບ 576 byte datagrams:

arizonaftp-data> rtsg1170: 1024: 1332 (308) ack 1 win 4096 (frag 595a: 328 @ 0 +) arizona> rtsg: (frag 595a: 204 @ 328) rtsg1170> arizonaftp-data: ack 1536 ຊະນະ 2560

ມີສອງສິ່ງທີ່ຈະຕ້ອງບັນທຶກຢູ່ທີ່ນີ້: ຫນ້າທໍາອິດ, ທີ່ຢູ່ໃນສາຍທີ 2 ບໍ່ປະກອບມີຈໍານວນຕົວເລກ. ນີ້ແມ່ນຍ້ອນວ່າຂໍ້ມູນໂປໂຕຄອນ TCP ແມ່ນທັງຫມົດຢູ່ໃນຊິ້ນທໍາອິດແລະພວກເຮົາບໍ່ມີຄວາມຄິດຫຍັງກ່ຽວກັບຕົວເລກທີ່ພອດຫຼືລໍາດັບເມື່ອພວກເຮົາພິມຊິ້ນສ່ວນຕໍ່ມາ. ສອງ, ຂໍ້ມູນລໍາດັບ tcp ໃນເສັ້ນທໍາອິດຖືກພິມເປັນຖ້າມີ 308 bytes ຂອງຂໍ້ມູນຜູ້ໃຊ້, ໃນຕົວຈິງແລ້ວ, ມີ 512 bytes (308 ໃນຊິ້ນທໍາອິດແລະ 204 ໃນຄັ້ງທີສອງ). ຖ້າທ່ານກໍາລັງຊອກຫາຂຸມໃນພື້ນທີ່ລໍາດັບຫຼືພະຍາຍາມຫາຄໍາຕອບກັບ packets, ນີ້ສາມາດຫລອກລວງທ່ານ.

ແພັກເກັດທີ່ມີ IP ບໍ່ແມ່ນເອກະສານ ທຸບຕີແມ່ນຖືກຫມາຍດ້ວຍທາງຫລັງ (DF) .

Timestamps

ໂດຍຄ່າເລີ່ມຕົ້ນ, ສາຍຜົນຜະລິດທັງຫມົດຈະຖືກນໍາຫນ້າດ້ວຍຕາຕະລາງເວລາ. timestamp ແມ່ນເວລາໂມງປະຈຸບັນໃນແບບຟອມ

hh: mm: ssfrac

ແລະມີຄວາມຖືກຕ້ອງຕາມໂມງຂອງແກ່ນ. ເວລາສະແດງໃຫ້ເຫັນເຖິງເວລາທີ່ເຄີເນນໄດ້ເຫັນທໍ່ນັ້ນ. ບໍ່ມີຄວາມພະຍາຍາມທີ່ຈະບັນຊີສໍາລັບໄລຍະເວລາຊັກຊ້າລະຫວ່າງເວລາທີ່ອິນເຕີເຟດ Ethernet ເອົາແພັກອອກຈາກສາຍແລະໃນເວລາທີ່ແກ່ນຂອງແກະສະຫວາລ "ຊຸດໃຫມ່".

ເບິ່ງຍັງ

ການຈະລາຈອນ (1C), nit (4P), bpf (4), pcap (3)

ສິ່ງສໍາຄັນ: ໃຊ້ຄໍາສັ່ງ man ( % man ) ເພື່ອເບິ່ງວິທີການໃຊ້ຄໍາສັ່ງໃນຄອມພິວເຕີຂອງທ່ານ.