Tải bản đầy đủ (.pdf) (6 trang)

Thực hành mạng máy tính TCP và UDP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (266.23 KB, 6 trang )

BÀI TẬP THỰC HÀNH SỐ 3
MÔN HỌC: NHẬP MÔN MẠNG MÁY TÍNH

TCP VÀ UDP
1 Mục tiêu
-

Tìm hiểu về hành vi của TCP và UDP.

-

Phân tích q trình gửi và nhận một file 150KB từ máy khách lên máy chủ.

-

Tìm hiểu việc TCP sử dụng sequence number và acknowledgement number để có
thể truyền dữ liệu tin cậy.

-

Phân tích thuật tốn điều khiển tắc nghẽn và điều khiển luồng.

2 Bắt gói tin trong quá trình gửi file sử dụng TCP lên máy chủ
Ghi chú rằng nếu bạn không thể chạy Wireshark trên Internet thật sự thì có thể mở file
tcp-ethereal-trace-1 có sẵn trong thư mục wireshark-traces.
Thực hiện các bước sau khi có kết nối Internet:
-

Mở trình duyệt. Truy cập trang và
lưu file vào máy tính.


-

Truy cập trang />
CuuDuongThanCong.com

/>

-

Sử dụng nút Browse trong trang web để chọn file alice.txt vừa download. Đừng
nhấn nút Upload alice.txt file

-

Mở Wireshark và bắt đầu bắt gói (Capture -> Start).

-

Quay lại trình duyệt, nhấn nút Upload alice.txt file để upload file lên server. Khi
file đã được upload, một tin nhắn chúc mừng sẽ xuất hiện trên trình duyệt.

-

Ngưng bắt gói

3 Phân tích hành vi TCP
-

Gõ “tcp” vào bộ lọc của Wireshark để hiển thị tất cả các gói tin TCP.


CuuDuongThanCong.com

/>

Quan sát các gói tin và trả lời các câu hỏi sau: (để có minh chứng cho câu trả lời, các
bạn cần chụp lại màn hình hoặc dùng chức năng “Print” của Wireshark: File -> Print
Chọn Selected packet only và Packet summary line).
1. Tìm địa chỉ IP và TCP port của máy khách gửi file cho gaia.cs.umass.edu?
2. Tìm địa chỉ IP của gaia.cs.umass.edu? Kết nối TCP dùng để gửi và nhận các
segments sử dụng port nào?
3. TCP SYN segment sử dụng sequence number nào để khởi tạo kết nối TCP giữa
máy khách và gaia.cs.umass.edu? Thành phần nào trong segment cho ta biết
segment đó là TCP SYN segment?

CuuDuongThanCong.com

/>

4. Tìm sequence number của SYNACK segment được gửi bởi gaia.cs.umass.edu đến
máy khách để trả lời cho SYN segment? Tìm giá trị của Acknowledgement trong
SYNACK segment? Làm sao gaia.cs.umass.edu có thể xác định giá trị đó? Thành
phần nào trong segment cho ta biết segment đó là SYNACK segment?
5. Tìm sequence number của TCP segment có chứa lệnh HTTP POST?
6. Giả thiết rằng TCP segment chứa lệnh HTTP POST là segment đầu tiên của kết
nối TCP. Tìm sequence number của 6 segments đầu tiên (tính cả segment có chứa
HTTP POST)? Thời gian mà mỗi segment được gửi? Thời gian ACK cho mỗi
segment được nhận? Đưa ra sự khác nhau giữa thời gian mà mỗi segment được
gửi và thời gian ACK cho mỗi segment được nhận, tính RTT cho 6 segments?
Tính EstimatedRTT sau khi nhận mỗi ACK? Giả sử EstimatedRTT bằng với RTT
cho segment đầu tiên, sau đó tính EstimatedRTT với cơng thức trong giáo trình

trang 239 cho các segment tiếp theo.
7. Tìm độ dài của 6 segment đầu tiên?
8. Tìm lượng buffer cịn trống nhỏ nhất mà bên nhận thơng báo cho bên gửi trong
suốt file trace?
9. Có segment nào được gửi lại hay không? Thông tin nào trong file trace cho bạn
biết điều đó?
10. Lượng dữ liệu mà bên nhận thường nhận trong một ACK là bao nhiêu? Xác định
các trường hợp mà bên nhận ACK cho mỗi segment được nhận (bảng 3.2 trong
trang 247 của giáo trình)
11. Thơng lượng (throughput – byte/s) của kết nối TCP? Giải thích cách tính thơng
lương.

CuuDuongThanCong.com

/>

4 Điều khiển tắc nghẽn
Để kiểm tra lượng dữ liệu được truyền trong một đơn vị thời gian, thay vì phải tự tính
tốn trực tiếp từ dữ liệu của các gói tin, ta sử dụng một tính năng của Wireshark – Time –
Sequence – Graph (Steven)
-

Chọn một segment bất kỳ trong phần danh sách các gói tin. Chọn Statistics ->
TCP Stream Graph -> Time-Sequence-Graph(Steven). Ta sẽ thấy một biểu đồ
tương tự như sau:

-

Mỗi chấm trong biểu đồ tượng trưng cho một TCP segment có sequence number
tương ứng với thời gian segment đó được gửi đi. Lưu ý là một chồng các dấu

chấm tương ứng với một chuỗi các gói tin được gửi liên tiếp nhau.

-

Trả lời các câu hỏi sau:

CuuDuongThanCong.com

/>

12. Sử dụng Time-Sequence-Graph để quan sát sequence number tương ứng với thời
gian segment được gửi. Xác định giai đoạn Slowstart bắt đầu và kết thúc, đâu là
giai đoạn tránh tắc nghẽn (Congestion Avoidance)? Đưa ra nhận xét, so sánh với
hành vi của TCP đã học trong giáo trình.
13. Trả lời tương tự đối với file trace mà các bạn có được trong trường hợp các bạn tự
upload file alice.txt

Bắt gói và phân tích UDP

5
-

Bật Wireshark, bắt đầu bắt gói. Thơng thường sẽ xuất hiện một số gói tin UDP
như SNMP sẽ xuất hiện trên danh sách các gói tin.

-

Ngưng bắt gói, lọc các gói tin UDP để Wireshark chỉ hiển thị các gói tin UDP.
Nếu khơng có gói tin UDP nào thì các bạn cũng có thể sử dụng file htp-etherealtrace-5 đã được cung cấp trong thư mục wireshark-traces.


-

Trả lời các câu hỏi sau:

14. Chọn một gói tin UDP, xác định các trường (field) trong UDP header?
15. Qua thông tin hiển thị của Wireshark, xác định độ dài (tính theo byte) của mỗi
trường trong UDP header?
16. Giá trị của trường Length là độ dài của cái gì? Chứng minh?
17. Số bytes lớn nhất mà payload của UDP có thể chứa?
18. Giá trị lớn nhất có thể có của port nguồn?
19. Xác định protocol number của UDP (cả hệ 10 lẫn hệ 16)? Để trả lời câu hỏi này,
các bạn cần phải xem trường Protocol của IP header.
20. Kiểm tra một cặp gói tin gồm: gói tin do máy mình gửi và gói tin phản hồi của gói
tin đó. Miêu tả mối quan hệ về port number của 2 gói tin.

CuuDuongThanCong.com

/>


×