Phân mảnh và lắp ráp lại đã được giải thích riêng trong RFC 791. Đi qua Internet Protocol Specification RFC. RFC có các phần khác nhau giải thích sự phân mảnh và khôi phục mẫu. Tất cả những nghi ngờ và câu hỏi của bạn đều được phục vụ tốt trong đó.
Trả lời 1: Về độ dài của gói: Gói gốc chứa 4000 byte. Gói này là một gói IP đầy đủ và do đó chứa tiêu đề IP. Do đó, độ dài tải trọng thực sự là 4000 - (Độ dài tiêu đề IP i. E. 20).
thực tế Payload Length = 4000 - 20 = 3980
Bây giờ các gói tin được phân mảnh do thực tế là độ dài lớn hơn MTU (1500 Bytes).
Do đó gói thứ nhất chứa 1500 byte bao gồm tiêu đề IP + Phân số tải trọng.
1500 = 20 (IP header) + 1480 (Data Payload)
Tương tự cho các gói dữ liệu khác.
Các gói thứ ba sẽ chứa còn lại còn sót lại dữ liệu (3980 - 1480 -1480) = 1020
Như vậy chiều dài của gói tin là 20 (IP Header) + 1020 (payload) = 1040
Ans 2 : Giá trị bù trừ là địa chỉ hoặc bộ định vị từ nơi dữ liệu bắt đầu với tham chiếu đến tải trọng dữ liệu gốc. Đối với IP, tải trọng dữ liệu bao gồm tất cả dữ liệu sau tiêu đề IP và tiêu đề Tùy chọn. Do đó hệ thống/bộ định tuyến lấy tải trọng và phân chia nó thành các phần nhỏ hơn và giữ theo dõi bù đắp với tham chiếu đến gói ban đầu để có thể thực hiện lắp ráp lại.
Như được đưa ra trong RFC trang 12.
"lĩnh vực Đoạn bù đắp cho người nhận vị trí của một đoạn trong datagram gốc. Các đoạn bù đắp và thời gian xác định phần của datagram gốc bao phủ bởi Các mảnh nhiều mảnh hơn chỉ ra (bằng cách thiết lập lại) đoạn cuối cùng. Các trường này cung cấp đầy đủ thông tin để lắp ráp lại các gói dữ liệu "
. Nó có trường 13 bit trong tiêu đề IP. Như đã nói trong trang RFC 17
"Trường này chỉ ra nơi trong datagram đoạn này belongs.The đoạn bù đắp được đo bằng đơn vị 8 octet (64 bit). Đoạn đầu tiên đã bù đắp bằng không."
Vì vậy, khi bạn hỏi trong câu hỏi 8 từ này đến đâu, các tiêu chuẩn của nó được định nghĩa cho đặc tả giao thức IP, trong đó 8 octet được lấy làm một giá trị. Điều này cũng giúp chúng tôi truyền tải các gói lớn thông qua việc này.
Trang 28 của RFC viết: * Các mảnh được tính theo đơn vị 8 octet. Chiến lược phân mảnh được thiết kế sao cho một gói dữ liệu không phân mảnh có tất cả thông tin phân mảnh bằng không (MF = 0, bù đắp mảnh = 0). Nếu một gói dữ liệu internet bị phân mảnh, phần dữ liệu của nó phải là bị hỏng trên 8 octet. Định dạng này cho phép 2 ** 13 = 8192 phân đoạn 8 octet cho mỗi tổng số là 65.536 octet với tổng số là 65.536 octet. Lưu ý rằng điều này phù hợp với trường tổng chiều dài datagram (tất nhiên, tiêu đề được tính trong tổng chiều dài và không nằm trong các đoạn). *
Cảm ơn! Điều đó đã trả lời phần đầu tiên của câu hỏi của tôi một cách rõ ràng, nhưng đối với phần thứ hai, tại sao chúng ta chia 1480 cho 8 để có được bù đắp? – JimmyK
Tôi sẽ cập nhật câu trả lời. –
Cảm ơn rất nhiều, câu trả lời mọi thứ! Tôi chỉ tự hỏi, liệu chúng ta luôn chia cho 8? Có hoàn cảnh nào khiến chúng tôi chia cho một con số khác không? – JimmyK