В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Согласно TCP/IP Проиллюстрированный Объем 1 , поле длины избыточно. Это - весь Stevens, говорит относительно вопроса.
я лично полагаю, что это должно было сделать продолжительность заголовка UDP (в битах) делимой 32:)
Существует псевдо заголовок на 96 битов, концептуально снабженный префиксом к заголовку TCP, который уже содержит информацию.
полевое описание контрольной суммы от этот источник дает ответ:
Контрольная сумма: 16 битов
поле контрольной суммы являются поразрядным дополнением до единицы на 16 битов суммы поразрядного дополнения до единицы всех слов на 16 битов в заголовке и тексте. Если сегмент содержит нечетное число октетов заголовка и текста, чтобы быть проверенным суммированием, последний октет дополняется справа с нулями для формирования слова на 16 битов в целях контрольной суммы. Клавиатура не передается как часть сегмента. При вычислении контрольной суммы само поле контрольной суммы заменяется нулями.
контрольная сумма также покрывает псевдо заголовок на 96 битов, концептуально снабженный префиксом к заголовку TCP. Этот псевдо заголовок содержит Исходный адрес, Адрес назначения, Протокол и длину TCP. Это дает защиту TCP от misrouted сегментов. Эта информация содержится в Протоколе Интернета и передается через TCP/сетевой интерфейс в аргументах или результатах вызовов TCP на IP.
+--------+--------+--------+--------+ | Source Address | +--------+--------+--------+--------+ | Destination Address | +--------+--------+--------+--------+ | zero | PTCL | TCP Length | +--------+--------+--------+--------+
информация не нужна на уровне TCP, так как TCP является протоколом на основе потоков.