Я пытаюсь понять объяснение позади такого дизайна. Я скользил через несколько RFCs, но ничто не нашел очевидным.
Это не особенно сложно - это так, чтобы можно было подтверждать сами биты SYN и FIN (и, следовательно, повторно отправлять их в случае потери).
Например, если соединение закрывается без отправки дополнительных данных, то если FIN , а не потреблял порядковый номер, то закрывающий конец не мог определить разницу между ACK для FIN и ACK для данных, которые были отправлены до FIN.
SYN и FIN требуют подтверждения, таким образом они увеличивают поток потока порядковый номер на единицу при использовании.