@ZhongYu - потому что Linux. ☺️ Серьезно, хороший разработчик слышит «этого никогда не случится» и предполагает, что так и будет. Как только вы осознаете, что дело существует, у вас нет другого выбора, кроме как поддержать его. Все остальное было бы некорректным поведением, не соответствующим стандарту. Поддержка такого рода крайнего случая - это то, что должно делать все программное обеспечение. Это программный эквивалент того, что ваш мост не упадет, когда кто-то оторвется от края.
а RHEL 5.3 (ядро 2.6.18).
Несколько раз я замечаю в netstat, что мое приложение имеет соединение, установило TCP соединение, когдаЛокальный адрес а такжеИностранный адрес такие же.
Вот та же проблема, о которой сообщил кто-то еще
Симптомы те же, что описаны в ссылке - клиент подключается к порту X порта сервера, работающего локально. Через некоторое время netstat показывает, что клиент имеет соединение с127.0.0.1:X
в127.0.0.1:X
Как это возможно?
Изменить 01
Одновременное открытие вызывает проблему (большое спасибо Hasturkun). Вы можете увидеть это наклассическая диаграмма состояний TCP при переходе из состояния SYN_SENT в состояние SYNC_RECEIVED