html Giải thích phân mảnh và tái lắp ráp IPv4 - FCTELE
                                   +8618758069661 [email protected]
Tìm kiếm sản phẩm Hướng dẫn: dấu cách = VÀ, | = HOẶC, ! = KHÔNG

Các mảnh IPv4 được ghép lại như thế nào? ID, độ lệch và quá trình tái lắp ráp

Bạn có câu hỏi? Hãy gọi cho chúng tôi ngay hôm nay!

+8618758069661

Hoặc để lại lời nhắn cho chúng tôi

Lời nhắn trực tuyến

Các mảnh IPv4 được ghép lại như thế nào? ID, độ lệch và quá trình tái lắp ráp

Lượt xem: 5 +5Bài gốc của FCTELETác giả: Đội ngũ kỹ thuật FCTELE

KIẾN THỨC CƠ BẢN VỀ IPV4

Các mảnh được ghép lại thành một datagram như thế nào?

Khi được phép, bộ định tuyến có thể chia một datagram IPv4 để phù hợp với liên kết tiếp theo. Máy nhận nhóm các mảnh liên quan, đặt dữ liệu tải của từng mảnh vào đúng vị trí theo độ lệch và chờ đủ các mảnh. Một mảnh bị thiếu có thể khiến datagram chưa hoàn chỉnh hết thời gian chờ. Các sơ đồ dưới đây giải thích cơ chế, không phải kết quả đo sản phẩm.

01

Đường truyền

Bên gửi → bộ định tuyến → đích

Bộ định tuyến có thể phân mảnh khi được phép và MTU của chặng kế tiếp nhỏ hơn.

02

Các trường

ID · độ lệch · MF

Bên nhận sử dụng địa chỉ, giao thức và ID để nhóm các mảnh; độ lệch xác định vị trí của chúng.

03

Mảnh bị thiếu

Chờ → hết thời gian chờ → loại bỏ

Chỉ riêng mảnh cuối cùng không đủ để xác định rằng dữ liệu tải đã đầy đủ.

Danh sách kiểm tra khi điều tra — mở rộng
Mục kiểm tra Nội dung cần xác nhận Cách xác minh
Đường truyền Các giao diện và MTU Ghi lại tuyến đường thực tế
Các mảnh Địa chỉ, giao thức, ID, độ lệch và MF So sánh các bản bắt gói được phép thu thập
Suy hao Bao phủ đầy đủ dữ liệu So sánh các bản bắt gói trên đường truyền và tại bên nhận

Thông tin do bộ điều khiển gửi không phải lúc nào cũng đến nơi dưới dạng một datagram IP hoàn chỉnh. Đôi khi thông tin được chia thành các mảnh. Bên nhận nhận biết những mảnh nào thuộc cùng một datagram và vị trí của từng mảnh như thế nào? Điều gì xảy ra nếu một mảnh không bao giờ đến? Để hiểu về phân mảnh IPv4, cần phân biệt chuyển mạch Ethernet, định tuyến IP và tái lắp ráp tại bên nhận.

Một datagram IPv4 được bộ định tuyến phân mảnh và được đích tái lắp ráp
Hình 1: Bộ định tuyến có thể phân mảnh khi được phép; đích tái lắp ráp dữ liệu tải IP.

Trước tiên, phân biệt datagram IP với khung Ethernet

Bộ điều khiển, gateway và máy chủ trao đổi dữ liệu qua các liên kết. Một datagram IP được mang trong lớp đóng gói bên ngoài phù hợp với liên kết hiện tại; trên Ethernet, nó nằm trong một khung Ethernet. Các khung đi qua giữa những thiết bị liền kề, còn địa chỉ IP giúp xác định đích ở tầng mạng. Các tầng này có phần đầu và giới hạn độ dài khác nhau.

Đơn vị truyền tối đa IP của một giao diện, hay MTU, giới hạn kích thước gói IP được gửi qua giao diện đó. Một tuyến đường giữa các mạng con có thể đi qua nhiều giao diện IP với các giới hạn khác nhau. Một gói phù hợp ở phía trước không nhất thiết phù hợp với chặng kế tiếp. Hướng dẫn này tập trung vào các trường phân mảnh và việc tái lắp ráp, chứ không hàm ý rằng mọi sự cố với gói lớn đều do phân mảnh.

Khi nào có thể xảy ra phân mảnh?

Bên gửi IPv4 có thể phân mảnh trước khi truyền. Bộ định tuyến chuyển tiếp IPv4 cũng có thể chia một gói thành các mảnh nhỏ hơn nếu gói vượt quá MTU của chặng kế tiếp và việc phân mảnh được cho phép. Mỗi mảnh có phần đầu IP riêng và mang một phần dữ liệu tải IP ban đầu.

Nếu datagram ban đầu được đặt cờ DF, tức Don’t Fragment (Không phân mảnh), và phải đi qua chặng kế tiếp có MTU nhỏ hơn, bộ định tuyến không thể đơn giản chia nhỏ nó. Thông thường, bộ định tuyến sẽ loại bỏ gói và trả về lỗi ICMP thích hợp; phản hồi thực tế phụ thuộc vào thiết bị và việc lọc. Việc bên gửi có điều chỉnh kích thước gói hay không phụ thuộc vào giao thức và cách triển khai.

Một bộ chuyển mạch công nghiệp tầng 2 thông thường chuyển tiếp các khung Ethernet; nó không chia một datagram IPv4 quá lớn thành các mảnh IP. Thiết bị có khả năng định tuyến có thể xử lý lưu lượng IP khác nhau tùy theo các giao diện, cấu hình và đường truyền thực tế. Chữ switch hoặc gateway trên vỏ thiết bị không xác định cách hoạt động của mọi cổng.

Bên nhận nhận biết các mảnh liên quan như thế nào?

Phần đầu của mảnh IPv4 bao gồm địa chỉ nguồn và đích, giao thức và mã định danh. Bên nhận kết hợp các trường này để liên kết các mảnh với datagram ban đầu. Trường định danh chủ yếu hỗ trợ phân mảnh và tái lắp ráp; không được xem nó là số sê-ri duy nhất trên toàn cầu và vĩnh viễn cho từng gói.

Hãy hình dung một tài liệu dài được chia thành nhiều trang: nhãn lô và thông tin người nhận giúp nhóm các trang lại. Phép so sánh này có giới hạn. Các thiết bị mạng sử dụng các trường gói và quy tắc tái lắp ráp thay vì hiểu nội dung tài liệu, và ID không phải là phương thức xác thực hay cơ chế bảo mật.

Các bản bắt gói tại bên gửi, bộ định tuyến và bên nhận có thể cho thấy những góc nhìn khác nhau. Không nhóm các mảnh chỉ dựa vào ID hoặc kết hợp các bản bắt gói từ những hướng và vị trí khác nhau khi chưa có ngữ cảnh. Trước tiên, xác định điểm bắt gói, thời gian, địa chỉ IP và giao thức; sau đó kiểm tra các trường phân mảnh.

Ba mảnh IPv4 có cùng mã định danh, kèm vị trí và giá trị MF
Hình 2: Mã định danh và vị trí mảnh giúp bên nhận nhóm và đặt các mảnh; MF cho biết còn mảnh nào theo sau hay không.

Độ lệch và cờ MF cho biết điều gì?

Độ lệch mảnh xác định vị trí của dữ liệu tải trong mảnh bên trong dữ liệu tải IP ban đầu. Giá trị này được biểu thị theo đơn vị tám byte, không phải số thứ tự byte trong khung Ethernet. Bên nhận sử dụng độ lệch để đặt các mảnh vào đúng vị trí thay vì chỉ nối chúng theo thứ tự đến. Một mảnh ở phía sau có thể đến trước.

MF có nghĩa là More Fragments (Còn mảnh): mảnh không phải cuối cùng thường có MF được đặt thành 1, còn mảnh cuối cùng có MF được đặt thành 0. Thấy MF = 0 cho biết điểm kết thúc của datagram; điều đó không chứng minh rằng tất cả các mảnh trước đó đã đến. Bên nhận vẫn phải có đủ dữ liệu bao phủ từ đầu đến cuối trước khi chuyển tiếp dữ liệu tải đã tái lắp ráp.

Phân mảnh cũng tuân theo quy tắc căn chỉnh: ngoại trừ mảnh cuối cùng, độ dài dữ liệu tải của các mảnh thường phải là bội số của tám byte. Người vận hành không cần tính thủ công từng trường nhị phân, nhưng nên kiểm tra xem công cụ bắt gói hiển thị trường độ lệch thô hay vị trí byte đã được chuyển đổi.

Điều gì xảy ra nếu một mảnh bị mất?

Bên nhận thường duy trì trạng thái tái lắp ráp tạm thời và chờ các mảnh còn thiếu. Nếu datagram vẫn chưa hoàn chỉnh khi trạng thái đó hết thời gian chờ, nó sẽ bị loại bỏ; ứng dụng thường không thể sử dụng các mảnh còn lại như một datagram IP hoàn chỉnh. Giới hạn bộ đệm, cách xử lý hết thời gian chờ và chính sách bảo mật khác nhau tùy hệ thống, vì vậy các giải thích chung không xác định giá trị của một sản phẩm cụ thể.

Nhiều mảnh hơn đồng nghĩa với nhiều phần được truyền độc lập hơn cho một datagram. Một mảnh bị thiếu có thể khiến toàn bộ datagram không thể tái lắp ráp. Vì vậy, cần xem xét toàn bộ đường truyền và từng mảnh, nhưng chỉ riêng sự cố với gói lớn không chứng minh rằng đã mất mảnh: tắc nghẽn, lọc, tải thiết bị và các vấn đề liên kết khác có thể có biểu hiện tương tự.

Việc TCP hoặc ứng dụng có thử lại hay không là vấn đề của tầng cao hơn và phụ thuộc vào giao thức cùng cách triển khai. Bản thân cơ chế phân mảnh IPv4 không cung cấp cơ chế truyền lại tin cậy chung cho từng mảnh. Ứng dụng sử dụng UDP không nên mặc định rằng IP sẽ tự động bù lại dữ liệu tải bị thiếu.

Máy đích tái lắp ráp khi có đủ các mảnh hoặc loại bỏ datagram chưa hoàn chỉnh sau khi hết thời gian chờ
Hình 3: Đích cần dữ liệu đầy đủ; thiếu mảnh có thể dẫn đến hết thời gian chờ và loại bỏ.

Cần ghi lại những gì khi điều tra?

Trong môi trường thử nghiệm được cho phép, trước tiên hãy lập sơ đồ bên gửi, các bộ chuyển mạch tầng 2, giao diện định tuyến, đường hầm và bên nhận. Ghi lại MTU của các giao diện, thiết lập DF, giao thức, vị trí và thời gian bắt gói. Với mỗi nhóm mảnh nghi vấn, hãy kiểm tra địa chỉ nguồn và đích, giao thức, mã định danh, độ lệch và MF thay vì chỉ xem độ dài gói.

Nếu bản bắt gói ở bên gửi cho thấy một datagram hoàn chỉnh còn giao diện ra của bộ định tuyến cho thấy nhiều mảnh, hãy kiểm tra việc chuyển tiếp IP và MTU của giao diện. Nếu tất cả các mảnh đều rời giao diện đó nhưng chỉ một số đến được bên nhận, hãy điều tra tình trạng mất gói hoặc lọc trên đường truyền thực tế. Cấu hình sao chép lưu lượng, cơ chế offload của giao diện mạng và vị trí bắt gói có thể ảnh hưởng đến những gì quan sát được; một ảnh chụp màn hình không thể hiện toàn bộ mạng.

Cũng cần xem xét cách các thiết bị bảo mật xử lý các mảnh. Một số quy tắc kiểm tra cổng tầng giao vận, nhưng mảnh không phải mảnh đầu tiên thường không chứa đầy đủ phần đầu tầng giao vận. Cách thiết bị liên kết trạng thái và việc thiết bị có cho phép các mảnh đi qua hay không phụ thuộc vào cách triển khai và các quy tắc của nó. Mảnh đầu tiên đi qua không chứng minh rằng mọi mảnh đều đã đi qua. Lưu cấu hình hiện có và phối hợp các thay đổi với những người chịu trách nhiệm về an toàn vận hành và bảo mật.

Nếu việc tái lắp ráp liên tục thất bại, hãy điều tra MTU đường truyền, mất gói và lọc trước khi chỉ kéo dài thời gian chờ của bên nhận. Các ứng dụng thời gian thực và ứng dụng nhạy cảm với tính đầy đủ của dữ liệu có thể có những ràng buộc khác nhau. Quyết định thay đổi dựa trên thiết kế giao thức, tài liệu thiết bị và các thử nghiệm có kiểm soát.

Đối với hệ thống điều khiển sản xuất, cần được chủ cơ sở phê duyệt khung thời gian và phạm vi thử nghiệm. Không vô hiệu hóa tường lửa, tăng kích thước khung hoặc bật định tuyến khi chưa hiểu tác động và chưa có kế hoạch khôi phục. Xác nhận khả năng hỗ trợ giao thức và ranh giới mạng trước khi thử nghiệm một thay đổi có phạm vi giới hạn.

Phân biệt rõ các giai đoạn

Phân mảnh IPv4 là cơ chế ở tầng mạng. Bên nhận sử dụng địa chỉ, giao thức, mã định danh, độ lệch và thông tin MF để tái lắp ráp một datagram. Các mảnh có thể đến không đúng thứ tự, nhưng datagram phải đầy đủ và đáp ứng các quy tắc của bên nhận trước khi được chuyển lên tầng trên. MTU, định tuyến IP, giới hạn khung của bộ chuyển mạch và việc thử lại của ứng dụng thuộc các giai đoạn khác nhau và cần bằng chứng riêng.

Các bộ chuyển mạch công nghiệp và gateway FCTELE có thể là một phần của mạng Ethernet công nghiệp. Việc một sản phẩm và phiên bản firmware cụ thể có hỗ trợ định tuyến IP, thiết lập MTU giao diện hoặc lọc hay không phải được kiểm tra theo tài liệu của sản phẩm. Các hình minh họa này giải thích những cơ chế chung; chúng không thể hiện kết quả đo hoặc mạch điện bên trong của một mẫu FCTELE cụ thể.

Tài liệu tham khảo

RFC 791: Giao thức Internet · RFC 6864: Trường định danh IPv4 · Thông tin sản phẩm bộ chuyển mạch công nghiệp có quản lý FCTELE.

Dịch từ bài viết kỹ thuật bằng tiếng Trung: Đọc bài viết gốc bằng tiếng Trung.

Câu hỏi thường gặp

Bộ chuyển mạch Ethernet có phân mảnh datagram IPv4 không?

Bộ chuyển mạch tầng 2 thông thường chuyển tiếp các khung; phân mảnh IP có thể xảy ra tại bên gửi IPv4 hoặc bộ định tuyến khi được phép.

MF = 0 có nghĩa là tất cả các mảnh đã đến không?

Không. Giá trị này xác định mảnh cuối cùng; bên nhận vẫn cần dữ liệu bao phủ đầy đủ toàn bộ dữ liệu tải ban đầu.

Điều gì xảy ra nếu thiếu một mảnh?

Bên nhận chờ theo các quy tắc tái lắp ráp của nó; datagram chưa hoàn chỉnh bị loại bỏ nếu trạng thái tái lắp ráp hết thời gian chờ.

Phạm vi và tài liệu đọc thêm

Đây là phần giải thích chung về IPv4, không phải thử nghiệm hay phép đo sản phẩm.

Cách bộ chuyển mạch công nghiệp chuyển tiếp khung · RFC 791 · RFC 6864

Chia sẻ bài viết này