bthso3 - giao thuc tcp va udp.doc

12
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 quá 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 toá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ủ Chú ý: nếu chúng ta 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 http://gaia.cs.umass.edu/wireshark-labs/alice.txt lưu file vào máy tính. - Truy cập trang http://gaia.cs.umass.edu/wireshark- labs/TCP-wireshark-file1.html 1

Upload: nguyen-thang

Post on 05-Jan-2016

146 views

Category:

Documents


72 download

TRANSCRIPT

Page 1: BTHso3 - Giao thuc  TCP va UDP.doc

BÀI TẬP THỰC HÀNH SỐ 3MÔ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 quá 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 toá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ủChú ý: nếu chúng ta 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 http://gaia.cs.umass.edu/wireshark-labs/alice.txt

và lưu file vào máy tính.

- Truy cập trang http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-

file1.html

1

Page 2: BTHso3 - Giao thuc  TCP va UDP.doc

- 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.

2

Page 3: BTHso3 - Giao thuc  TCP va UDP.doc

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,

chúng ta 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?

-IP : 192.168.1.102

-TCP port: 1161

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

Page 4: BTHso3 - Giao thuc  TCP va UDP.doc

-IP của gaia.cs.umass.edu : 128.119.245.12

-Kết nối TCP dùng để gửi và nhận các segments sử dụng port :80.

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?

- Sequence number : 0

-Thành phần trong segment : Flags: 0x002 (SYN)

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?

- Sequence number của SYNACK : 0

- Giá trị của Acknowledgement : 1

- Thành phần cho ta biết segment đó là SYNACK segment : Flags: 0x012

4

Page 5: BTHso3 - Giao thuc  TCP va UDP.doc

(SYN, ACK)

5. Tìm sequence number của TCP segment có chứa lệnh HTTP POST?

- Sequence number: 164041

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.

5

Page 6: BTHso3 - Giao thuc  TCP va UDP.doc

- Sequence number của 6 segments đầu tiên :1,556,2026,3486,4946,6406.

-Thời gian mỗi segment được gửi và (4,5,7,8,10,11) và ACK(6,9,12,14,15,16)

và RTT:

Thời gian gửi Thời gian nhận ACK RTT

Segment 1 0.026477 0.053937 0.02746

Segment 2 0.041737 0.077294 0.035557

Segment 3 0.054690 0.124085 0.070059

Segment 4 0.054690 0.169118 0.11443

Segment 5 0.077405 0.217299 0.13989

Segment 6 0.078157 0.267802 0.18964

Công thức tính EstimatedRTT :

EstimatedRTT =0.875* EstimatedRTT segment 1 + 0.125*(Thời gian nhận

ACK – Thời gian gửi )

- EstimatedRTT segment 1 = RTT segment 1 = 0.02746(s)

- EstimatedRTT segment 2 = 0.875* 0.02746 + 0.125*0.035557=0.0285 (s)

6

Page 7: BTHso3 - Giao thuc  TCP va UDP.doc

- EstimatedRTT segment 3 = 0.875 * 0.0285 + 0.125 * 0.070059 = 0.0337(s)

- EstimatedRTT segment 4 = 0.875 * 0.0337+ 0.125 * 0.11443 = 0.0438(s)

- EstimatedRTT segment 5 = 0.875 * 0.0438 + 0.125 * 0.13989 = 0.0558(s)

- EstimatedRTT segment 6 = 0.875 * 0.0558 + 0.125 * 0.18964 = 0.0725(s)

7. Tìm độ dài của 6 segment đầu tiên?

-Độ dài segment 1 : 565 bytes

-Độ dài 5 segment còn lại :1460 bytes

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?

-Lượng buffer còn trống nhỏ nhất : 5840 bytes

9. Có segment nào được gửi lại hay không? Thông tin nào trong file trace cho

chúng ta biết điều đó?

7

Page 8: BTHso3 - Giao thuc  TCP va UDP.doc

10. Lương dữ liệu mà bên nhận thường acknowledge trong một ACK? 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.

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

toá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:

8

Page 9: BTHso3 - Giao thuc  TCP va UDP.doc

- 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:

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à chúng ta có được trong trường hợp chúng

ta tự upload file alice.txt

5 Bắt gói và phân tích UDP- 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ì chúng ta cũng có thể sử dụng file htp-

ethereal-trace-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?

-Port nguồn : 4334

-Port đích : 161

9

Page 10: BTHso3 - Giao thuc  TCP va UDP.doc

-Checksum : 0x65f8

- Length : 58 bytes

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, chúng ta 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.

10