Wireshark – איך להשתמש ב- IO Graphs

מבוא:

רציתי לדבר קצת על יישומים ב- Wireshark שבד"כ לא מכירים, או לפחות לא מכירים את החשיבות שלהם ומה אפשר לעשות איתם. הפעם נדבר על IO Graphs.\, אחד הכלים החשובים ב- Wireshark.

להתחיל לעבוד ב- IO Graphs נכנסים לתפריט Statistics, ומשם לבחור I/O Graphs. נקבל את המסך הבא:

מה שנקבל מכאן זה את גרף התנועה (1), אפשרות להוסיף פילטרים שונים (2) ועוד מעט נראה איך לעשות את זה (3), אפשרות ל- Zoom (4), שינוי מרווחי הדגימה (5) ושינוי גרף ללוגריתמי והצגת זמן דגימה אמיתי (6).

מה שלמשל אנחנו רואים בגרף זה בצד שמאל, עד שניה מספר שבעים – צפייה בסרטון, ובצד ימין, משניה 120 בערך אנחנו רואים פתיחה של 4 עמודי חדשות באינטרנט.

בנוסף, יש לנו אפשרות לבחור את ציר ה- Y: באזור המסומן (2), אפשר לבחור Packets, Bytes אוBits  לשנייה (בנוסף לפרמטרים נוספים שעוד נחזור אליהם), ומיד נראה את המשמעות של הבחירה.

כך למשל, בגרף הקודם, כאשר נעביר ל- Bits/Sec נראה את רוחב הפס הנדרש עבור חיבור זה לאינטרנט:

מה שאנחנו רואים כאן (את הקווים המקווקוים אני הוספתי) זה שרוחב הפס בצפיה בסרט מגיע רגעית לכ- 17Mbps, ובפתיחת עמודי אינטרנט ל- 7-8Mbps ועד 10Mbps, בתלות כמובן בעמוד אותו פתחנו ובכמות התוכן שנמצאת בו.

מה שיותר מעניין בעבודה עם I/O Graphs זה שניתן להוסיף גם פילטרים. בפילטרים שאפשר להוסיף הם ב- Syntax של Display filters, ונותנים לנו הבנה ויכולות Debugging רבות.

בואו נגדיר למשל Display filters שיראו לנו את התנועה בשני הכיוונים עבור הגרף שלמעלה.  כל מה שנצטרך לעשות זה להגדיר פילטר אחד של התנועה הנכנסת אל המחשב הגולש באינטרנט  (ip.dst==10.0.0.4), וגרף שני של התנועה היוצאת ממנו  (ip.src==10.0.0.4):

כאן אנחנו רואים שרוב התנועה היא כמובן ב- Download, דפוס עבודה שנכון לרוב היישומים. באופן זה אנחנו יכולים להגדיר פילטרים לפי כתובות, לפי יישומים (TCP/UDP Port numbers), או לפי כל פרמטר אחר שמעניין אותנו.

יותר מזה, מכיוון שיש פילטרים לכל פרמטר, אפשר למשל להגדיר פילטר של tcp.analysis.duplicate_ack ונוכל לראות איך Duplicate ACKs משפיעים על התנועה (החזרתי את ה- Y-Axis ל- Packets/Sec).

מה שאנחנו רואים זה שבזמן 100 שניות (100 שניות מתחילת ה- Capture) יש כמות גדולה של Duplicate ACKs, ואם ניכנס לנושא הביצועים של TCP/IP (במאמר בהמשך) נראה כי יש לכך השפעה על הביצועים של ה- TCP Connections שאותו אנו בודקים.

הערה: מה שאנחנו רואים כאן זה את כל התנועה מ- 10.0.0.4 ואליו, כאשר על תנועה זאת, בין 10.0.0.4 לעולם יש כמות של Duplicate ACKs. אם רוצים להיות יותר מדויקים צריכים להגדיר פילטר עבור TCP Connection מסויים, ועליו לבדוק אינדיקציות לאיטיות.

וכאשר נעשה Zoom על האזור בו יש Duplicate Acks נוכל לראות ותר פרטים ולהשתמש בהם לאיתור תקלות ו/או תופעות של איטיות.

 

ועכשיו לחלק המעניין. ראינו בתחילת המאמר כי אפשר להגדיר בציר ה- Y גם משתנים נוספים – SUM, COUNT FRAMES, COUNT FIELDS ועוד (להלן בתמונה):

כאן למשל נוכל להגדיר גרף של כמות ה- FRAMES לשנייה, עבור TCP Connection  מסוים, עבור כתובת IP מסוימת וכד', שבהן מופיע שדה מסוים.

אפשר למשל לראות את מספר הקריאות ל- DNS עם IPv4 (A Record) מול IPv6 (AAAARecord):

או מספר אירועי TCP Analysis לפי TCP Connections – ולפי זה לראות אינדיקציות לאיטיות על TCP Connections  שונים:

ואפשר לראות עוד הרבה גרפים מעניינים, ונחזור אליהם במאמרים הבאים על איתור תקלות ב- TCP וברמת האפליקציה.