Sự khác biệt giữa MSS và MTU là gì?


33

Tôi bối rối về sự khác biệt giữa kích thước phân khúc tối đa và đơn vị truyền tối đa.

Ai đó có thể vui lòng giải thích liên quan đến lớp 2 và 3 không?

Nếu tôi có một gói 800 byte trong tải trọng. Liệu có đúng không khi nói rằng MSS sẽ là 800 byte (Nếu tôi đặt nó là như vậy) và MTU sẽ là 840? TCP 20 và IP 20 byte. Nó có khác gì không nếu tôi đang làm PPPoE?


Mặc dù điều này không đúng khi nói trùng lặp , câu trả lời cho câu hỏi này cũng có thể trả lời câu hỏi của bạn.
YLearn

Câu trả lời:


19

Ngoài ra. Giá trị MSS xuất phát từ giá trị MTU , nếu bạn có gói 800 byte, nó cũng có thể nói rằng gói đó ban đầu dài 2260 byte và anh ấy đã chia thành 2 gói 1460 + 800 byte, nếu chúng tôi sử dụng MTU = 1500.
Bạn nói là đúng, nếu bạn MSS = 800, MTU phải có ít nhất là 840. Vì chi phí hoạt động của PPPoE là 8 byte, và do đó MTU = 1492 byte và MSS = 1492-40 = 1452 byte.


28

MTU là kích thước gói IP tối đa cho một liên kết đã cho. Các gói lớn hơn MTU bị phân mảnh tại điểm mà MTU thấp hơn được tìm thấy và lắp lại ở phía dưới chuỗi.

Nếu không muốn phân mảnh, bạn phải kiểm tra MTU ở mỗi bước nhảy hoặc sử dụng giao thức trợ giúp cho điều đó ( Path MTU Discovery ).

Lưu ý rằng IPv6 KHÔNG hỗ trợ phân mảnh gói theo bộ định tuyến, do đó PMTUD với ICMPv6 là bắt buộc nếu bạn không muốn mất gói ở đâu đó vì MTU nhỏ. Điểm cuối có thể phân mảnh, nhưng không phải bộ định tuyến Ngoài ra, IPv6 có MTU TỐI THIỂU cao hơn nhiều.

MSS là Kích thước phân đoạn TCP tối đa. Không giống như MTU, gói vượt quá MSS không bị phân mảnh, chúng chỉ bị loại bỏ. MSS thường được quyết định trong bắt tay ba chiều TCP, nhưng một số thiết lập có thể mang lại đường dẫn trong đó MSS quyết định vẫn còn quá lớn, dẫn đến các gói bị bỏ. MSS không được thương lượng gói cho mỗi gói, nhưng đối với phiên TCP hoàn chỉnh, cũng không tính đến các tiêu đề TCP / IP

Khi sử dụng PPPoE, tất cả chi phí hoạt động có nghĩa là bạn cần giảm MSS trên đường đi, thông thường bằng cách chỉ định nó trên bộ định tuyến nơi tìm thấy điểm choke, sau đó sẽ thay thế MSS chuyển qua bắt tay ba bước bằng giá trị thấp hơn chính xác nếu nó cao hơn. PPPoE chỉ đơn giản là thêm 8 byte (6 byte PPPoE + 2 byte PPP) lên trên tất cả mọi thứ (IP + TCP) và có nghĩa là chạy qua Ethernet ở 1500 byte MTU, do đó 1492 MSS thường được cấu hình để vượt qua.

Ngăn xếp IP của bạn sẽ cắt dữ liệu được gửi tới MSS, đặt nó vào một phân đoạn TCP, sau đó đặt nó vào một hoặc nhiều gói IP (tùy thuộc vào nó lớn hơn cài đặt MTU cục bộ) trước khi gửi nó. Bộ định tuyến trung gian có thể cắt giảm hơn nữa nếu chúng có MTU thấp hơn, nhưng chúng chỉ ảnh hưởng đến chính Gói IP, không phát vào phân đoạn / tiêu đề TCP.


4
Clatification: IPv6 không hỗ trợ phân mảnh trong các bộ định tuyến, tuy nhiên các trạm cuối có thể phân mảnh các gói IPv6
Mike Pennington

1
Chỉnh sửa câu trả lời của tôi để cụ thể hơn
Remi Letourneau

0

MTU là kích thước gói IP tối đa của một liên kết đã cho. MSS là kích thước phân đoạn TCP tối đa.

MTU được sử dụng để phân mảnh tức là gói lớn hơn MTU bị phân mảnh. Nhưng trong trường hợp MSS, gói lớn hơn MSS bị loại bỏ.

MSS được chỉ định trong quá trình bắt tay TCP về cơ bản trong SYN và giá trị của nó không thể thay đổi sau khi kết nối được thiết lập.

MSS = MTU-40 (tiêu đề IP (20 byte) + tiêu đề TCP (20 byte))


Tôi nghĩ tiêu đề TCP không nhất thiết phải là 20 byte, đó chỉ là độ dài tối thiểu?
Sajuuk

có thể có một tiêu đề tùy chọn bổ sung
aneesh joshi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.