Выравнивание в заголовке протокола прикладного уровня
Практикуюсь в сетевом программировании. Для интереса решил придумать простой протокол прикладного уровня, базирующийся на tcp/ip. Заголовок протокола содержит 3 поля: 2 поля по 4 байта для неких идентификаторов и одно поле на 2 байта для указания длины полезной нагрузки.
Вопрос №1: нужно ли добавить еще одно поле в заголовок для того, чтоб заголовок был кратен 4? Читал, что на некоторых архитектурах cpu переменная размером 2 байта будет автоматически выравнена по границе 4 байт.
Вопрос №2: Правильно ли я рассчитал максимальный размер полезной нагрузки? Без дополнительного поля на 2 байта: 65535 - 60 (максимальный размер tcp заголовка) - 10 = 65 465 байт. С дополнительным полем на 2 байта: 65535 - 60 - 12 = 65 463 байт.