Professional Documents
Culture Documents
IT005 BaoCaoLab3
IT005 BaoCaoLab3
Lớp: IT005.O12.2
Tên: Đỗ Mai Tường Vy
MSSV: 22521701
GV HDTH: Nguyễn Thanh Nam
1.2 Tiến hành bắt gói tin UDP khi streaming video:
Hình 1.2: Truy cập VLC để xem video từ máy của bạn có IP 192.168.137.38
1.3 Phân tích hoạt động giao thức UDP:
1. Chọn một gói tin UDP, xác định các trường (field) có trong UDP header và giải
thích ý nghĩa của mỗi trường đó?
=>Trả lời:
- Length: 2 bytes
- Checksum: 2 bytes
3. Giá trị của trường Length trong UDP header là độ dài của gì? Chứng minh nhận
định này?
=>Trả lời:
Giá trị của trường Length trong UDP header là độ dài là 12 bytes do trường Length là
tổng độ dài của 8 bytes UDP header cộng với 4 bytes của data (UDP payload)
4. Số bytes lớn nhất mà payload (phần chứa dữ liệu gốc, không tính UDP header và
IP header) của UDP có thể chứa?
=>Trả lời: Số bytes lớn nhất mà payload của UDP có thể chứa là 2^16 –1(do giá trị lưu
trong 16 bit) trừ đi 8 bytes của header, tức là 65535 – 8 = 65527 bytes
5. Giá trị lớn nhất có thể có của port nguồn (Source port)?
=>Trả lời: Giá trị lớn nhất có thể có của port nguồn là 2^16 – 1 = 65535
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.
=>Trả lời: Ta xét cặp gói tin số 144 và 153
- Source port của packet gửi là : 61476
- Destination port của packet gửi là: 65034
- Gói tin phản hồi có giá trị ngược lại của hai port. (Src Port: 65034, Dst Port: 61476)
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 trong
SYN/ACK segment? Làm sao server có thể xác định giá trị đó? Thành phần nào
trong segment cho ta biết segment đó là SYN/ACK segment?
=>Trả lời:
- Sequence number = 0
- ACK = 1
- Server có thể xác định giá trị đó vì: Trong giao thức TCP, trường "ACK" và "seq" trong
một gói tin có vai trò quan trọng trong việc đảm bảo tính toàn vẹn và đúng thứ tự của dữ
liệu trong kết nối. Khi bạn đặt "ACK = 1" và "seq = 0" trong một gói tin TCP, nó có ý
nghĩa sau:
+ACK = 1: Khi trường ACK được thiết lập thành 1, gói tin này là một gói tin
ACKnowledgment, tức là nó được sử dụng để xác nhận việc nhận các gói tin trước đó.
+seq = 0: Trường "seq" thường được sử dụng để chỉ định số thứ tự của dữ liệu được
gửi trong gói tin. Khi "seq = 0," gói tin này xác định rằng nó là một gói tin đầu tiên trong
kết nối hoặc một gói tin được gửi từ một bên khởi tạo kết nối. Trường "seq" với giá trị 0
thường được sử dụng trong quá trình thiết lập kết nối TCP.
Tóm lại, gói tin với "ACK = 1" và "seq = 0" thường đại diện cho một gói tin ACK đầu
tiên trong quá trình thiết lập kết nối TCP, được gửi từ bên khởi tạo kết nối để xác nhận
việc nhận được yêu cầu kết nối ban đầu.
- Các thành phần trong cờ SYN, ACK cho ta thấy hai dòng Acknowledgement và Syn đã
được ‘Set’ với 1 bit ‘1’.
11. Chỉ ra 6 segment đầu tiên mà server gửi cho Client (dựa vào Số thứ tự gói –No) .
Tìm sequence number của 6 segments đầu tiên đó?
=>Trả lời:
6 segment đầu tiên mà Server gửi cho Client là: 241, 243, 424, 428, 431, 437
Sequence number của 6 segment đầu tiên lần lượt là: 1, 104, 504, 4884, 7804, 15104
- 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 (Round Trip Time) cho
6 segments này?
=>Trả lời:
12. Có segment nào được gửi lại hay không? Thông tin nào trong quá trình truyền
tin cho chúng ta biết điều đó?
=>Trả lời:
Dựa vào biểu đồ, ta không tìm thấy sequence number giống nhau được gửi ở 2 mốc thời
gian khác nhau nên không có segment nào được gửi lại trong quá trình truyền tin.
Việc không có segment nào được gửi lại trong quá trình truyền tin có thể do mạng hoạt
động ổn định và không có packet loss, hoặc cơ chế điều khiển congestion hoạt động hiệu
quả, giảm thiểu việc mất gói tin. Tuy nhiên, để xác nhận chắc chắn, chúng ta cần phân
tích thêm dữ liệu truyền tin.