You are on page 1of 10

Machine Translated by Google

Phòng thí nghiệm

Wireshark: Bắt đầu v7.0

Bổ sung cho Mạng máy tính: Cách tiếp cận từ trên xuống,
tái bản lần thứ 7 , JF Kurose và KW Ross

“Nói cho tôi biết và tôi sẽ quên. Chỉ cho tôi và tôi nhớ. Hãy để tôi tham
gia và tôi hiểu.” Tục ngữ Trung Quốc

© 2005-2016, JF Kurose và KW Ross, Bảo lưu mọi quyền

Sự hiểu biết của một người về các giao thức mạng thường có thể được đào sâu hơn rất nhiều bằng
cách “xem các giao thức đang hoạt động” và bằng cách “nghiên cứu các giao thức” – quan sát chuỗi các
thông điệp được trao đổi giữa hai thực thể giao thức, đi sâu vào chi tiết về hoạt động của giao
thức và khiến các giao thức thực hiện những hành động nhất định và sau đó quan sát những hành động
này và hậu quả của chúng. Điều này có thể được thực hiện trong các tình huống mô phỏng hoặc
trong môi trường mạng “thực” như Internet. Trong phòng thí nghiệm của Wireshark mà bạn sẽ thực hiện
trong khóa học này, bạn sẽ chạy nhiều ứng dụng mạng khác nhau trong các tình huống khác nhau bằng
máy tính của riêng mình (hoặc bạn có thể mượn bạn bè; hãy cho tôi biết nếu bạn không có quyền truy
cập vào máy tính ở đó). bạn có thể cài đặt/chạy Wireshark). Bạn sẽ quan sát các giao thức mạng
trong máy tính của mình “đang hoạt động”, tương tác và trao đổi tin nhắn với các thực thể giao thức
đang thực thi ở nơi khác trên Internet. Vì vậy, bạn và máy tính của bạn sẽ là một phần không thể
thiếu trong các phòng thí nghiệm “sống” này. Bạn sẽ quan sát và học hỏi bằng cách thực hiện.

Trong phòng thí nghiệm Wireshark đầu tiên này, bạn sẽ làm quen với Wireshark và thực hiện một số
thao tác chụp và quan sát gói đơn giản.

Công cụ cơ bản để quan sát các thông điệp được trao đổi giữa các thực thể giao thức đang thực thi
được gọi là packet sniffer. Đúng như tên gọi, trình thám thính gói sẽ ghi lại các tin nhắn
(“đánh hơi”) được gửi/nhận từ/bởi máy tính của bạn; nó cũng thường sẽ lưu trữ và/hoặc hiển thị nội
dung của các trường giao thức khác nhau trong các tin nhắn được ghi lại này. Bản thân gói sniffer
là thụ động. Nó quan sát các tin nhắn được gửi và nhận bởi các ứng dụng và giao thức chạy trên máy
tính của bạn, nhưng không bao giờ tự gửi các gói. Tương tự, các gói tin nhận được không bao giờ
được đánh địa chỉ một cách rõ ràng tới gói sniffer. Thay vào đó, trình thám thính gói sẽ nhận
bản sao của các gói được gửi/nhận từ/bởi ứng dụng và giao thức thực thi trên máy của bạn.

Hình 1 cho thấy cấu trúc của một gói sniffer. Ở bên phải Hình 1 là các giao thức (trong trường hợp
này là giao thức Internet) và các ứng dụng (chẳng hạn như trình duyệt web hoặc máy khách ftp)
thường chạy trên máy tính của bạn. Trình nghe lén gói, được hiển thị trong hình chữ nhật nét
đứt trong Hình 1, là một phần bổ sung cho phần mềm thông thường trong máy tính của bạn và bao gồm
Machine Translated by Google

của hai phần. Thư viện chụp gói nhận một bản sao của mọi khung lớp liên kết được gửi từ hoặc nhận bởi
máy tính của bạn. Nhớ lại cuộc thảo luận ở phần 1.5 trong văn bản (Hình 1.241 ) rằng các tin nhắn được

trao đổi bởi các giao thức lớp cao hơn như HTTP, FTP, TCP, UDP, DNS hoặc IP cuối cùng đều được gói gọn
trong các khung lớp liên kết được truyền qua phương tiện vật lý chẳng hạn như cáp Ethernet. Trong Hình

1, phương tiện vật lý giả định là Ethernet và do đó tất cả các giao thức lớp trên cuối cùng được
gói gọn trong khung Ethernet. Do đó, việc nắm bắt tất cả các khung của lớp liên kết sẽ

cung cấp cho bạn tất cả các tin nhắn được gửi/nhận từ/bởi tất cả các giao thức và ứng dụng đang thực
thi trong máy tính của bạn.

Lính bắn tỉa

máy ứng dụng (ví dụ: trình duyệt


ứng dụng
phân tích gói www, ứng dụng khách ftp)

hệ điều
hành Vận chuyển (TCP/UDP)

gói Mạng (IP)


bản sao của tất cả các
chiếm lấy Liên kết (Ethernet)
khung Ethernet được gửi/nhận
(pcap)
Thuộc vật chất

đến/từ mạng đến/từ mạng

Hình 1: Cấu trúc của packet sniffer

Thành phần thứ hai của gói sniffer là bộ phân tích gói, hiển thị nội dung của tất cả các trường
trong thông báo giao thức. Để làm được điều đó, bộ phân tích gói phải “hiểu” cấu trúc của tất cả

các thông điệp được trao đổi bởi các giao thức. Ví dụ: giả sử chúng ta quan tâm đến việc hiển thị
các trường khác nhau trong các thông báo được trao đổi bởi giao thức HTTP trong Hình 1. Bộ phân tích

gói hiểu định dạng của khung Ethernet và do đó có thể xác định gói dữ liệu IP trong khung
Ethernet. Nó cũng hiểu định dạng gói dữ liệu IP, do đó nó có thể trích xuất phân đoạn TCP trong gói dữ

liệu IP.
Cuối cùng, nó hiểu cấu trúc phân đoạn TCP nên có thể trích xuất thông điệp HTTP có trong phân đoạn

TCP. Cuối cùng, nó hiểu giao thức HTTP và do đó, chẳng hạn, biết rằng byte đầu tiên của thông báo
HTTP sẽ chứa chuỗi “GET”,

“POST” hoặc “HEAD” như được hiển thị trong Hình 2.8 trong văn bản.

Chúng tôi sẽ sử dụng trình thám thính gói Wireshark [http://www.wireshark.org/] cho các phòng thí nghiệm

này, cho phép chúng tôi hiển thị nội dung của các tin nhắn được gửi/nhận từ/bởi các giao thức ở các
cấp độ khác nhau của ngăn xếp giao thức. (Về mặt kỹ thuật, Wireshark là một công cụ phân tích

gói sử dụng thư viện chụp gói trong máy tính của bạn). Wireshark là công cụ phân tích giao thức mạng
miễn phí chạy trên máy tính Windows, Mac và Linux/Unix. Đây là một máy phân tích gói lý tưởng cho

các phòng thí nghiệm của chúng tôi – nó ổn định, có cơ sở người dùng lớn và hỗ trợ được ghi chép
đầy đủ bao gồm hướng dẫn sử dụng (http://www.wireshark.org/docs/wsug_html_chunked/),

1
Các tham chiếu đến các số liệu và phần dành cho ấn bản thứ 7 của văn bản của chúng tôi, Mạng máy tính, Phương pháp

tiếp cận từ trên xuống, tái bản lần thứ 7 , JF Kurose và KW Ross, Addison-Wesley/Pearson, 2016.
Machine Translated by Google

trang man (http://www.wireshark.org/docs/man-pages/) và Câu hỏi thường gặp chi tiết (http://

www.wireshark.org/faq.html), chức năng phong phú bao gồm khả năng phân tích hàng trăm các giao thức

và giao diện người dùng được thiết kế tốt. Nó hoạt động trong các máy tính sử dụng Ethernet,

nối tiếp (PPP và SLIP), mạng LAN không dây 802.11 và nhiều công nghệ lớp liên kết khác (nếu hệ điều hành

mà nó đang chạy cho phép Wireshark làm như vậy).

Bắt Wireshark

Để chạy Wireshark, bạn cần có quyền truy cập vào máy tính hỗ trợ cả Wireshark và thư viện chụp gói

libpcap hoặc WinPCap . Phần mềm libpcap sẽ được cài đặt cho bạn, nếu nó chưa được cài đặt trong hệ điều

hành của bạn, khi bạn cài đặt Wireshark. Xem http://www.wireshark.org/download.html để biết danh sách

các hệ điều hành được hỗ trợ và các trang tải xuống

Tải và cài đặt phần mềm Wireshark:

• Truy cập http://www.wireshark.org/download.html rồi tải xuống và cài đặt bản nhị phân

Wireshark cho máy tính của bạn.

Câu hỏi thường gặp về Wireshark có một số gợi ý hữu ích và các mẩu thông tin thú vị, đặc biệt nếu bạn

gặp khó khăn khi cài đặt hoặc chạy Wireshark.

Chạy Wireshark

Khi chạy chương trình Wireshark, bạn sẽ thấy màn hình khởi động trông giống như màn hình bên dưới.

Các phiên bản khác nhau của Wireshark sẽ có màn hình khởi động khác nhau – vì vậy đừng lo lắng nếu màn

hình của bạn trông không giống hệt màn hình bên dưới! Tài liệu của Wireshark nêu rõ “Vì Wireshark

chạy trên nhiều nền tảng khác nhau với nhiều trình quản lý cửa sổ khác nhau, áp dụng các kiểu

khác nhau và có các phiên bản khác nhau của bộ công cụ GUI cơ bản được sử dụng, màn hình của bạn có thể

trông khác với ảnh chụp màn hình được cung cấp. Nhưng vì không có sự khác biệt thực sự về chức

năng nên những ảnh chụp màn hình này vẫn có thể hiểu được.” Nói hay lắm.
Machine Translated by Google

Hình 2: Màn hình Wireshark ban đầu

Không có nhiều điều thú vị trên màn hình này. Nhưng lưu ý rằng trong phần Capture,
có một danh sách được gọi là giao diện. Máy tính mà chúng tôi đang chụp những ảnh
chụp màn hình này chỉ có một giao diện thực – “Wi-Fi en0”, là giao diện để truy cập
Wi-Fi. Tất cả các gói đến/từ máy tính này sẽ đi qua giao diện Wi-Fi, vì vậy đây là nơi
chúng tôi muốn chụp các gói. Trên máy Mac, nhấp đúp vào giao diện này (hoặc
trên một máy tính khác, tìm giao diện trên trang khởi động mà qua đó bạn sẽ kết
nối Internet, ví dụ: hầu hết có thể là giao diện WiFi hoặc Ethernet và chọn giao diện đó.

Hãy cùng Wireshark đi chơi một vòng! Nếu bạn nhấp vào một trong các giao diện này để
bắt đầu chụp gói (tức là để Wireshark bắt đầu chụp tất cả các gói được gửi đến/
từ giao diện đó), một màn hình giống như màn hình bên dưới sẽ hiển thị, hiển thị
thông tin về các gói được bắt. Khi bạn bắt đầu chụp gói, bạn có thể dừng nó bằng
cách sử dụng menu kéo xuống Chụp và chọn Dừng.
Machine Translated by Google

yêu cầu

thực đơn

đặc điểm kỹ thuật

bộ lọc hiển thị

danh sách của

bị bắt
gói

chi tiết của

tiêu đề
gói
đã chọn

nội dung gói


trong hệ thập lục

phân và ASCII

Hình 3: Giao diện người dùng đồ họa của Wireshark, trong quá trình thu thập và phân tích gói

Điều này có vẻ thú vị hơn! Giao diện Wireshark có năm thành phần chính:
• Các menu lệnh là các menu kéo xuống tiêu chuẩn nằm ở phía trên cùng của
cửa sổ. Điều chúng tôi quan tâm bây giờ là các menu Tệp và Chụp. Menu Tệp
cho phép bạn lưu dữ liệu gói đã chụp hoặc mở tệp chứa dữ liệu gói đã chụp
trước đó và thoát khỏi ứng dụng Wireshark. Menu Capture cho phép bạn bắt
đầu chụp gói.
Machine Translated by Google

• Cửa sổ liệt kê gói hiển thị tóm tắt một dòng cho mỗi gói
đã được bắt, bao gồm số gói (do Wireshark chỉ định; đây không phải là số gói có
trong tiêu đề của bất kỳ giao thức nào), thời điểm gói được bắt, địa chỉ nguồn và
đích của gói, loại giao thức và thông tin cụ thể về giao thức được chứa trong gói.
Danh sách gói có thể được sắp xếp theo bất kỳ danh mục nào bằng cách nhấp vào tên
cột. Trường loại giao thức liệt kê giao thức cấp cao nhất đã gửi hoặc nhận gói này, tức
là giao thức là nguồn hoặc đích cuối cùng cho gói này.

• Cửa sổ chi tiết tiêu đề gói cung cấp thông tin chi tiết về gói được chọn (đánh dấu)
trong cửa sổ danh sách gói. (Để chọn một gói trong cửa sổ danh sách gói, đặt con
trỏ lên phần tóm tắt một dòng của gói trong cửa sổ danh sách gói và nhấp bằng
nút chuột trái.). Những chi tiết này bao gồm thông tin về khung Ethernet (giả
sử gói được gửi/nhận qua giao diện Ethernet) và gói dữ liệu IP có chứa gói
này. Số lượng chi tiết Ethernet và lớp IP được hiển thị có thể được mở rộng
hoặc giảm thiểu bằng cách nhấp vào hộp cộng trừ ở bên trái của khung Ethernet hoặc
dòng gói dữ liệu IP trong cửa sổ chi tiết gói. Nếu gói được truyền qua TCP hoặc UDP,
chi tiết TCP hoặc UDP cũng sẽ được hiển thị, có thể được mở rộng hoặc thu nhỏ tương
tự. Cuối cùng, thông tin chi tiết về giao thức cấp cao nhất đã gửi hoặc nhận gói này
cũng được cung cấp.

• Cửa sổ nội dung gói hiển thị toàn bộ nội dung của khung đã chụp, ở cả định dạng ASCII
và thập lục phân.

• Phía trên cùng của giao diện đồ họa người dùng Wireshark là trường bộ lọc hiển thị gói,
trong đó có thể nhập tên giao thức hoặc thông tin khác để lọc thông tin được hiển
thị trong cửa sổ danh sách gói (và do đó, tiêu đề gói và cửa sổ nội dung gói). Trong
ví dụ bên dưới, chúng tôi sẽ sử dụng trường bộ lọc hiển thị gói để có các gói ẩn
(không hiển thị) của Wireshark ngoại trừ những gói tương ứng với thông báo HTTP.

Dùng Wireshark để chạy thử

Cách tốt nhất để tìm hiểu về bất kỳ phần mềm mới nào là dùng thử! Chúng tôi giả định rằng máy
tính của bạn được kết nối với Internet thông qua giao diện Ethernet có dây. Thật vậy,
tôi khuyên bạn nên thực hiện bài thí nghiệm đầu tiên này trên máy tính có kết nối Ethernet có
dây, thay vì chỉ kết nối không dây. Làm như sau

1. Khởi động trình duyệt web yêu thích của bạn, trình duyệt này sẽ hiển thị trang chủ đã chọn của bạn.

2. Khởi động phần mềm Wireshark. Ban đầu bạn sẽ thấy một cửa sổ tương tự như cửa sổ được
hiển thị trong Hình 2. Wireshark vẫn chưa bắt đầu thu thập các gói tin.

3. Để bắt đầu chụp gói, hãy chọn menu kéo xuống Chụp và chọn Giao diện.
Điều này sẽ làm cho cửa sổ “Wireshark: Capture Interfaces” được hiển thị, như trong
Hình 4.
Machine Translated by Google

Hình 4: Cửa sổ giao diện chụp Wireshark

4. Bạn sẽ thấy danh sách các giao diện trên máy tính của mình cũng như số lượng

các gói đã được quan sát trên giao diện đó cho đến nay. Bấm vào Bắt đầu cho giao diện mà bạn

muốn bắt đầu chụp gói (trong trường hợp này là Kết nối mạng Gigabit). Việc chụp gói bây

giờ sẽ bắt đầu - Wireshark hiện đang chụp tất cả các gói được gửi/nhận từ/bởi máy tính

của bạn!

5. Khi bạn bắt đầu chụp gói, một cửa sổ tương tự như cửa sổ trong Hình 3 sẽ xuất hiện. Cửa sổ này

hiển thị các gói đang được bắt. Bằng cách chọn Chụp

kéo xuống và chọn Stop, bạn có thể dừng việc bắt gói tin. Nhưng đừng dừng việc chụp gói. Trước

tiên hãy nắm bắt một số gói thú vị. Để làm như vậy, chúng tôi sẽ

cần tạo ra một số lưu lượng mạng. Hãy làm như vậy bằng cách sử dụng trình duyệt web, trình

duyệt này sẽ sử dụng giao thức HTTP mà chúng ta sẽ nghiên cứu chi tiết trong lớp để tải
xuống nội dung từ một trang web.

6. Trong khi Wireshark đang chạy, hãy nhập URL:

http://gaia.cs.umass.edu/wireshark-labs/INTRO-wireshark-file1.html

và hiển thị trang đó trong trình duyệt của bạn. Để hiển thị trang này, trình duyệt của bạn sẽ

liên hệ với máy chủ HTTP tại gaia.cs.umass.edu và trao đổi thông báo HTTP với máy chủ để tải

xuống trang này, như đã thảo luận trong phần 2.2 của văn bản. Các khung Ethernet chứa các

thông báo HTTP này (cũng như tất cả các khung khác đi qua bộ điều hợp Ethernet của bạn) sẽ được

Wireshark ghi lại.

7. Sau khi trình duyệt của bạn hiển thị trang INTRO-wireshark-file1.html (đó là một dòng chúc

mừng đơn giản), hãy dừng việc chụp gói Wireshark bằng cách chọn dừng trong cửa sổ chụp

Wireshark. Cửa sổ Wireshark chính bây giờ trông giống như Hình 3. Bây giờ bạn có dữ liệu gói

trực tiếp chứa tất cả các thông báo giao thức được trao đổi giữa máy tính của bạn và các thực

thể mạng khác! Thông báo HTTP trao đổi với máy chủ web gaia.cs.umass.edu sẽ xuất hiện ở đâu

đó trong danh sách các gói được ghi lại. Nhưng cũng sẽ có nhiều loại gói khác được hiển thị

(ví dụ: xem nhiều loại giao thức khác nhau được hiển thị trong cột Giao thức trong Hình 3). Mặc

dù hành động duy nhất bạn thực hiện là tải xuống một trang web, nhưng rõ ràng có nhiều giao thức

khác đang chạy trên máy tính của bạn mà người dùng không thể nhìn thấy. Chúng ta sẽ tìm hiểu

nhiều hơn về các giao thức này khi chúng ta đọc qua văn bản! Hiện tại, bạn chỉ nên lưu ý rằng

thường có nhiều điều đang diễn ra hơn là “gặp mắt”!


Machine Translated by Google

8. Nhập “http” (không có dấu ngoặc kép và viết thường - tất cả tên giao thức đều viết thường
trong Wireshark) vào cửa sổ thông số bộ lọc hiển thị ở đầu cửa sổ Wireshark chính. Sau đó
chọn Áp dụng (ở bên phải nơi bạn đã nhập “http”). Điều này sẽ khiến chỉ có thông báo HTTP
được hiển thị trong cửa sổ danh sách gói.

9. Tìm thông báo HTTP GET được gửi từ máy tính của bạn tới
Máy chủ HTTP gaia.cs.umass.edu. (Hãy tìm thông báo HTTP GET trong phần “danh sách các gói
đã bắt” của cửa sổ Wireshark (xem Hình 3) hiển thị “GET” theo sau là URL gaia.cs.umass.edu
mà bạn đã nhập. Khi bạn chọn HTTP Thông báo GET, khung Ethernet, datagram IP, phân
đoạn TCP và thông tin tiêu đề thông báo HTTP sẽ được hiển thị trong cửa sổ tiêu đề gói2 .
Bằng cách nhấp vào '+' và '-' đầu mũi tên chỉ sang phải và chỉ xuống

ở phía bên trái của cửa sổ chi tiết gói, giảm thiểu lượng thông tin Frame, Ethernet,
Internet Protocol và Transmission Control Protocol được hiển thị. Tối đa hóa lượng

thông tin hiển thị về giao thức HTTP.


Màn hình Wireshark của bạn bây giờ trông gần giống như trong Hình 5. (Đặc biệt, lưu ý rằng
lượng thông tin giao thức được giảm thiểu cho tất cả các giao thức ngoại trừ HTTP và lượng
thông tin giao thức tối đa cho HTTP trong cửa sổ tiêu đề gói).

10. Thoát Wireshark

Chúc mừng! Bây giờ bạn đã hoàn thành bài thí nghiệm đầu tiên.

2
Hãy nhớ lại rằng thông báo HTTP GET được gửi đến máy chủ web gaia.cs.umass.edu được chứa trong
một phân đoạn TCP, được chứa (được đóng gói) trong một gói dữ liệu IP, được đóng gói trong khung
Ethernet. Nếu quá trình đóng gói này chưa rõ ràng, hãy xem lại phần 1.5 trong văn bản
Machine Translated by Google

Hình 5: Cửa sổ Wireshark sau bước 9


Machine Translated by Google

Đưa cái gì

Mục tiêu của phòng thí nghiệm đầu tiên này chủ yếu là giới thiệu cho bạn về Wireshark. Các câu hỏi

sau đây sẽ chứng minh rằng bạn đã có thể thiết lập và chạy Wireshark cũng như đã khám phá một số khả

năng của nó. Trả lời các câu hỏi sau, dựa trên thử nghiệm Wireshark của bạn:

1. Liệt kê 3 giao thức khác nhau xuất hiện trong cột giao thức ở phần chưa lọc

cửa sổ liệt kê gói ở bước 7 ở trên.

2. Mất bao lâu kể từ khi gửi tin nhắn HTTP GET cho đến khi nhận được phản hồi HTTP OK? (Theo mặc định,

giá trị của cột Thời gian trong cửa sổ liệt kê gói là khoảng thời gian tính bằng giây kể từ

khi việc theo dõi Wireshark bắt đầu.

Để hiển thị trường Thời gian ở định dạng thời gian trong ngày, hãy chọn menu thả xuống

Wireshark View , sau đó chọn Định dạng hiển thị thời gian, sau đó chọn Thời gian trong ngày.)

3. Địa chỉ Internet của gaia.cs.umass.edu (còn được gọi là www-net.cs.umass.edu) là gì? Địa

chỉ Internet của máy tính của bạn là gì?

4. In hai thông báo HTTP (GET và OK) được đề cập trong câu hỏi 2 ở trên. Để làm như vậy, hãy chọn
In từ menu lệnh Tệp Wireshark và chọn

Các nút xuyên tâm “Chỉ gói đã chọn” và “In như được hiển thị” , sau đó nhấp vào OK.

You might also like