![]() |
|
Модераторы: marykone |
![]()
|
|
| Nookie |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.7.2005 Где: Россия, Москва Репутация: нет Всего: нет |
пишу прогрмму, которая создает соединение с помощью ROW сокетов, то есть SYN, SYN/ACK и ACK.
В общем написал ее и начал тестировать, разобрался с SEQ_NUM, вроде все правильно.. вот только соедниение не создается, а мне в ответ сразу прилетает RST пакет, типа ты неправильно сделал что-то.... вот не пойму в чем неправильность. МОжет кто подскажет в чем еще ньюансы есть, кроме как SEQ_NUM и ACK_NUM?? Жду ответа. Еще проанализировал пакеты, например если создает соединение другая прога
Это то что получилось например с Оперой, при подключении к Серверу. А вот что выдает моя программа
Но на это все в итоге получаю RST пакет о разрыве соединения... Жду помощи, очень хочется разобраться в этом. --------------------
Хочу знать все!!! |
||||
|
|||||
| Nookie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.7.2005 Где: Россия, Москва Репутация: нет Всего: нет |
Это все я экспериментировал на полигоне, который построил на VMwere. Попробывал на внешнем IP, соединение создается.. а вот что за фигня с моей сетью не пойму....
--------------------
Хочу знать все!!! |
|||
|
||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 1 Всего: 11 |
Опера шлет окно размером
Window :5840 = 1460*4 (MSS=1460 для эзернета) Вы шлете: Window :65535 При этом в Опере есть опция MSS - (длина TCP-хедера 40 байт) и еще какие-то а у вас его в SYN-сегменте нет - длина TCP-хедера 20 байт. - а значит MSS по умолчанию - 576 байт, а окно - огого..... Вот сервер и считает наверно это дело непонятным - и рвет соединение. Это сообщение отредактировал(а) Олег2005 - 26.11.2008, 15:40 |
|||
|
||||
| Nookie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.7.2005 Где: Россия, Москва Репутация: нет Всего: нет |
попробывал tcpdump проверить что я шлю и что браузер... в итоге отличается на вот это
ты не в курсе как добавить это програмно? или хотябы что почитать по этому поводу. В инете мало чего можно найти про реализацию соединения на основе RAW сокетах. --------------------
Хочу знать все!!! |
|||
|
||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 1 Всего: 11 |
Все правильно - в SYN-сегменте всегда шлем MSS - ну а остальное уж по установкам в регистрах - например SACK и время и тд
Просто в TCP-хедере надо прописать все эти опциии - тогда и офсет будет другой - хедер то увеличится.. Присоединённый файл ( Кол-во скачиваний: 4 )
TCP_options.zip 14,43 Kb |
|||
|
||||
| Nookie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.7.2005 Где: Россия, Москва Репутация: нет Всего: нет |
не пойму.. а почему это не кажется странным внешниму айпи? а только для моей машинки ВМВаре?
--------------------
Хочу знать все!!! |
|||
|
||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 1 Всего: 11 |
Сказать трудно
Может у ВМ какой-то свой вариант модулей TCP IP? Или она эмулирует стек? Или использует оригинальным каким-то образом? Сие науке неизвестно........а мне и подавно Видимо причина в ВМ |
|||
|
||||
| Nookie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.7.2005 Где: Россия, Москва Репутация: нет Всего: нет |
Вообще спасибо за ответы, очень помогли ;) можно закрыть тему ;) Всему виной ВМваре ;)
--------------------
Хочу знать все!!! |
|||
|
||||
| Nookie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.7.2005 Где: Россия, Москва Репутация: нет Всего: нет |
Все таки не пойму.. ка кна программном уровне делать что-то с MSS??/
Добавлено через 1 минуту и 8 секунд И еще вопрос такой, когда отправляю последний ACK, то уже в нем присеть мой запрос? ну например запрос GET для HTTP? --------------------
Хочу знать все!!! |
|||
|
||||
| Олег2005 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 1 Всего: 11 |
Когда формируете первый TCP-SYN сегмент с запросом на рукопожатие, добавляете после 20-го байта опцию с MSS и дополняете поле до размера слова
Нет, там ничего не "присеть" - те никаких данных Данные пойдут по новому сокету, который создать сервер с промощью accept() - вот на этот серверный сокет и пойдет запрос и все остальное. На прослушивающий сокет данные никак не идут!!! Это сообщение отредактировал(а) Олег2005 - 28.11.2008, 14:22 |
||||
|
|||||
| Nookie |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.7.2005 Где: Россия, Москва Репутация: нет Всего: нет |
Ну вот к примеру заголовок TCP
Как сюда впихнеть MSS? я просто чуток не понимаю... Добавлено @ 15:10 заполняем так
Может надо структура по-новому определить? Это сообщение отредактировал(а) Nookie - 28.11.2008, 15:10 --------------------
Хочу знать все!!! |
||||
|
|||||
| Nookie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.7.2005 Где: Россия, Москва Репутация: нет Всего: нет |
Можно наверное и так определить
--------------------
Хочу знать все!!! |
|||
|
||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 1 Всего: 11 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Сетевые технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |