Начал писать TCPIP. При отладке началось...
Вопрос №1:
Смотрю пакеты wireshark-ом. Для начала соединил 2 компа и установил TCP соединение. (пакеты на первом рисунке) . Пакет SYN (№51) проходит нормальный, SYN,ACK (52) нормальный, а ACK(53) - уже с ошибкой контрольной суммы. При передаче данных wireshark тоже говорит что пакеты PSH с ошибкой контрольной суммы. Слышал, что КС вычисляется аппаратно кое-где, но тогда поле КС равно 0. А тут не 0. Повторюсь, это при соединении между 2 компами, при этом данные передаются, соединение устанавливается нормально.
Вопрос №2:
Соединяю комп и свой контроллер. Делаю установить соединение (SYN пакет от компа, на втором рис. первый пакет), в контроллере формирую свой пакет SYN,ACK, отсылаю, комп на него не реагирует, а wireshark пишет непонятное "Short segment. Segment/fragment does not contain full TCP header....". Контрольная сумма с ошибкой, но на это уже внимания не обращаю.
После долгих мучений убрал опцию MSS в заголовке, т.е. поля options не стало вообще - все стало ок, соединяется, данные отсылаются, КС в порядке.
Как добавить MSS в заголовок, подскажите. На втором рис пакет, где он добавлен, но wireshark вообще распознавать в нем опции не хочет. Пишет Malformed и все. При этом вычисленная wireshark-ом КС соответствует той, как если бы в пакете не было поля options вообще. Почему добавили одну опцию и пакет стал "does not contain full TCP header" и "Malformed" ???
Все уже перечитал, перепроверил, КС на калькуляторе просчитал - все вроде по науке. Подскажите что-нибудь!