TCP Stack

Тема в разделе "WASM.NETWORKS", создана пользователем calidus, 23 мар 2008.

  1. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Хотелось бы реализовать свой тсп стэк для программы. Проблема в том что даже теоретически я не знаю как это сделать =) ... Поэтому было бы классно чтонибудь по теме глянуть ... Заранее спасибо =)
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А в чем суть темы этой? То, что ты хочешь, довольно непросто. Читай про протоколы ARP, IP, TCP ..
     
  3. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    calidus
    тут в комерце за это даже хорошо заплатить обещают :)
     
  4. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    я так понимаю речь идёт о реализации сабжа в ядре, или нет?
     
  5. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    хм ... ну когда ченить соберу бесплатно дам. Я мзду не беру , за державу обидно ))))))))

    Совет называеца иди копай мож. ченить найдешь =) ... протоколы эти знаю. Просто одно дело теория , а другое написание ... если вы большие проекты с множеством функций делали то поймете.

    Еслиб я знал точно варианты ! =) ... теоретически думаю да ... хотя мне кажется , что можно и по другому. Кто то помню на си делал подобное но я потерял исходник. Хотя такие извраты чтобы с механикой программы совместить!
     
  6. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.549
    Адрес:
    Russia
    calidus
    Если под винду . Вам дорога в NDIS и только туда! Гуглите, смотрите примеры, и главное поиск по форуму. Тут про NDIS темы не раз поднимались
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Мы-то делали, делали. И прекрасно понимаем. Но каких советов ты хочешь, мы (я и я) не понимаем..
    Тут надо просто начать писать, дебажить и доводить, пока не начнет работать
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    calidus
    Что глянуть? Сам протокол(а без этого лучше и не браться) описан и на русском наверняка куча
    док есть. Реализацию можно посмотреть в исходниках Линукса и был такой пакет для ДОС - KAQ9.
    Там в исходниках полный стек TCP/IP ( полный для того времени) и все клиенты и серверы.
    Написать кусок TCP/IP для частного случая можно и одному человеку, но громкое слово
    стек - это работа для команды.
     
  9. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    Качай ReactOS и под отладчиком гоняй ее....
     
  10. fret

    fret New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2008
    Сообщения:
    24
    Задача элементарная. Смотри сорцы Linux.
     
  11. WIN32

    WIN32 Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    338
    calidus
    Если будеш делать для ядра, то у тебя уйдет много времени чтобы разобратся с NDIS, советую сделать обертку и для начала юзать RAW сокеты.
    Кстати зачем тебе это ?
     
  12. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Готовые и рабочие реализации уже есть. Гуглим.
     
  13. WIN32

    WIN32 Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    338
    k3internal
    в большинстве случаев люди пишут для себя что бы в практике знать и понимать протокол. Если я пишу свой стек, свою сетевую архитектуру для операционки, это не значит что она будет использоватся в реальных проектах. Не думаю что человеку дали задание написать стек, просто как бы "для себя..." наверное.
     
  14. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Great, ты писал для ядра или как тут советуют обертки на сырые сокеты? Если для ядра можешь скинуть поглядеть? занимаюсь сейчас как раз ндис драйверами было б интересно поглядеть.
     
  15. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Novi4ek
    это я ответил на "если вы большие проекты с множеством функций делали то поймете."
    а сам стек я не писал, но представляю себе довольно четко задачу, поэтому и обсуждаю.

    самому мне все равно в скором времени придется заняться этой темой, только в немного другом направлении.
     
  16. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    Novi4ek
    вот хорошая вводная статья про сетевую подсистему Linux
    http://www.ibm.com/developerworks/ru/library/l-linux-networking-stack/index.html
    тут описание sk_buff (буфера сокета)
    http://www.skbuff.net/skbuff.html
    тут исходники ядра Linux
    http://www.linux-m32r.org/lxr/http/ident
    начинать изучать сетевую подсистему нужно с функции netif_rx()
    которая вызывается драйвером сетевого контроллера для диспетчеризации принятого пакета
    будут вопросы, обращайся

    что касается пользовательского уровня, тот же стек протоколов можно реализовать через libpcap
     
  17. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    rei3er! Спасибо за ссылки, но дело в том что мне пока интересен этот вопрос применительно к windows, с теоретической точки зрения я себе довольно хорошо представляю как и что будет работать, на практике интересно было бы посмотреть именно работу внутри виндосовского драйвера. Мне сейчас представляется такая картина - прописать НДИС-фильтр драйвер сразу над драйвером сетевой карты и самостоятельно из этого фильтра работать с этим драйвером, эмулируя дальше через свои надстройки IP, TCP, UDP и т.д., заворачивая все это во фреймы, понимаемые драйвером адаптера, может быть я не прав и надо делать это по другому, вот и хотел бы посомтреть как это делается именно в виндоус.
     
  18. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Novi4ek
    ну в принципе так и делают когда пишут свой стек для обхода фаеров.
     
  19. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    не проще ли взять гатовый, разобрацца в нём, и дополнить своими мыслями ???
     
  20. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    k3internal Ну искал я в гугле, ничего не нашел, может приведёшь ссылку какуюнибудь чтоли