Я пишу приложение, которое будет развернуто в сторонних сетях. Он будет получать IP-пакеты, и я хочу знать, каков их максимальный размер на самом деле. Я не спрашиваю, каков максимальный теоретический размер, а скорее то, что обычно наблюдается на практике. Я слышал, что может быть использован MTU 1576, но не смог его утвердить?
С уважением
Самое большое, что я видел в Ethernet, - это более 9000 заголовков, но, если вы не хотите прославиться благодаря сообщениям в Security Focus, я предлагаю вам не использовать статический буфер, а вместо этого определить, сколько места вам нужно выделить, и использовать его вместо этого.
Если вы когда-нибудь захотите использовать DSL, ему придется работать с MTU, равным 1480. Что в наши дни довольно часто встречается в филиалах.
Если это будет развернуто компанией, использующей шифрование IPsec / GRE (например, для удаленных офисов), MTU может быть существенно меньше 1518 байт. Значения, которые я видел в туннелях IPsec, составляют 1400 байт MTU, 1360 байт TCP. MSS.
В качестве альтернативы, в центре обработки данных большие кадры допускают MTU размером 9000 байт или более.
Трудно определить фактический MTU, используемый в Интернете, однако можно наблюдать максимальный размер сегмента TCP (MSS), который может быть обнаружен в пакетах TCP SYN и STNC. Обычно (хотя использование ограничения MSS может несколько затруднить проблему) хороший индикатор MTU интерфейса - для IPv4 нужно просто добавить 40 к MSS, чтобы получить MTU, а для IPv6 - 60. Некоторые недавние анализ проведен APNIC - из Таблицы 1 в статье - предоставляет список наиболее часто наблюдаемых значений MSS (из 436 095 954 уникальных TCP-сессий - трафик IPv4 и IPv6):
MSS Count Proportion
1460 77,911,532 17.9%
1400 70,233,027 16.1%
1370 47,013,384 10.8%
1452 38,914,006 8.9%
1440 37,209,335 8.5%
1360 29,441,242 6.8%
1412 22,738,989 5.2%
1300 18,363,089 4.2%
1380 16,600,330 3.8%