You are on page 1of 9

BÀI TẬP THỰC HÀNH SỐ 5

MÔN HỌC: NHẬP MÔN MẠNG MÁY TÍNH

Lường Tiến Thuận Hải - 19521462


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

2 Phân tích UDP


- Mở file MSSV-rtsp.pcap.

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

1. Sử dụng filter để lọc các gói tin “udp”. Chọn một gói tin UDP, xác định các
trường (field) trong UDP header và ý nghĩa của mỗi field trong đó? Gợi ý, xem lý
thuyết phần User Datagram Protocol.

FIELD : 4

Source port : xác định cổng người gửi

Destination port: xác định cổng nhận thông tin

Length: 16 bit xác định chiều dài toàn bộ datagram: phần header và dữ liệu. chiều
dài 8 bit khi gói tin chỉ có header

Checksum: 16 bit dùng để kiểm tra lỗi của header và dữ liệu


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

Source port number: 2 bytes

Destination port number: 2 bytes

Datagram size(length): 2bytes

Checksum: 2 bytes

3. Giá trị của trường Length là độ dài của thông tin gì? Chứng minh nhận định này?

Xác định độ dài của datagram: header và data, trong trường hợp này length = 1167

4. Số bytes lớn nhất mà payload của UDP có thể chứa (phần dữ liệu gốc, không tính
UDP header và IP header)?

65527 bytes

Gợi ý: Dựa vào kích thước của trường Length trong UDP header và giá trị lớn nhất
của nó.

5. Giá trị lớn nhất có thể có của port nguồn (Source port)?

65535 bytes
6. Tìm và kiểm tra một cặp gói tin sử dụng giao thức UDP 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 này.

Tin gửi đi:

Tin phản hồi:

Nhận xét:

Source port và destination port của 2 gói tin này ngược nhau.

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


- Mở file MSSV-http.pcap

- Gõ “tcp” vào bộ lọc của Wireshark để hiển thị tất cả các gói tin TCP.
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, sinh
viên cần chụp lại màn hình).

7. Tìm địa chỉ IP và TCP port của máy client?

IP:192.168.0.103

TCP port: 43312

8. Tìm địa chỉ IP của server? Kết nối TCP dùng để gửi và nhận các segments sử
dụng port nào?
IP:192.168.0.104
Port:8080

9. TCP SYN segment sử dụng sequence number nào để khởi tạo kết nối TCP giữa
client và server? Thành phần nào trong segment cho ta biết segment đó là TCP

Gợi ý: Tìm field “Flags”

SYN segment?sequnce number = 0

Thành phần cho ta biết đó là TCP

10. Tìm sequence number của gói tin SYN/ACK segment được gửi bởi server đến
client để trả lời cho SYN segment?

Tìm giá trị của Acknowledgement number trong SYN/ACK segment?


Làm sao server thể xác định giá trị đó? Thành phần nào trong segment cho ta biết
segment đó là SYN/ACK segment?

Acknowledgement numbe = 1

Thành phần cho biết đso là SYN/ACK:

Bit của ACK =1 và nit của SYN =1

11. Chỉ ra 6 segments đầu tiên mà server gửi cho client?

- Tìm sequence number của 6 segments đầu tiên đó?

- Xác định 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, bằng cách tính RTT cho 6 segments này.
Có thể lập bảng thống kê và tính giá trị thời gian theo dạng:

stt Ser number Length Thời gian gửi Thời gian RTT (Round
nhận ACK trip time)

8481 4247658 1171 36.430028 36.650447 0.220419000

8484 4248829 1460 36.472014 36.650447 0.178433000

8485 4250289 247 36.472014 36.651.623 0.179609000

8488 4250536 1460 36.514039 36.651623 0.1375840000

8489 4251996 179 36.514039 36.652809 0.138770000

8492 4252175 1460 36.556039 36.652809 0.096770000


12. 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? Gợi ý: thông tin “Win=xxxx” (Windows size)

512

13. Có segment nào được gửi lại hay không?

Gợi ý: Để 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:


Ví dụ về biểu đồ Sequence Number (Stevens).

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. Nếu có 2 chấm
có cùng sequence number được gửi ở 2 thời điểm khác nhau (có 2 điểm nằm
ngang) => Có gói tin được gửi lại.

14. Khôi phục lại video đươc truyền giữa client và server? (Nếu có thể sẽ được điểm
cộng)

You might also like