Giới thiệu
Chúng ta đều biết nguyên tắc phân loại và không phân loại của IP và ứng dụng của nó trong truyền thông mạng. Phân mảnh và lắp ráp lại IP là một cơ chế quan trọng trong quá trình truyền gói dữ liệu. Khi kích thước của một gói dữ liệu vượt quá giới hạn đơn vị truyền tối đa (MTU) của một liên kết mạng, phân mảnh IP sẽ chia gói dữ liệu thành nhiều mảnh nhỏ hơn để truyền. Các mảnh này được truyền độc lập trong mạng và khi đến đích, chúng được lắp ráp lại thành các gói hoàn chỉnh bởi cơ chế lắp ráp lại IP. Quá trình phân mảnh và lắp ráp lại này đảm bảo rằng các gói dữ liệu có kích thước lớn có thể được truyền trong mạng đồng thời đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu. Trong phần này, chúng ta sẽ tìm hiểu sâu hơn về cách thức hoạt động của phân mảnh và lắp ráp lại IP.
Phân mảnh và tái cấu trúc IP
Các liên kết dữ liệu khác nhau có các đơn vị truyền tải tối đa (MTU) khác nhau; ví dụ, liên kết dữ liệu FDDI có MTU là 4352 byte và MTU của Ethernet là 1500 byte. MTU là viết tắt của Maximum Transmission Unit (Đơn vị truyền tải tối đa) và đề cập đến kích thước gói tối đa có thể được truyền qua mạng.
FDDI (Fiber Distributed Data Interface) là một tiêu chuẩn mạng cục bộ (LAN) tốc độ cao sử dụng cáp quang làm phương tiện truyền dẫn. Đơn vị truyền tải tối đa (MTU) là kích thước gói dữ liệu tối đa có thể được truyền bởi một giao thức lớp liên kết dữ liệu. Trong mạng FDDI, kích thước của MTU là 4352 byte. Điều này có nghĩa là kích thước gói dữ liệu tối đa có thể được truyền bởi giao thức lớp liên kết dữ liệu trong mạng FDDI là 4352 byte. Nếu gói dữ liệu cần truyền vượt quá kích thước này, nó cần được phân mảnh để chia gói thành nhiều mảnh có kích thước phù hợp với MTU để truyền và lắp ráp lại tại bộ thu.
Đối với Ethernet, MTU thường có kích thước là 1500 byte. Điều này có nghĩa là Ethernet có thể truyền các gói dữ liệu có kích thước tối đa 1500 byte. Nếu kích thước gói vượt quá giới hạn MTU, thì gói dữ liệu sẽ được phân mảnh thành các mảnh nhỏ hơn để truyền và được lắp ráp lại tại đích đến. Việc lắp ráp lại gói dữ liệu IP đã được phân mảnh chỉ có thể được thực hiện bởi máy chủ đích, và bộ định tuyến sẽ không thực hiện thao tác lắp ráp lại.
Chúng ta cũng đã nói về các phân đoạn TCP trước đó, nhưng MSS là viết tắt của Maximum Segment Size (Kích thước phân đoạn tối đa), và nó đóng vai trò quan trọng trong giao thức TCP. MSS đề cập đến kích thước của phân đoạn dữ liệu tối đa được phép gửi trong một kết nối TCP. Tương tự như MTU, MSS được sử dụng để giới hạn kích thước của các gói tin, nhưng nó thực hiện điều này ở lớp vận chuyển, lớp giao thức TCP. Giao thức TCP truyền dữ liệu của lớp ứng dụng bằng cách chia dữ liệu thành nhiều phân đoạn dữ liệu, và kích thước của mỗi phân đoạn dữ liệu bị giới hạn bởi MSS.
MTU của mỗi liên kết dữ liệu là khác nhau vì mỗi loại liên kết dữ liệu khác nhau được sử dụng cho các mục đích khác nhau. Tùy thuộc vào mục đích sử dụng, các MTU khác nhau có thể được thiết lập.
Giả sử người gửi muốn gửi một gói dữ liệu lớn 4000 byte để truyền qua liên kết Ethernet, vì vậy gói dữ liệu này cần được chia thành ba gói dữ liệu nhỏ hơn để truyền. Điều này là do kích thước của mỗi gói dữ liệu nhỏ không được vượt quá giới hạn MTU, là 1500 byte. Sau khi nhận được ba gói dữ liệu nhỏ, người nhận sẽ lắp ráp lại chúng thành gói dữ liệu lớn 4000 byte ban đầu dựa trên số thứ tự và độ lệch của mỗi gói dữ liệu.
Trong truyền tải phân mảnh, việc mất một phân mảnh sẽ làm mất hiệu lực toàn bộ gói dữ liệu IP. Để tránh điều này, TCP đã giới thiệu MSS, trong đó việc phân mảnh được thực hiện ở lớp TCP thay vì lớp IP. Ưu điểm của phương pháp này là TCP có khả năng kiểm soát chính xác hơn kích thước của mỗi phân đoạn, từ đó tránh được các vấn đề liên quan đến việc phân mảnh ở lớp IP.
Đối với UDP, chúng ta cố gắng không gửi gói dữ liệu lớn hơn MTU. Điều này là do UDP là một giao thức vận chuyển không định hướng kết nối, không cung cấp các cơ chế độ tin cậy và truyền lại như TCP. Nếu chúng ta gửi một gói dữ liệu UDP lớn hơn MTU, nó sẽ bị phân mảnh bởi lớp IP để truyền tải. Một khi một trong các mảnh bị mất, giao thức UDP không thể truyền lại, dẫn đến mất dữ liệu. Do đó, để đảm bảo truyền dữ liệu đáng tin cậy, chúng ta nên cố gắng kiểm soát kích thước của các gói dữ liệu UDP trong phạm vi MTU và tránh truyền tải phân mảnh.
Bộ môi giới gói mạng Mylinking™Có thể tự động nhận diện nhiều loại giao thức đường hầm khác nhau như VxLAN/NVGRE/IPoverIP/MPLS/GRE, v.v., và có thể được xác định dựa trên hồ sơ người dùng theo đặc điểm đầu ra của luồng đường hầm bên trong hoặc bên ngoài.
○ Nó có thể nhận dạng các gói tin có nhãn VLAN, QinQ và MPLS.
○ Có thể xác định VLAN bên trong và bên ngoài
○ Có thể nhận dạng các gói tin IPv4/IPv6
○ Có thể nhận dạng các gói tin VxLAN, NVGRE, GRE, IPoverIP, GENEVE, MPLS tunnel.
○ Có thể nhận dạng các gói IP bị phân mảnh (Hỗ trợ nhận dạng phân mảnh IP và hỗ trợ lắp ráp lại các gói IP bị phân mảnh để thực hiện lọc tính năng L4 trên tất cả các gói IP bị phân mảnh. Thực hiện chính sách đầu ra lưu lượng.)
Tại sao IP và TCP lại bị phân mảnh?
Trong quá trình truyền tải mạng, lớp IP sẽ tự động phân mảnh gói dữ liệu, ngay cả khi lớp TCP không phân đoạn dữ liệu, gói dữ liệu vẫn sẽ được lớp IP tự động phân mảnh và truyền tải bình thường. Vậy tại sao TCP lại cần phân mảnh? Chẳng phải đó là sự lãng phí sao?
Giả sử có một gói dữ liệu lớn không được phân đoạn ở lớp TCP và bị mất trong quá trình truyền tải; TCP sẽ truyền lại gói dữ liệu đó, nhưng chỉ truyền lại toàn bộ gói dữ liệu lớn (mặc dù lớp IP chia dữ liệu thành các gói nhỏ hơn, mỗi gói có độ dài MTU). Điều này là do lớp IP không quan tâm đến việc truyền dữ liệu một cách đáng tin cậy.
Nói cách khác, trên liên kết từ máy chủ đến mạng, nếu lớp vận chuyển phân mảnh dữ liệu, thì lớp IP sẽ không phân mảnh. Nếu việc phân mảnh không được thực hiện ở lớp vận chuyển, thì việc phân mảnh có thể được thực hiện ở lớp IP.
Nói một cách đơn giản, TCP phân đoạn dữ liệu để lớp IP không còn bị phân mảnh nữa, và khi truyền lại, chỉ những phần nhỏ của dữ liệu đã bị phân mảnh mới được truyền lại. Bằng cách này, hiệu quả và độ tin cậy của việc truyền tải được cải thiện.
Nếu TCP bị phân mảnh, thì lớp IP có bị phân mảnh không?
Trong phần thảo luận ở trên, chúng ta đã đề cập rằng sau khi phân mảnh TCP ở phía người gửi, sẽ không có sự phân mảnh nào nữa ở lớp IP. Tuy nhiên, có thể có các thiết bị lớp mạng khác dọc theo đường truyền có đơn vị truyền tải tối đa (MTU) nhỏ hơn MTU ở phía người gửi. Do đó, mặc dù gói tin đã được phân mảnh ở phía người gửi, nó vẫn tiếp tục được phân mảnh khi đi qua lớp IP của các thiết bị này. Cuối cùng, tất cả các mảnh vỡ sẽ được tập hợp lại ở phía người nhận.
Nếu ta xác định được MTU tối thiểu trên toàn bộ liên kết và gửi dữ liệu với độ dài đó, thì sẽ không xảy ra hiện tượng phân mảnh bất kể dữ liệu được truyền đến nút nào. MTU tối thiểu trên toàn bộ liên kết này được gọi là MTU đường dẫn (PMTU). Khi một gói IP đến bộ định tuyến, nếu MTU của bộ định tuyến nhỏ hơn độ dài gói và cờ DF (Không phân mảnh) được đặt thành 1, bộ định tuyến sẽ không thể phân mảnh gói và chỉ có thể loại bỏ nó. Trong trường hợp này, bộ định tuyến sẽ tạo ra một thông báo lỗi ICMP (Giao thức điều khiển thông báo Internet) có tên là "Cần phân mảnh nhưng cờ DF đã được đặt". Thông báo lỗi ICMP này sẽ được gửi lại địa chỉ nguồn cùng với giá trị MTU của bộ định tuyến. Khi người gửi nhận được thông báo lỗi ICMP, họ có thể điều chỉnh kích thước gói dựa trên giá trị MTU để tránh tình trạng phân mảnh bị cấm một lần nữa.
Phân mảnh IP là điều cần thiết và nên tránh ở lớp IP, đặc biệt là trên các thiết bị trung gian trong liên kết. Do đó, trong IPv6, việc phân mảnh gói IP bởi các thiết bị trung gian đã bị cấm, và việc phân mảnh chỉ có thể được thực hiện ở đầu và cuối liên kết.
Hiểu biết cơ bản về IPv6
IPv6 là phiên bản thứ 6 của Giao thức Internet, là phiên bản kế nhiệm của IPv4. IPv6 sử dụng độ dài địa chỉ 128 bit, có thể cung cấp nhiều địa chỉ IP hơn so với độ dài địa chỉ 32 bit của IPv4. Điều này là do không gian địa chỉ IPv4 đang dần cạn kiệt, trong khi không gian địa chỉ IPv6 rất lớn và có thể đáp ứng nhu cầu của Internet trong tương lai.
Khi nói về IPv6, ngoài không gian địa chỉ rộng hơn, nó còn mang lại tính bảo mật và khả năng mở rộng tốt hơn, điều đó có nghĩa là IPv6 có thể cung cấp trải nghiệm mạng tốt hơn so với IPv4.
Mặc dù IPv6 đã tồn tại từ lâu, nhưng việc triển khai toàn cầu của nó vẫn còn tương đối chậm. Điều này chủ yếu là do IPv6 cần phải tương thích với mạng IPv4 hiện có, đòi hỏi quá trình chuyển đổi và di chuyển. Tuy nhiên, với sự cạn kiệt địa chỉ IPv4 và nhu cầu ngày càng tăng đối với IPv6, ngày càng nhiều nhà cung cấp dịch vụ Internet và các tổ chức đang dần áp dụng IPv6, và dần dần hiện thực hóa hoạt động song song của cả IPv6 và IPv4.
Bản tóm tắt
Trong chương này, chúng ta đã tìm hiểu sâu hơn về cách thức hoạt động của việc phân mảnh và lắp ráp lại gói tin IP. Các liên kết dữ liệu khác nhau có Đơn vị Truyền tải Tối đa (MTU) khác nhau. Khi kích thước của gói tin vượt quá giới hạn MTU, việc phân mảnh IP sẽ chia gói tin thành nhiều mảnh nhỏ hơn để truyền tải, và lắp ráp lại chúng thành một gói tin hoàn chỉnh bằng cơ chế lắp ráp lại IP sau khi đến đích. Mục đích của việc phân mảnh TCP là để lớp IP không còn phân mảnh nữa, và chỉ truyền lại dữ liệu nhỏ đã bị phân mảnh khi truyền lại xảy ra, nhằm cải thiện hiệu quả và độ tin cậy của việc truyền tải. Tuy nhiên, có thể có các thiết bị lớp mạng khác dọc theo liên kết truyền tải có MTU nhỏ hơn MTU của người gửi, do đó gói tin vẫn sẽ bị phân mảnh lại ở lớp IP của các thiết bị này. Việc phân mảnh ở lớp IP nên được tránh càng nhiều càng tốt, đặc biệt là trên các thiết bị trung gian trong liên kết.
Thời gian đăng bài: 07/08/2025
