Router R có MTU là 2000 bytes. Một IP Datagram kích thước 6000 bytes được R phân mảnh. Phát biểu nào sau đây là đúng?
Trả lời:
Đáp án đúng: B
Câu hỏi này kiểm tra hiểu biết về cơ chế phân mảnh (fragmentation) trong giao thức IP, đặc biệt là cách thức phân chia một gói tin lớn thành nhiều gói tin nhỏ hơn khi gặp giới hạn về kích thước đơn vị truyền tối đa (MTU) của một router, cũng như ý nghĩa của cờ Fragment flag và trường Fragment Offset trong IP header.
Đầu tiên, ta cần xác định số lượng gói tin được tạo ra sau khi phân mảnh. IP Datagram ban đầu có kích thước 6000 bytes. Router R có MTU là 2000 bytes. Tuy nhiên, cần lưu ý rằng mỗi gói tin sau khi phân mảnh sẽ bao gồm cả phần header IP (thường là 20 bytes nếu không có tùy chọn) và phần dữ liệu. Do đó, kích thước tối đa cho phần dữ liệu của mỗi gói tin phân mảnh sẽ là MTU - kích thước IP header. Giả sử IP header là 20 bytes, kích thước dữ liệu tối đa cho mỗi gói là 2000 - 20 = 1980 bytes.
Số lượng gói tin phân mảnh được tính bằng cách lấy kích thước tổng của gói tin gốc chia cho kích thước dữ liệu tối đa của mỗi gói, làm tròn lên. Tuy nhiên, một điểm quan trọng là các gói tin phân mảnh cần phải có kích thước dữ liệu là bội số của 8 bytes để trường Fragment Offset hoạt động chính xác. Do đó, kích thước dữ liệu thực tế của mỗi gói sẽ được điều chỉnh để thỏa mãn điều kiện này.
Trong trường hợp này, với MTU là 2000 bytes và gói tin gốc là 6000 bytes. Router sẽ cố gắng tạo các gói tin có kích thước tối đa có thể, nhưng phải nhỏ hơn hoặc bằng 2000 bytes và là bội số của 8 bytes cho phần dữ liệu (sau khi trừ header IP). Kích thước dữ liệu tối đa cho mỗi gói sẽ là 1980 bytes, và đây là bội số của 8. Số gói cần thiết sẽ là 6000 / 1980 làm tròn lên.
6000 / 1980 ≈ 3.03. Làm tròn lên ta được 4 gói tin.
- Gói 1: Kích thước dữ liệu 1980 bytes. Fragment Offset = 0. Fragment Flag = 1.
- Gói 2: Kích thước dữ liệu 1980 bytes. Fragment Offset = 1980 / 8 = 247.5 (làm tròn xuống vì offset là số block 8 byte, nên sẽ là 1976 bytes dữ liệu, offset = 1976/8 = 247). Fragment Flag = 1.
- Gói 3: Kích thước dữ liệu 1980 bytes. Fragment Offset = (1980 + 1976) / 8 = (3956)/8 = 494.5 (làm tròn xuống, nên sẽ là 1976 bytes dữ liệu, offset = 1976/8 = 247 + 247 = 494). Fragment Flag = 1.
- Gói 4: Kích thước dữ liệu còn lại. Tổng kích thước 6000 bytes. Đã dùng 20 (header) + 1980 + 1976 + 1976 = 5952 bytes. Còn lại 6000 - 5952 = 48 bytes. Fragment Offset = (1980 + 1976 + 1976) / 8 = 5932 / 8 = 741.5 (làm tròn xuống, nên sẽ là 32 bytes dữ liệu, offset = 32/8 = 4). Fragment Flag = 0 (vì đây là gói cuối cùng).
Tuy nhiên, cách tính toán trên có thể hơi phức tạp và không phản ánh đúng cách thức mà router thực hiện. Một cách đơn giản hơn là xem xét kích thước dữ liệu có thể chứa trong MTU. MTU là 2000 bytes. IP Header là 20 bytes. Vậy kích thước dữ liệu tối đa là 1980 bytes. Số lượng gói tin sẽ là ceil(6000 / 1980) = 4 gói.
- Gói 1: Dữ liệu 1980 bytes. Fragment Offset = 0. Fragment flag = 1.
- Gói 2: Dữ liệu 1980 bytes. Fragment Offset = 1980 / 8 = 247.5 (làm tròn xuống 1976 bytes dữ liệu). Fragment Offset = 1976 / 8 = 247. Fragment flag = 1.
- Gói 3: Dữ liệu 1980 bytes. Fragment Offset = (1976 + 1976) / 8 = 3952 / 8 = 494. Fragment flag = 1.
- Gói 4: Dữ liệu còn lại: 6000 - 20 - 1980 - 1976 - 1976 = 48 bytes. Fragment Offset = (1976 + 1976 + 1976) / 8 = 5928 / 8 = 741. Fragment flag = 0.
Như vậy, IP Datagram 6000 bytes sẽ được phân mảnh thành 4 gói tin.
Phân tích các phương án:
1. **IP Datagram lớn sẽ được phân mảnh thành 3 gói tin.** Sai. Như phân tích ở trên, cần 4 gói tin.
2. **Gói tin phân mảnh thứ 3 có cờ Fragment flag bật lên thành 1.** Đúng. Các gói tin phân mảnh, trừ gói cuối cùng, đều có cờ Fragment flag (MF - More Fragments) được bật lên là 1 để báo hiệu còn các gói tin tiếp theo.
3. **Gói tin phân mảnh thứ 3 có cờ Fragment flag là 0.** Sai. Gói tin phân mảnh thứ 3 chưa phải là gói cuối cùng nên cờ Fragment flag phải là 1.
4. **Tất cả các gói nhỏ đều có cờ Fragment flag bật lên thành 1.** Sai. Chỉ các gói phân mảnh trừ gói cuối cùng mới có cờ Fragment flag bật lên thành 1. Gói cuối cùng có cờ Fragment flag là 0.
Do đó, phát biểu đúng nhất là gói tin phân mảnh thứ 3 có cờ Fragment flag bật lên thành 1.
This document is a final exam paper for the 'Introduction to Computer Networks' course from HK2 2018-2019. It contains multiple-choice questions covering fundamental networking concepts such as network devices, IP addressing, subnetting, routing protocols, TCP/IP functionalities, ARP, DHCP, HTTP, NAT, MAC addresses, IMAP, and port numbers.
40 câu hỏi 75 phút