пишут, пакет - это разбитая на фрагменты датаграмма, т.е. когда размер датаграммы превышает допустимый для данной сети. Но как он может превышать впринципе, если тот же TCP начинает выстраивать сегмент уже на основании MTU и MSS? Те. по идее разбиваться на фрагменты нечему будет, потому что и так будет меньше допустимого для данной сети. И он никогда не будет превышать допустимый размер?
Кроме TCP есть и другие протоколы, например UDP, да и TCP не обязан подгонять MSS под MTU.
Какой все же правильный размер MTU для ethernet по стандарту? Все пишут, что 1500, но где в каком это стандарте написано?
ieee 802.3, раздел 3.1.1 Packet format, там картинка и ссылка на 3.2.7 со следующим текстом:
Ethernet implementations shall support at least one of three maximum MAC Client Data field sizes defined
as follows:
a) 1500 decimal—basic frames (see 1.4.102)
b) 1504 decimal—Q-tagged frames (see 1.4.334)
c) 1982 decimal—envelope frames (see 1.4.184)
А как же тогда jumbo-кадры передаются, они типа нарушают стандарт?
В стандарте 802.3 их нет.
У меня wireshark показывает TCP длину "Length = 1514", как такое возможно, если на роутере стоит MTU 1500?
1514 = 14 байт ethernet заголовка (6 -- адрес получателя, 6 -- адрес отправителя, 2 -- ethtype) + 1500 байт нагрузки