পিশার্কে টিসিপি পুনঃপ্রেরণার গণনা


10

আমি যতদূর জানি পিশার্ক হ'ল তিশার্কের জন্য পাইথন র‍্যাপার যা ওয়্যারশার্কের কমান্ড লাইন সংস্করণ। যেহেতু ওয়্যারশার্ক এবং tshark টিসিপি পুনঃস্থাপন সনাক্ত করার অনুমতি দেয়, তাই আমি ভাবছিলাম যে কীভাবে আমি পিশার্ক ব্যবহার করে এটি করতে পারি। আমি কোনও ভাল ডকুমেন্টেশন পাইনি সুতরাং আমি নিশ্চিত না যে আপনি কেবল এটি করতে পারবেন না, বা আমি ঠিক সঠিক উপায়টি খুঁজে পাচ্ছি না কিনা। ধন্যবাদ!


"টিসিপি ট্রান্সমিশন সনাক্ত করুন" দ্বারা, আপনি কি কেবল এটি বোঝানোর চেষ্টা করছেন যে কোনও টিসিপি প্যাকেটটি আদৌ দেখা যায় কিনা? অথবা আপনি টিসিপি এর মতো আরও নির্দিষ্ট কিছু বোঝাতে চেয়েছেন তবে নির্দিষ্ট দূরবর্তী হোস্ট / পোস্টের জন্য?
রস জ্যাকবস

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

2
আপনি ডিসপ্লে ফিল্টারটি ব্যবহার করতে পারেন tcp.analysis.retransmissionযা ওয়্যারশার্ক এবং পাইশার্ক উভয়ই ব্যবহার করা যেতে পারে। এটি ব্যর্থ হলে, আপনি যদি ক্ষতিটি সন্ধানে সহায়তা চান তবে ওয়্যারশার্ক বা সার্ভার ফল্টের উপকারে সহায়তা করতে চাইলে আপনি ওয়্যারশার্কের ফোরামে আপনার প্রশ্নটি (আরও প্রসঙ্গে) জানতে চাইতে পারেন ।
রস জ্যাকবস

আমি মনে করি tcp.analysis.retransmission সম্ভবত ভাল কাজ করবে। তবে কীভাবে এটি ব্যবহার করবেন সে সম্পর্কে আপনি কি আমাকে পাইসার্কে একটি উদাহরণ সরবরাহ করতে পারেন?
ব্যবহারকারী 1315621

পাইশার্ক ব্যবহার করে ওয়্যারশার্কের সাথে আলাপচারিতা সম্পর্কে এই নিবন্ধটি আমি আপনার প্রশ্নের কাছে সবচেয়ে কাছের পাই about
লিনি

উত্তর:


5

নীচের কোডটি পিশার্কে টিসিপি পুনঃপ্রেরণগুলি সনাক্ত করে

import pyshark

###################################################
# these filters can be applied under LiveCapture
# display_filter: A display (wireshark) filter to apply on the cap before reading it.
# display_filter='tcp.analysis.fast_retransmission'
# display_filter='tcp.analysis.retransmission'
###################################################
capture = pyshark.LiveCapture(interface='en1', display_filter='tcp.analysis.fast_retransmission')
capture.sniff(timeout=50)

for packet in capture.sniff_continuously(packet_count=5):
  print ('Just arrived:', packet)

এটি প্যাকেটে প্রদর্শন করা উচিত:

# display_filter='tcp.analysis.retransmission'
TCP Analysis Flags
Expert Info (Note/Sequence): This frame is a (suspected) retransmission
This frame is a (suspected) retransmission

# display_filter='tcp.analysis.fast_retransmission'
TCP Analysis Flags
This frame is a (suspected) fast retransmission
This frame is a (suspected) retransmission
Expert Info (Note/Sequence): This frame is a (suspected) fast retransmission
Expert Info (Note/Sequence): This frame is a (suspected) retransmission

আপনি অন্তর্ভুক্ত করেন, তাহলে only_summaries = true মধ্যে LiveCapture আপনি ভালো কিছু দেখতে হবে:

Just arrived: 223 71.890878 fe80::cabc:c8ff:feec:d46d fe80::1416:1ca1:307c:b0e6 TCP 86 [TCP Spurious Retransmission] 59005 \xe2\x86\x92 49373 [FIN, ACK] Seq=1855 Ack=2365 Win=4096 Len=0 TSval=930665353 TSecr=692710576

Just arrived: 371 121.293913 fe80::1416:1ca1:307c:b0e6 fe80::cabc:c8ff:feec:d46d TCP 98 [TCP Retransmission] 62078 \xe2\x86\x92 59012 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1440 WS=64 TSval=692717653 TSecr=930714614 SACK_PERM=1

এছাড়াও আপনি প্রয়োগের দ্বারা আরো নির্দিষ্টভাবে এই প্যাকেট ফিল্টার করতে পারেন bpf_filter মধ্যে LiveCapture ফিল্টার করতে বিভিন্ন TCP retransmission।

import pyshark

capture = pyshark.LiveCapture(interface='en1', bpf_filter='ip and tcp port 443', display_filter='tcp.analysis.retransmission')
capture.sniff(timeout=50)

for packet in capture.sniff_continuously(packet_count=5):
  print ('Just arrived:', packet)

পিশার্ক সহ পিসি্যাপ পড়ার একটি উপায় এখানে:

capture = pyshark.FileCapture('test.pcap', display_filter='tcp.analysis.retransmission')
counter = 0
for packet in capture:
  counter +=1
  print ('*' * 10, f'Retransmission packet {counter}:', '*' * 10)
  # output 
  ********** Retransmission packet 1: **********
  ********** Retransmission packet 2: **********
  ********** Retransmission packet 3: **********
  ********** Retransmission packet 4: **********
  ********** Retransmission packet 5: **********

ধন্যবাদ! আমি আপনার পিসিএপি ফাইলটি পড়ছি তাই আপনার কোডটি সহ, আমার এটি দুটিবার পড়তে হবে: প্রথমবারের মতো পুনরায় স্থানান্তরিত প্যাকেটগুলি প্রসেস করার জন্য এবং দ্বিতীয়বার অন্যান্য সমস্ত প্যাকেটগুলি প্রক্রিয়া করার জন্য। একটি সমাধান আছে কি?
ব্যবহারকারী 1315621

আমি একটি পিসিপি ফাইল পড়তে এবং পুনঃস্থাপনগুলি ফিল্টার করার জন্য কোডটি আপডেট করেছি।
জীবন জটিল

জিনিসটি হ'ল আমি যদি সমস্ত প্যাকেট মুদ্রণ করি (পড়ার সময় কোনও ফিল্টার ছাড়াই) তবে আমি প্যাকেটগুলি মুদ্রণ করে কিছু retransmitted প্যাকেট পেতে পারি। উদাহরণস্বরূপ, প্যাকেট.সামারী_লাইন, "2 4.1e-05 175.45.176.3 149.171.126.16 টিসিপি 77 [টিসিপি পুনঃপ্রেরণ] 22592 \\ xe2 \\ x86 \\ x92 143 [পিএসএইচ, এসি কে] সিক = 1 অ্যাক = 1 উইন = 16383 লেন = 21 "। সুতরাং আমি মনে করি প্যাকেটের কোনও বৈশিষ্ট্য থাকতে হবে যা বলে যে এটি একটি সম্ভাব্য প্রতিস্থাপন।
ব্যবহারকারী 1315621

আমার পিসিপিতে এটি টিসিপি বিশ্লেষণ পতাকাগুলির অধীনে রয়েছে। আপনি কি আমার ফাইল উদাহরণটি আপনার ফাইলটি জিজ্ঞাসা করতে ব্যবহার করছেন?
জীবন জটিল

1
@ ব্যবহারকারী 1315621 - যদি আপনার ক্যাপচারটি প্রশ্নের পক্ষে সমালোচনা করে তবে আপনার ক্যাপচারের লিঙ্ক অন্তর্ভুক্ত করতে এবং আপনার প্রশ্নটি সংশোধন করার জন্য আপনার পোস্টটি সম্পাদনা করা উচিত । অন্যথায়, আমি এই উত্তরটিকে স্বীকৃত হিসাবে চিহ্নিত করব কারণ এটি বর্তমানে পোস্ট করা প্রশ্নের উত্তর দেয়
রস জ্যাকবস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.