4.2.2.7 Контрольная сумма TCP: RFC 793, параграф 3.1
В отличие от контрольных сумм UDP (см. 4.1.3.4) контрольные суммы TCP использовать обязательно. Отправитель должен генерировать контрольную сумму, а получатель должен ее проверять.
4.2.2.8 Диаграмма состояния соединения TCP: RFC 793 параграф 3.2, стр.23
С диаграммами состояния связано несколько проблем:
Стрелка от SYN-SENT к SYN-RCVD должна помечаться snd SYN,ACK, в соответствии с текстом на стр.68 и рисунком 8.
Возможна стрелка от состояния SYN-RCVD к состоянию LISTEN при условии получения RST после пассивного открытия (см. стр 70 в RFC 793).
Возможно прямо перейти из FIN-WAIT-1 в состояние TIME-WAIT (см. стр.75 в RFC 793).
4.2.2.9 Выбор начального порядкового номера: RFC 793, параграф 3.3, стр.27
Протокол TCP должен использовать начальный порядковый номер, генерируемый в соответствии с текущим временем.
4.2.2.10 Число последовательных попыток открытия: RFC 793, параграф 3.4, стр.32
На рисунке 8 допущена ошибка — пакет в строке 7 должен быть идентичен пакету в строке 5.
Протокол TCP должен поддерживать одновременные попытки организации соединения.
- Обсуждение:
- Разработчики иногда удивляются, увидев, что при попытке двух приложений одновременно соединиться друг с другом организуется только одно соединение. Это не ошибка, а преднамеренное действие, поэтому не пытайтесь «исправить» ситуацию.
4.2.2.11 Восстановление по старым дубликатам SYN: RFC 793, параграф 3.4, стр.33
Отметим, что реализации TCP должны сохранять информацию о соединениях, достигших состояния SYN_RCVD в результате пассивного или активного использования OPEN.
4.2.2.12 Сегмент RST: RFC 793, параграф 3.4
Для протокола TCP рекомендуется допускать прием сегментов RST, содержащих данные.
- Обсуждение:
- Предлагается включать в сегменты RST текст в формате ASCII, содержащий код и объяснение причины RST. Стандарта для представления таких данных еще не разработано.