Я пытаюсь понять, как структурирован заголовок uTP и как он обрабатывает трафик, перегрузку и все такое.
При просмотре документации здесь я не мог полностью обернутьмоя голова вокруг того, что работала часть расширения заголовка.Вот заголовок:
0 4 8 16 24 32
+-------+-------+---------------+---------------+---------------+
| type | ver | extension | connection_id |
+-------+-------+---------------+---------------+---------------+
| timestamp_microseconds |
+---------------+---------------+---------------+---------------+
| timestamp_difference_microseconds |
+---------------+---------------+---------------+---------------+
| wnd_size |
+---------------+---------------+---------------+---------------+
| seq_nr | ack_nr |
+---------------+---------------+---------------+---------------+
И эта часть говорит о поле 'extension':
extension
The type of the first extension in a linked list of extension headers. 0 means no extension.
There is currently one extension:
Selective acks
Extensions are linked, just like TCP options. If the extension field is non-zero, immediately following the uTP header are two bytes:
0 8 16
+---------------+---------------+
| extension | len |
+---------------+---------------+
where extension specifies the type of the next extension in the linked list, 0 terminates the list. And len specifies the number of bytes of this extension. Unknown extensions can be skipped by simply advancing len bytes.
Как связанные списки попадают во все это?Это (для меня) подразумевает дальнейшие доступные расширения?