Почему бит SYN или FIN в сегменте TCP потребляет байт в пространстве порядковых номеров?
Я пытаюсь понять обоснование такого дизайна. Я просмотрел несколько RFC, но не нашел ничего очевидного.
Ответ 1
Это не особенно тонко - это так, что сами биты SYN и FIN могут быть подтверждены (и, следовательно, повторно отправлены, если они потеряны).
Например, если соединение закрыто без отправки каких-либо данных, то, если FIN не потребляет порядковый номер, закрывающий конец не может определить разницу между ACK для FIN и ACK для данных, которые был отправлен до FIN.
Ответ 2
SYNs и FINs требуют подтверждения, поэтому при использовании они увеличивают порядковый номер потока на единицу.